How I'm able to take notes in mathematics lectures using LaTeX and Vim - <AUTHOR> https://castel.dev/post/lecture-notes-1/ <comment><USER2> As a feat in itself this is definitely very impressive, but I wonder if it's really worth anyone's time to spend precious lecture time with your mind fully occupied in the mechanical task of taking notes rather than actually absorbing and engaging with the content. Especially for an extremely content-dense subject like Mathematics, where you need all your concentration just to process what you are reading and follow along the logic.

There is absolutely no dearth of study material on the internet. It's one thing to take notes as part of your study process. There it helps solidify your understanding. But surely taking notes on the fly when you have been barely introduced to the subject isn't going to help with that.

<comment><USER3> > mechanical task of taking notes rather than actually absorbing and engaging > with the content

The mechanical task of taking notes is one of the most important parts of actually absorbing the material. It is not an either-or. Hearing/seeing the information, processing it in a way that makes sense to you individually, and then mechanically writing it down in a legible manner is one of the main methods that your brain learns. It's one of the primary reasons that taking notes is important in the first place. This is referred to as the "encoding hypothesis" [1].

There are actually even studies [2] that show that tools that assist in more efficient note taking, such as taking notes via typing rather than by hand, are actually detrimental to absorbing information, as it makes it easier for you to effectively pass the information directly from your ears to your computer without actually doing the processing that is required when writing notes by hand. This is why many universities prefer (or even require) notes to be taken by hand, and disallow laptops in class.

1: [https://www.sciencedirect.com/science/article/pii/0361476X78...](https://www.sciencedirect.com/science/article/pii/0361476X78900206)

2: [https://www.npr.org/2016/04/17/474525392/attention- students-...](https://www.npr.org/2016/04/17/474525392/attention-students-put- your-laptops-away)

<comment><USER4> Not that it detracts from your point, but I definitely benefited from notetaking on my computer in school. For an AP History class, I typed up—in outline style (I, II; A, B; 1, 2; a, b; etc)—all my notes on the required reading. At the end of the course, I had a few hundred pages of these notes all printed up.

I never had to go back and read any of them. Just the process of typing them up in the first place firmly fixed all the knowledge in my mind. When taking the final and AP test, I could see the notes I had taken in my mind.

Writing or typing didn't make a difference. Just the rephrasing and condensing alone was enough. (Which, again, reënforces your point. I still had to consciously avoid "pass-thru" regurgitation)

<comment><USER5> > reënforces

What's it like working at the New Yorker?

(explanation: this is a joke based on the way nobody uses diaresis marks anymore for any word other than naive, except for the New Yorker style guide. [https://www.newyorker.com/culture/culture-desk/the-curse- of-...](https://www.newyorker.com/culture/culture-desk/the-curse-of-the- diaeresis) )

<comment><USER6> Not only that but the common spelling is "reinforces", which doesn't need a diaeresis at all. It's like function_seven went very far out of the way to show that they know what a diaeresis is...

<comment><USER4> I'm not usually pretentious, but when it comes to the double-e, I lean in :)

</comment></comment></comment></comment></comment></comment><comment><USER7> I don't agree with this. Perhaps it's possible for someone with exceptional LaTeX and vim knowledge, but even after using both for 20 years I wouldn't do this.

The point of the lecture is to assimilate structure and basic understanding, not to produce a neat set of notes instantly. To take notes to this detail means you're putting more time into the note taking than the work.

Use a pen and paper. Write down structure as it happens. Write down things you understand, short hand. Write down things you don't for later review. After 2 hour long linear circuits lectures I regularly waltzed off with a couple of pages of loose A4 for review. A lot of the time, our lecturers would give us a copy of the OHP stack if we asked them as well.

Write your notes up at the end of the day with reference material at hand and no compromises. You can structure, extrapolate and transform things into your own understandable language then.

<comment><USER8> People are different, the processes in their minds goes different ways. People develops different styles of learning and then they adopt to that styles and adopt styles for themselves. So it is pointless to agree or disagree.

I personally like this idea of vim+LaTeX. It is close to what I did while studying math, though I write notes down with pen and paper. Mostly I wrote down them once and read them once before exam. I remember some issues with this approach, but the one I remember most was due to incomplete recording, not due to "I didn't managed to understand this mess of greek letters while listening a lecture".

I remember some problems due to inability to understand, it was Galua theory, but I solved them by reading books. I had read three different authors on topic, and I think it was the only way, I think that any style of keeping records would not help more then mine.

And I hate to write greek letters by hand. There is one names xi, I never managed to figure out how to write it, so xi looked in my recordings as some messy knot of lines. All my xi's was different, but there was a bright side of this: xi was the only one, that was so messy, so I could understand that it is xi when I saw this mess. With LaTex xi looks nice and clear.

<comment><USER9> On the point of writing greek letters and symbols I've taken to practicing a Greek letter possibly hundreds of times when I first encounter it. Just write it, write it, and write it again.

At first it's just to understand how my hand has to move to write it efficiently, then I move on to attempting to write precisely. Finally, I write it over and over pushing myself to get it to the speed at which it will not interrupt the rest of the notes when it happens. This approach has be wildly successful for me and while it does take some time it is always time well spent.

Recently, I ran into § and just had to figure it out. Honestly, I was out of my depth in the Wikipedia article and I don't even know what it represents. It was fun, though.

<comment><USER10> > I ran into §

This is the symbol for section, it means that a new section is starting, or it may be a reference to a section number.

</comment></comment></comment></comment><comment><USER11> 1700 pages of notes would translate to 9 pages/working-day in a year. That's a lot of note taking. The blog post is wonderful and does show outstanding LaTeX and VIM practical knowledge, but I'd be skeptical that the average student could absorb so much content and still have time to bring it to such a polished final format every day.

Nonetheless, there's definitely a lesson to be learned here with respect to the usage of templates. In essence it seems like OP developed his own shorthand language for both text and mathematics. I'm always curious to hear about approaches that try to solve the bandwidth problem (as we have quickscript [1] for hand-writing and stenography [2] for typing). Most interestingly, I'd be curious to know whether these short-hand notations are actually capable of improving learning and assimilation, and whether they'd work for a general audience.

[1] [https://en.wikipedia.org/wiki/Quikscript](https://en.wikipedia.org/wiki/Quikscript) [2] [https://en.wikipedia.org/wiki/Steganography](https://en.wikipedia.org/wiki/Steganography)

<comment><USER12> Looks like you have a typo in your [2] link. I think you meant to link to [https://en.wikipedia.org/wiki/Stenotype](https://en.wikipedia.org/wiki/Stenotype)

<comment><USER11> That is correct, thank you. Also in the description, I meant stenotype and not stenography.

</comment></comment></comment><comment><USER13> > which makes for a total of more than 1700 pages of notes

That's an absolutely incredible feat, especially considering that the notes look pretty much textbook-quality!

Although personally, I have never been able to both absorb a lecture _and_ take electronic notes. If I need comprehension, my notes have always had to be pen-and-paper.

Once again, this is an incredible feat.

<comment><USER14> > If I need comprehension, my notes have always had to be pen-and-paper.

I agree. However, if I want to be able to refer to them afterwards, I really need to take electronic notes.

<comment><USER15> Agreed. So we have this problem that can only be resolved by taking notes with a pen before typing them up. This has the nice opportunity of reviewing them whilst typing, and puts pressure on you to ensure understanding when making notes.

<comment><USER16> Or use one of the many handwriting recognition apps and take pictures of the hand notes. You don't actually want to convert the handwriting to text, because there will be errors. But it should be good enough to create a search index.

</comment></comment></comment></comment><comment><USER17> I use LaTeX for notetaking as a blind person because that's the only way to show my notes to sighted people. Nothing else comes even close. Ascimath would be much better and that's what I'd recommend for most people, unless you're required to send PDF documents and often offline.

<comment><USER18> Thanks for the ascimath reference. Do you know of any similar technologies for writing equations in a simpler and more readable form than latex?

I've never seen ascimath before but I wish I had because I think I partially reinvented the wheel. I wrote some extensions to Pandoc (and an associated emacs major-mode) for scientific note-taking, with a main portion being a "simplified latex" for writing equations in a more readable way. The key features of simplified latex format are matlab-style matrices, UTF8 support, easy exponents, and better formatting (e.g. functions automatically use roman instead of italics). There are still a few edge cases mine doesn't catch, but I'm in the process of rewriting it in Haskell and rewrite is more stable.

[https://code.launchpad.net/~mwshinn/+junk/notes3](https://code.launchpad.net/~mwshinn/+junk/notes3)

or for documentation:

[https://bazaar.launchpad.net/~mwshinn/+junk/notes3/view/head...](https://bazaar.launchpad.net/~mwshinn/+junk/notes3/view/head:/notes3.n)

<comment><USER19> eqn (part of troff) from 1974, predating TeX, had a very decent syntax! It's not as complete as TeX, and the layout quality is worse, and I wouldn't want to touch the rest of troff syntax. So not really practical, but good inspiration.

Open/LibreOffice math formulas use a syntax that's clearly inspired by it. Unfortunately it's very lacking in documentation.

Another important question is are you looking for presentational or semantic math? For presentational fine tuning I'm afraid nothing can beat the flexibility of TeX _combined with a huge body of Q &A_ (on stack exchange and elsewhere)...

</comment></comment></comment><comment><USER20> I always found that my notes were effectively write-only.

The process of writing things down on paper helped me absorb the information, but beyond that I never really looked back at the notes.

Generally I could find the information I needed in a better form somewhere else. If anything, the notes mainly helped me review broadly which topics were covered on which days.

For math specifically, I always found that what helped me most was to come up with a general "shape" of how I used the paper when solving a problem of a particular type. Then I would end up with a visual that helped me know which bits of information I was missing and what I needed to do where to find the answer.

It's different from the "draw a picture" thing, really more of a knolling[1] of the problem down on paper. If all the things are in their places, then the answer to the problem is straight-forward to come up with.

Edit:

Mise en place [2] might also be a good way to describe it.

[1] [https://en.wikipedia.org/wiki/Tom_Sachs_(artist)#Knolling](https://en.wikipedia.org/wiki/Tom_Sachs_\(artist\)#Knolling)

[2] [https://en.wikipedia.org/wiki/Mise_en_place](https://en.wikipedia.org/wiki/Mise_en_place)

</comment><comment><USER21> This reminds me of the sole draining * job as a "web developer" to turn word documents into HTML. I imagine such a job also exist in science, but instead of Word to HTML you turn paper notes into LaTeX. He could probably make good money helping professors write papers.

* You coded since you where 15 years old, wrote your own game engine, wanted to cure cancer and save the world, and now your job is to copy text from one document to another.

<comment><USER22> The best response to having to do dumb work like this is to automate it with regex, bash (and possibly an unzipping tool - aren't word documents zipped xml?) and take the time that people previously gave you to do the task to tweak your scripts and learn things you find interesting. I got through my dumbest student jobs that way, which was almost all of my student jobs.

<comment><USER21> I got a friend that basically automated his job, the management was not pleased, and forced him to go back to doing it manually ...

He managed to get another job. But figured out he wanted to work with actual software development, and it also seems to be a shortage of software developers. But it was virtually impossible to get a job without a degree or experience. So he's now at age 45 enrolling a five year university program to become an engineer on paper ...

<comment><USER23> This is so unfortunate, but I'm not surprised. What kind of poor management, when met with an efficiency that could double an employee's output by automating their current job, limits it back to the 50% efficiency? I've met some managers like that...

</comment></comment></comment></comment><comment><USER24> This method is beautiful and incredibly complicated. Anyone who has enough determination to build up their tools like this and make them 100% ideal and customized for their situation deserves all the praise they get.

If your use case is similar to the author's, perhaps consider taking your environment and leaning hard into customization. As he's proven, it's very much worth it. Seems like it would be much less useful to copy his configs rather than building your own organic system after years of use, though - which is what he did.

I really like vim, personally, but I encourage my coworkers more familiar with Windows to use nano over vi (nobody wants to type that extra m, for some reason) because they're less likely to mess things up. Better off for them to learn their own way rather than being dumped in the middle of the vi desert with no way to exit.

<comment><USER25> > Seems like it would be much less useful to copy his configs rather than > building your own organic system after years of use, though - which is what > he did.

This is a great point and one I've been thinking about more recently. Tools and/or setups like the one displayed in the post with this level of specificity or complexity seem like they would be almost useless packaged up as a standalone. Much more valuable would be the system on which this was built (vim and the collections of extensions he used, not saying this is anywhere near an idea workflow but as you know if you use vim - it is extensible in its own right). Or, rather than that system, to take inspiration in it and design tools with much more intentional flexibility to allow people to build their experience.

I recently had a great conversation about how science educators might wish to have 3 brown 1 blue style animations or experiments, but such a programming tool would be much too difficult to teach to the educators. I think that is totally true, 3b1b generates his videos programmatically and while I believe some version of his tool is open source, he does not offer any support. But there is something to the idea of having one's own publishing tool and workflow to allow the exploration of ideas in whatever field it may be. For Science teachers, they ought to be able to play in a tool like 3b1b uses, but it can't be his exact one, it seems they'd need some well thought out foundation upon which to express their mental models of physics or geometry or whatever it is.

3b1b about page; first item is his modeling approach: [https://www.3blue1brown.com/faq](https://www.3blue1brown.com/faq)

3b1b animation: [https://github.com/3b1b/manim](https://github.com/3b1b/manim)

</comment></comment><comment><USER26> I got a STEM degree in the early 1990s, and my usual note taking style was in the same vein: I used four colours of pen, a straightedge for lines, and tried to make nicely presentable notes that I would not have to make alterations to after the lecture.

In retrospect I think this was completely insane. I was so preoccupied with the mundane details of layout and presentation that many of the important technical details the professors were talking about went right by me. I'm amazed I managed to get by with this style.

One of the courses I did best in was one for which the blackboard presentation was drawn from the textbook, and in that one I did not bother with the elaborate note taking, just relied on the textbook. For some reason I never made the connection between me doing unusually well in that course and the fact that I wasn't distracted by note taking.

If I were to do it all over again I would make my notes merely capture the information (and if I knew the information was in my text, just capture enough to identify where), and if I really wanted beautifully laid out notes I would rewrite them after class, with the added benefit that the rewriting would be an implicit review.

</comment><comment><USER27> I now use org-mode to do my notes it pretty much removes the need to write non math latex and when you have to write math you just inline the latex. And because I also write my assignments in the same file I can generate a nice latex file with everything I have written doing the course.

<comment><USER28> Org-mode is awesome, but the points about snippets still apply. AFAIR yasnippet should support most, if not all, capabilities presented in this article.

</comment></comment><comment><USER29> As a 30-year latex user and a 10-year newbie to vim, I am impressed by the author's skills, and will likely copy some of his macros. However, as someone who has taught mathematically-inclined material for those three decades, I cannot recommend using a computer to take notes in class, for I have simply never seen a student who found that effective.

Although some students try to take notes on a computer during the first day of my classes, I have never seen one who tried to do that after the second or third lecture. The paper method (or, equivalently, using a stylus to hand- write on a screen) is simply better suited to the dynamic of a class. An effective class is not a linear presentation of material, a sort of recitation of a book by a professor. And effective notes are not transcriptions of the class material. An effective class weaves around through a topic, building on interactions with the students. This often involves departures from a simple path that, transcribed in real-time, would be footnotes within footnotes within footnotes, "Inception" style. And of course mathematical material tends to involve a lot of diagrams. Hand-written notes, with lots of arrows between ideas and boxes with sketches, are not just a good way of making a record of a class, but they are a great way of understanding what's going on in real time.

The only place I could see this detailed note-taking method working would be in a class where the teacher essentially reproduced a book in class. But is that the kind of class that justifies the cost of tuition?

I have two anecdotes I'd like to share.

1\. A student came to me to ask a question about something that came up in class. I asked to see her notes, to get a clearer idea of what was confusing her. The notes were amazingly insightful and clear. I asked how she took those notes, which contained some things I had said and others I had not said. She replied "I don't write down what you say, I write down what I think you mean." This student will likely be a professor in a few years, and I envy the students who will take her classes.

2\. Last term, I recommended that my students try the Cornell note-taking method. (See [http://lsc.cornell.edu/notes.html](http://lsc.cornell.edu/notes.html) for an example, although there are many treatments of the method online, including videos.) The students who tried it seemed to enjoy it, and it may be no accident that the class leader was one of them.

</comment><comment><USER30> An alternate approach: Somewhere in the middle of my first math degree I basically stopped taking notes in lectures (maybe 1/2 page, or a few lines per lecture, just any "aha" moment, really). Best change I ever made.

This way I could focus on the lecture itself - and as you can't learn this stuff without doing it my "real" notes were made later while doing exercises.

</comment><comment><USER31> Interestingly he uses pretty much the same techniques that I relied on when typing lecture notes with Word:

\- Formula auto-buildup with automatic replacements of \stuff with Unicode keeps the mess of backslashes and braces more readable (and it also allowed me to immediately spot where I mistyped something)

\- I used snippet-like things for parts I had to type a few times, such as a formula that's revisited a handful of times alter.

\- Some things are simply easier to type in Word (with UnicodeMath) than LaTeX, such as a^12 being automatically what a^{12} is in LaTeX or fractions being written as a/b, thus requiring fewer braces. Also, as a user of a non-US keyboard layout back then, UnicodeMath's use of () instead of {} for invisible grouping and automatically resizing parentheses meant a lot less typing in general and less syntax to inadvertently break the layout.

The only thing I could not do in real-time was figures where I often did a quick sketch on paper and in the evening converted that into a nice drawing. But text and math was (at least for me) easily writable in real-time and generally required no post-processing or prettification. Assigning certain styles to keyboard shortcuts was also something the author probably used snippets for, but the end result for the typing experience is pretty much the same.

I did write notes by hand the preceding year, averaging about 7 pages of notes per lecture. Others have mentioned it too, the very act of writing notes helps remembering. For the handwritten notes I could just as well have bought the book by the professor, but I didn't do that on purpose. For me, there was no difference in being able to remember my notes between handwriting and typing. And generally I did spend most of the lecture writing and understanding came later when solving the assignments.

<comment><USER32> This is how I took notes in college as well. TeX people may scoff but word is way better for taking math notes quickly. Just learn the key combos and you can do almost anything rapidly. The only thing I found tedious was matrix/vector stuff.

</comment></comment><comment><USER33> I used to do this, but I switched to just using a Jupyter Notebook. It's nice to be able to move between multiple computers, with no need to set up a LaTeX install.

A couple of things I love about this setup:

I can write in Markdown and drop to LaTeX when I need to forumalate any equations.

For homework, I can implement a quick Python script inline to build intuition behind a topic.

I can use Sympy to simplify and solve for more complex derivations. This outputs LaTeX which I can paste into the requisite Markdown cell.

With Plotly, I can quickly create a nice 2D or 3D visualization.

<comment><USER34> Hi, what sort of complex derivations can you solve for with Sympy?

<comment><USER35> Tons of different things: [https://www.sympy.org/en/features.html](https://www.sympy.org/en/features.html). Try it for yourself: [https://live.sympy.org/](https://live.sympy.org/)

E.g. find critical points on a surface:

      e = (x-y+2)*(x**2+y**2-9)
      solve([e.diff(x), e.diff(y)], [x, y])

Note that this online demo runs at a restricted speed; locally (e.g. install Anaconda and use Jupyter Notebook or QtConsole) it's much faster.

</comment></comment></comment><comment><USER36> Impressive! For anyone looking to do something similar, but in Sublime, I can recommend the LatexTools[0] plugin, which gives similar live previews of math mode. I'd never considered embedding figures from Inkscape though.

I also decided that I wanted to keep lecture notes in LaTeX, and the best advice I have for anyone is to just practice. Start from LyX if it helps, but just make sure that you grind down the rough edges. It takes a long time, but like many skills that are worth learning, it takes lots of effort but the payoff is worth it.

[0]: [https://github.com/SublimeText/LaTeXTools](https://github.com/SublimeText/LaTeXTools)

<comment><USER37> _Start from LyX if it helps, but just make sure that you grind down the rough edges._

Fully enough, I would have exactly the opposite recommendation: Start by writing LaTeX out manually, then move on to LyX when you have a good understanding.

This is due to a combination of (1) needing to already know about LaTeX features before you can know to look for them in LyX (buried in menus or whatever) and (2) although LaTeX errors are much rarer when you're using LyX, when you do get them they're often really confusing ones. I'd say that using LyX requires greater knowledge of LaTeX than using LaTeX directly, just applied less often.

The benefit of LyX is not that you avoid needing to know about LaTeX. It's that you don't have to see it when you're editing your content. Equations with a lot of subscripts and superscripts come to mind; anyone who claims that it is easier to find and fix mistakes in a nested superscript in the raw LaTeX rather than just clicking directly in rendered representation and fixing it in place is, frankly, lying, if only to themselves.

</comment></comment><comment><USER38> I'm surprised to see not enough mentions of Emacs's Orgmode which clearly dominates Vim when it comes to note-taking with or without Latex. Not to start another Vim vs Emacs war, I've been using both of them for quite some years now for each of their specialties. But when it comes to Notetaking, Orgmode is hands-down far superior with it's rich plugin ecosystem & minor modes within. Some plugins I use to do Latexy stuffs on Emacs is (ofc) Auctex, latex- preview-pane, PDFTools. Finally, OxHugo to export my Latexy org as a blog post to my Hugo blog.

<comment><USER39> See [https://github.com/jceb/vim-orgmode](https://github.com/jceb/vim-orgmode) for Orgmode in Vim.

</comment></comment><comment><USER40> 1700 pages? You've just rewritten the textbook. That doesn't seem like a good use of time.

</comment><comment><USER41> Hey, for note taking using markdown and mathjax, I also like Typora ([https://typora.io](https://typora.io)) a lot.

Easy to install, wysiwym, works out-of-the-box!

<comment><USER42> I do the same thing (markdown and mathjax) but I use TeXMe ([https://github.com/susam/texme](https://github.com/susam/texme)). I like TeXMe a lot because it turns any Markdown and LaTeX notes into a self- rendering file. Just open your Markdown+LaTeX notes in any browser and it renders itself beautifully, almost looks like a paper.

It is not wysiwyg though. But for me the convenience of distributing my Markdown+LaTeX source itself that can render in any browser without a separate compilation/processing step is a huge win!

See [https://github.com/susam/texme#get- started](https://github.com/susam/texme#get-started) if you are curious how it works.

</comment></comment><comment><USER43> I did the same thing when I was in uni. Couple of my profs asked for my notes so they can make class notes for next year. I also did all of my math assignments this way and it was so easy copying stuff from the notes and working with it without erasing and compromising on space. I could break down every algebraic step for maximum clarity.

</comment><comment><USER44> I did this during college (but with emacs).

It was fine. I was in the habit of TeXing up my homework anyway so was fairly practiced, and I have shit handwriting and know I'll never reference anything I write on paper, or have it to look at in a few years. I also don't get that much out of lectures.

YMMV

It's nice to have it to reference now though.

</comment><comment><USER45> Why don't universities just videotape the lectures as they are happening and make them available for reference to the students. Then the students can just pay full attention to listening the lecture while it is happening, then the students can use the tapes later to make notes later if required.

</comment><comment><USER46> I took notes using emacs and LaTeX in similar fashion. But I started by doing all of my assignments with it until I became proficient enough. I can type much faster than I write. I didn't use any Elisp to help — though I probably should have in retrospect. I did have some common LaTeX macros/commands. It was nice to have the notes to study from in the end.

This helped most in doing assignments and is what I'd recommend to others. I would write by pencil and paper then type as LaTeX. This forced me to review my solutions and fix mistakes or improve them.

I didn't attempt to get too fancy with plots in real-time (I kept a notebook for those courses) but I did do graph theory and commutative diagrams (category theory) with tikz.

</comment><comment><USER47> I used to do this too, but I took pics of the figures or drew on paper them instead. The only times you don't feel like the silliest student in the room when live texing is when you have one of those professors that edits each equation in place for 5 mins and quickly instead of rewriting the equations in edited form.

There are some lectures where every week something truly unique happens that is not available in any one book in the whole world, AND you have to know it well for your area or bc of a hard test.

But in all other cases, where the information can be found in some textbook or it is some well studied subject, my opinion is it's not worth it. Texing can turn into an escape from actually learning the stuff

</comment><comment><USER48> Why would you torture yourself like this? In mathematics understanding is everything, and using the time to listen carefully and understand is more important than having perfect notes, handwritten notes are quite enough.

</comment><comment><USER49> Beautiful tricks for writing efficiently in LaTeX. But I just hate to take notes during lectures. I prefer if the professor gives the printed notes and then you need just to add small annotations, if anything.

</comment><comment><USER50> Previous discussion: [https://news.ycombinator.com/item?id=19440652](https://news.ycombinator.com/item?id=19440652)

</comment><comment><USER51> Dropping a bombshell: [https://github.com/brennier/quicktex](https://github.com/brennier/quicktex)

</comment><comment><USER52> While this is certainly impressive, writing math formulas by hand commits them to memory way more effectively than typing latex commands/snippets. Although, an argument could be made that writing formulas in lecture is negligible compared to the amount of practice required outside of lecture for any mathematics course.

</comment><comment><USER53> When I see a Math lecture written in LaTeX, I immediately know that I will probably be too dumb to follow it. It's almost always a deep exposition on what the writer want to show he/she knows or how many complicated formulas they can apply rather than really try to teach me something.

<comment><USER11> Not necessarily true. If you take the score of e.g. Chopin's Ballade N.3 you'd be inclined to think sheet music is all just show off. Abstract notation takes time to parse and understand when you see it for the first time, no matter how well versed you are.

</comment></comment><comment><USER54> A template expander is indispensable for productivity. I have a perl script that expands text based on matching regular expressions. In this way I'm not tied to any particular editors: I wrap it in an AppleScript for a text service, and I wrap it in a shell script for working in Acme.

<comment><USER55> Of course that doesn't get you niceties like jumping to different parts of the template and mirroring edits. But having it universally available might be worth the trade-offs. How do you invoke it in Acme? Tag item mouse-click for every expansion?

<comment><USER54> Just option click the script name. The script look at the current window body, RE match dot or RE match texts right before the dot. The first match executes the associated action. It's basically an extended version of plumber.

</comment></comment></comment><comment><USER56> Good ol' Live-TeXing. Googling "LiveTeXing" will show you other examples of this, if you are curious to see more.

For those who aren't already familiar with Vim, Kile 3.0 beta is a fine substitute. It does most of what's described in the post in a GUI environment.

</comment><comment><USER57> I really like this, but it would be very hard to learn all the macros. There were no real portable computers when I did undergrad. When I much later went to law school I transcribed about 90% of what the professors said on a latptop and then later went back though it to make outlines and then outlines of outlines. I took some premed classes after that but because of the drawings I had to handwrite the notes. I still transcribed as much as possible of what the professors said and later went back and outlined from it. I've never been able to learn from the textbook and if I ever missed a class I did poorly if tested on that material.

</comment><comment><USER58> Very impressive. The first displayed text page contains a typo at the bottom : CHAUCHY iso CAUCHY. As others have said physically rewriting is part of comprehension (as is rewriting new words learned in a new language) As the lecture notes are drafts from the black board I suggest using a font that does not make it look like perfectly printed. You can fool yourself believing what you wrote because it looks so pretty.

If you are writing a considerable amount of latex his setup is really cool. I will you these ideas but using emacs in stead of vim. Wonderful job!!

</comment><comment><USER59> This is really neat. But for me, if typing on a keyboard becomes just as functional as writing, I would still choose paper and pencil for two reasons: no power is required and it effortlessly autosaves.

</comment><comment><USER60> That's interesting, I don't use vim snippets but seems like there is a few of them (mainly snipMate/UltiSnips)

[https://vi.stackexchange.com/questions/7466/what-is-the- diff...](https://vi.stackexchange.com/questions/7466/what-is-the-difference- between-the-vim-snippets-plugins)

And there is a community-maintained repository of snippets: [https://github.com/honza/vim-snippets](https://github.com/honza/vim-snippets)

</comment><comment><USER61> Neat. I'm a self-taught developer, and I learned a lot by watching MIT computer science lectures on youtube while taking notes in a markdown file. But I definitely hit a wall when I tried to follow the Mathematics for Computer Science course. I didn't have a good way to handle the notation. Ultimately though I think if I ever decide to follow through with that I'll probably just write in a notebook and scan the documents so I can easily reference them. But I love the dedication to figuring this out!

</comment><comment><USER62> Hi. From: Emacs org-mode users who export to latex/pdf.

</comment><comment><USER63> Samsung Galaxy Note 10.1 (the tab) had a feature in cooperation with WolframAlpha a few years back that translated your handwritten formula into a nice digital formula. It was like 90% there. Unfortunately fixing interpretation errors was a pain in the ass, which made it basically useless.

I wonder if there was any meaningful improvement on this approach. Even just adding a nice UI to fix errors would've made it really useful.

</comment><comment><USER64> Something different, but I use this

[https://remarkable.com/](https://remarkable.com/)

Think of a big Kindle, good battery, and really good writing experience (much like paper). I can note on pdfs, it has handwriting recognition, exports well and is otherwise a joy to use. I used to have a top of the line Samsung tablet before, and was never really happy with it for taking notes and reading.

<comment><USER65> How does this compare to taking notes on a Surface or iPad, color aside?

It looks really cool, but pricey for what it can do.

</comment></comment><comment><USER39> The real value I see here, is being able to write anything, such as a publication-quality scientific document - in Vim. I have yet to see a comprehensive overview of what this would entail in Vim. I think Orgmode [1] in Vim makes progress towards this.

[1] [https://github.com/jceb/vim-orgmode](https://github.com/jceb/vim-orgmode)

</comment><comment><USER66> That's quite remarkable that you were able to do so many things so effortless in real-time.

And all the notes look so beautiful.

</comment><comment><USER14> Very cool & beautiful notes!

I'm looking forward to seeing how the author live-TeX's figures - I'd love to get better at creating figures in TeX even in a slower, more offline context.

Having to drop to Python in some cases seems non-ideal though. If only there were some editor with good, customisable scripting built-in.....

</comment><comment><USER67> I want to ask about the converse of this article. I teach at a college. I make presentations using LaTeX. I like to imagine that one advantage is that students can suck them off the intranet and work from them.

I want to ask if this is common. Do students not find that other people do it?

</comment><comment><USER68> So what I see here is a very impressive, hand built tab completion system for a specific task. Makes lots of things much faster. Now all you need to do is speed it up some more by using less keystrokes and a stenotype machine.

But really the takeaway is the auto-completion. Incredibly useful.

</comment><comment><USER69> Didn't believe that this is really possible. Certainly interesting to see what is possible with macros and workflow optimizations. However, why is this extensive note taking necessary? Shouldn't the course materials provide a digital copy of the script?

</comment><comment><USER70> Nice setup. Good explanation and seemingly gets the job done.

Just one grievance: if you are concerned with parsing your latex (even if that's only possible while you restrict yourself), you should use the parentheses as math delimiters: `\\( x + z\\)`

</comment><comment><USER71> This is impressive.

There is no way I would be able to take these notes, live, and learn the mathematics simultaneously. So this approach wouldn't be a good idea for me, and perhaps most people.

But if you're able to do that, then it's doubly impressive.

</comment><comment><USER72> The techniques in the article definitely are useful to improve efficiency of typing math. I have used vi/vim and latex for many years (over 20). And this still impressed me a lot. Can't wait to see how he does the figures.

<comment><USER73> He's using inkscape.

[https://www.quora.com/Can-people-actually-keep-up-with- note-...](https://www.quora.com/Can-people-actually-keep-up-with-note-taking- in-Mathematics-lectures-with-LaTeX/answer/Gilles-Castel-1/comment/42822941)

</comment></comment><comment><USER74> This is pretty amazing. I regularly use LaTeX for typesetting homework at school but have never been able to keep up during lectures. I'll have to look into including this in my workflow.

</comment><comment><USER75> Beautiful notes! But I don't believe those figures are made using LaTeX and Vim... I can't see how you convert keyboard strokes to nice figures shown in the example.

<comment><USER42> From the original post:

> There, I explained my workflow of taking lecture notes in LaTeX using > Vim and how I draw figures in Inkscape.

Looks like the author was using Inkscape earlier but may have switched to something else recently. You can draw impressively beautiful diagrams in LaTeX with TikZ although it can be a lot of work to do so with TikZ which would make it difficult for live note taking.

</comment></comment><comment><USER76> I have to make a plug for the project I'm working on as it seems like you guys are the target market:

[https://getpolarized.io/](https://getpolarized.io/)

Polar allows students and researchers to keep all their research in one place, take notes, highlights, annotations, etc.

You can tag your books and suspend resume reading without losing your place.

It also supports sync with Anki which is rather nice.

The one caveat is that I don't (yet) support math as well as I would like.

Latex is supported by summernote but I haven't enabled the module yet. I usually wait for enough people to complain but math is definitely something I want to support.

</comment><comment><USER77> While I don't plan on doing this during lectures, I will be taking some of these tips to help when composing assignments and papers, thanks for posting!

</comment><comment><USER78> I use libre office writer, it has a very good math formula editor. (Unlike MS word that keeps crashing when you try to write a math formula)

</comment><comment><USER79> I've got the usefulness of Ultisnip in this article at least. I couldn't understand everything else... mathematics?

</comment><comment><USER80> I guess if you have high wpm, this might be feasible. I unfortunately don't, even after constant practice.

</comment><comment><USER81> Anyone know what theme/font he's using?

</comment><comment><USER82> Oh look it's the daily 'look how inadequate you are for not doing this unnecessary leet thing' post.

</comment><comment><USER83> This is godly.

</comment><comment><USER84> I have a similar but simpler setup. The crucial difference in my setup is that instead of using full blown LaTeX, I use TeXMe -- [https://github.com/susam/texme](https://github.com/susam/texme) \-- which supports Markdown and LaTeX.

So I write plain text files with Markdown + LaTeX, slap a single line of TeXMe JavaScript either at the top or bottom, and open the file with browser to see the rendered math.

Like the OP I use Vim too with some customization with :ino and :ab. Nothing beats the editing productivity and convenience of Vim!

</comment><comment><USER85> Now that 'Escape' is not a real hardware key in the new Macbook Pro anymore and even otherwise 'Escape' has always been one of the hard to reach keys, what is workaround for avoiding the 'Escape' key in Vim?

<comment><USER86> some people use Shift Lock (which is barely used, and closer to pinky), and a colleague of mine use the sequence 'ii'

<comment><USER85> Did you mean Caps Lock? Which tool do you use? I found [https://github.com/susam/uncap](https://github.com/susam/uncap) but it does not have a MacOS binary.

<comment><USER87> You don't need any external program. Open System Preferences, go to Keyboard and click on "Modifiers Keys...", then you can map Caps Lock to Esc.

</comment></comment></comment></comment><comment><USER88> i use onenote to import the pdf of the textbook and then annotate that. this process seems like someone who doesn't know what to use their programming skills for in order to over engineer a solution to a vaguely defined problem(take pretty notes using software)

what is the point of recreating everything in the textbook again?</comment>


YouTube Red is being replaced by YouTube Premium, and it will cost extra - <AUTHOR> https://www.recode.net/2018/5/16/17363334/youtube-music-launches-youtube-red-youtube-premium-extra-charge-cobra-kai <comment><USER2> _That same service will eventually also replace Google Play Music, a rival music service Google has inexplicably operated at the same time it was trying to get YouTube Music off the ground._

They got me again. I can't believe I let them get me again. I was subscribed to Play Music, then Youtube Red appears and okay, I get that in addition, now they're closing Play Music and forcing me into Youtube?

These motherfuckers.

<comment><USER3> Never buy into a Google service thinking it'll be around for a long time. There's only a small handful of things they do that have had real staying power, and they're all free (search, Gmail, Maps).

</comment></comment><comment><USER4> I'm a Google Play Music user and mark my words, the day they kill the service is the day I go to spotify. I'm not going to whatever Prime-like monster they're creating.

<comment><USER5> Honestly, no point in waiting. I paid for google music for a couple of years before switching to spotify. Spotify is a lot better - more music, better recommendations. about the same price.

<comment><USER6> Deezer is also quite good and nice to have alternatives to Spotify that respects privacy.

<comment><USER7> What makes Deezer more private than Spotify?

Seems like the same story: [http://www.deezer.com/legal/personal- datas](http://www.deezer.com/legal/personal-datas)

</comment></comment></comment></comment><comment><USER8> I love YouTube Red but basically never use any of the Music features.

I'd rather have ads on Music and nothing else. Seems like a strange anti embrace of the creator community.

I can only assume they would rather make money off of ads (because they make more money than YouTube red?) and this needed a way to sell the popular YouTube Music (including the background play feature) and have a way to get more people watching ads that were casual users that mostly only cared about music (instead of having ad free YouTube thrown in).

Can't see another reason to have structured it this way. YouTube Music is obviously an important business requirement to otherwise keep all the labels uploading their music videos onto the otherwise free site.

</comment><comment><USER9> I hope it comes to Canada. I'm willing to pay to remove commercials from YouTube. I don't really care about the extra shows, etc., I just want to be able to remove the ads. $12/mth is worth it for me.

<comment><USER10> On average, one country is added per year. So in roughly two centuries, it'll be available worldwide. Not that I'm bitter or anything.

But more seriously, since the rollout has been extremely limited, I have the feeling that Google is not really interested in offering it worldwide.

</comment></comment><comment><USER11> Amazon Prime Video plays commercials now. How long until they start slowly introducing commercials into YouTube Premium?

It's just like the history of cable TV. I'm very pessimistic that it will just keep repeating.</comment>


Killing Your Startup By Listening to Customers - <AUTHOR> http://steveblank.com/2012/02/27/killing-your-startup-by-listening-to-customers/

<comment><USER2> One thing I've learned over the years is that you can't take it as gospel when a customer says "I want X". When following a customer request to the letter, most times you'll end up regretting the decision.

For us, the better way to handle when the customer asks for X, is to sit down and create a persona and ask ourselves why they are asking for it, and who else would want it.

I find we get a much better result when building requirements based off the customer's pain rather than just giving them what they want. It helps maintain usability by avoiding confusion over additional features and functions.

Then again, in a startup environment this is a tricky balancing act. You can't forsake sales for a drawn out product management/development process, but you also can't just add every customer feature request either.

<comment><USER3> Totally agree - I always try to focus on requirements, not features. It is really hard for some people to speak in requirements, and the only way you can get them out often is with frank discussions. Second guessing can work if you know your customer really well, but asking people to talk with you works amazingly IF you can help translate for them.

A while back I was rebuilding a larger kids site and in a meeting I was told the site needed a 'big red button on the homepage, that makes a funny noise when you press it' - everyone in the room agreed it was a great idea, and the editorial team tried to push it onto my requirements list. I explained that it was a feature not a requirement (to which they stated that 'well I require it to be on the homepage, so it's a requirement') but I explained what I meant and after a bit of talking we came up with a whole requirement set that we were then able to set off and build to.

The original 'feature' became: As a user I want to be excited As a user I want to be surprised As a user I want to feel I need to see what happens next As a user I want to never know what might happen As a user I want to have some thing 'physical' to play with As a user I want to feel like I've done something to affect the site (and many many more)

We ended up with a fun widget on the home screen, and could well have even made a big red button, if that was what would have best met the requirements (it didn't btw). It ended up user testing really well, kids now love it and it enhances 'accidental' journeys across the site (triggering it now fires you off to a randomly selected page from a list of the 20 coolest pages).

But any time you can successfully translate 'features' into 'requirements' you are on to a winner.

(Widget is here [lower right corner of the screen], and kids still love it!: <http://www.bbc.co.uk/cbbc/> )

<comment><USER4> Kudos for having the stomach to listen to them and not simply cave in and build that dumb red button. This is why I loathe client work.

<comment><USER3> Thanks, it was one of many internal battles, and I think we won those that mattered. Working somewhere like the BBC is great, but as you are part of such a huge machine you have to know when to fold, or you will never get anything done!

</comment></comment></comment></comment><comment><USER5> Did he actually look at the startup? It's also possible that it was just _bad_ \-- lacking in usability, useless features that cluttered up the UI, poor aesthetics, etc.

Customer feedback only gets you so far. Often times people don't know what they want or what the core problem they're having is.

<comment><USER6> I thought the same, the entrepreneur told him that both free and passing users weren't coming back. Doesn't that sound like a problem with both customer segments? How does the advice of listening to only one of them helps him any way, if he's not delivering what neither of them wants?

It seems that the proper advice would be to read through feedback and understand what they really want then make sure you have that. Instead of advising to ignore free customers.

</comment></comment><comment><USER7> Is it just me or is this kind of an obvious (first) thing one should ask themselves when starting a business - "How will you make money?"

<comment><USER8> Depends on the business. I'm willing to bet that neither Google nor Facebook had a concrete idea of how they were going to make money when they started up.

And lots of sites seem to work on the principle that "First we get _all_ the users. Then something mysterious happens. Then we're all rolling around in cash."

<comment><USER9> Google and Facebook are often cited in this regard because they are _exceptions to the rule_. It's bad practice use them as the example.

<comment><USER6> Just out of curiosity, can anyone give an example of a company had massive scale (10m mau), but then ultimately failed because couldn't convert them into payers? There are probably some, but I can't recall any. So I'd love to study them.

<comment><USER10> I guess we should define failure here. Is it basically bankruptcy, where the startup couldn't survive(or could barely survive) even after several rounds of funding? Or are we talking about situations where the startup is bought out, but just continues to lose money for the new parent company?

Digg comes pretty close to the first definition. They had around that number of monthly uniques, and have pretty much lots most of the visitors(and therefore ad revenue) in the last few years. They hemorrhaged money and weren't able to find a buyer.

It hasn't completely failed, especially after the reorg they did a couple of years ago, but it's definitely a shadow of it's former self.

As for the second, I guess Youtube around 2009 might count, considering that they were still losing money for Google at that point(Credit Suisse's analysis said that they were losing around $475 million, and RampRate's analysis said $174 million). However, this is pretty much only a business failure, not mindshare, and Google was still willing to drop money into them to get them to profitability.

</comment></comment></comment></comment></comment><comment><USER11> Building _everything_ a customer asks for and following the "customer is always right" mantra doesn't seem like a good idea.

As Steve points out in his article, customer development is about better understanding your customer, their needs, and how to sell effectively to them. It's not about giving away software consulting services for free-- it costs a user nothing to ask for a feature/solution, but it costs you quite a bit to build it for them and even more if they're the only user that wants this particular feature or if they're unwilling to pay for it.

Tough to know where the balance is sometimes though.

</comment><comment><USER12> We literally get 100's of customer suggestions a week - what you have to decide is which of these are popular and worthwhile additions to the product and which are the niche, not worth the time features.

</comment><comment><USER13> Don't ask your customers what to build. That's lazy.

"Listening" is the wrong word to use when it comes to feedback. You need to engage customers about their pain points. Your customers understand their problems but not the solution.

It's worth repeating--don't ask them for the solution. Ask them for the problem.

</comment><comment><USER14> look at how much money I spent on my back yard?

<comment><USER15> It's not exactly the _intended_ topic of the post, but I had the same reaction. The author seems to want to evoke a sense of calm or slowing down, but the transition between the scene and the diagram-laden advice is really pretty jarring. The weak transition reminds me of the E-Myth, a book which grafted a gratuitous, saccharine narrative onto its small and fairly obvious thesis.

Whatever the calming potato pond is supposed to do here, the subsequent jargon storm undoes it. If "The Startup Owner's Manual" reads like this article (a weird mix of narrative and startup-ese with italics strewn about like a Christopher Walken monologue), I'd be hesitant to spend 40 bucks on it.

<comment><USER16> Perhaps Blank is just testing a new model for his blog. He created an MVP and is now testing it with us users to see what the reaction is.

I wouldn't be surprised if he just wants to play with his style a little bit, particularly if he has just spent the last year writing a very technical book.

I'll wait for a pattern to emerge and in the mean time I will agree that the style was very unrefined.

<comment><USER15> Good point, there's nothing wrong with playing with style on a blog. Few better places to test, practice, and refine.

</comment></comment></comment></comment><comment><USER17> Customers tend to ask for features that makes the product incrementally better and often stuff that is visible e.g. "A button that does X". They don't ask for "better usability" or "performance improvements" unless it is very bad. Also, I have never heard any users asking for a feature to be removed (even though it might make the product better).

</comment><comment><USER18> Build what your customers want (and will pay for), not what they say they want. These can be the same thing, but often are not.

</comment><comment><USER19> "If I had asked people what they wanted, they would have said faster horses." -Henry Ford

<comment><USER20> And, showing that the more things change, the more they stay the same, half a century later:

"It's not the consumers' job to figure out what they want." Steve Jobs</comment></comment>


Show HN: Machine Learning Flashcards - <AUTHOR> http://machinelearningflashcards.com/ <comment><USER2> That looks great! You should create a cellphone app which we can download and buy off of the appstore.</comment>


Cluster from brand new Pi-Zero - <AUTHOR> https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=127092 <comment><AUTHOR> I read about talk of a PiZero cluster, then see Koichi Nakamura on twitter with one ready to go ~ [https://twitter.com/9_ties/status/689707306494271488](https://twitter.com/9_ties/status/689707306494271488)</comment>


60% of small companies that suffer a cyber attack are out of business in 6months - <AUTHOR> http://www.denverpost.com/2016/10/23/small-companies-cyber-attack-out-of-business/ <comment><USER2> So, 60% of small companies are out of businesses? I think not. What you need to ask yourself is: what is considered a 'cyber attack'? Is spam a cyber attack? What about phishing? What about your DNS provider being DDoSed? Ransomware? Macros? -- Companies are hit by these daily, and not only do they stay in business, many times (most?) they don't even notice the 'attack'. As it turns out, almost NO companies have ever shut down because of a breach. DigiNotar did, as did a couple others, but it's rare.

<comment><USER3> I think you're prematurely declaring victory - the severity and scale of attacks is still growing, and there's probably many companies out there with no or untested backup/disaster recovery plans, or one computer holding vital data, etc.

Not all the attacks can be shrugged off easily either - like the big one on Sony, or ransomware that's cost organizations $1,000s or $10,000s.

</comment></comment><comment><USER4> A cyber attack that is reported? I have cleaned up from at least hundreds of cyber attacks targeted at small businesses. Thousands if you count compromised workstations that never to our knowledge exfiltrated data. But only two or so of those were reported. And those two were big deals.

So sure, if by cyber attacks, you mean attacks reported to law enforcement, I buy it. Small companies usually see downside and no upside in getting the cops involved in attacks that they can get technical staff to deal with.

</comment><comment><USER5> What percentage of small companies not suffering a cyber attack are out of business in 6 months?</comment>


Ask HN: What are your tips for freelancers? - <AUTHOR>

Last week I finished a basic web app for a small company working as a contractor. Today, they asked me if I can expand the app and continue to work with them. This isn't my full-time job and is the first time doing freelance professionally. Can any freelancers out there share advice, tips or even software they use to help manage their business? <comment><USER2> Charge by day or week, never hourly.

An hour or two of ancillary work? Do it as a favor, not a billable project.

Negotiate scope, not rate. Try to make rate immutable.

You are charging too little.

Your rate is probably not a straightforward function of what your fulltime equivalent makes.

Get an accountant now.

Have a well-defined master contract and a separate statement of work (SOW) for each project.

Get acceptance criteria into the SOW, but don't make it ultra-specific or you'll invite arguments.

Incorporate. It's cheap insurance.

Get a lawyer and have your contracts reviewed.

Expect to work on your customers' paper, not yours. See: get a lawyer.

Reach out periodically to all your not-unsatisfied clients. You'll be surprised how much work this drums up.

Specialize on domain, not on technology stacks.

<comment><USER3> There are a lot of clients (USG, in particular, and anyone who contracts for them) who must do hourly or 15-minutely reporting (and essentially always to bill on the same terms, but sometimes you can bill daily and report more granularly).

Your counterargument is going to be "don't do government stuff" I'm sure.

<comment><USER2> Don't do government work.

That's a rule that has served us in pretty good stead.

It's not just the moral issue (though I do have dealbreaking moral problems with doing the kind of work I do for the USG) but also that the market for GSA-style services is so different than the regular market; not only is it harder and weirder to address as a market, but also succeeding there doesn't teach you much about how to make your offerings work in the real market.

(I've worked, earlier in my career, on somewhat large-scale projects [not in vuln research] serving government agencies, but have never been a principal at a company that targeted government sales, so, grain of salt or whatever).

<comment><USER3> Counterpoint:

GSA _products_ sales aren't so bad, and sometimes services are incidental to product sales. If I were a lock maker, I'd sure want to be Kaba-Mas or S&G with a decent amount of government sales. If you have to provide some services, it's not horrible -- it's a $200-400k/yr living for a few consultants if you're in the right space, and generates nice revenue for the company, without taking over the focus. If you're an independent contractor and end up subcontracting to a product company, you can make really good money filling this role. If you don't have to do the "get the product sold" phase, and are purely subcontracted to the the implementation/support, it's actually not bad, and not very different from enterprise clients in general. There is the problem of single-client-all-revenue, and some slightly odd work rules, but enterprise often has that.

I share your moral concerns about vuln research/etc. for the government, but I have no problem with defensive tech for them, or for non-security tech.

</comment></comment></comment></comment><comment><USER4> Charge by the day or the week, not by the hour. Very explicitly define your scope of work, and beware of scope creep.

When providing estimates, plan for 30-32 hours/week of reasonable full-time effort. If you estimate assuming you will be able to dedicate 40 hours/week to one thing, you may find yourself working a shitload of overtime.

Be firm with the client. If you believe a feature request is out of scope, say something and create a change order.

Finally, knock their socks off and they might have a referral for you!

<comment><USER5> "explicitly define your scope of work, and beware of scope creep" is going to be a part of my new year resolution. i find my self getting carried away because i am trying too hard to 'wow' the client

</comment></comment><comment><USER6> I would recommend the book, 'Double Your Freelancing Rate'. It provided really great info about why companies hire freelancers, and how that is different than why you think you were hired.

</comment><comment><USER7> Alot of great advice here, but one that I believe is the most important...

HAVE A _GOOD_ CONTRACT.

When projects go smoothly, you hardly have to refer back to the contract and in many cases it is a formality.

But, When things go wrong such as delays, changes or cancellations to name a few. A bad contract will leave too many scenarios to negotiation and that is where problems come up.

Also:

\- Good Communication. Not only something that works for you, but for your client.

\- Charge a rate that will make you want to finish the project even if it goes over a bit. We sometimes ignore these things as we look at the bigger picture, but you do not wan't to be crossing that line where you feel that you undercharged or over promised, it makes life miserable.

\- Hiscox.com for insurance, nice monthly payments that are affordable. Simple enough.

\- Take breaks, in advance. Whether it be a trip or a couple days off to yourself. Plan them and do your best to not cancel them. Freelancing has a way of sucking you in to this endless cycle of work. If your not freelancing to 1. Make more money 2. Have more freedom or 3. Build your experience...then I'm sorry to say, it's a bad idea.

Congrats on the project, you must of done well or charged too little, either way, if you start with most of the suggestions on this thread in mind, you will be ahead of the game.

</comment><comment><USER8> I've been spending the last 6 months starting a business in this space.

If you enjoy the client and the relationship, hang on to it! They are few and far between more often than not.

A few tools we use are: Xero, Toggl, Asana. Always try to optimize your own workflow, but structure it in such a way that it's not all in your head. Your process and hand off is just as valuable as the product itself.

We've had a lot more success tying hours to features instead of defined project scope. Let it creep and change, just be up front with costs and expectations. Realize that your time and work is not flexible, but the feature list is.

Let the client help define the product scope collaboratively with you. You already landed them, so you just need to focus on keeping them.

Since it's not your full time, set mental boundaries for yourself and try to keep the two jobs separate.

</comment><comment><USER9> Anyone have a good example or contract that could be customized, e.g. a starting point that is usable?

<comment><USER9> Given that multiple people have mentioned getting a good contract / attorney.</comment></comment>


Why does putting a dot after the URL remove login information? - <AUTHOR> https://superuser.com/questions/1467958/why-does-putting-a-dot-after-the-url-remove-login-information <comment><USER2> >Adding the dot to the end of the domain name makes it an absolute fully- qualified domain name instead of just a regular fully-qualified domain name, and most browsers treat absolute domain names as being a different domain from the equivalent regular domain name (I'm not sure why they do this though).

This is because it technically could be a different site. The computer's local domain is used first.

Pretend you have a company intranet, with the TLD of "company.". You can access [http://intranet.payroll.company](http://intranet.payroll.company). Because your computer is set up with "domain: company", you can just put "[http://intranet.payroll"](http://intranet.payroll") into your web browser and it'll navigate to "[http://intranet.payroll.company"](http://intranet.payroll.company") just fine.

Now some new fancy TLDs come out, and someone registers ".payroll". You type "[http://intranet.payroll"](http://intranet.payroll") into your browser -- did you mean "intranet.payroll." or "intranet.payroll.company."? That's a subjective decision made by your web browser... but if you include the latter "." at the end of the domain, you're telling the browser "this is an absolute domain, do not auto-append my local domain or search domain or anything else".</comment>


Slack ping pong and chess bot - <AUTHOR> http://playplay.io <comment><USER2> I've been thinking about this for a while too. Cool!</comment>


Dawson – A Serverless Web Framework for Node.js on AWS - <AUTHOR> https://dawson.sh/ <comment><USER2> Why so many of this frameworks insist in using an account with administrator privileges?

From the docs: "search for a Policy named 'AdministratorAccess', click next and confirm".

It would be much more convenient to request only the needed privileges while teaching the user what is the tool doing in the background.

<comment><USER3> Delving into the intricacies of IAM policies can take up a LOT of room on a tutorial or blog post. Whenever I post an AWS tutorial, I usually say to pick the policy that gives '*' access to that particular service, but with a strong disclaimer that this is not for production usage, and to narrow down the permissions accordingly.

EDIT: Not global admin privileges, just full read/write to whatever AWS service I am basing the tutorial on.

There are a lot of good IAM policy setting tutorials out there that I usually point them to.

<comment><USER4> Why not just give a copy-pastable policy?

<comment><USER3> Where the policies are simple, I try and do that, but sometimes there can be complex ARNs etc. that will take too many words to try and explain, or might distract from the pace of the tutorial itself.

It is actually quicker to point to one of the built in or pre-made AWS policies, which are usually fairly generic.

</comment></comment></comment></comment><comment><USER5> Not sure why one would decide on using a framework because it is integrated with a few vendors that are popular at the moment. There is significant lock- in, and just because it is open source does not make it free. Lots of companies right now release client libraries that work only with their own remote server under a liberal license, giving the illusion of freedom.

</comment><comment><USER6> Just for comparison, Amazon sees what is going on here -- explosion of 3rd party management frameworks for API Gateway & Lambda -- and wants to avoid fragmentation.

They're working on a thing called SAM which is built on CloudFormation: [https://github.com/awslabs/serverless-application- model](https://github.com/awslabs/serverless-application-model)

More analysis here, which basically notes that SAM is more declarative in nature, and will likely push 3rd party frameworks to be more cross-platform and/or application-centric in focus: [https://techbeacon.com/aws-open-sources- serverless-model-wha...](https://techbeacon.com/aws-open-sources-serverless- model-what-you-need-know)

<comment><USER7> Having started with Apex ([http://apex.run/](http://apex.run/)), used Serverless ([https://serverless.com/](https://serverless.com/)) and tried to work with SAM, I find the SAM is not nearly as easy to use or documented well enough (compared to Serverless) to be useful. On top of that, SAM feels more like a method of using CloudFormation to deploy Lambda Functions and setup API Gateway which means a lot steeper learning curve for people getting into Lambda.

After reInvent, I was pretty excited about SAM because it seemed like a perfect system to integrate with the Code Build/Pipeline tools, but after spending a week on it and not getting anywhere, I couldn't really recommend it to anyone.

</comment></comment><comment><USER8> I wish "serverless" was instead called "daemonless" or "function as a service / faas". Too late, I know, but "serverless" is just not what's going on. It seems more appropriate as a term for apps that run locally (even in a browser) without backend dependencies.

<comment><USER9> Agreed. There is precedence for reclaiming abused terminology, like how 'isomorphic' javascript has become 'universal' javascript (though I'm not a big fan of that name either).

Either way, it's a confusing term for the uninitiated and sort of presumes that only the web-dev world exists (because as you say, serverless already has a meaningful definition in the computing world)

<comment><USER10> Much like "literally", I think it's too late to save it.

</comment></comment></comment><comment><USER11> This looks neat.

I am new to the whole serverless concept, can someone explain how it works? Let's say I have to do some processing on the server (schedule some cron jobs, generate a PDF or send an email), how do I go about doing that? Do I use AWS Lambda for that?

<comment><USER5> Spoiler alert: serverless is made of servers.

But seriously what they mean is that you rent an allotted amount of resources on a server farm to run your application for a short period of time, and then the resources are freed again. Not all applications will fit this environment, such as any embedded databases, persistent connections, and so on.

<comment><USER12> I never understood the naming for this trend. It's misleading at best.

<comment><USER13> I think it's that people assumed (as I did) that everyone would say, "Well, of course, there's not "no servers", because that would be like saying "computerless" or "processorless", but it is practical to say serverless and mean that you don't have to provision, administer, scale, or retire servers, nor do you have to pay for persistent compute resources rather than simply execution"

But that's a mouthful, so "serverless" seems to fit the bill outside of what feels a bit like pedantry.

<comment><USER14> > _mean that you don 't have to provision, administer, scale, or retire > servers, nor do you have to pay for persistent compute resources rather than > simply execution_

Given all the work this appears to save one, there's a curious explosion of "serverless" articles, frameworks, APIs, 'practices', crash-courses, workshops, talks .. ah well, par for the course with anything tech that gains a catchy moniker.

(Perhaps that's why FP doesn't take off quite as much, "Monads" should have been called "Promises" 30 years ago, and Peano Numbers "numberless maths"!)

</comment></comment></comment></comment></comment><comment><USER15> I am a big fan of the "serverless" approach. If you structure your code in the right way, it is still easy to move away from it and use your own infrastructure if need be anyway. For getting off the ground for MVPs and such without having to deal with hosting and deployment too much and only pay by usage, it's pretty great!

</comment><comment><USER16> This looks interesting but if you like it I encourage you to check out [https://serverless.com/](https://serverless.com/)

It has a very active community, is extremely powerful (because for AWS it is built on AWS CloudFormation), and very robust. I wrote by own framework and eventually moved to Serverless.

Not to mention in supports other languages (although the Python documentation is lacking... Java has good documentation though) and other providers (Azure & Google).

Edit:

For a quick comparison:

Dawson - 4 contributors on Github, and almost 650 commits

Serverless - Over 200, and almost 6000 commits

I don't want to be the type of person that discourages innovation. Sometimes you need to innovate because the current state of affairs is broken. But in this case Serverless Framework is not broken... it is very very good.

Footnote: I'm not a contributor but I am a long time user. I don't have any personal stake in the Serverless project.

<comment><USER17> We're not comparing dawson's maturity to Serverless, nor we are financially backed as they are, so comparing those numbers is pointless.

Anyway, if someone's interested in diving in deeper, instead of just counting our stars, this deck might be a good resource: [http://slides.com/lanzone31/dawson20170303](http://slides.com/lanzone31/dawson20170303)

A few corrections to your comment:

>is extremely powerful (because for AWS it is built on AWS CloudFormation)

dawson is also built entirely upon CloudFormation

>Not to mention in supports other languages

we'll merge python in master in a few weeks

<comment><USER16> That slide deck is very helpful.

I wasn't counting stars, I was counting contributions. You have some catching up to do.

For what it's worth I tried to weight my post because I think the project looks pretty good and I don't want to discount that achievement. Just Serverless is mature and used but a lot of people in production / live environments you have a lot of work to catch up.

One place where you can potentially not just meet Serverless but win is getting started documentation.

And I don't mean just hello world.

For example: how do I create and use a DynamoDB database in your Framework? Serverless certainly supports that but it is a learning curve and trips up new users.

Another concern I have is the edge cases. Stuff Serverless isn't even good at. For example:

\- CloudFormation has a 200 resource limit. How do you deal with that. Severless hasn't solved it yet.

\- How do Lambda functions get versioned? Serverless does this very well.

\- How do I hook up a lambda to a SNS stream. Serverless does this really well too but the documentation is poor.

One think Serverless does very well is letting you set up various Lambda triggers without having to know much of the internals.

</comment></comment></comment><comment><USER18> Are there any unopinionated serverless frameworks that allow you to deploy to multiple clouds?

<comment><USER19> The Serverless Framework now supports multiple serverless platforms (AWS Lambda, OpenWhisk, Azure Functions and Google Cloud Functions).

Depends on what you consider "unopinionated"...

It handles all the deployment lifecycle across all providers but won't abstract away all the implementation details. It is not possible to "lift & shift" from one provider to another without making some changes.

<comment><USER18> By unopinionated I simply meant that it allows you to deploy to multiple clouds. As someone that hasn't read up on this stuff, can you explain to me the implementation differences that would prevent you from 'lifting and shifting'?

<comment><USER19> It can definitely do this, it supports AWS out of the box and has "provider plugins" for everyone else. The workflow for deploying and managing applications is the same across all providers.

At the implementation level, the providers do differ. From small things (like the function interface) to bigger things (like event services).

I did a talk on this a while ago: [https://speakerdeck.com/jthomas/taming- serverless-dragons-mu...](https://speakerdeck.com/jthomas/taming-serverless- dragons-multi-provider-serverless-apps) [https://serverless.london/meetup/feb2017/serverless- framewor...](https://serverless.london/meetup/feb2017/serverless-framework- multi-provider-support)

</comment></comment></comment></comment><comment><USER20> Looks great! Wonder if we can port this to be used with Google Cloud Functions.

<comment><USER21> What specific "sugar" and features would dawson add to Functions? Google Functions is already super easy to get up and running and integrates with git/GitHub. The only features I currently see as missing in Google Functions are:

1.) Ability to provide a custom domain for http triggers

2.) Scheduling/cron to trigger functions. E.G. trigger function foo() every 22 minutes. Trigger function bar() on April 10th 09:24:23.

<comment><USER22> I don't understand why custom domains wouldn't be an option straight out of the gate?

</comment></comment></comment><comment><USER23> Even if I personally hate the word "serverless" because at the end everything is based on EC2 instances which are servers, it's made with love in Milan so.. Big up guys!

<comment><USER24> Well, everything is still based on CPU registers, but I guess everybody here prefers the abstraction provided by C, Python, Java, Ruby, JavaScript, or Go.

<comment><USER25> Nobody calls JavaScript "computerless" or "codeless".

<comment><USER26> Because the abstraction already has a name: high level language.

<comment><USER27> That's not the reason why people don't call JavaScript "computerless" or "codeless" though.

I think serverless is a bit sensationalistic and ultimately unhelpful of a name. I don't blame new projects for adopting the term since it's already in the public awareness, but I can't say I'm a fan.

</comment></comment></comment></comment></comment><comment><USER28> It's a nice spin of cloud providers to use "serverless" as a euphemism for "runs only on our proprietary platform and is virtually impossible to migrate away from".

<comment><USER24> It really depends on how you use it. If you structure your code well and you mostly use it to build RESTful APIs (which is what dawson is meant for), you will be able to easily migrate it to any other system. Especially if you use Lambda + RDS, you won't need too much work to re-deploy the same database and functions elsewhere (either another serverless vendor or your own infrastructure).

</comment></comment><comment><USER29> I saw the first talk from its author in Milan, the feature I like most is that it emulates AWS Lambda locally with a Docker.

<comment><USER21> Got a video link?

<comment><USER30> None that I know and sadly I missed the event but the slides are at [http://slides.com/lanzone31/dawson20170303#/](http://slides.com/lanzone31/dawson20170303#/)

<comment><USER24> Here's the meetup event link -> [https://www.meetup.com/Serverless- Italy/events/237189798/](https://www.meetup.com/Serverless- Italy/events/237189798/)

(no videos though)

</comment></comment></comment></comment><comment><USER31> What is the use case for this type of setup?

<comment><USER24> Mostly serverless web applications in JS (and Python coming soon!), served with CloudFront (static S3 files) and API Gateway (dynamic APIs).

</comment></comment><comment><USER32> Putting AWS credentials as plaintext in environment variables does not seem like the best security practice.

<comment><USER33> It's fine because it's an ephemeral value in a docker container, put there during provisioning by ansible where it was pulled from a properly encrypted vault. Kubernetes can totally manage that for you so you can finally go serverless.

</comment></comment><comment><USER34> Does this reduce AWS charges in some way?

<comment><USER17> It depends on which solution are you comparing to. Usually, based on my experience, the total cost will be significantly lower than a similar solution deployed to EC2+RDS.

</comment></comment><comment><USER35> How is this differentiated from serverless.com ?

<comment><USER36> If this works:

      # run your app locally
      $ dawson dev

They have that as advantage over serverless.com which is missing a dedicated local workflow

<comment><USER37> [https://github.com/dherault/serverless- offline](https://github.com/dherault/serverless-offline)

<comment><USER38> Is there an equivalent for the Python runtime? When I started using Lambda there wasnt, but I haven't looked at whether that changed since.

<comment><USER30> Zappa [https://github.com/Miserlou/Zappa](https://github.com/Miserlou/Zappa)

<comment><USER39> and Chalice: [https://github.com/awslabs/chalice](https://github.com/awslabs/chalice)

</comment></comment></comment></comment></comment></comment><comment><USER40> wake me up when browserless is a thing

<comment><USER41> native apps?

<comment><USER42> or maybe APIs since it's more related to the back-end?

</comment></comment></comment><comment><USER43> I have no idea why you would want to use this instead of running it directly in aws yourself. Maybe the learning curve is less steep but you lock yourself in with a 3rd party framework and if you run into problems you probably will have to learn aws anyway.

</comment><comment><USER44> Question, is "serverless" a thing nowadays? Also having framework for running basic api / static website on AWS, isn't it a bit too much?

Website is cool though :)

<comment><USER41> It is a thing and I don't think this is for basic usage. Just google serverless</comment></comment>


How To Finance Your Startup - <AUTHOR> http://www.businessinsider.com/how-to-finance-your-startup-2009-7 <comment><USER2> Short summary: if your business promises large returns, and requires lots of start-up capital, seek VC; if your business has not-so-large returns, and doesn't require lots of capital, boot-strap. Duh.</comment>


The Ethical Quandary of Human Infection Studies - <AUTHOR> https://undark.org/article/ethical-quandry-human-infection/ <comment><AUTHOR> Voluntary infection research seems to contradict the first principle of medicine: do no harm. Yet the studies have had a long and checkered history, and have at times led to valuable medical breakthroughs. Linda Nordling, a journalist based in South Africa, considers whether new guidelines are needed for these studies in developing countries like Kenya, Mali, and Thailand, where they're moving to be closer to suffering populations and real-world conditions.</comment>


How we hacked an Amazon Dash Button for a fresh cup of coffee - <AUTHOR> https://medium.com/@nelsoncash/fresh-pots-443bce83a91b#.j2k37e791 <comment><USER2> Ha - I like it. I want to replicate this so that when our sales team closes a deal then can press a button and queue the noise! :-)

Looks like a good Friday afternoon hack.

<comment><AUTHOR> That'd be awesome! There's so many good applications for a general IoT button. Amazon started selling a new generic one after this post was released.

[https://aws.amazon.com/iot/button/](https://aws.amazon.com/iot/button/)</comment></comment>


Identifiers for the 21st century - <AUTHOR> https://doi.org/10.1371/journal.pbio.2001414 <comment><AUTHOR> Identifiers for the 21st century

[Identifiers for the 21st century]([https://doi.org/10.1371/journal.pbio.2001414](https://doi.org/10.1371/journal.pbio.2001414))

How to design, provision, and reuse persistent identifiers to maximize utility and impact of life science data.

Abstract In many disciplines, data are highly decentralized across thousands of online databases (repositories, registries, and knowledgebases). Wringing value from such databases depends on the discipline of data science and on the humble bricks and mortar that make integration possible; identifiers are a core component of this integration infrastructure. Draw- ing on our experience and on work by other groups, we outline 10 lessons we have learned about the identifier qualities and best practices that facilitate large-scale data integration. Specifically, we propose actions that identifier practitioners (database providers) should take in the design, provision and reuse of identifiers. We also outline the important consider- ations for those referencing identifiers in various circumstances, including by authors and data generators. While the importance and relevance of each lesson will vary by context, there is a need for increased awareness about how to avoid and manage common identifier problems, especially those related to persistence and web-accessibility/resolvability. We focus strongly on web-based identifiers in the life sciences; however, the principles are broadly relevant to other disciplines.

Hopefully you can believe all ten lessons learned</comment>


Presumi on ProductHunt: Changing the way you apply for jobs - <AUTHOR> https://www.producthunt.com/tech/presumi-2-0#comment-271492 <comment><AUTHOR> We have a brand new version of Presumi (literally - we remade everything!) and it comes with some hot new features:

\- Analytics arrive in Presumi instantly \- Interact with employers using the Presumi Sidebar \- Get email reminders for deadlines and interviews \- Manage multiple resumes \- Measure your employability over longer periods of time \- See how long your resume in viewed for

Also, if you want to upgrade, use the referral code "hackernews" to get 25% off forever on any plan!

Lastly, if you're a recruiter and like what we're doing, you should check out: [https://presumi.com/employers](https://presumi.com/employers)</comment>