Learn Vim (the Smart Way): a book to learn the good parts of Vim - <AUTHOR> https://github.com/iggredible/Learn-Vim <comment><USER2> Two things that helped me more than anything with "learning" vim and or ever wanting to use it:

1\. Remap your "capslock" key to "escape." Vi was written using an ADM-3A terminal and its keyboard, which you can see here: [https://catonmat.net/why- vim-uses-hjkl-as-arrow-keys](https://catonmat.net/why-vim-uses-hjkl-as-arrow- keys) has the escape-key in a sane place. On modern keyboards, if you can, remap "capslock" to "escape" when pressed alone, and "ctrl" when pressed with another key.

2\. Make your leader key something easy like the comma character "," E.g. to make a horizontal split, I press (not including quotation marks) ",h" or ",v" to make a vertical one.

Once I did those two things it all made so much more sense... It's also great because most editors these days support vim bindings, so even if you don't want to use vim you can still benefit from its really-awsome-once-you-figure- it-out UX.

<comment><USER3> When I was first learning Vim I remapped caps lock to escape, and it was a huge improvement. But as I became more comfortable in Vim I realized I was using the control key a lot.

I've since remapped caps lock to control, and use ctrl-[ as escape (this is default behavior). I find having an easily accesible control key is very useful, even outside Vim. You can see in your link that it is actually the control key that used to be in the position we now put the caps lock key.

It does seem like remapping caps lock to escape when pressed alone and control when pressed with another key would be nice, but that wasn't an option for me (on wayland) as far as I know.

I bring this up only because there was a week or two transition period when I made this change, and I probably would have been better off if I had mapped caps lock to control from the start.

<comment><USER4> On Linux and Mac it's possible to have caps be escape when pressed alone or control when pressed with another key. On Linux the software is called xcape. :)

<comment><USER5> On Mac, there is Karabiner-Elements.

[https://karabiner-elements.pqrs.org/](https://karabiner-elements.pqrs.org/)

<comment><USER6> Here's a Karabiner tutorial that worked for me: [https://medium.com/@pechyonkin/how-to-map-capslock-to- contro...](https://medium.com/@pechyonkin/how-to-map-capslock-to-control-and- escape-on-mac-60523a64022b)

</comment></comment></comment></comment></comment><comment><USER7> The best way to understand and use vim is to learn the "grammar" of vim and then practice using it until you have muscle memory for common movement and editing commands.

This stackoverfow post explains how the vi/vim "grammar" works:

[https://stackoverflow.com/questions/1218390/what-is-your- mos...](https://stackoverflow.com/questions/1218390/what-is-your-most- productive-shortcut-with- vim#:~:text=Your%20problem%20with%20Vim%20is,want%20to%20cut%20whole%20lines.&text=If%20you%20only%20understand%20basic,of%20%22notepad%22%20for%20you).

A fun way to develop the muscle memory for the normal mode movement keys is to play Nethack ([https://www.nethack.org/](https://www.nethack.org/)) with the number_pad option set to 0 so that hjkl are used for movement, the same basic keys for vi/vim normal mode ([https://nethackwiki.com/wiki/Options#number_pad](https://nethackwiki.com/wiki/Options#number_pad)).

<comment><USER8> Do you really? I've been using as my primary editor for last 10 years or so, I rarely make use of the grammar. I sounds fancy and powerful in theory but I don't end up using it that often (even though I'm aware of it).

That said I'm probably only an intermediate user, because I haven't put in the time to really make things like markers and macros part of my editing habits.

<comment><USER9> Thats fine. The main thing is not to confuse technique with repertoire.. like a musical instrument, putting time in to mastering scales and finger technique will get you a lot of finesse in tackling musical pieces but it's the quality of your repertoire (in this context the algorithms/languages/higher problem solving knowledge) is what will be what gets you the money. Still a practising a few scales every now and then...

</comment></comment></comment><comment><USER10> About a month ago, I forced myself to try and use _nvi_ , an (almost) narrowly compatible classic vi clone.

I thought of it as an exercise in constraint, with the aim of getting better at vim. Like vanilla vim without plugins, but Nightmare Difficulty.

I've now completely fallen for it. It's missing most mainstream features and still, I... like it more? I feel like a hipster typing this, but there really is a difference in brainfeel between using a ''huge'' editor I'll never grasp fully versus a tiny one I can learn completely. Tiny sparks joy.

Wikipedia entry on nvi: [https://en.wikipedia.org/wiki/Nvi](https://en.wikipedia.org/wiki/Nvi)

Edits: grammar, punctuation.

</comment><comment><USER11> For the vim enthusiasts reading, I'd like to bring to your attention some other resources released in the last few months

— ThePrimeagen (YouTube): [https://www.youtube.com/channel/UC8ENHE5xdFSwx71u3fDH5Xw](https://www.youtube.com/channel/UC8ENHE5xdFSwx71u3fDH5Xw)

— Vim Tricks (newsletter/Twitter): [https://vimtricks.com/](https://vimtricks.com/)

— and humbly, myself, Semicolon&Sons: [https://www.youtube.com/watch?v=futay9NjOac&list=PLpkoC9yJXD...](https://www.youtube.com/watch?v=futay9NjOac&list=PLpkoC9yJXDKkm4MStIQoieUPwNjO4Rb_M)

<comment><USER12> +100 for ThePrimagen on Youtube. His videos are great for people looking to get started with Vim.

</comment></comment><comment><USER13> I started Vim when the internet went out once and, bored, I finally tried `vimtutor` on the debian command line.

It just opens vim to a txt file that incrementally explains how to make basic edits. I was instantly hooked when I realized how much time "o" and "O" alone would save me over.

I almost never use Vim these days because I was too lazy to port my .vimrc + Vundle plugins to a new laptop at some point, but I use a Vim-mode in every editor I use, even the browser.

<comment><USER14> My vimtutor experience was redoing it in the subway for a week. That got some muscle memory in :)

</comment></comment><comment><USER15> I'm sorry to say it, but don't bother with this. It's unfinished and not in depth. The most important Vim resource is "Practical Vim" by Drew Neil. If you haven't read it you shouldn't be using Vim.

</comment><comment><USER16> The name could be a reference to learnvimscriptthehardway.stevelosh.com, which is an amazing resource.

<comment><USER17> Link: [https://learnvimscriptthehardway.stevelosh.com/](https://learnvimscriptthehardway.stevelosh.com/)

</comment></comment><comment><USER18> I'm not a Vim master, but I use it a fair bit --mostly for writing server admin, single doc coding, etc. I think I know enough to do the basics like moving chunks of text around, copying/pasting etc. so that I feel fairly productive in that I can do those things as fast [or faster] in Vim as I could in a GUI editor..

But, any time I'm working on something more than a single doc [eg. a website, or a coding project] I reach for something else. I've just never been able to find a way to use Vim comfortably in a multi-document project, without feeling like I'm being a lot less productive than I would be using a GUI, such as TextMate with its built-in project file browser and excellent project wide find/replace.

I'm learning Flutter at the moment and just got into using IntelliJ [in its Android Studio guise] and, at first I installed the IdeaVim plugin, thinking this would give me the best of both worlds; the speed of moving about within single documents of Vim, combined with the project management & code completion capabilities of a dedicated IDE. I ended up disabling it after a couple of days. The mental context switching caused by jumping back and forward between keyboard driven and menu driven operation was just slowing me down, rather than speeding me up.

As an aside: I don't really get why the _" Vim saves you having to hunt for menu items"_ mantra is still so prevalent in this day and age anyway. Maybe in the past when people had to reach for their mouse to find a menu item, it was a valid point in Vim's favour. But a lot of us are working on laptops these days and, frankly, accessing a menu item by tapping on a trackpad right under your fingers is hardly more hassle than recalling some arcane keyboard incantation to do the same in Vim. Plus, most regularly used menu items have keyboard shortcuts which pretty soon become muscle memory anyway. I've not needed to use a menu to access an Open / Close / Save / Save As / Print / Copy / Cut / Paste / Find / Replace / Undo / Redo / Quit... etc. etc. command in decades.

<comment><USER19> ctrl-o/ctrl-i to move between buffers

list buffers w/ vim-buftabline

`nnoremap ; :Buffers<cr>`

</comment></comment><comment><USER20> Ah Vim, one of the root causes of my imposter syndrome. (The others are CSS Grid, and Kubernetes)

<comment><USER21> Kubernetes very easy to use, worth learning imho. One hour's worth effort yields great advantage for work.

Vim not worth learning to use as adult. Time too valuable. Takes too long to become extension of body. Best learned as child/teenager. Time worthless then. Maybe if you can learn it fast. Took me years of teenage to get unthinking proficiency.

<comment><USER22> I disagree, I learned Vim in my 40's after decades on emacs. For a month it was awful, but I have since recouped the time lost many times over. Other developers on my team went through the same.

<comment><USER21> Very interesting. Good to hear.

</comment></comment></comment></comment><comment><USER23> I partially learnt Vim some 20 years ago, but at some point stopped taking in new commands (possibly for lack of repetitive use), and am stuck in a sort of 'good enough' zone, but still awkward for certain things; the ctrl-c/v thing always throws me as I use windows primarily, gvim makes it easy to cheat using the GUI, so I do. Macros are amazing, but I feel there are probably easier ways of achieving most of the things I use them for (they, and regex search/replace are most if what I use Vim for outside of writing code).

<comment><USER24> You get over it if you use it enough. For me its now the opposite. For a while I keep accidentally trying to do Ctrl+C/Ctrl+V, but now I find myself trying to go into Visual mode or Normal mode in programs that dont support that.

I started off with a bunch of mappings, then you can remove them as you get comfortable. Now I only really have mapped "nmap H :nohlsearch<CR>" and "xmap S :sort<CR>".

Whats really tricky is using Vim without the Arrow keys. Normally I am on a desktop so it doesnt matter, but when I use a laptop it makes more sense to use HJKL. Again its just something that you need to force yourself to do or you wont get comfortable with it.

<comment><USER18> HJKL makes no sense for me at all. It reminds me of the annoyingly designed computer games I used to play on my Oric as a kid, where the various direction keys to control my 'character' often bore no relation to their relative positions on the keyboard.

H and L are just about OK for left and right, but up and down being another left/right positioned key combo, nestled in between, just doesn't work with the way my brain's wired, at all.

Conversely, on my MacBook Air keyboard, the arrow keys are nicely grouped together in an inverted T formation at bottom right corner of the keyboard, with some space around them. Piss-easy to find and piss-easy to feel which one points in which direction, without even looking at the keyboard.

Strange that almost every tutorial on Vim I've ever read begins with _" Don't be tempted to use the arrow keys instead of HJKL.."_ which, in my opinion is just about the "worst advice evarrr!", especially given the rest of the learning curve which awaits you.

*YMMV --depending on your own particular keyboard layout.

<comment><USER24> I agree that HJKL is really uncomfortable for a new user. I still reverse J and K sometime, as my brain thinks "the first key should be Up".

I guess the thinking is, if you open up some existing document, youre already at the top, so the more important key is going down, which the "J" sits right under your index finger.

I totally agree that its awkward, but I also feel that if you can get good with it, youll be way faster than using the arrow keys. Think about it like this: with the arrow keys, you must move your hand. With HJKL, you dont have to move your hand from the home row.

<comment><USER18> I think the "not moving your hands from the home row" is another relic of a bygone era. It dates back to when people were taught to touch type and that was the starting position. It also dates from a time when keys had to be pressed with some force. Resting your fingers on the keys with a modern laptop keyboard, you're in danger of accidentally typing characters you didn't want to.

I can type pretty fast, though I've never actually measured my WPM speed. But I'm not a touch typist --I still have to look at the keys-- and I don't type 'properly' using all my fingers. I seem to get by with the first three on each hand. So there's no real advantage for me in having my fingers resting on the home row. In pauses for thought [my equivalent of resting on the home row] I usually find I'm waiting with the heels of my hands on the empty space below the keyboard, either side of the trackpad and my fingers just kind of very lightly touching the keys, wherever they happen to fall.

From that position, it really is far more convenient for me to just curl in the fingers of my right hand , which puts the inverted T of the cursor keys right under my finger tips and which I can do without looking, than it is for me to look down at the keys to find HJKL.

</comment></comment></comment></comment></comment><comment><USER25> This book looks really cool, and I appreciate what they're doing.

If I could humbly add, one of the hardest things about learning Vim isn't reading a list of commands, but rather _practicing_ them. So I wrote a list of Vim exercises (or études for the musicians), files requiring various edits, and a daily practice schedule that can be used to drill each distinct skill. Once you've mastered it, you can drop it from your schedule. I found it was really the only way to actually commit some of the more esoteric skills to muscle memory.

Here's a sample for how to practice muscle memory around named registers for yank and put, a skill almost no one I know regularly uses because it's hard to learn just by reading. After writing this and working through the ten minute exercise daily for a couple weeks, it became second nature, and now I can't live without it.

[https://github.com/steveshogren/10-minute-vim- exercises/blob...](https://github.com/steveshogren/10-minute-vim- exercises/blob/master/book_sample_history_registers.md)

</comment><comment><USER26> FZF(and its vim plugins) really leveled up the game for Vim.

<comment><USER27> As well as neovim and LSP.

<comment><USER28> I've had neovim installed for a while but really haven't found anything that would make me want to switch. Sure, I get the meta Neovim competition driving improvements in vim but I'd like to know what I'm missing out on.

<comment><USER27> It's been quite a bit faster than Vim, but perhaps Vim has caught up. I haven't checked it out in a while. Neovim supported asynchronous updates well before Vim, so also much more responsive until recently.

In any case my config is compatible with both and I can use them interchangeably.

</comment></comment></comment></comment><comment><USER29> I know it sounds like a joke but any book on Vim should have have as its first lesson: how to quit Vim. That's the #1 question I get from vim beginners.

<comment><USER30> Lol, I made kind of learning material on Vim, and that's exactly what I do.

[https://p1v0t.github.io/Doctor/](https://p1v0t.github.io/Doctor/)

</comment></comment><comment><USER31> Buffers are one of the few parts of vim I never really got the hang of. Neither that nor windows are things I can ever remember how to do without fudging it the first time, having to go look up the manual _again_ for how to do it properly, realize I'm wasting more time than I'm saving by trying to learn it, and give up.

<comment><USER32> Which part of it do you struggle remembering? maybe the wisdom of hn's vim users can help :)

Personally, I can't imagine being productive without windows and buffers. although when I have 3+ buffers open, I usually "cheat" by fzf-finding the file (rather than `:bn`-ing my way there, or `:b` `:b x`).

</comment></comment><comment><USER33> In my opinion, the greatest benefit of using Vim, Emacs or even Acme is how easy it is to create custom tools for your problem at hand, even for one-shot tasks. VSCode is very capable, but it can't compete in this regard (and maybe that's what they want and maybe it's a good call as well).

<comment><USER34> I've tried using the vim plugin for VSCode many times, and every time I come back to it, it just feels... off? The actual vim keybindings work fine _when you 're editing the document_, but I find that when you want to use some of the other features of the editor, it becomes a bit more tricky/hacky.

If MS made an official set of vim keybindings that had better editor support, or even if there was some sort of kill switch that let me turn off vim key bindings quickly, I would be 100% sold on VSCode, but until then, I'll stick to the terminal.

<comment><USER35> Have you tried the neovim _integration_ VS Code extension? [0] It's not perfect (I'm still in a terminal 95% of the time, but my current VSCode set up is surprisingly not painful and I find myself using it more frequently) but it gets a lot further along than VsVim did for me (which is probably not a far comparison because I have not actually used VsVim in many years) or VSCodeVim when I tried it recently. YMMV, of course.

A word of advice, though, if you plan to check this out... I'd recommend maintaining a separate neovim install specifically for the VS Code integration and make sure that it has fairly basic vimrc with limited plugins. You have to take care with this because (neo)vim plugins don't always play nicely with VS Code and vice versa.

[0]: [https://github.com/asvetliakov/vscode- neovim](https://github.com/asvetliakov/vscode-neovim)

</comment></comment></comment><comment><USER36> I'm not trying to be contrarian here, but why would someone continue to use Vim and Emacs when all of its lovely features have been integrated into products like VCode?

It just reminds me of serious men with beards working on mainframes and AIX power systems when I started my career.

<comment><USER37> Sure, I use VSCode and Intellij and all the beautiful modern IDEs. But I use them with Vim keybindings turned on. Because extremely common things that you do while programming are extremely quick for me to do with vim commands.

ci" == delete everything within these quotes, and put me in insert mode. vi{:%s/old_var_name/new_var_name/g == rename a variable within a block qaI"<ESC>A",<ESC>jq == make a new macro to quote a line of text and add a comma at the end. Great for taking a bunch of strings I've copied from a text file and putting them into a list in code. But the point here is not this specific macro; I can do all sorts of minor text processing macros for the dumb thing I have to do, and not manually process 100 lines of text to turn it into a piece of json.

<comment><USER38> Just started doing this for RSI reasons. Not having to constantly reach down to those arrow keys is _fabulous_.

<comment><USER39> That's funny - I'd have thought using arrow keys would help prevent RSI 'cos you're having to move your whole arm out of a static position. (Or maybe you don't? Do you just twist your wrist in an awkward position?)

</comment></comment></comment></comment><comment><USER40> If you're new to vim, also consider [https://kakoune.org/](https://kakoune.org/)

</comment><comment><USER41> I recommend swapping your left CTRL and ALT keys when using vim, as well as CAPS and ESC to avoid RSI.

Also, the dot operator is king.

<comment><USER42> I was using vim for years before discovering the dot operator. Truly a game changer.

<comment><USER43> Yeah, I use combinations like 'dw...' and 'dd...' a lot. So simple, but a lot of people don't know that's built in.

</comment></comment></comment><comment><USER44> Learn Vim (the builtin way):

      :help

<comment><USER45> Yup, ":help user-manual" sadly often overlooked.

</comment></comment><comment><USER46> As it is now, it seems to be a partial book.

</comment><comment><USER47> Over engineering</comment>


Ask HN: Looking for a co-founder for project with lots of work done already - <AUTHOR>

Hi all,
I'm pivoting one of my long-term projects into a new company. I'm going full in on this. I have the support of an early-stage investor, and some early customers have signed up who are very eager to use the product even in alpha stage.
What I'm missing is a co-founder. I was a solo founder for many years, and that taught me some lessons... As I haven't found a suitable/available co-founder candidate in my immediate vicinity, I figured I should turn to HN.
The name of the company is Neonto. Have a look at the teaser site:
http://neonto.com
The road to this product iteration has been long. In 2010, I released the first version of a HTML5 animation/multimedia design app called Radi. It went to #1 on HN back then [1], and has also been posted a few times since.
[1] https://news.ycombinator.com/item?id=2040844
Ultimately I failed to productize Radi. Big competitors emerged in this field soon after, but worse, the use case was unclear. I was modeling too much on Flash Pro and other animation tools, yet Radi also had web design and video features. I didn't have actual customer need to drive development.
Neonto is based on the editor and animation core from Radi, but revamps the UI and back-end. It has a sharp new focus on mobile app UIs. I'm concentrating on content-heavy apps (rather than e.g. games). Neonto solves real problems in layout and interaction design across screen sizes, and produces lightweight native code for each platform.
So, would you like to be part of the next generation of mobile app design? If you feel like this is something where you could contribute, don't hesitate to get in touch (email in profile). Let's talk it over and see if we have a matching vision.
To be clear, I'm not looking for a minority partner, but a full co-founder. You'll get equal share in the company. I want to do this with someone who feels as strongly about its importance as I do. <comment><USER2> To me, this is the right approach to creating value...ignoring sunk costs. I wish you luck with the expectation that you don't need quite as much of it as an alternative growth strategy might require.

</comment><comment><USER3> Yeah man, Solo founder action gets rough. I feel ya!!

</comment><comment><USER4> Wow, that is an awesome landing page. Kudos.</comment>


Are "free" web-services cheese in a mousetrap? - <AUTHOR> http://povolotski.me/2013/09/29/free-web-services-cheese-mousetrap-or-stop-selling-privacy-1/ The last few months everyone seems to be freaked out about NSA spying on the world (and their own citizens in particular). It seems to even have become fashionable to complain about surveillance, demand stuff from congressmen, CEO's, the government. It's all very nice, but people seem to be missing the point: Your privacy is being sold every single day to the lowest bidder for a price as low as 5$ per year, and the NSA isn't the only buyer. <comment><USER2> I know it's popular to use the "you're either the buyer, the seller, or the product" meme for this, but I think sometimes the idea that we're the product hurts more than it helps.

This is more like a case where somebody is selling something and they don't have full knowledge of what they're selling. Companies like Google came to us with a deal: give us your email business, and we'll provide it for free -- as long as we can mine the data to serve you ads. That's how we'll get paid.

But that was bullshit -- and I don't think it was the fault of the companies involved. The problem is, once you start instrumenting the internet, _every activity you take online is part of some massive surveillance mechanism directed at your personal life_. What started as a simple transaction between you and Google, or you and your ISP, now can involve any other organization that can get that information from those companies.

Sure, some companies are vehement about protecting your privacy, but with governments involved, it doesn't matter. They run the show. Also, this is a "weakest link" problem. Even if Google and 90% of all the other companies you deal with have some technical way of keeping others from your data, but as along as the other 10% is compromised, it doesn't matter. Keystroke readers defeat just about anything. Trans-Atlantic wiretaps allow governments of all sizes a fun playground full of data.

So the real deal isn't what these companies offered. It's more like "use the internet, and we'll track you like an animal. We'll know where you go, what opinions you have, what you eat, who your friends are, and lots more. And we'll keep that information forever"

That's not an acceptable deal. We're the seller, the product is our interaction and the history of it, but we have been seriously misinformed by the buyer about the nature of the deal involved. This is a serious problem and needs immediate resolution. Nobody directly lied to us, but we were misinformed and screwed just the same. Nobody in their right mind would have agreed to such a thing.

</comment><comment><USER3> When Microsoft, Intel, Apple, Cisco et al. ask for your money, it doesn't stop them to also ask others for more.

In fact, they are legally and extra-legally compelled to do so. Besides their on profit and extra-profit, obviously.

<comment><AUTHOR> True. However, it's in the interest of any company to protect its' customers.

I'm not saying the government wouldn't be able to tap into our communications, and it doesn't have to be dealt with, but that as long as we're the product, and not the customer - no one really cares about our interests.

We like free stuff, but we don't always realize that it makes us the sold product, and not the customer.

<comment><USER4> My God, the product is ad space, you're not the product being sold.

And I don't get what difference makes being a free service or not, government will tap exactly the same.

<comment><USER5> If people aren't the product, then why is ad space seen by more people more valuable?

<comment><USER4> Is this a joke?

<comment><USER5> No. People are valuable. Space is just a way to get to the people.

</comment></comment></comment></comment></comment></comment><comment><USER6> That is too generally, most of companies allow a free usage, because they want to convince about their service and set the hurdle of usage as low as possible.

Companies like google, yahoo, facebook, ... are a different kind of "free" web-service.

Or free 2 play games, free players are "content" in that games.

</comment><comment><USER7> This argument applies to any web service. There's no guarantee that a $5/yr paid web service isn't profiting from your data the same as anyone else. Why only make $5 when you could make $35?

It really boils down to who you choose to trust with your data. As an insider, I'm _very_ happy with the privacy controls within Google. I'd be more worried about a less well-established player, regardless of whether they charge a fee for their product.

<comment><USER3> The data authorities in France had ordered Google to comply with its national law by defining specified and explicit purposes; to inform users about how it was processing their data; to define retention periods for the information it holds; to not proceed, without legal basis, with the "potentially unlimited combination of users' data"; to fairly slurp and mine passive users' data and get consent before storing cookies on their device.

But Google has declined and criticised French data protection legislation by claiming the law is not applicable to its online services.

[http://www.theregister.co.uk/2013/09/27/google_refuses_to_co...](http://www.theregister.co.uk/2013/09/27/google_refuses_to_comply_to_cnil_privacy_demands_in_europe/)

</comment></comment><comment><USER8> All the "if you're not paying you are not customer, you are the product" talk aside, I find it risky to use free SaaS for work because it most likely doesn't have a viable business model and could go under any moment.

That's why in the StartHQ SaaS directory ([https://starthq.com](https://starthq.com)) we clearly mark which services are free. This is not meant as a positive sign, but as a warning.

</comment><comment><USER9> Quite a hyperbole. I use many free "services" on the web and I provide some myself because they are someone's hobby (sometimes mine).

</comment><comment><USER10> > Facebook, Twitter, LinkedIn were all among the 10 biggest IPO's ever

Twitter's IPO? Not quite yet...</comment>


Ayn Rand Lamp - <AUTHOR> http://www.volcanophile.com/index.php?/root/ayn-rand-lamp-video/ <comment><USER2> _> "Her dramatic eye movements are self-stimulating her brain hemispheres, a technique called bi-lateral stimulation. By panning her eyes back and forth she is unknowingly using this technique to synthesize her brain hemisphere's memory and logic functions connecting complex ideas and accessing enormous amount of information."_

Is this satire?

<comment><USER3> That summary seems to be wrong as the technique helps with processing emotional information and not with connecting complex ideas. At least that's what I remember and what the wiki article says as well. It's been a while since I read about it.

I know that it is a well researched and established method for treatment of Parkinsons (short term and midterm results have been empirically solid) and also used to treat PTSD.

<comment><USER4> According to _Scientific American_ , The journal _Brain and Cognition_ found a correlation with moving your eyes from side to side with increased creativity and improved memory. [1]

1\. [http://www.scientificamerican.com/podcast/episode/boost- your...](http://www.scientificamerican.com/podcast/episode/boost-your- creativity-with-eye-move-09-11-10/)

<comment><USER5> As an obsessive compulsive, I should not have learned that today... lol

</comment></comment></comment></comment><comment><USER6> When I read the title, I expected something connected to Matt Ruff's novel "Sewers, Gas & Electric" [http://www.bymattruff.com/my-novels/sewer-gas- electric/](http://www.bymattruff.com/my-novels/sewer-gas-electric/) which features Ayn Rand trapped in a hurricane lamp as one of the characters.

<comment><USER7> a really wacky, fun, and occasionally high-brow read. I really didnt expect to like it as much as I did. (I also immediately thought it was going to be the lamp from that book)

</comment></comment><comment><USER8> Since there seems to be a lot of Ayn Rand articles lately, you might be interested in the excellent 3 part series by Adam Curtis called "All Watched Over by Machines of Loving Grace".

It includes a segment on Ayn Rand, including segments from that interview, but also lots of really interesting interviews with silicon valley folks from the 90s, to high-freq stock market trading and "ecosystems".

[https://en.wikipedia.org/wiki/All_Watched_Over_by_Machines_o...](https://en.wikipedia.org/wiki/All_Watched_Over_by_Machines_of_Loving_Grace_%28TV_series%29)

</comment><comment><USER9> "Oh, this is when science didn't need to have a purpose." \- Mystery Science Theater 3000

</comment><comment><USER10> Modern art, ladies and gentlemen!

<comment><USER11> Nope. Contemporary.

<comment><USER4> What's the difference?

 _edit:_ thank you to all those who responded. No thanks to the person who hit the downvote link.

<comment><USER11> Modern Art includes Picasso, Van Gough, etc. Wikipedia says it ended in the 1970s. [https://en.wikipedia.org/wiki/Modern_art](https://en.wikipedia.org/wiki/Modern_art)

Contemporary means happening right about now.

<comment><USER12> I always thought "post-modern" was a weird oxymoron like "giant shrimp".

<comment><USER4> In that case, the contemporary art created now will in 20 years also be an oxymoron.

<comment><USER12> They are going to run out of adjectives.

I was in a drug store recently and the cold medicines that used to say full- strength or maximum-strength now say "extreme". They are also going to run out of adjectives.

<comment><USER4> Sort of reminds me of Ludicrous Speed...

[https://www.youtube.com/watch?v=ygE01sOhzz0](https://www.youtube.com/watch?v=ygE01sOhzz0)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> i have a lot of friends who are recovering meth addicts and so when i first read ayn rand's atlas shrugged and came across john galt's ridiculous 60 page monologue (and no, i did not elect to read it word for word, you are a fucking moron if you do), my first suspicion, not knowing anything about her background yet, was that this sounded like someone high on amphetamines. sure enough, with a little research, i found that she was on benzos the entire time she was writing atlas shrugged. once i saw this interview with the shifty eyes i was convinced. she's tweaked out of her mind. to be clear, i think atlas shrugged is a significant work of art, but i also think parts of it are just the ramblings of someone high on speed, and i'll be damned if i'm going to read all of it.

<comment><USER5> Sorry to be pedantic, but benzos are not amphetamines and have almost the opposite behavioral effects. They're sedative and would make it much harder to write anything at all.

<comment><USER13> benzedrine is an amphetamine. what am i missing here? or did i use the incorrect slang? don't know, wasn't alive during the 60s.

she was on benzedrine, then dexedrine and dexamyl

[http://randwatch.blogspot.com/2011/03/was-ayn-rand-drug- addi...](http://randwatch.blogspot.com/2011/03/was-ayn-rand-drug-addict.html)

<comment><USER5> Yes, incorrect "slang". Not from the 60's, it's actually very 21st century. Benzos almost universally refers to Benzodiazepines (Xanax, Klonopin, etc...). Doctors even say Benzos, it's a legitimate abbreviation.

[https://en.m.wikipedia.org/wiki/Benzodiazepine](https://en.m.wikipedia.org/wiki/Benzodiazepine)

<comment><USER13> i stand corrected.

</comment></comment></comment></comment></comment><comment><USER14> This is seriously awesome. That's enough internet for me today.

<comment><USER15> I'm with you on this</comment></comment>


Humans climbing with Gecko inspired dry adhesives [pdf] - <AUTHOR> http://rsif.royalsocietypublishing.org/content/royinterface/12/102/20140675.full.pdf

<comment><AUTHOR> Wow, this stuff is a lot further along than I thought. The Stanford team was apparently climbing the side of a building with these.</comment>


Show HN: To Listen to Any Page Prefix the URL with Playthis.link - <AUTHOR> I was tired of having to constantly scramble to find a podcast I want to listen to when going for a walk or just running on the treadmill. I, however, usually have an abundance of blog posts or articles around the web that I'd like to read. The problem is walking is not very conducive to reading. So I made this quick and dirty site that pretty much works anywhere, no app install, no copy paste, no nothing. Just add the domain playthis.link before any URL in your browser and hit enter. It will redirect to an audio file that automatically starts playing. You don't need to click a 2nd button to play the file either. It just starts reading the text right away. You can do this on your phone and just pick it up and go for a hike.
Example:
Amazing blog post: https://www.kalzumeus.com/2010/01/24/startup-seo/
Audio version: https://playthis.link/https://www.kalzumeus.com/2010/01/24/startup-seo/ <comment><USER2> Wowzers, I was literally wanting this just earlier today, for all the reasons you built it. I bet it would be useful for blind people as well, although I know they have other tools. Here's a link to this article itself. Very cool. httpss://playthis.link/84170ea641f64ccc4e25fcc3ecaec030.mp3

<comment><USER2> Well, I guess I got the first cache bug, it doesn't pick up the comments after the first audio is generated. Still super cool.

<comment><AUTHOR> Hmm it is limited though for technical reasons to a few mins of audio. Will have that limitation taken care of in a day or two.</comment></comment></comment>


Here's How To Check Whether Your LinkedIn Password Has Been Released - <AUTHOR> http://techli.com/2012/06/linkedin-hack-check/

<comment><USER2> "Some credit cards were stolen during breach of company X; to see if your card was stolen, please enter your card number, CCV and zip code!"

NEVER give your password to a third party; the only safe recourse is to change the LinkedIn password immediately, and if you used the same password elsewhere (tsk, tsk) change it there as well.

</comment><comment><USER3> A compromise is known to have occurred - the only safe operating assumption is that all password hashes were obtained.</comment>


Ask HN: How do you remember syntax? - <AUTHOR> I have to take written exams about Maple and I am struggling with keeping track of the myriad of commands. Any tricks/methodology I can use? <comment><USER4> I use org-drill, the spaced-repetition tools for org-mode,

[http://orgmode.org/worg/org-contrib/org- drill.html](http://orgmode.org/worg/org-contrib/org-drill.html)

Combined with org-capture templates is a great tool.

Several commenters are saying that it does not make sense to remember the myriad commands you need to learn. I disagree. Just as you are much more efficient when your hands can execute the emacs chords and editing happens without conscious thought, programming is a much more enjoyable experience (and it is easier to stay in the flow) when you don't have to stop and look up your next move.

<comment><USER5> It never occurred to me to look for a spaced repetition tool in org-mode. It looks like a great tool to improve those corner cases you always have to look up.

I agree that there are things you should just google, but it's worth memorizing some thing to speed up your coding, and it's really important to do that for coding interviews, both for the good impression and the speed up.

</comment></comment><comment><USER6> Same way you learn anything else: repetition. Practice, practice, practice, practice, practice.

You'll probably have to make some judgment calls about what's worth keeping in that cognitive space, though. For commands you use all the time, you should know the syntax without even thinking about it. For things you use only rarely, it's a better use of your time to just look it up. If you use it semi- regularly, look it up, bookmark it, and eventually you'll just memorize it.

<comment><USER7> I can't upvote this enough. Its the same as learning to read or write or play a musical instrument.

You can try to memorize the syntax but that won't give you much understanding on why things are that way leading to brittle knowledge that quickly goes away.

Practice, on the other hand, directly develops the understanding and familiarity with the subject as you get to see hands-on how things work and when you make mistakes you learn why things are the way they are.

I'm pretty sure almost nobody thinks consciously of how to work their mouth muscles in order to talk, they just think of the words. That's what practice gets you.

<comment><USER8> I'm inclined to disagree with repetition. Spaced repetition may be effective but taking something and describing it in your own words(elaboration) will help with retention AND comprehension. If you can explain something to someone else well enough for then to understand it, then you probably understand it decently enough to be well on your way to memorization.

<comment><USER7> True, but to reach that level you need to practice a lot.

You gain that comprehension through practice first and then you polish it by trying to explain it to someone else.

I know I'll write tons of toy programs to teach myself a concept before I try to explain it to someone, just like I'll try every position of a scale until I can effortlessly play it before I try to show it off.

</comment></comment></comment></comment><comment><USER9> Do you mean actual syntax, like how to define and call classes, methods, variables, loops, if-thens, etc? Or API definitions, like the standard classes, the methods available on them, what classes they return and what you can do with those classes, the best-practice way to do various things?

You should have a pretty good handle on the syntax after a week or two writing original code in that language. And other languages get easier after you learn the first one or two pretty well. But that's the easy part.

The hard part is the API definitions. Most good languages/frameworks have such massive standard libraries and sets of common add-ons that very few people can be certain of the details of more than a small portion off the top of their heads. You tend to memorize a good bit after working on it for an extended amount of time, but Google and autocomplete will always be your friends.

But for any school-type tests on programming, you'll want to pay close attention to exactly how they're grading. That may tell you a lot about what you need to do.

</comment><comment><USER10> > I have to take written exams

Is it still a thing in 2015? In these kind of exams, I used to express my overwhelming frustration of not having a compiler to check my syntax, by writing zealously unintelligible working programs. Assuming your corrector don't want to spend 30 to 45 minutes trying to understand what's going on, or typing each of your answers to check them, he will probably give you none of the points (because, you know, if it looks like gibberish, it's probably wrong). After you have complained several times and show him the working program on your computer, he will just assume most of your answers are right and give you points without looking at them. At this point, in the next exams, just work on a couple of easy answers at the beginning and the most difficult one in the test. Fill out the rest with legit-looking random things.

<comment><USER11> They're definitely still being used today, though in my experience, we weren't docked points for syntax errors where the intent was obvious, except in the introductory classes where the syntax was one of the criteria being tested. In the algorithms and math programming courses, legible pseudo-code was often considered fine.

Pen and paper definitely make it easier for the test administrators to prevent cheating with resources saved on the computer or using the internet. In one of the introductory engineering programming courses, which was electronically submitted in class and auto-graded, there was an issue one semester with students using TeamViewer during class and having others take the test for them.

</comment></comment><comment><USER12> I trick myself into thinking I am inventing the syntax, along with the justifications for the form of the syntax. It is much easier to remember what you have created than remembering something someone else has created.

<comment><USER13> This is one of the huge benefits of taking a compilers class. You'll probably never write one, but you'll understand the languages you use better.

</comment></comment><comment><USER14> Flash cards. Buy some index cards and write your own flash cards. The act of writing them out does a lot; during review you can tell how far along you've come. If you have no trouble remembering one, take it out of the deck. Review the whole deck every day (week, whatever).

There are software tools for this, I'm sure, but I would still recommend using physical paper cards.

<comment><USER15> If you are after an electronic version (which I am personally very happy with) [http://ankisrs.net/](http://ankisrs.net/) is fantastic.

<comment><USER16> Used this for a lot of cs classes that sadly required a lot of memorization for tests. I like anki a lot. Would recommend for any study flash card style app

</comment></comment></comment><comment><USER17> I don't really. Cheat sheet, official docs and Google do for the beginning. Then after a while programming in the same language I will just remember bits and bobs. But even in languages that I've programmed in for years, I still forget the occasional rarely used function (eg. I rarely use even half of Common Lisp)

Then there are languages that I used to program - like Perl - but haven't even touched for years and years. I still claim them as a skill, but I'd need a good refresher on syntax before starting a new project.

</comment><comment><USER18> My advice for written exams is just memorize the basics (conditionals,loops,access control) and also to talk to whoever is grading the exam prior to you taking it. Often written exams will only deduct minor points for something an ide/compiler would pick up and knowing this walking into the exam can let you focus on things more important than syntax

</comment><comment><USER19> It really depends on the nature of the exam.

If it's like the Oracle Java exams, for example, you can expect syntactical "trick" questions, eg. questions that appear to be about one thing, but are actually testing your knowledge of some unrelated syntax error.

In this case, you only have repetition at your disposal. Whatever works best, whatever is most time-effiicient, do it again and again until you are seeing success numbers that you're happy with. Actual coding is best, but there might not be time.

On the other hand, if it's a school exam, written by a professor it (probably/possibly) will be about understanding, and syntax won't be as heavily tested/scored for. This would be more like a physics test where you only loose 1 or 2 points for an algebra error early on.

In this case, the answer is coding. Dream up challenges for yourself and solve them. Guess what will be on the test and solve them. Read examples from your book and extend them.

</comment><comment><USER20> I gave up: So many programming languages, I've done a lot of programming in at least eight, so much similar but not exactly the same syntax, mostly all the same semantics, so, I just gave up.

Solution? For the syntax of a given programming language, just glance at some old source code in that language. Then 99 44/100% done.

</comment><comment><USER21> 1\. Start with the basic syntax/cheat-sheet of the language.

2\. Read instructions as 'that's what they are' and try to come-up with examples for yourself as why they are like that. (This is a bit creative and examples are only for yourself so that you can remember it)

3\. once step-2 is done, its going to make it easier to remember things via your own-made-examples and things will flow smoothly when you see things.

say: [http://www.maplesoft.com/support/help/maple/view.aspx?path=s...](http://www.maplesoft.com/support/help/maple/view.aspx?path=syntax)

1\. take 'concatenation'. a || b

2\. remember it like you are gluing two things with || thingy. and || thingy can be remembered as a chewing-gum or anything you like

3\. next time you see || you remember the object (chewing-gum) and it always leads you to concatenation.

Try it out, it might sound funny. But works..

</comment><comment><USER22> I think it's like learning any other language: lots of practice, with occasional - and hopefully gradually decreasing over time - use of the documentation.

</comment><comment><USER23> I don't know Maple, can't speak for it. But here are some tips -

1\. Look for patterns - it usually is the case that languages use a particular pattern in their command/syntax structure.

2\. Remember the reverse - instead of mapping commands to actions, choose one program you know uses some of them and reverse map actions to commands/syntax. You may forget the syntax, but you probably won't forget problem statements of programs.

3\. Think of alternatives. When you have alternative methods in your memory, it's easier to recollect the actual syntax.

4\. Practice. There's no better teacher than practice. You go out of touch from one language, you'll actually forget the syntax.

The trick to remember is to find alternative channels that'll aid you to remember; channels that you're sure not to forget.

</comment><comment><USER24> For simple memorization, Flashcards, spaced repetition, and constant usage.

Spaced repetition FTW.

<comment><USER25> Spaced repetition is great. Have you tried Anki ([http://ankisrs.net/](http://ankisrs.net/))? It's a flashcard app with spaced repetition. They have desktop and a mobile app, and the latter is especially useful for any downtime you have. In addition to just flashcards on their own, I'd try to learn the commands in the context of using them as well.

Have you read Moonwalking with Einstein? There are some good tips there.

Finally, you may want to understand yourself better to decide how you learn best, as each person is different: [https://en.wikipedia.org/wiki/Learning_styles](https://en.wikipedia.org/wiki/Learning_styles)

<comment><USER24> I wrote my own minimalist spaced repetition system - it was an interesting exercise to make sure I understood the mechanisms, and got exactly what I needed. I've recently used to to learn a speech in Norwegian, before that to learn the poems "Cargoes"[0] and "Clancy of the Overflow"[1][2] - <USER2> Repetition[3] is extraordinarily effective when used well.

With regards learning styles, I quote from the Wikipedia article you reference:

        There are substantial criticisms of learning-styles
        approaches from scientists who have reviewed extensive
        bodies of research.  A 2015 peer reviewed article
        concluded: "Learning styles theories have not panned
        out, and it is our responsibility to ensure that
        students know that."

[0] [https://web.cs.dal.ca/~johnston/poetry/cargoes.html](https://web.cs.dal.ca/~johnston/poetry/cargoes.html)

[1] [https://en.wikipedia.org/wiki/Clancy_of_the_Overflow](https://en.wikipedia.org/wiki/Clancy_of_the_Overflow)

[2] [http://www.wallisandmatilda.com.au/clancy-of-the- overflow.sh...](http://www.wallisandmatilda.com.au/clancy-of-the- overflow.shtml)

[3] [https://en.wikipedia.org/wiki/Spaced_repetition](https://en.wikipedia.org/wiki/Spaced_repetition)

</comment></comment></comment><comment><USER26> I use languages which have as little syntax as possible (Lisp family, Clojure+ClojureScript recently), and then I make heavy use of what my editor (Emacs) tells me when I start typing a function name.

Also, I use Dash.app (highly recommended if you're on a Mac).

Basically, I remember very, very little. In fact, the older I get, the less syntax and function names I can remember. This is not something I'm worried about, though — this gets replaced with better intuition and systems thinking.

</comment><comment><USER27> In order to prepare for an exam try to make your own "cheat sheet" (I don't mean to take it to the exam).

I personally memorize stuff when I write it down on paper.

<comment><USER28> I'll second this, though I don't believe everyone learns this way. At work and previously at school I write notes all the time, not so I can look at them later, but simply so I can recall them better. Something about writing with pen and paper helps to remember it better in the future.

</comment></comment><comment><USER29> I agree with the cramming suggestions, at least for this particular test.

In similar situations in the past (eg preparing for interviews), I've found it valuable to simulate test conditions: actually try to write a whole solution out on paper, and only when done, go type it in, see if it works, and correct the errors. You'll start memorizing things in no time if you make not remembering them actually annoy you.

</comment><comment><USER27> I don't try to memorize syntax on purpose - it happens automatically when you code a lot in one programming language.

</comment><comment><USER30> You learn it by using it.

If you have a decent professor giving the exam, he will be more concerned with mastery of the concepts more than getting the syntax exactly right. Of course, if you were supposed to be using Maple all semester, it would make sense to expect you to get the syntax right.

</comment><comment><USER31> Muscle memory. Whatever syntax you are trying to remember, write lots of it. Lots and lots.

</comment><comment><USER32> Write a lot of it. That's all. This includes typing out all the examples in any textbook you've got to hand. It doesn't matter what you're actually writing, as long as it's correct.

</comment><comment><USER33> Just understand the language and have a few generic code snippets available in your editor. They are called Code Templates or Live Templates in the JetBrain IDE family, but I'm sure your editor has them as well. I don't know if their is a standardized code template format (?). Here's an example: [https://www.jetbrains.com/idea/help/live- templates.html](https://www.jetbrains.com/idea/help/live-templates.html) That and jshint/eslint (for my javascript).

</comment><comment><USER34> My unintuitive experience is that I remember .NET 2.0/C# syntax better than any other language, and it was because Visual Studio had the best tab- completion around (probably still does).

Perhaps because I never had to switch out to a browser (usually I could just 'tab' to the right answer), I was able to keep the code in front of my eyes and 'loaded', and somehow etch more corner-case syntax into my brain.

</comment><comment><USER35> Typically, you would use a good IDE that autocompletes syntax for you, displays contextual docs for standard functions, etc. Good tools will make you much more productive, and let you worry about architecture rather than syntax. You might have to spend a little depending on the platform, but that investment is typically well rewarded.

I can't speak to the best tools for Maple, but hopefully someone can offer a suggestion.

</comment><comment><USER36> Forgive the apparent glibness but: write code every day. Nothing beats learning by doing.

Remembering syntax in quiz format or spaced repetition cards is perverse.

</comment><comment><USER37> It often helps me to see a BNF if it is available.

</comment><comment><USER38> Same way you remember grammar and syntax in a spoken language. You see examples, practice writing it, learn basic forms, etc...

</comment><comment><USER39> Walking around a memory palace of the BNF or parser state machine.

The bubbles and arrows on the pages of the Pascal User's Manual and Report are very real places I can go back to in my mind, as real and navigable as my mental map of Adventure (for what that's worth).

</comment><comment><USER40> In lisp there is almost no syntax. So nothing really to remember :)

<comment><USER41> There is almost no syntax.

Though dozens of special forms and hundreds of macros implementing syntax.

A lot to remember. A lot syntax.

<comment><USER40> Yeah, but it's more about macros semantics rathen than syntax in general sense.

<comment><USER41> Macros implement syntax and semantics. Arbitrary complex syntax. Check out the complex syntax for DEFGENERIC, DEFCLASS, DEFSTRUCT, defpackage ... LOOP

The syntax for DEFUN in Common Lisp:

      defun function-name lambda-list [[declaration* | documentation]] form*

The syntax for lambda-list then is:

      lambda-list::= (var*
                      [&optional {var | (var [init-form [supplied-p-parameter]])}*]
                      [&rest var]
                      [&key {var | ({var | (keyword-name var)} [init-form [supplied-p-parameter]])}* [&allow-other-keys]]
                      [&aux {var | (var [init-form])}*])

Lisp syntax is not atom | '(' atom* ')'. It's much more complex.

And so on.

Every Lisp has arbitrary complex syntax due to macros and special operators.

</comment></comment></comment></comment><comment><USER42> It's just practice. Same way you "remember" music.

</comment><comment><USER43> Write code without any IDE, try and learn from it, repeat.

<comment><USER44> Probably the right answer, but it's like having to harvest the rubber for your tires to take a driving test.

</comment></comment><comment><USER45> Never memorize something you can look up - <USER3>

<comment><USER46> Wasn't that Feynman?

<comment><USER47> No, it was Einstein. I looked it up.

</comment></comment></comment><comment><USER48> Lex + Grammar = Syntax ? Lex about worlds, grammar about rules.That's so hard for me. :P

</comment><comment><USER49> don't look at programmming languages as work, use them to write small programs to do something that you want to do

</comment><comment><USER50> Write code. Read code. Debug code.

</comment><comment><USER49> by using it in real life to solve problems

</comment><comment><USER51> Practice

</comment><comment><USER52> I don't. Having been in the industry since the 1980s, I make little attempt to memorize the intricacies of whatever language my client is using. I know what I want to do and how I want to do it; Google can remember trivial things like syntax.

<comment><USER53> I'm fully on board with this way of working.

If you only use one language for a long time, though, don't you think you're better served by avoiding breaking for flow as much as possible?

<comment><USER54> In all seriousness, is there anybody here who can seriously stand up and say that after working with a language for, say, three months, they still have frequent problems with the _syntax_ of the language? I don't mean "I occasionally have to look up an obscure corner case", or "After working with X for three or four days I do need a moment to recall Y's syntax if I switch back", but literally after working with a language for a couple of months they have trouble typing a syntactically correct statement.

I do a lot of Perl programming at work, and even after literally 10 years with it it still does, every once in a while, manage to surprise me. (This is, IMHO, a fairly damning criticism, but that's a well-beaten horse.) But I don't particularly have to think about the simple act of writing a single statement and haven't for a long time.

It seems to me there's a debate here going on about a total non-problem.

<comment><USER55> Me. I just poste elsewhere in this subthread so will spare the details but I'll stand up and say that.

It's not every simple thing but there are some bits that for whatever reason manage to never stick in my head

</comment></comment></comment></comment><comment><USER56> Cram to pass the test, then be okay with forgetting most of it.

1.) Is this something you really want to get deep into your long-term memory? Are you ever going to use this later? Special-purpose mathematical languages are not my wheelhouse, but is Maple something that is widely used, compared to, say R or MatLab or Python, or Mathematica?

2.) In any real situation, you will have the ability to lookup the details on any function or language feature in your browser or on your phone in seconds. If you have decent tooling, function signatures, parameter documentation, etc, should come up automatically in your editor. Memorizing this kind of minutia is not the best use of your time and abilities. Learn enough to know what is there, so you know what you have to search for when you need those details.

<comment><USER57> I started to answer this as a language syntax question, but it really seems like a big API problem. And yeah, just cram them and learn the signatures well. I'd just read a lot of library code and follow along in some hello-world scale examples.</comment></comment>


My Summer Programming Project (Open-Sourced) - <AUTHOR> http://dragpic.herokuapp.com

<comment><AUTHOR> Starting as a total newbie in the programming world this summer, I dove head- first into the bare-essentials. This project is the result of most that i learned in these two months with the help of my brother. When i go back to finish my last year of high school, i look forward to continuing my code journey. Any feedback is much appreciated! Thanks for checking it out ;)

<comment><USER2> Good job, keep up the great work!

</comment></comment><comment><USER3> Thanks for supporting and have fun uploading pictures fasterrr!!

</comment><comment><USER4> Nice Work!! :D

</comment><comment><USER5> damn, what a great work!</comment>


Roman Gladiators ate a mostly vegetarian diet and drank a tonic of ashes - <AUTHOR> http://www.sciencedaily.com/releases/2014/10/141020090006.htm <comment><USER2> I'm always fascinated by the 'correctness' [1] of medicinal treatments in ancient times. Here, the paper explains that the ash tonic effectively served as a mineral supplement to promote bone healing. Is it just coincidence that they medicated in this manner, and it ended up being beneficial? Did they somehow know that the tonic was effective for these means? If so, how? Or is this just me weighting the 'correct' choice of remedies higher than the likely multitude of faulty choices that were made in those times?

[1] Poor choice of word, but can't think of a better one

<comment><USER3> I'm a medical historian and I think about this all the time - it's a more complex question than it initially appears to be. The typical line of reasoning is to assume that medical treatments "progress" through history as the efficacious ones win adherents and the ones that don't work fall out of favor. The problem with this is that the most popular medical treatment in the European and Islamic world for 2,000 years (bleeding) was medically worthless (well, unless you happen to have very high blood pressure).

So were all premodern doctors idiots who couldn't practice empiricism? Well, no - many of them are extremely intelligent, inquisitive people (people like Isaac Newton and Robert Boyle accepted bleeding as a treatment, so clearly "they weren't smart" or "they didn't understand the scientific method" isn't a good explanation). I think the answer is two pronged. One is simply that the placebo effect is extremely powerful, so even cures that we consider not to be efficacious in a clinical setting still "worked" in daily practice as placebos. The second is to look more closely at what someone with the scientific mind of Robert Boyle made of bleeding. He actually did do quasi- experimental trials involving blood loss and concluded that "excessive" bleeding was bad for human health. By the same token, he started doing chemical assays of various mineral and animal-based cures (like eating burnt lizards for epilepsy, and things like that) and began to lay the foundations for our later (18th/19th century) understanding of which minerals and vitamins are essential for human health. It's entirely possible that Greco-Roman doctors were doing similar things, but Boyle had the benefit of the ready dissemination of his findings via print and the world's first scientific journal (Philosophical Transactions), which happened to be edited by his close associate (Henry Oldenberg).

In short I think there was a kind of practical empiricism at work in the history of medicine that has always existed. But that it didn't begin to coalesce into clinical effective treatments until print culture made it possible for people to share their findings on a global level. This wasn't a simple march out of ignorance toward truth, though. And the reason for this is that the placebo effect of remedies like bleeding often "worked" just as well as the partially-effective treatments of premodern times, like, for instance, supplementing poor diets by eating the ashes of various animal and plant products.

<comment><USER4> David Deutsch ([http://en.wikipedia.org/wiki/David_Deutsch](http://en.wikipedia.org/wiki/David_Deutsch)) has an interesting take on explaining why intelligent people in history did not converge on the correct theories sooner (not just in medicine, e.g. in physics, so noise created by placebo effect does not explain those), namely that if you have what he terms a bad theory empiricism or intelligence will not let you iterate to the correct solution as most people assume. You can be stuck at a local minimum.

If you have 15mins, watch his TED talk: [http://www.ted.com/talks/david_deutsch_a_new_way_to_explain_...](http://www.ted.com/talks/david_deutsch_a_new_way_to_explain_explanation?language=en).

<comment><USER3> Thanks, I'll check this out. Historians of early modern science have a favorite example of this, phlogiston.

[http://en.wikipedia.org/wiki/Phlogiston_theory](http://en.wikipedia.org/wiki/Phlogiston_theory)

Phlogiston theory is utterly wrong as an explanation for fire, but it "saves the appearances" (conforms to observable physical phenomena) quite well. I think Thomas Kuhn talks about it as an example of a mindset that required a paradigm shift to be thought about differently in _Structure of Scientific Revolutions,_ which seems to be along similar lines as what I gather is Deutsch's Karl Popper-influenced take on scientific knowledge-making.

</comment></comment></comment></comment><comment><USER5> > The vegetarian diet had nothing to do with poverty or animal rights. > Gladiators, it seems, were fat. Consuming a lot of simple carbohydrates, > such as barley, and legumes, like beans, was designed for survival in the > arena. Packing in the carbs also packed on the pounds. "Gladiators needed > subcutaneous fat," Grossschmidt explains. "A fat cushion protects you from > cut wounds and shields nerves and blood vessels in a fight." Not only would > a lean gladiator have been dead meat, he would have made for a bad show. > Surface wounds "look more spectacular," says Grossschmidt. "If I get wounded > but just in the fatty layer, I can fight on," he adds. "It doesn't hurt > much, and it looks great for the spectators."

Source: [http://archive.archaeology.org/0811/abstracts/gladiator.html](http://archive.archaeology.org/0811/abstracts/gladiator.html)

So yeah if I want to have a higher body fat percentage, I guess I could do this.

<comment><USER6> Does this prove that bodyfat is from carbs, not fat?

</comment></comment><comment><USER7> > mostly ate a vegetarian diet. There is virtually no difference in terms of > nutrition from the local "normal population."

I would consider that to be a normal diet, even today I know I don't each meat everyday. My mother told me her family on the farm in the 1950s only had meat once per week at the Sunday dinner, sometimes not. This was normal for this region people were not called vegetarians it was just a normal diet; meat was expensive and hard to store.

>drank ashes after training as a tonic.

I wonder if it was an ancient belief of gaining the power of the item you were consuming in this case a volcano similar to eating tiger or bear would give you their strength.

<comment><USER8> _I wonder if it was an ancient belief of gaining the power of the item you were consuming in this case a volcano similar to eating tiger or bear would give you their strength._

It has nothing to do with that. In Greece where I live, in the past ashes were used to filter water. Even today it's used in pastries as in bakery because it helps in digestion and cleans the bowel from infections.

It has dozens of other uses, from cleaning dishes and pottery to fertilizer (that's why some of the best wines are produced in places where used to be volcanoes). It can also drive insects like ants and roaches away, can be used in soaps, on open wounds to help disinfection, etc.

<comment><USER9> Also, ashes are basic (? I mean Non asidic) which is good for you.

<comment><USER10> "Basic" works here, but as an alternative you might consider "alkaline" (which pulls double duty, both as "related to the alkali metals" and "has a pH over 7").

</comment></comment></comment></comment><comment><USER11> Ephesus, where the bones are from, is a remarkable city: [http://en.m.wikipedia.org/wiki/Ephesos](http://en.m.wikipedia.org/wiki/Ephesos)

Much of the stone architecture ruins still stand, including an ampitheater, library, bathhouses, and much more.

</comment><comment><USER12> A vegetarian diet and eating of ashes is quite common today in southern India. The ashes are eaten as part of religious ceremonies.

</comment><comment><USER13> "The result shows that gladiators mostly ate a vegetarian diet. There is virtually no difference in terms of nutrition from the local "normal population." Meals consisted primarily of grain and meat-free meals. The word "barley eater" relates in this case to the fact that gladiators were probably given grain of an inferior quality."

1) You don't waste expensive food on people who are about to die stabbing each other to death for your entertainment.

2) You don't even bother to waste good grain on them.

3) Most people ate a mostly vegetarian diet, meat is expensive and hard to transport.

<comment><USER14> > You don't waste expensive food on people who are about to die stabbing each > other to death for your entertainment.

you have no idea. Gladiators were something like sport celebrities.

<comment><USER15> While this is true, it _was_ a blood-sport. When a soccer player loses a match, he/she can go on to win later. If you lose a duel to the death, you're dead.

<comment> rational-future Not true, very small percentage of the fights ended with death.

<comment><USER16> And most of those were convicts getting executed. Get the people warmed up by killing some nameless criminals, and then send in the stars.

</comment></comment></comment></comment></comment><comment><USER17> Eating burnt food is a risk factor in intestinal cancer. Those gladiators should look out for their health.</comment>


Faceless Together - <AUTHOR> http://kazerad.tumblr.com/post/96020280368/faceless-together <comment><USER2> > Between the social equality, lack of fear, and ability to drive action, it > sometimes feels like everything Tumblr wants to be.

This is the most common misunderstanding I see about the activist crowd. Their direct goal is not actually "social equality"... that's the thing they hope will eventually happen. What they want immediately is _inequality_. Feminism is about "let's focus on women". It's not about "we've been focusing on men too much, let's focus on gender issues 50/50".

Personally, I think the main reason for that is that it's just really hard to think non-patriarchally, and switching back and forth is just too hard. So it's easier for feminists to say "screw it, we'll take the women stuff and we'll leave the men stuff to other people".</comment>


Humanity - <AUTHOR> http://www.humanity.com/

<comment><USER2> UI looks nice from the video, and seems like a quality service. We're currently using ShiftPlanning, which is similar, albeit uglier, and has a few more features that would be hard to give up: discussion board for employees, ability to blast announcements to employee groups, syncs with 3rd party calendar systems, etc. Maybe you should check them out for inspiration to grow your offering.

</comment><comment><USER3> Cool, but logo looks like a sad face.. (I know it's supposed to be a human shape)

<comment><USER4> A sad clown, even.

It seems odd to me that something with such an altruistic sounding name is nothing more than business software. I don't doubt the sincerity and scope of the company's mission to deliver the best product possible, but something about the name rubs me the wrong way.

<comment><USER2> I agree, great domain, but the name is off-putting to me too. I think the logo could use some work. Simpler, in this case, is not always better.</comment></comment></comment>


The Cloud's Little Secret: Vendor Lock-In - <AUTHOR> http://www.nasuni.com/news/nasuni-blog/the-clouds-little-secret-vendor-lock-in/

<comment><USER2> I think data portability is going to be another victim of the tragedy of the commons. I'm sure that most people in the area of cloud computing would agree that more portability would be a good thing for the market. But when you get down to it, I don't think the risks of allowing all of your customers to switch away from you at will outweigh the benefits.

And let's face it, avoiding lock in just isn't as high a priority as some others to technology companies. If it were, SQL databases would have been dead a long time ago.

<comment><USER3> Wait... SQL _causes_ lock-in? I admit that some of the extensions are rather useful, but...

</comment></comment><comment><USER4> By "the cloud" he really means "any service not run locally" which equates to "the web". You could argue that not all websites lock your data in, but neither do all cloud services, so I don't see the difference between the two. Funny, that word seems to morph meaning all the time. I think at some point it used to mean a bunch of remote computers-for-hire that one could easily push computation of any size off to, and easily increase or decrease the processing power of. Sort of like abstracting out the hardware problem. I thought that definition was the one that warranted a separate name the most, if any of them did. I could have sworn it meant that at some point ...

</comment><comment><USER5> This is the case where the first competitor to make a standard, and have more than a couple legitimate vendors following a standard, will _dominate_ the market.</comment>


U.S. Presidents and Comparative Stock Market Performance - <AUTHOR> http://www.endlessmetrics.com/blog/president-stock-performance.html <comment><USER2> "Yet the gross national product does not allow for the health of our children, the quality of their education or the joy of their play. It does not include the beauty of our poetry or the strength of our marriages, the intelligence of our public debate or the integrity of our public officials. It measures neither our wit nor our courage, neither our wisdom nor our learning, neither our compassion nor our devotion to our country, it measures everything in short, except that which makes life worthwhile. And it can tell us everything about America except why we are proud that we are Americans."

\- Robert F. Kennedy

<comment><USER3> The Kennedys speeches were on another level

<comment><USER4> What a difference 50 years have made.

</comment></comment></comment><comment><USER5> It's too bad this analysis was done against the Dow Jones Industrial Average which is a price weighted index of only 30 large cap stocks and widely considered to be a poor indicator. Something like the S&P 500 index would would have been a better choice though it doesn't go as far back as the DJIA.

<comment><USER6> Although, the Dow doesn't _really_ go back that far either in the sense that it swaps out stocks occasionally, which could cause spurious conclusions to be drawn if not accounted for.

<comment><USER7> The S&P 500 does also swap stocks, and more often :-)

<comment><USER8> If the data exists for the underlying stocks in the market, a far better indicator would be to do an IRR calculation on every stock in the market, or every stock above a certain market cap threshold (inflation-adjusted). Easy enough.

</comment></comment></comment></comment><comment><USER9> It would be interesting to see Clinton's return extended one more year. He exited right before the dotcom bubble imploded.

<comment><USER10> And if Bush could have left a year early, Obama would have taken the fall for the entire financial crisis (well, many Republicans blame him anyways).

<comment><USER11> Bush was pretty unlucky. 2 massive crashes during his presidency.

<comment><USER10> Ya, and neither were completely his fault. However, I do fault him for juicing a good economy when stimulus would be more effective during a downturn when not wasted during upturns. Save in good times, spend in bad would do a lot for stability. 2008 could have been handled much better if he was disciplined enough during the recovery in between (besides, taking more money out of the system would have acted against bubbles). In contrast, the Clinton surplus going into the dotcom bust made it much easier to deal with.

Trump is making similar mistakes, and if a problem occurs on his watch, he is going to have fewer tools to deal with it (and pressuring the Fed to cut rates during a boom is unforgivable).

Unfortunately, Americans seem to neither want taxes to go up or interest rates to rise in good times so they can go down in bad. They just want them to go down all the time. So we are the most at fault after all.

<comment><USER12> The problem with "save in good times, spend in bad" is that people don't actually save in good times. Even if you raise interest rates, people will still borrow money when times are good because that's when there's profit to be made by investing the borrowed money. They do it less when rates are higher, but they still do it.

The "problem" with the natural cycle is that in bad times people start to default on their debts, which would otherwise cause banks to raise rates to account for the higher risk, which would cause even more defaults. By central banks lowering rates at those times you prevent that from happening, but at the cost of ballooning everyone's debt out of control. Because then people affected by the downturn can borrow _even more_ money at the low rates. So we borrow in good times and borrow even more in bad times. Real debt per capita has been increasing for decades, which obviously isn't sustainable.

But that's what Keynesianism does -- it defers a crash by allowing otherwise uncreditworthy people to take on additional debt rather than filing for bankruptcy, but nobody ever pays the debt back.

Now the problem is times are good except that everybody has too much debt, which is only fine because interest rates are low. Raise them and everything falls apart as the money people are currently using to buy stuff and live their lives is suddenly required to make interest payments on existing debt.

What we need at this point is for people to pay off their debts. But they can't, because the money they borrowed is now inside corporations that never spend it.

So we need to either find a way for that money to get out of corporations and back into the hands of regular people (without crashing the stock market), or print a bunch of new money that isn't derived from debt and give that to regular people so they can use that to pay back their debts with.

<comment><USER13> That's not what Keynesianism does. Keynesianism is countercyclical stimulus spending which boosts the economy in general by increasing activity, balanced by higher taxes which prevent overheating.

The last decade or two haven't been Keynesian at all - they've been selective corporate welfare for the financial sector, combined with a bizarre implication that this will somehow trickle down into the economy as a whole, combined with very anti-Keynesian low taxation for the beneficiaries.

The effects are as you describe, but more for common sense reason than Keynesian ones. Financial actors who were some combination of bankrupt, inefficient, and corrupt were bailed out and Frankensteined into continued growth when they should have been left to die on the slab.

The result has been a fragile debt, leverage, and froth extraction economy, tentpoled - for now - by a few giant tech monopolies.

<comment><USER12> > Keynesianism is countercyclical stimulus spending which boosts the economy > in general by increasing activity, balanced by higher taxes which prevent > overheating.

As implemented by the Fed it means lowering interest rates during downturns to stimulate spending on credit and raising interest rates during times of exuberance to cool things off.

But the result of that is that everyone is always getting further into debt, because it's the bad times when people would otherwise normally have either defaulted or paid the debts back (to avoid what would otherwise be higher risk-driven interest rates at those times, compared to the then-lower investment returns from the borrowed money). So by stimulating borrowing during recessions, debt increases significantly then instead of being reduced.

Meanwhile it still doesn't get paid back during the good times because the higher rates reduce borrowing during those times but nobody really wants them so high during times of productive business opportunities that people divert money from growing businesses to paying back old debts.

So consumer debt goes up but never down.

The corollary on the government side only works because "high taxes" rather than "high interest rates" actually increases government revenue, which gives them something to pay the public debt back _with_. (Assuming that's what they did with the money, which it isn't -- and can't be with the Fed doing the opposite, because paying back government debt in good times would lower interest rates then.)

But on the consumer side, higher interest rates _reduce_ the amount of money people have to pay back debts with rather than increase it. And so do higher taxes.

Which leaves the way out as the government creating new money and giving it to people so that they have something to pay their debts with. Then it doesn't come from taxes, so you aren't just taking money from people to give it back to them (or crashing the stock market by taking it from businesses), and it doesn't come from issuing more government debt, so you aren't increasing interest rates and causing people to have to pay the money they receive as interest rather than principal (or crashing the stock market again).

</comment></comment></comment></comment></comment></comment></comment><comment><USER14> It seems to me that these results don't take into account the fact that presidents inherit the policies of the previous terms. Some presidents can ride on the coat tails of former policies and take the credit or blame just because they're the ones serving. It can take as long as 8 years before the consequences of bad policy can rear its ugly head.

</comment><comment><USER15> I wonder if most policies put in place during a president's term actually affect the next term.

</comment><comment><USER16> Stock variation doesn't really say much other than probably a degree of general confidence about how much profits companies can take.

How about actual corporate earnings? (Thereby normalizing for wacky p/e ratios?)

And what about bond yields? (Because bonds and stocks are the primary assets, valuations flow from one to the other)

Interest rates? (Because cheaper Fed rates entail easy money)

GDP? (Because that's a measure of the economy)

Housing prices? (Because that's a measure of consumer spending, i.e. 'the rest of us')

Housing starts? (A measure of business confidence in consumer)

Employment? (A good measure of overall health)

Inflation? (A variety of factors but it puts the others in perspective)

Instead of this 'stock prices' thing they should show us all that for perspective.

</comment><comment><USER17> Allegedly, stocks which are highly exposed to government spending outperform their low-gov-spending peers under a Dem presidency, and underperform during a GOP one: [https://papers.ssrn.com/sol3/papers.cfm?abstract_id=1572801](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=1572801)

</comment><comment><USER18> A cut in the corporate tax rate shockingly increases equity value.

</comment><comment><USER19> I've always been more curious about this stat when:

-President and Congress majority are same party (and by party)

-President and Congress majority are different party.

I suspect different parties are better, to reign in the excesses of each. But not sure. Maybe I'll do it some time.

<comment><USER20> If the parties were working for the good of all Americans I think you'd be correct. The Republican party decided to literally impede anything, right or wrong that President Obama did. Democrats changed some rules for lower court justices because Republicans refused to even vote against judges just to claim Obama was leaving seats vacant. That's not governance, that's plain impeding government from doing it's job by people who don't believe government should exist. You cannot have a functional government when people meant to govern it don't believe it should exist.

</comment></comment><comment><USER21> Makes no sense to measure from day of taking office. With a 1 year offset, Trump's market goes from performing "very well" to the erratic mess that it has been ever since.</comment>


Ask HN: Mid-life career crisis, need your help - at-fates-hands The backstory:
I've been a "front-end developer" for the last 10 years or so. I'm quickly approaching my mid 40's. I've worked everywhere from small start ups to huge corporate gigs. All the roles I had were 100% HTML, CSS and JS (99% jQuery).
My problem:
About five years ago, I took a role at a large health care company. The first work they had me doing was AngularJs (brand new at the time - version 1.3), mixed with AEM (enterprise CMS) and Bootstrap. I was stoked, new JS framework just when everything was transitioning to full stack JS - this is exactly where I need to be! The project lasted 18 months. Then we lost the large government contract we were working on. The teams were all disbanded and pieced out to other teams. I was sent to another team which worked on portals. It was a 10-15 year old CMS. I was now back working with inline CSS, inline JS all over the place. I just kind of settled in to being a glorified content guy that fixes UI bugs. I just thought, "Well, this isn't the hardest job, so why rock the boat?"
This is where I am. Stuck in the middle of the road, during a pandemic that has everything shut down and nobody is hiring. Yes, I still have a job and a "career" but I'm not happy and I realize I need to do SOMETHING to find a more modern role where I can develop whatever skills I need to get out of this gutter I've slid into it. I realize this means taking a step down in pay, taking a step back from a senior level position to a mid or even entry level position. Aside from that, what other advice can you give me that will help get me to where I need to go? The last few weeks I've been focusing a lot on design tools - Sketch, InVision and Adobe XD. I LOVE working with JS, but I think the move to UX might be easier for me. I'm not adverse to putting in the time to hone my JS skills, but what other advice can you give me??
If you made this far, thanks for reading and any advice is always appreciated! <comment><AUTHOR> Forget side projects and all of that crap!

Apply, apply, apply.... Sent out 30+ applications for positions you are somewhat qualified for.

Polish your CV, make clear that you have EXPERIENCE and GETTING THINGS DONE.

When you get an invite to an interview, create a little project in React (or whatever framework they are using), follow best practices and publish it on GitHub.

I am freelancing for quite a bit, and what companies want are peopöe who get the job done and understand their business.

Demonstrate this. Everything else is just the cherry on top.

You can start learning React and Vue, but what you want is understandinh fundamentals about frontend work (which you probably have).

So yeah, apply everywhere until you have a foot in the door and take it from there!

</comment><comment><USER2> Do you want to continue doing front end work or cease doing it? Could you learn/master React and add that to your portfolio?

Instead of switching quickly, consider picking an array of skills to develop that complement where you want to end up, and reposition yourself from "front end programmer" to user interface developer with experience across multiple libraries.

Don't allow anyone to con you into a lower level role, leverage what your skill set is for at minimum a lateral move if not a promotion.

</comment><comment><USER3> Yes. Honing Javascript skills will land you better jobs. jQuery is not really used that much anymore. Angular demand is slowly declining and React is dominating. See [https://trends.google.com/trends/explore?date=all&geo=US&q=j...](https://trends.google.com/trends/explore?date=all&geo=US&q=jquery,angular,react)

If you want to hone your javascript, try a module I've created where I am trying to get people to quickly improve their JS skills (to where they can understand concepts such as callback, closure, arrow functions, ES5/ES6 syntaxes, etc): [https://www.hackerhero.com/g/advanced-javascript- beta](https://www.hackerhero.com/g/advanced-javascript-beta)

Once you master these skills, then if you study React, I think a lot more jobs will open up for you. You can also use your updated JS language to learn Node.js and get familiar with Express. Also study socket.io to really study how socket is used, especially for building real time web applications.

Also beef up your resume by studying other tools such as LESS, SASS, Coffeescript, Typescript (and spend no more than a few hours on each of them). Beefing up your resume with more modern libraries will distinguish your resume from other resume that also state they know HTML, CSS, and jQuery.

Hope this helps.

</comment><comment><USER4> Sounds like you need a side project! I have had one for years and it's great. I'm in charge and can make sure I use modern technologies and techniques.

I wrote about some of the benefits here: [https://letterstoanewdeveloper.com/2019/08/02/personal- proje...](https://letterstoanewdeveloper.com/2019/08/02/personal-projects- make-you-a-better-developer/)

</comment><comment><USER5> You know the core fundamentals of programming, and you simply need to be retrained. You may start with this basic JavaScript course to refresh your skills. If you are interested in learning more about training opportunities that could eventually land you to a better job, I will be happy to guide you.

Whenever I feel fear of failure, I watch this video, and it might help you too. [https://www.youtube.com/watch?v=zkTf0LmDqKI](https://www.youtube.com/watch?v=zkTf0LmDqKI)

</comment><comment><USER6> I think you should practice/hone your JS skills and bring them up to ES6/TypeScript level. I wouldn't bother learning another framework but instead focus on becoming highly proficient in the language details. I've been using executeprogram.com and have been real happy with how it is set up. Not sure if there are other options.

</comment><comment><USER7> 1\. How about looking for a part-time job? It could be a single project.

2\. Personal side projects could work too.

</comment><comment><USER8> Same boat as you my friend :) I used to be a PHP developer now trying to transition to the JS world. I believe what we do from 8am to 5pm is the job but what we do from 5pm to 8am will move the needle. It is ok to start from scratch and let go because in 10 years from now your future self will thank you.</comment>