On 4/20/2020 6:49 PM, Sam Ruby wrote:
On Mon, Apr 20, 2020 at 8:38 PM Patricia Shanahan <p...@acm.org> wrote:
On 4/20/2020 3:07 PM, Sam Ruby wrote:
On Mon, Apr 20, 2020 at 1:57 PM Patricia Shanahan <p...@acm.org> wrote:
Shane answered based primarily on the current (Ruby) code base. I'll
focus on the node pre-alpha.
I have two questions:
1. What should I be learning and practicing to be able to help? It looks
like JavaScript and React. Is that correct?
The most important technologies to focus on are web technologies:
HTML, JavaScript and CSS.
I understand HTML, and have done some simple programming in JavaScript.
I am not sure I fully understand its object and class model, so I may
need to do some more reading in that area. CSS I'll need to learn from
scratch.
React applications nominally make use of the JavaScript class and
object model. Since you mentioned C++ below, you will recognize the
static keyword. Not much to learn here. It is a dynamic language, so
you can add do things like add methods to class instances, but you
won't see much of that either.
The one thing to watch out for is that the rules in JavaScript for
determining what the value 'this' references take a bit getting used
to.
'this' is exactly what I need to review.
What is more likely to be new to you is ECMAScript modules:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules
While, yes, React would be next, most of it appears theoretical and
daunting. Yet, in practice, it is neither. Most of what you will
need to know is a templating language named JSX.
I have a bachelor's degree in mathematics, masters and PhD in computer
science, including an A in UCSD's graduate course in theory of
computation. It would have to be VERY theoretical to scare me much.
Fair enough. I will say that when I first read the documentation, my
reaction was along the lines of "why would I ever need that?", and I
spent the first few years avoiding things that seemed unnecessary.
I've now learned my lesson, but I will say that seeing the concepts
applied in a real code base would be much better way to learn the
concepts than reading the documentation.
I like to work with the combination of a reference document, a tutorial
with exercises, and a body of real code.
https://reactjs.org/docs/introducing-jsx.html
https://reactjs.org/docs/jsx-in-depth.html
Similarly, Node.js can be learned in a "Just In Time" basis as most of
the application runs in the browser.
2. A couple of days ago I found a web page that gave a couple of docker
commands for building and running, given a repository clone. I have
installed docker on my Windows 10 system, and cloned the repository. Now
I can't find that web page :-(. Link please.
Shane provided that link, but unless you have a strong reason to want
to use Docker it is just adds to your learning curve.
Shane provided a link to what should be a good starting point, and some
tips on where to look for information. I have still not found the page
I'm looking for.
He pointed to the DOCKER.md page, but I still don't think that's a
good fit for your use case. See below.
What I really want is the simplest way of getting to the point of being
able to read, modify, and test Whimsy code, preferably in a UNIX-like
environment even though I want to use my main home server, a Windows 10
machine, for its memory, disk space, backup, and screens.
Docker looked to me like a good way of getting a Ubuntu environment for
Whimsy development under Windows 10. Is there a better way of doing that?
Given your description, I would suggest that the best match would be:
https://docs.microsoft.com/en-us/windows/wsl/wsl2-install
From my reading, WSL2 is much superior to WSL. At the moment, it is
available on a pre-release basis. My understanding is that the
official release will be in May. Ubuntu 20.04 is due to be released
on Thursday, so if you are setting up a new system, I would be
inclined to start with that version.
What you will get is a full Ubuntu installation, with a native bash
shell and Unix filesystem. I haven't tried it myself, but am
interested in trying it.
https://code.visualstudio.com/remote-tutorials/wsl/getting-started
Can I suggest an alternative first task?
I don't know your background, but given that you have been a
programmer since the 70s, are a Windows 10 user, and are capable of
installing Docker, I presume that you are comfortable with the command
line and doing things like setting %PATH%. Feel free to correct me if
I got this wrong.
I am much, much more into programming than systems administration,
despite running home computers for the last 40 years. I have programmed
professionally in Fortran, C, C++, Forth, Cobol, Verilog, Perl, Java,
and a couple of assembly languages. I have written small student or
hobby programs in many more languages.
I make absolutely minimal use of Powershell, mainly just pasting
commands when a process I am following calls for Powershell use. I am
familiar with UNIX-like shells and command line tools, and use Cygwin in
preference to Powershell wherever possible.
I haven't used Powershell. I did use Cygwin years back, with mixed
results. I generally still use the command prompt.
I had even forgotten the command prompt exists.
I'll take a try at that task if you still want me to, understanding it
is a poor fit for my skills and experience. I am sure I can learn all
the pieces required to do it, but learning a couple of programming
languages would be much more fun.
Lets find a setup that works for you, and document it well enough so
that I and others can reproduce it. I have a variety of machines to
play with.
I have a Windows 10 machine that I use mainly for video, including Zoom.
I can delete any development tools I have installed there, and work on
making it a Whimsy development box, keeping notes.
One thing that would help me help you is if you could document a
Windows 10 equivalent to:
https://github.com/rubys/whimsy-board-agenda-nodejs/blob/master/MACOSX.md
Essentially what would be needed is instructions on how to take a bare
Windows machine and install node, yarn, the svn command line client,
and visual studio code.
If you could create that, that could help others. Additionally, I
have a Windows machine so I can follow along with your instructions
and reproduce any problem you may be seeing.
- Sam Ruby
--
This email has been checked for viruses by AVG.
https://www.avg.com
- Sam Ruby
--
This email has been checked for viruses by AVG.
https://www.avg.com