Giter Club home page Giter Club logo

berkeley's Introduction

The Hacker Within

This is the website that keeps the blog posts for each THW meeting at the University of California - Berkeley. The rendered website can be found here. The basic structure is that code examples are in /code_examples, while the code for the website (using GitHub pages) is in /docs.

Run the examples:

Thanks to Technology (or more specifically thanks to all kinds of awesome people in the binder project, as well as Yuvi Panda, Aaron Culich, and Chris Holdgraf for helping us learn & debug), you can run much of what we learn about in your browser without installing anything. It spins up a temporary Jupyter server in the cloud, containing the contents of the code_examples directory and all the software we've specified in the Dockerfile and environment.yml. Click on badge below to get started:

Binder

Watch out after 1-2 hours these temporary servers are destroyed and work will be lost!

How To Be The Speaker

One very common reason that folks want to contribute to this repository is that they are planning to give the main skill sharing session for some week at THW. To be the speaker, you'll need to sign up, set up, show up, and speak up.

Sign Up

We try to decide the semester meeting topics at the beginning of the session. So, if you have a topic you'd like to talk about, please suggest it over the listhost before the semester starts or show up to the first meeting of the semester.

Set Up

We love sessions that have example code! If you have example code, please place it in an appropriately named directory in the master branch of this GitHub repository. Make a pull request or push your branch to the thehackerwithin/berkeley fork. If you know how to do that, please go right ahead. If you aren't sure about forks and pull requests, here are some detailed instructions:

Uploading Example Code

  1. Go here: https://github.com/thehackerwithin/berkeley
  2. Press the Fork button (you'll need a github account)
  3. In your terminal, execute git clone https://github.com/YOURUSERNAME/berkeley.git
  4. Enter the new directory with cd berkeley
  5. Add the THW remote with git remote add thw https://github.com/thehackerwithin/berkeley.git
  6. Fetch information about the THW remote with git fetch thw
  7. Now, you need to check what branch you're in git branch
  8. If you're in the master branch, move the important files to an appropriately named directory there. (Browse the directory for examples of other's additions.)
  9. Add the files to the repo: git add <path to your new files>
  10. Commit them. git commit -am "I added files for the tutorial on my topic.."
  11. Git push to your origin with git push origin master
  12. Navigate in your browser to https://github.com/YOURUSERNAME/berkeley and press the pull request button

Now you're done adding code example files! You'll need to edit the post related to your talk.

Add Your Tutorial to the Site

Rather than preparing a slideshow, please consider leading as interactive a session as possible. This is often done by leading the audience through whatever code examples you pushed to the master branch. Supportive text can be added to the markdown file holding the blog post for your talk. To add text to that file and to edit your bio, go to the /docs folder where the website is held. There, you may need to both create and modify the post.

Creating a Post

In the berkeley/docs, you'll notice a _posts directory. The post related to the day and topic of your talk may already exist. If so, skip ahead to "Modifying a Post."

If not, you'll need to create it. Thankfully, you'll also notice a _drafts directory. In the drafts directory, you'll find an empty template for meeting minutes YYYY-MM-DD-subject.markdown. If you're preparing for a special holiday meeting on March 1, 2015, then the proper name for the file you're creating should be something like 2015-03-01-katysbirthday.markdown.

  • In the berkeley directory, execute cp _drafts/YYYY-MM-DD-subject.markdown _posts/2015-03-01-katysbirthday.markdown
  • Then, edit that file as you see fit
  • Add that file to the repository git add _posts/2015-03-01-katysbirthday.markdown
  • Commit it: git commit -am "adds a post for march 1"
  • Push it to your fork git push origin master
  • Check if it worked at https://YOUR-USER.github.io/berkeley .
  • Iterate on this until you're happy
  • and then either push to the upstream gh-pages remote branch or make a pull request.

Modifying a Post

This is very similar to creating a post:

  • edit the post
  • Commit it: `git commit -am "adds a post for march 1"
  • Push it to your fork git push origin master
  • Check if it worked at https://YOUR-USER.github.io/berkeley .
  • Iterate on this until you're happy
  • and then either push to the upstream master remote branch or make a pull request.

Build the site locally

  • Install Jekyll: gem install jekyll
  • Run the jekyll server: jekyll --server

You should have a server up and running locally at http://localhost:4000.

Show Up

Please arrive 10-15 minutes before the start time so that you can set up your computer and test out the projector. Please figure out how to zoom in on text that might be too small from the back. Try command-plus-plus in the terminal and other applications. If you're an emacs user on a mac, you may need accessibility zoom enabled..

Speak Up

The Hacker Within isn't a class and no one is required to attend. We show up to have fun and to learn. Hopefully, your tutorial will teach something useful in a way that is enjoyable. To do this, please consider bringing your A-game. That is, find the enthusiastic tinkering problem-solver inside yourself (The Hacker Within yourself) and bring that version of yourself to share that enthusiasm with us. Enthusiasm is infectious!

About this website.

It's all based on something @katyhuff forked. It's called Left. It uses jekyll. It was extracted from zachholman.com. That is, we use Left to lay out this jekyll.

Left is a clean, whitespace-happy layout for Jekyll.

Content Licensing

The content of this blog is liberally licensed to The Hacker Within and to the individual authors of each blog post. Additionally, you're welcome to reshare the content with attribution, because it is CC-BY-3.0 licensed

Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution 3.0 Unported License. Copyright 2013-2015 The Hacker Within.

Please attribute any work with a link to its original appearance on this domain (i.e., "from The Hacker Within's blog entry 'Segmentation Fault' at thehackerwithin.github.io/blog/posts/segmentation-fault ").

Left Licensing

The Left layout is MIT with no added caveats. Left is the work of Zach Holman @holman.

Left

berkeley's People

Contributors

aculich avatar ahaefner avatar akokai avatar carreau avatar crbates avatar cypranowska avatar ddwooten avatar deto avatar diyadas avatar eseiver avatar iamciera avatar jljones avatar jnaulty avatar katyhuff avatar kbarbary avatar malegro avatar mikofski avatar mitchnegus avatar nhejazi avatar qingkaikong avatar rachelslaybaugh avatar rainwoodman avatar rlbarter avatar rossbar avatar rtpavlovsk21 avatar staeiou avatar swanson-hysell avatar thjoshi avatar timhowes avatar tkelman avatar

Stargazers

 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  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  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  avatar  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  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

berkeley's Issues

Request for Docker/Singularity session

I'd like to request a session on Docker and Singularity.

In particular, I'm interested in understanding how to manipulate images if you don't have the original Dockerfiles, and I'm interested in Singularity for cluster computing reasons.

Visualization with d3.js

Hi, I'd be happy to co-lead a session on d3. Coming from geography, I could put an emphasis on maps, but not necessarily.
Caroline is looking for a co-leader...?

Move gh-pages branch into a /docs subfolder of master branch

The master vs. gh-pages branch has long been a complicated thing for people to figure out and switch between. GitHub pages now supports being built from a /docs subfolder in a master branch. Any thoughts on refactoring the folders in the master branch into something like /code and gh-pages in /docs ?

Hacking OSes: Unixification and GNU-ization (a.k.a. OS cross-breeding?)

As a digression from #108. Warning: just a brainstorm here, the idea may be too crazy.

One obstacle in hacker-within is that people joining the sessions are often having vastly different environments, experiences, and even OSes. And unavoidably, experiences on some topics might not be uniform across different OSes (e.g. bash, make, docker, CI, etc.) In some situations it is also unavoidable for beginners to find themselves needing to migrate to the UNIX world in certain fields. So the idea of this topic is to help these people to turn their OS into a UNIX/GNU machine (more on GNU later.)

Ideas:

  • Windows
    • Cygwin (native but limited)
    • Windows Subsystem for Linux (64-bit only, has system call overhead)
    • Install Ubuntu using Hyper-V (64-bit and the "Pro-variants" of Windows only, lowest overhead.)
    • Other VM solutions (may cost $, more overhead)
      • may also mention hacking VMWare to run macOS in a virtual machine
  • macOS
    • macOS is already UNIX, but point out differences (e.g. BSD variant, GPLv2 limitations, etc.)
    • GNU-ize : because of the limitation of GPLv2, macOS shipped with older GNU tools (e.g. sed, make, bash) or replace them with non GNU tools (fake gcc, etc.), fortunately through brew (or macports), newest GNU tools can be installed. The goal is to minimize the difference between macOS and Linux, and hence people can develop on macOS but deploy on Linux (majority of the clouds and virtually all supercomputers)
    • other tricks is to not keeping the OS being the latest release to be able to use some tools (e.g. valgrind, Intel's tools) that aren't updated immediately after an OS launched.
    • in brew, override default compilers to use the GNU's variants (rather than clang)
    • VMs could be mentioned too
    • Hackintosh: this is mentioned because beginners might not have a Mac. Migrating to Linux means they are going to lose most of the propriety tools they need. macOS can be a sweet spot of being UNIX but with many commerical appications avaiable. But it can't run on their existing hardware so hackintosh is needed if they don't want to buy a new machine, or just want to get a taste of it first. Making it working can be challenging or impossible though, depending on the hardwares.
    • Darwine and friends: for those who need to migrate from Windows to macOS, Darwine could be helpful. See below for Wine.
  • docker: it is an alternative way to run UNIX/Linux applications on Windows and Mac. They uses hypervisor technology to minimize overhead. This is the ultimate way to done away the differences between Windows, macOS and Linux, not to mention very useful on Linux as well.
  • Linux
    • Wine: while Linux being Linux, there's no need to modify it to get the UNIX/GNU experience, Wine could be helpful for those needing to migrate from Windows to Linux. It is a compatibility layer to translate the system calls of an Windows application to make them run natively on a Linux host (WSL steal this idea to run Linux application natively on Windows.) It ain't perfect though, and there's a long list showing which Windows applications might be run using Wine.
    • VM solution also avaiables here to install Windows and macOS
  • Other interesting cross-breeding:
    • running Linux alongside Chrome OS (meaning one could buy a cheap Chrome OS mahcine if they want to buy a Linux machine.)
    • Ubuntu Phone: there's a limited no. of Android phones/tablets that can install Ubuntu. Also a good candidate for cheap Linux machine.

Slack invite mechanism for people who don't have berkeley.edu emails

Since we have some community members who don't have formal Berkeley affiliations. I've seen other slack channels do this where you can request access and a moderator confirms yes you're a real person to approve it, but I'm not sure where in the slack settings or what other steps you need to do to enable that.

Willing to teach: ImageMagick

Upvote if interested?

I know a very a little amount, but oddly useful things, like cropping and annotating images from the command line (which can be used to process 100s of images in seconds, if that's your thing) and looping gifs. This would take a fair amount of effort to prepare as a tutorial, so I'd like to judge interest before committing.

IPython talk

I realize that this is slightly last-minute, so I do apologize...

For the IPython talk on February 25, would it be possible to go over some of the complete and total basics of the IPython notebooks (creating one, launching it in-browser, etc.)?

@minrk @takluyver

can the Cloud Working Group help simplify the install for Jupyter+NLTK for the Oct 11 demo?

The installation instructions for NLTK+Jupyter for the October 11, 2016 THW session are confusing and difficult and assumes a lot of prior knowledge about how to set up and install things like Java, and anaconda, and... lots of stuff!

Maybe the Cloud Working Group can help?

Installation
We are using this Jupyter notebook in the thehackerwithin/berkeley repo, master branch, nltk folder.

For installation of Python and NLTK follow these instructions

If you installed anaconda:

conda install nltk

Otherwise:

pip install nltk

Lastly, the NER wrapper requires the Java Stanford NER here: Note: do not download the extension, just Download Stanford Named Entity Recognizer version 3.6.0

Anyone feel strongly about submodules?

Working on my talk for this week's meeting, and doing most of the demos in a separate repo since I'm using an actual C library as an example. I'm thinking of adding it as a submodule under an appropriate folder here. Anyone opposed to that plan, if I put in a README comment explaining how to make git do the right thing?

[suggestion] pandoc for academic writing

Hi, not sure if this will be of interest in general for the group. pandoc is already involved in academic writing for example as the backend of rmarkdown in R, and ipython notebook in Python; and also Authorea which is an alternative of ShareLaTeX and Overleaf.

pandoc base on the markdown syntax, with extensions such as raw html and raw LaTeX, and is a program that input and output md, docx, tex, html, epub, etc.

I'm kind of a heavy user and contributor of pandoc. I'm not sure if I'm the right person to give a talk though (I'm a newbie here). The creator of pandoc is a Berkeley professor. I could contact him and see if he's interested in giving the talk. But the more important question is if the audiences will like it.

2017 Feb 7th discussion "introduction to python"

Co-leaders:

  • We shall get together this week (e.g. on Thursday) to decide on the materials and logistics.

  • Some jump start material is at http://swcarpentry.github.io/python-novice-inflammation/; but it is a four hour lecture. We can't do that much.

  • We shall spend some time setting up a Python distribution for the attendees. (e.g. anaconda) A GUI is useful, so Jupyter notebook.

For the actually 'Introduction to Python programming', a few things that popped into my mind are:

  • What is computer programming? How does it differ and assimilate with mathematics?

  • The confused equal sign. L-value and R-value.

  • Identity of objects, internal state and immutability

  • Functions & Recursion

  • Control structures. Conditionals and Loops. -- How does this fit into a functional perspective of programming?

  • Dealing with Tensors (Arrays)

  • Strings and their representations, encoding, unicode, bytes.

Probably way too heavy for an intro ...

wrong start year for 'previous' posts

website has previous posts listed as '2015-2016', but there are definitely some dating back to 2014. :)

gave a 30-second pass through and couldn't find where to change that, and thus this issue was opened.

some typos in d3 tutorial

hi @cypranowska , thanks for this awesome tutorial, I bummed I missed it.

I found two tiny typos in the tutorial as I was trying to follow it, both in this section:

  • missing closing quotation mark for "height"
  • extra unnecessary curlycue brace in cx function

thanks!

Timing too tight for LaTeX presentation for me on Oct 7

Hi @katyhuff — So when I signed up for giving the LaTeX presentation, I hadn't realized how many deadlines for postdoc positions, grants and conferences were going to appear right at the beginning of October.

@jljones @paciorek would you be ok moving to another week? If not, I don't think I will be able to help prepare a talk with ya'll…But, I will do mini lightning talks on the more foundational/theoretical aspects of tex/LaTeX once my plate clears up a bit (since that's what I'd expected to cover… e.g., brief history of font formats, what metafont is, what TeX vs. LaTeX are, the glue and box model, &c.).

@stefanv, @rossbar or @chick are any of you able to swap (assuming @jljones and @paciorek can swap, of course)?

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.