Live data from Hacker News

A functioning Turing Machine using Notepad++ and its find/replace regex engine

github.com

21–30 of 91 posts

Re: A functioning Turing Machine using Notepad++ and its find/replace regex engine

#21
post #3

Earlier quoted context omitted.

No, nothing special about N++ (well, lookahead, but many regex engines have that). Repeated Search+Replace is the key, and not part of regex.

I find myself wondering if anyone has done a proper analysis to prove that human activity is Turing complete!

It is so, trivially; humans wrote the find/replace box in Notepad++.

Re: A functioning Turing Machine using Notepad++ and its find/replace regex engine

#23
post #18
post #13

Neat, Though it does make me wonder if a python parser wont soon become standard in editors. Its just too damned convenient for many things, sure you might be able to come up with a regexp search and replace that does the same thing, but odds are it will take longer than coding a few loops. BASH sucked far too much, and C++ and most languages lacked the convenient filesystem libs required, but python just works and i…

I wouldn't be happy with Python, but I do agree with the general premise that extensibility or automation ought to be expected of editors. My own editor is written in Ruby, and so all extension is done by loading Ruby code into the running process, and I can drop into the Pry debugger with a keypress, or another keypress gives me a prompt to enter a single-line expression instead. The latter is literally a one-line m…

Out of curiosity, what do you actually use the Ruby liveloading feature for? I use Neovim, which has a similar (but less powerful) feature that allows one to live-execute Lua code (or Vimscript, I suppose). But I almost never use it outside of testing code for my configuration, because the rest of the editor's feature set suffices fairly well for text editing.

Re: A functioning Turing Machine using Notepad++ and its find/replace regex engine

#24
post #18

Earlier quoted context omitted.

I wouldn't be happy with Python, but I do agree with the general premise that extensibility or automation ought to be expected of editors. My own editor is written in Ruby, and so all extension is done by loading Ruby code into the running process, and I can drop into the Pry debugger with a keypress, or another keypress gives me a prompt to enter a single-line expression instead. The latter is literally a one-line m…

Out of curiosity, what do you actually use the Ruby liveloading feature for? I use Neovim, which has a similar (but less powerful) feature that allows one to live-execute Lua code (or Vimscript, I suppose). But I almost never use it outside of testing code for my configuration, because the rest of the editor's feature set suffices fairly well for text editing.

I don't very often load code "live" other than on starting a client in the form of "macros" which are pretty much stuff I don't want to add into the editor core because it e.g. might be short lived or is just too esoteric. Even though my editor is mostly for myself, imagine anything you might put in your .vimrc, except it's only self-discipline that separates this from core editor code.

E.g. I have functions in there to insert headers in my journal for example.

In terms of executing code "actually" live, it's ~80% for debugging when I work on the editor itself. Pry provides all of the plumbing so all the code needed to add that is just to suspend the editors own input handling and call pry, coupled with an exception handler that calls pry as well, so there was no reason not to, basically.

But once I'd added it, the 20% left felt worthwhile as a means of e.g. do complex searches, or generate tables or otherwise do search and replace of content that requires more (e.g. parsing timestamps and replacing them with another format....) and any number of things I don't do very often but that feels very comfortable when you do need it. To be clear it's not like it does much you can't do easily without it. E.g. after all I could just dump the buffer to a file, load it in my repl of choice, manipulate it and write it out again and reload it in my editor. It's one of those small things that feels unimportant when you don't have it there, that doesn't save you a huge amount of time, but that just makes things feel nicer when you get used to them.

Re: A functioning Turing Machine using Notepad++ and its find/replace regex engine

#26
post #17
post #13

Neat, Though it does make me wonder if a python parser wont soon become standard in editors. Its just too damned convenient for many things, sure you might be able to come up with a regexp search and replace that does the same thing, but odds are it will take longer than coding a few loops. BASH sucked far too much, and C++ and most languages lacked the convenient filesystem libs required, but python just works and i…

Python just works... Every now and then I'm still bitten by the 2->3 transition. And I'd very much not like it to be a required dependency in my systems either. And no, regexps get a bad rep but they are for the easy 99% and insanely quick to come up with. Learn basic syntax and you'll be thankful for decades to come.

Learn basic syntax and you'll spend the next few decades wondering each time _which_ basic syntax is expected because none of them ever say.

Re: A functioning Turing Machine using Notepad++ and its find/replace regex engine

#27
post #3

Earlier quoted context omitted.

No, nothing special about N++ (well, lookahead, but many regex engines have that). Repeated Search+Replace is the key, and not part of regex.

I find myself wondering if anyone has done a proper analysis to prove that human activity is Turing complete!

We are guaranteed to halt, e.g lifespan. After death cells enter apoptosis stage where cells do final stages upon shutting down. I’d say it appears we are Turing complete, or at least it appears so from this angle

Re: A functioning Turing Machine using Notepad++ and its find/replace regex engine

#28
post #13

Neat, Though it does make me wonder if a python parser wont soon become standard in editors. Its just too damned convenient for many things, sure you might be able to come up with a regexp search and replace that does the same thing, but odds are it will take longer than coding a few loops. BASH sucked far too much, and C++ and most languages lacked the convenient filesystem libs required, but python just works and i…

You can record and edit beanshell macros in JEdit. It does exactly what you described but you also have access to all the Java Standard Library (including regex).

Re: A functioning Turing Machine using Notepad++ and its find/replace regex engine

#29
post #3

I was under the impression that RegEx was not turing complete. Is there something special about N++’s regex engine that allows this?

No, nothing special about N++ (well, lookahead, but many regex engines have that). Repeated Search+Replace is the key, and not part of regex.

So, Notepad++ basic interface is Turing complete because it's a place you can write a Turing machine and execute it.

Re: A functioning Turing Machine using Notepad++ and its find/replace regex engine

#30
post #26
post #17

Earlier quoted context omitted.

Python just works... Every now and then I'm still bitten by the 2->3 transition. And I'd very much not like it to be a required dependency in my systems either. And no, regexps get a bad rep but they are for the easy 99% and insanely quick to come up with. Learn basic syntax and you'll be thankful for decades to come.

Learn basic syntax and you'll spend the next few decades wondering each time _which_ basic syntax is expected because none of them ever say.

I know the basic syntax and I never have that problem. Perhaps you mean the advanced syntax? However I don't see the problem, there either. I usually don't need it, and to be honest, when I do, I find it more maintainable to use multiple simpler expressions combined with some programming.
Post reply on HN