Git Product home page Git Product logo

analysis-essentials's People

Contributors

alexpearce avatar betatim avatar chrisburr avatar costgranda avatar dberzano avatar dominikmuller avatar eduardo-rodrigues avatar federicalionetto avatar goi42 avatar graeme-a-stewart avatar kdungs avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

analysis-essentials's Issues

Editor config section

I think it would be nice to have a section covering minimal configuration of various editors. I don't think this should be taught or recommend any specific editor. It should just cover how to quickly set up the most basic things that everyone "should" use, for example:

  • Syntax highlighting
  • Avoiding mixing tabs and spaces (enable visible whitespace?)
  • Basic autocompletion

Wrong numbers in the lesson: Python - List and looping

Issue for beginners to solve

In the Lists and looping lesson, the line If we want to insert the number 2 between the 6 and the 78 in the list above, we would use: is wrong, we actually want to insert the number 6 between 2 and 78.

Prerequisites

  • We need to ask people to install git in their lxplus accounts/laptops, last time I checked the version you get by default is old-dot-ancient and has trouble with https fetch/push.
  • anaconda on their laptops/lxplus

Or should we make an anaconda install on a public AFS directory that has all the things including git and they simply prepend that to their PATH?

Or we prepare a shared anaconda for those who don't manage to install stuff themselves, and say the default is that they install it in their homedir/laptop?

Update README

Now that this is aimed towards more than just LHCb the README should be updated.

Show Python list multiplication

We don't mention that lists support the * operator.

>>> [2, 3, 1]*5
[2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1]
>>>

This is good to mention because numpy has a more intuitive/useful implemention of the * operators for arrays.

Use bash options to make scripts more robust

The bash lesson should recommend using some options at the top of scripts to make them easier to debug. My personal preference is to start scripts with

#!/bin/bash
set -euo pipefail
IFS=$'\n\t'

for the reasons listed here.

Pre workshop checklist

Not sure where the best place is for this as it is not related to the material.

We should create a checklist for who ever is organising a starterkit-like workshop that includes all the various things that you need to organise. This will reduce the stress of organising the event.

  • switches for each room
  • lots of network cables
  • buying coffee and snacks
  • food options for the social event
  • location for the social event
  • drinks (non-alcoholic as well) for all the days
  • sticky notes (green and red)
  • a copy of https://docs.google.com/spreadsheets/d/1z9YgCdP52gLfw6kxT1gt94s5rSH5tbuAuyHE7hJmvDY/edit#gid=1804476344 to assign instructors and helpers
  • indico agenda
  • list rooms on indico as people forget where they have to go
  • send email with prerequisites to attendees (at least) a week before the start
    • grid cert
    • access to the site
    • computing account

... more goes here ...

Google analytics broken

We need to add the tracking code again to make google analytics work again. Tracking the popularity of different sections of the material is useful for seeing what people need help with.

Python material

Is it a good idea to base the python material around an example like:

https://gist.github.com/betatim/10f5c4669d79f6d09ca0

To make it a bit more "real" than calculating factorials etc?

I'd split it up into multiple little files doing things in steps instead of a notebook. Allows you to show how to do "calculations", store stuff to disk, read it back, make plots. With classes and functions etc thrown in "on the side".

Let me know what you think

Add git submodules to git lesson

As discussed in LHCb Core Software 2019-04-10, LHCb's trainings/documentations lack good explanations of working with git submodules. I am unsure where this would best fit on the Xkit side of things given:

  • dealing with them is at the moment probably needed rather late after joining (only for building entire "projects", probably not needed for analysis work) so it might not need to go in analysis-essentials
  • submodules are a standard feature of git, so analysis-essentials seem right
  • The issue doesn't occur when working with lb-dev git-lb-, i.e. doesn't fit the impactkit lb-dev lesson

Add how to configure your editor section

I think we should have a section dedicated to how to configure popular text editors with a minimal configuration as easily as possible. This should be pushed in the prerequisites and only mentioned during lessons. Tutorials and customised configuration can be provided as links.

Obviously the definition of “minimal configuration” is debatable but my proposal is:

  • Only use spaces and not tabs
  • Make whitespace visible
  • Inline linting for Python

Editors we should provide settings for:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.