Closed stevenkoenig closed 10 years ago
I am enthusiastic user of homebrew for my mac laptop, and I use homebrew'd python on as is recommended in the hitchhiker's guide.
I have not helped with a swc workshop, but I have helped with some beginner python workshops and have run some monthly python project nights.
I've tended to let people know that I use homebrew but don't require them to do so
Asking novice users to install homebrew is asking them to make a big decision. They aren't going to understand the consequences of of choosing a package manager for osx, they might not even realize package management is a thing, they won't necessarily understand homebrew's conventions. I don't think I should be dropping all of that on someone right off.
I use Homebrew extensively, but it requires an understanding of environments and paths (and libraries and package managers and /usr/local) that most of our students do not have even after a boot camp. I'd be against making a Homebrew install a prerequisite of a boot camp.
Agree with @jiffyclub on not having Homebrew as a prereq.
That said, I've thought before that it might be a good idea for us to have an SWC lesson that focuses specifically on package managers - what they area, why they're useful, and how to use them. Could be an addendum to the shell lesson, for example, to be used in longer bootcamps or ones more oriented around the command line. Homebrew would be an option, as would just teaching pip
or conda
for example.
:+1: to supplementary lessons, thought there are quite a lot of bases to cover.
On Mon, Jun 09, 2014 at 01:52:06PM -0700, Justin Kitzes wrote:
That said, I've thought before that it might be a good idea for us to have an SWC lesson that focuses specifically on package managers
- what they area, why they're useful, and how to use them.
I'd think it would be great to have folks write their own Python package (or R, or whatever), and then use pip to install it. Talk about PyPI (or whatever R uses), and how they can push to it, once they have their own package written.
However, I don't think it makes sense to be doing that in the first workshop, with folks who have just learned about for loops and functions. Maybe if we have a sysadmin-track instead of a programmer track, and we drop all of the “how to write your own software” in favor of “how to publish, install, and use already-written software”? Alternatively, the sysadmin-y stuff could come a few months after the initial workshop, after the initial lessons have had time to sink in.
Language-specific package managers only take you so far, though. It's probably worth touching on the traditional configure/make/install, and then splitting folks off into groups by package manager (APT, yum, Portage, Homebrew, whatever folks can find for Microsoft, …). Otherwise it's all going to be a bit vague and theoretical.
@jiffyclub "it requires an understanding of environments and paths (and libraries and package managers and /usr/local)" +1 to this, also if anything goes wrong it can often require interpreting error messages from Make. Any time I try to help a novice install some new software (especially on Mac) I'm astonished by how many different things you often need to know. I definitely think a lesson or series of lessons are a good idea but it will be hard to really tease out all of the assumed knowledge...
I agree with @gvwilson about a package creation lesson being too advanced. In our bootcamp, there were 2-3 more advanced students where package creation was the only new thing they learned, but for the other students it became a mess of not having the right versions of software installed to get the lesson to work properly.
At the time I felt it went quite well. I'm not sure how many people who sat in on that lesson actually made use of what they learned though. Somewhere I have lecture notes I wrote for that that I've (still) been meaning to clean up for a general SWC lesson. In any case it was still considered for an "intermediate" audience consisting of people who have already been using Python on a day-to-day basis.
@embray I am interested in the lesson. I think lessons on how to package and when one would want to package would be valuable (intermediate skills?). You could talk about re-use and reproducibility too.
Are there other ways for OS X users to get more feature-rich versions of ls, grep & co.?
In the context of a boot camp, is it all that important that they do?
On Thu, Jun 12, 2014 at 11:37:56AM -0700, Matt Davis wrote:
In the context of a boot camp, is it all that important that they do?
I agree that using the stock utilities (even if they're old and wimpy) is the way to go here. Maybe OS X doesn't come with stuff as pretty as the GNU tools, but they should be POSIX compliant, and that's all we should need for a half day of “welcome to the shell”.
I like to show people that it's not all about deciphering white text on black background, but that you can colour things up a bit to make it easier to distinguish stuff (ls --color). I find this especially important when people are toying around with regexs and I want to show them which part matched.
Since concensus here is to use the stock utilities I close this. Thank you all for your input, I appreciate it very much.
The classic example for Homebrew is wget
, other neat things like ls --color
could be great in an online lesson.
(BTW, ls -G
will color output on a Mac.)
As a side effect of using old BSD-licenced command line tools common command line tools such as grep lack basic features, i. e. grep is incapable of colouring output.
I have been told that Homebrew is what you would use to get the good versions. http://brew.sh/
Since I do not have OS X nor access to one I cannot work on that issue.
The first question is: do you also think that Homebrew is a good idea for use in workshops?