HN user

chameco

88 karma
Posts4
Comments21
View on HN

I lived without X11/Wayland for several years. (These days, I live in GUI Emacs with EXWM instead, which has a similar feeling.)

Some tools I had luck with:

- mpv is your friend - it can play audio, video, and display images directly to the framebuffer without X11. It also makes a pretty decent PDF reader combined with ghostscript to render each page to a PNG.

- The Emacs ecosystem is very useful - there are many packages for interacting with common services, and they typically work in both terminal and GUI modes.

- For web stuff, the best solution I found was to push as much as possible into RSS feeds and/or IRC, which have good terminal clients. Things like rss-bridge and bitlbee are great here. When I needed a browser, I typically used Elinks but was never really satisfied with it. I believe if you need decent JS support you're out of luck.

"We are about to study the idea of a computational process. Computational processes are abstract beings that inhabit computers. As they evolve, processes manipulate other abstract things called data. The evolution of a process is directed by a pattern of rules called a program. People create programs to direct processes. In effect, we conjure the spirits of the computer with our spells."

In any languages with multiple namespaces, anything inhabiting some non-primary namespace (i.e., not the matrix containing normal variables) feel second class. Emphasis "feel", and hence "awkward" over "technically limiting".

Additionally, it makes the transition to lambda calculus more difficult to grok, which somewhat hinders understanding. It's pretty trivial to make some simple rewrite rules from (most of) Scheme to lambda calculus: it's a two-hour project at most. Doing this for CL is much less intuitive/elegant, possibly making it more difficult for those with that sort of theoretical background.

I find that site a bit misguided. Any amount of CSS might still break, for example, w3m. It seems more sensible to have pure HTML sites with client-side styling within the browser.

I have two pieces of advice. First, expand your horizons. Yes, Windows jumping games using a game creator are a great start, but there is so much more. At 12, when I started off, I was writing very similar games, albeit using Python and Pygame rather than JS. Your route is equally valid, with its own unique challenges, and hey, in the end you get the same result. However, from here, the paths begin to branch. While the Windows world you've embraced will lead you to Visual Basic and eventually Visual C++ and C#, you could take another path. At 11, I installed Ubuntu Linux for the first time; at 14, I switched to Arch. This was probably a bad decision, given I knew nothing about the OS and had to essentially re-learn everything. You might be intimidated. Don't be. Learning your way around Unix now will make a world of difference later. By 16, I had written my first compiler, a basic baremetal assembly kernel, and an interpreted language with a decent optimizing compiler and VM. I am still not an amazing programmer, and I still have a lot to learn. Don't doubt yourself because of your age. My second piece of advice ties into the first: don't try to use your age to gain an advantage. Not because it's unfair: because it will bring you more personal validation when people praise you because of the quality of your work rather than how young you are. It's the diffence between making a good program, and making a good program for a teenager. Also, it makes it far easier to find jobs.

Source: My own experiences as the 16-year old (breaking my own rule here for the first time) author of the solid programming language.

P.S. I'm not trying to be arrogant. I just don't want you to repeat my mistakes. Don't be afraid to do things that seem difficult: with research and a little elbow grease, you can accomplish anything, and nothing anyone says can take that away from you.

The VM, the AST parser, and the Bison/Flex frontend are built in a layered manner: you could (with the appropriate Makefile) build only the VM, the VM+the AST parser, or all three. I don't currently have Makefile options for this, but it would be pretty trivial to add.

Without debug symbols (the default Makefile includes them), the executable is 83KB (93KB with -g), less than half the size of Lua. The shared library is a bit larger, at 102KB.

Lua's whole table-metatable system always felt awkward to me, what with the magic names for operators. It's really not so bad, I just didn't see any reason to spend time learning something that felt awkward and archaic to me when I could make something that seemed a bit cleaner.

The Grep Test 13 years ago

Erm, what about first-class functions in general? This doesn't just make metaprogramming harder, it also stops you from saving functions in lists or hash tables and any sort of higher-order programming.

Tmuxinator especially makes doing the vim + tmux thing so much better because it has nice session support (just type "mux <name>" to bring up a session). I've been using it for about six months now, and my current setup can do anything an IDE can in a fraction of a time.

There's decent Common Lisp support in other editors. Lots of people use Vim with Slimv. Clojure is still supported better (especially now that we have tpope's fireplace.vim), but CL is decent to edit.

Yes. You can create a tags file for any header file, no matter it's origin. I like to keep mine (for boost, GL, SDL, etc) in ~/.vim/tags and set that as my default tag directory, then use a plugin (Easytags) to auto-update tags for the current source file. That + Supertab + omnicomplete = win.

Vim with dwm, TMux/TMuxinator, and urxvt. On the plugin side, I use slimv (I know editing Lisp with Vim is blasphemy, but meh), Easytags, and Syntastic. Just discovered Syntastic: I highly HIGHLY recommend it for everyone ever, just because of how much it shortens the compile-check-fix-compile cycle. Easytags is there basically to make omnicompletion more convenient. Of course, it's all tied together with Pathogen :P.

EDIT: Forgot to mention, I'm primarily editing C, Python, and Common Lisp, but there is some Perl, Haskell, and C++ too.