The benefits of simple calisthenics for muscle building aren't necessarily that great, but just doing them in the first place is already a big win. You will definitely get "fitter", but maybe not _that_ much stronger/bigger.
235 karma · joined March 11, 2022
The benefits of simple calisthenics for muscle building aren't necessarily that great, but just doing them in the first place is already a big win. You will definitely get "fitter", but maybe not _that_ much stronger/bigger.
I would say that push-ups and crunches beat any other exercise combination in terms of unit benefit per unit effort. Distractions and shyness can be practically eliminated as you can work-out from home, you can work-out while travelling as you don't need any equipment, risk of injury is relatively much much lower, warm-up is quick, rapid (sometimes _very_ rapid) progress is almost guaranteed, etc. Combined, this allows almost anyone to get the physiological and psychological benefits of working-out cheaply, safely and rapidly. There is just no substitute for the confidence boost that you can now easily do X amount of push-ups after just a few weeks of training. Best bang for your buck for most people IMO.
Of course, long-term it's probably a good idea to have a more diverse set of exercises =)
You seem to be using Scheme macros (try, async, list comprehensions, etc) to reproduce Python semantics in a Scheme syntax. That's one level on top of what we offer, i.e. I think it's very interesting, but as a library. Otherwise you're not writing Scheme anymore (your 'list' example looks good, but it's not Scheme).
We actually chose not to implement list comprehensions in the infix syntax because our grammar is a hybrid to allow us to have multiple target languages. You can already see how choices at this level can be mutually exclusive: the Python import syntax is not the same as the JavaScript import syntax.
Anyway, this is a vast space to explore, we just want to keep writing Scheme _with_ another language. Interesting, thank you.
Our syntactic interface based on Gambit's infix parser (SIX) is quite ergonomic and allows you to write expressions that look just like Python, within Scheme code (and vice-versa). It's much more natural than directly[1] passing strings to 'eval', although you can certainly do so (the whole low-level API is available). Here's the 'cal' example:
> \import calendar
> (display (\calendar.month 2022 09))
September 2022
Mo Tu We Th Fr Sa Su
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
[1]: SIX expressions are compiled to strings and eventually evaluated by CPython's eval.In Lisps, for example, that phase is called the macro-expansion phase (of which there can be layers of) and generally acts as a source-to-source transformation from s-exp to s-exp (possibly with side-effects). Here's an example in a Gambit Scheme REPL:
> when
*** ERROR IN (stdin)@8.1 -- Macro name can't be used as a variable: when
> (when #t #f)
#f
> (pp (lambda () (when #t #f)))
(lambda () (if #t #f))
So you can see the 'when' macro expands to an 'if', and that has to happen _before_ evaluation. So the REPL is in fact a REEPL (Read Expand Eval Print Loop).Very useful.
Programming language experts told Andrew Kelley, the creator of the Zig
programming language, that having code which could run at compile time was a
really dumb idea. But he went ahead and implemented it anyway. Years later,
this has proven to be one of the killer features of Zig. In the Zig world, we
call it comptime, from the keyword used to mark code required to run at compile
time or variables to be known at compile time.
Which experts? The "comptime" is just macro-expansion from Scheme/Lisp which has been around for a long time. Aren't C++ templates also "code that runs at compile time"?One thing I think a lot of people underestimate is the sheer amount of _clueless_ (or almost clueless) software developers out there. There are a lot of young people with good intentions but very, very little "real" experience (writing a React web app for a class assignment isn't "real" except for saying you've tried the framework). Work experience is quite different from CompSci knowledge, evne if both are important! If you have even just 3-5 years of real experience building real systems with real failures and real successes, you should be quite easily employed elsewhere if your current job doesn't meet your expectations.
Keep this in mind: we don't let surgeons operate alone before they have 5-6-7 years of _post-doctoral_ education and training. If you have the battle scars and experience to get a project done properly, you should be fine.
I know people who have the kind of history you mention but didn't end up in tech and they don't make anywhere near 250k/y. So all is not lost ;)
[1]: https://zenodo.org/record/4711425
[2]: The paper should be up in a few days I suppose.
The current standard for Scheme is referred to as R6RS
R7RS small has been out since 2013. But yeah... "it's complicated".We did an experiment a few months ago with compiling Gambit to JS and then serving it as an Office extension, using our JS FFI to interface with the Office JS library. Worked out of the box, but definitely some performance cost. Curious about performance on .NET.
BTW if Bob reads this, happy to hear you talk about this at the upcoming Scheme Workshop :) I guess this isn't available on Excel on the web?
https://icfp22.sigplan.org/home/scheme-2022 for those interested.
Location: Montréal, Canada
Remote: Yes, only
Willing to relocate: No
Technologies: Scheme, Lisp, JavaScript, Python, C, OpenBSD, Linux, macOS, PostgreSQL, SQLite, Vagrant, Packer, Ansible, Docker, Terraform, VueJS, Vanilla JS apps, Flask, front-end, back-end, DICOM, Solidity
Résumé/CV: Chemist who worked in IT and software development, currently back in school to get a Masters in compilers.
Email: See profile.
I have worked with a lot of technologies over the years, in various fields, shipped a few business apps (full-stack) still in use today. My primary goal is doing compilers research and publishing interesting papers. Currently focused on compilers and programming languages, with an interest in cross-language interoperability. Finding part-time work is a little bit harder than I thought! Send an email if you want to chat!github.com/belmarca