GitHub Classroom now supports deadlines and class rosters

Nathaniel Woodthorpe spent his summer as an Engineering Intern working on GitHub Classroom alongside the Education Team. In this post, he'll share the features and updates he worked on for thousands of teachers and students.

Updates to GitHub Classroom

Teachers can now use GitHub Classroom to set deadlines, track student accounts, and more. Here’s how to use these features in your course and set them up for the first day of class.

Insight into student progress with deadlines

Track student progress leading up to a due date with assignment deadlines. Deadlines fetch the latest commit SHA on the default branch at the time of the deadline, and displays this to the teacher as a “submission”.

View student submissions

If students try to modify previous work, they'll also modify this SHA on GitHub. The submission SHA professors have will then become invalid, alerting them to the changes.

Want students to keep working for partial credit? In this solution, students can work after a deadline. Adding commits on top of an SHA doesn't modify its base.

Easier course set up with Classroom rosters

Classroom rosters provide teachers with a snapshot of course activity at a high level, and an easier way to connect student names with GitHub usernames.

Add student information to Classroom rosters

When a teacher creates a classroom, they have the option of entering student information—email addresses, student numbers, or any other identifying piece of information.

If they haven't already, students can add their personal or contact information when accepting a Classroom invitation, creating a link between their work and their online identities.

And a few more improvements

In addition to these two features, we've shipped some exciting updates this summer. Classroom now has short URLs for assignment invitations, improved assignment views, DataDog instrumentation, and new performance improvements.

Summer internships at GitHub

At GitHub, I got to help improve Classroom and grew as an engineer in the process. Thanks @johndbritton, @tarebyte, @mozzadrella—and everyone else who mentored and worked closely with me.

In two months, I’ll start at GitHub as a full-time Platform Engineer. Though I'll be on another team, I’ll continue to help shape Classroom into an even better experience for the thousands of students and teachers who use it.

Want to build great things together next summer? Applications are opening soon for summer 2018 internships in engineering, data science, marketing, and more.

Sign up for updates

Get ready for fall with the new GitHub Bundle

Whether you need some back to school gear or a new note-taking sidekick, we've got you covered with the GitHub Bundle—available now in the GitHub Shop. This collection has everything you need to stay organized and look good doing it. The best part: It's super discounted.

Buy the Bundle

One bundle. All this gear.

Every bundle comes with these six items for $55 ($20 off the regular price):

  • A 100% cotton shirt featuring your friendly robot sidekick, Hubot
  • A 10" x 8.5" lined notebook with Hubot on the cover
  • A GitHub ballpoint pen
  • A 100% cotton "Pull Requests Welcome" tote bag
  • A 532 ml/18 oz Octocat water bottle with space for your GitHub username
  • A 10 pack of assorted Octocat stickers

GitHub Bundle

Hubot-Shirt

Get a bundle while supplies last!

Learn more

Introducing embedded code snippets

Your team can get more done when they have all of the information they need in one place. Now, you can see helpful references in issues you're already working in (or start a new issue) with embedded code snippets. Include the code snippets that will push your projects forward without making your team leave the conversation.

You'll just need the permalink to specific lines you want to reference. Then, you can paste the code snippet into the place it will be most helpful.

Paste the snippet into a conversation

To add a code snippet: select the lines you want to reference, open the inline toolbar, click Copy permalink, and paste it anywhere.

snippet-from-permalink-for-blog-v2

Open a new issue

You can also use the toolbar to open a new issue when you select the code by clicking Open new issue.

create-issues-from-code

Updates to GitHub Terms of Service are in effect

Earlier this month, we asked for your feedback on a new set of changes to our Terms of Service and Corporate Terms of Service. You responded overwhelmingly! Thank you so much to everyone who commented and opened issues or pull requests. The Terms of Service that you helped us create is now in effect.

Your feedback

During this comment period, you opened 45 issues and 17 pull requests, helping us fine tune and clarify a bunch of our policies. The updates we made based on your feedback are documented in the "Community Feedback" section below.

If you missed out on this comment period, check out the Site Policy repo README and Contributing Guidelines to find out how you can participate. Watch the repo to keep an eye out for future updates.

An overview of changes to our site Terms

  • In our last blog post, we told you about the changes we were making to our Terms of Service, Corporate Terms of Service, Business Plan Addendum, and Amendment to GitHub Terms of Service Applicable to U.S. Federal Government Users. We kept those changes, but some of the language may have been tweaked, based on your feedback.

  • Community Feedback: Thanks to your feedback, we made a number of changes to the terms, for example:

    • Clarifications in our new Private Repositories section
    • Updates to the "Federal Government" Amendment
    • Updates to the new Publicity section in the Corporate Terms of Service
    • Multiple typo corrections and grammar fixes

We also received some great ideas that we couldn't implement in this comment period. We expect to address those them in the next few months.

What this means for you

The new Terms of Service are in effect as of August 7. You can accept them by continuing to use GitHub. Thank you again, you've helped us make our Terms better. Please let us know if you have questions about the new Terms or if you would like to contribute to our policies.

GitHub for Unity 0.16-alpha released

$GitHub for Unity 0.16-alpha

We announced GitHub for Unity at the Games Developer Conference back in March and open sourced it at Unite Europe in June. Thanks to our contributors and more than a month of effort, version 0.16-alpha is now available.

Download the latest release

Highlights from the release notes

Support for Unity 2017

GitHub for Unity now works with the latest Unity 2017 release.

Publish new repositories

Now you can publish repositories to GitHub without leaving the comfort of Unity.

You can now publish repositories in GitHub for Unity

Delete old branches

Branching is a safe and easy way to introduce new features, work on bug fixes, or experiment with that idea you had in the shower.

Whether your branch is meant for merging or just sharing with a teammate, you may want to delete it at some point. Now you can without switching to the command line or googling "How do I delete a Git branch both locally and remotely?".

Delete old branches in GitHub for Unity

Special thanks to @CapnRat for leveling up the authentication workflow with github-for-unity/Unity/pull/58. You can now use Enter / Return as confirmation keys when you're in the authentication flow.

Download the latest release of GitHub Unity, view the full release notes—or contribute back to help us reach version 1.0. Your feature requests, bug reports, and pull requests are all welcome. Onwards!

Innovating in the liberal arts: code as language at Bard College

Bard College is not a technical research university. In fact, when students arrive on campus, most say they’ve had no experience with computer science.

Professors Keith O’Hara and Sven Anderson aim to change this during students' first week on campus. Every student starts their liberal arts experience with the Language and Thinking program in which O’Hara asks them to think, express ideas, and create an artifact with code.

Anderson and O’Hara’s novel pedagogy makes programming accessible and appealing to philosophy majors and poets. Here are three of their methods to try with your nontechnical students.

"The mathematician, like the poet, works only slightly removed from pure thought-stuff. He builds his museums in the atmosphere, from atmosphere, creating by toil of the imagination."—Fred Brooks, mathematician

Learn by remixing, with your peers

Keith introduces his class to the world of code by using JS Bin to remix HTML pages. Then students build confidence by seeing the direct output of their changes as they work. First they change a link, then the stylesheet, then work up to adding their own graphics. In the first workshops, they also learn how to use GitHub to host media files from fellow students.

Code to express yourself

We can use code to speak to machines, to each other, and to the world around us. To prime students to think about these complex relationships, O’Hara points to the first chatterbot ELIZA, a parody of a psychotherapist as a human-machine communication system. Humans input their thoughts and feelings, the machine responds to their input, and the relationship blooms out of the design of the software.

In a second workshop, students write algorithms to generate poetry, make a robot sing and dance, or create virtual fish for a group fish tank.

Computer-generated poetry

In these workshops, Keith provides clear and functional code for students to customize and enhance.

In these coding studios, students were exposed to how computing can be the ultimate medium—the meta-medium—allowing us to express ourselves in new ways with motion, sound, graphics, and text.

Take it offline: manual link-building

In the first assignment, Keith asks students to collect and share URLs from a free-write. To help them understand how link structures work, he gives students balls of yarn. Then they toss yarn around the room to show connections between their sites.

Later, they exchange wooden nickels to explore the algorithm that powers Google Search, sharing their “money” with those the sites they link to and an instructor who further divvies up the pot.

The wooden nickels act as currency for power or authority; the exchange of these nickels simulated how power is distributed ad accumulated in the network.

Wooden nickels exchanged in class

Programming across the curriculum

What is the impact of these creative assignments? And why would Bard implement a computing element in their orientation?

Keith’s answer: to change attitudes towards computer science. To make significant strides in the diversity of computing, we need to connect computing to other disciplines, like art and biology.

First impressions are critical, and we expect that this brief exposure to computer science will have its most signicant impact on students when they make decisions about whether to engage computing in courses and employment opportunities. An increased familiarity with computing may allow them to entertain it as part of a viable pathway for their future.


Learn GraphQL with GitHub

Make the switch from REST to GraphQL with our webcast and online training course.

Learn how to migrate to GraphQL with GitHub

Webcast: Migrating from REST to GraphQL

Join GitHub Platform Engineer Mark Tareshawty and Trainer Matt Desmond on August 8th at 10am PST. They'll discuss how GraphQL represents a giant leap forward in the world of APIs. As a significant departure from the REST API, GraphQL requires some not-so-subtle shifts in the way we think about consuming and altering data.

In this webcast, we'll help you transform your REST calls into precise GraphQL queries. You'll also learn how to think about data in GraphQL and how to combine multiple REST calls into a single GraphQL query.

Sign up for the webcast

On Demand Training: Introduction to GraphQL

Before the webcast, you can also explore Introduction to GraphQL—a new, on-demand course from our Training Team. The course walks you through building a GraphQL query and doing a simple mutation with the GraphQL explorer.

Take the course

Introducing seven new apps to GitHub Marketplace

marketplace-monthly-blog-image

Whether you’re working on an open source project or building a software company, chances are you can simplify your work with GitHub Apps. In May, we launched GitHub Marketplace—a place where you can easily discover, purchase, and integrate new tools that customize your workflow. Today, we’re launching seven new apps in Marketplace and four new categories: Dependency Management, Localization, Security, and Time Tracking.

Code quality, Code review

Better Code Hub provides development teams with immediate, relevant feedback on code quality. It checks a code base against ten guidelines for maintainable software, delivering actionable recommendations and helping your team get to a shared definition of done. A score of ten out of ten indicates you’re performing among top development teams within the industry.

Code Climate provides automated code review, analyzing every commit, branch, and pull request for complexity, duplication, security, and more. It also combines line-by-line test coverage reports, technical debt assessments, and style checks in every pull request so your team merges only clear, maintainable, and well-tested code.

Coveralls helps teams deliver code confidently by providing test coverage history and statistics to show which parts of your code aren’t covered by your test suite. It works with your CI server to sift through new code and reveal changes in overall coverage. Coveralls can also stop deployments that contain newly untested code to protect your live application.

StyleCI is a PHP coding style service that automatically analyzes the code you push to GitHub. If something is amiss, it will immediately notify you through the GitHub Status integration. You can also configure StyleCI to automatically create a pull request with fixes.

Dependency management, Security

Gemnasium monitors project dependencies and alerts you to updates and security vulnerabilities, providing information about all of your repositories in a single interface.

Localization

GitLocalize is a continuous localization tool built for communities and teams that want to simplify their workflow when translating content. GitLocalize automatically syncs with your repository so you can keep your workflow on GitHub. It also keeps you updated on what needs to be translated.

Project management, Time tracking

WakaTime provides you with metrics, insights, and time tracking automatically generated from your programming activity. Compete with your friends on private leaderboards, and improve your productivity with your own personal dashboard.

Whether you’d like to automatically build and test your code as you push it to GitHub, measure performance, track errors, or manage projects, GitHub Apps give you flexibility across your development process. And our ecosystem is always growing. Discover new tools on GitHub Marketplace and start using them in minutes.

Scholarships and accessibility at GitHub Universe

Update August 14, 2017: The deadline for scholarship applications has passed. Stay tuned for updates on upcoming GitHub Universe events.

GitHub Universe is approaching, and this year, we're returning once again to Pier 70 in San Francisco October 10-12. As part of our efforts to make our conferences inclusive of people from all walks of life and enrich the experience for everyone, we're excited to offer free tickets through scholarships and community partners.

  • Community partners: GitHub's Social Impact Team is joining forces with several non-profits and meet-up groups that focus on increasing the number of people in the tech industry who come from underrepresented backgrounds
  • Individual scholarships: The deadline for individual scholarships has passed

Please note that none of our Universe scholarships include travel or lodging expenses. A scholarship only covers the cost of the conference ticket. Scholarship recipients are responsible for arranging and paying for all their own travel and lodging expenses to, from, and within San Francisco.

Scholarships aren't the only one way we’re making GitHub Universe more accessible. This year, attendees can also expect:

  • Gender neutral bathrooms
  • Quiet/Meditation room
  • Nursing/Baby Care room
  • Closed captioning at all talks
  • ADA compliant venue spaces
  • Fresh water, treats, and an onsite relief area for service or therapy dogs

We hope to see you at Pier 70!

Build a game in 13kB or less with js13kGames

Js13kGames - JavaScript Coding Challenge

If you’ve got time August 13th - September 13th, challenge your game development skills in js13kGames—a game jam for HTML5 game developers.

Like most game jams, participants make games based on a secret theme announced at the start of the competition. Unlike most game jams , submissions are limited to just 13 kilobytes after minification and compression. That doesn’t sound too challenging until you realize that a JavaScript game engine like Phaser is 815kB minified, and the image below is 13kB.

13kB image of Hubot

If you’re thinking this constraint would stifle creativity and limit playability, you’re mistaken. Check out some examples below as js13kGames organizer Andrzej Mazur (@end3r) looks back over some attention-grabbing entries from previous years.

2012

The premier event kicked off and challenged participants to create a game based on the theme Number 13. The winning entry was a mouse accuracy and agility game called SpacePi by @jackrugile that revolves around the defense of 13 bases.

SpacePi by @jackrugile

It was the first js13k entry I started playing and couldn't stop. I spent half of the day sucked to the monitor by the awesome gameplay, beautiful visuals, and overall feel. I sent the link to my friends, and a few hours later they were still complaining they couldn't stop playing!

2013

This year’s theme was Bad Luck, and @jackrugile won for the second year in a row with Radius Raid—a space themed shoot 'em up where you blast away unrelenting enemies before they destroy you.

Radius Raid by @jackrugile

The amount of polish and attention to detail is still impressive, even after so many years have passed.

2014

2014’s theme was The Elements: Earth, Water, Air, and Fire.

Competition was tough. Ultimately, @Siorki took first place with Pest Control : Weasels—an arcade puzzle game similar to Lemmings (but with a twist).

Pest Control : Weasels by @Siorki

The overall quality of the entries in 2014 went through the roof. I really enjoyed the mayhem and visual effects of Extreme Mini Massacre, and was impressed by AP11, which looked like a proper GTA1 inspired game one could made in 13 kilobytes.

2015

The theme for 2015 was Reversed.

In Behind Asteroids — The Dark Side by @gre, you play a classic game of Asteroids, but don’t control the ship! @remvst placed twice in 2015—in fifth with Taxi Drift and fourth with It's Raining... Boxes?!

Two games in the top 5 out of 160 entries is really impressive,” according to Andrzej.

Behind Asteroids - The Dark Side by @greweb

I was in love with the style of the main character of Captain Reverso, played RoboFlip, deeply enjoyed Road Blocks, and the winning entry Behind Asteroids showed other devs that you can actually use shaders within the limit and end up with incredible effects like a shadow of the player approaching the machine.

2016

As the name of the top two entries from 2016 (Evil Glitch and Glitch Buster) might suggest, last year’s theme was Glitch. Even after the competition the developers (@agar3s and @remvst respectively) continued work on their entries and published the games on Steam.

Evil Glitch by @agar3s

Glitch Buster by @remvst

It's great to see the ideas that were born during the compo end up as full-blown games widely available to the public. They’re both available as prizes this year, so they can serve as an example of what can be achieved if you really believe in what you're doing.

2017

The theme for this year will be announced on August 13th. Be sure to check out the js13kGames website for more information and resources to help get started. You'll find micro game engines and boilerplates, the latest minification tools, audio and video, tutorials, and more!

Commit to adventure with the Questocat tee

Inspire your inner adventurer with our fearless Questocat by your side. From merging old pull requests to exploring new lands, you'll always be ready to commit to adventure—just look at the back of your shirt if you need a reminder. This vintage game-inspired design is available now in the GitHub Shop.

Get your Questocat tee

github-questocat-2017

Adventure over to the GitHub Shop to get one before they're gone. And pick up a Piratocat or Social Coding shirt for just $17.50 as part of our Closeout Sale while you're there!

We shot all Questocat photos at Brewcade SF. Check out upcoming Brewcade events.

Quickly review changed methods and functions in your pull requests

The biggest barrier to code review is often time, but there's a new way to easily understand how changes impact your code. Now you can navigate to changed methods and functions right from your pull request file finder.

Changed methods and functions

Searching the file finder for a method or function in a Go, JavaScript, Ruby, or TypeScript file will provide you with a timeline-style view of the results, so you can skip to the most impactful parts of a pull request. Check out the documentation to learn more.

We hope this helps make your review process even more efficient. Let us know if you have any feedback—or if there are other search functions you'd find useful using our help form.

Webcast recap: What data science can learn from open source development

Last week, Solutions Engineering Manager Aziz Shamim sat down with Datascope Analytics’ Jess Freaner to talk about how data scientists are uniquely positioned to adopt best practices from both science and software—and how her team is using open source practices to enhance collaboration and results. In case you missed it, here's a recording of the webcast, along with a few of our takeaways.

Highlights

Transparency and openness are essential to Datascope’s success.

Feedback and collaborative knowledge-sharing are hallmarks of successful open source projects. Similarly, transparency and constant communication with clients is key to the success in data science according to Jess. Other practices that cross over from open source include frequent check-ins and reviews, shared documentation, and “reference code” that keeps the Datascope Team and clients on the same page.

Data scientists can benefit directly from open source.

At Datascope, teams contribute regularly to open source projects. They also maintain and develop projects of the own, including Textract, a library that extracts text from difficult documents to work with, such as PDFs, and traces, “a library for dealing with unevenly spaced time series that’s quite handy when efficiently working with sensor data.” Building on the knowledge shared by industry peers, Datascope can move their open projects beyond what could they could have accomplished in a vacuum.

Data scientists can start using open source practices today.

Jess and Aziz also shared four key areas of focus for teams wanting to get started with open source. In short, open source can help teams be more iterative, modular, hypothesis-driven, and human-centered. Integrating these concepts into your data science practice can help your team solve problems in a more holistic, collaborative, and agile way.

Hear more from Jess and Aziz in the recording or browse other GitHub resources.

Making it easier to grow communities on GitHub

Open source is all about building communities around shared challenges. Thanks to some subtle (and not so subtle) improvements in the past few months, it's now easier to make your first contribution, launch a new project, or grow your community on GitHub:

Contributor badges

One of the best ways to grow your community is to welcome new contributors. To make it easier to identify when a user is new to your project, maintainers now see a "first-time contributor" badge when reviewing pull requests from users that have not previously contributed to the project.

screen shot 2017-07-24 at 3 14 45 pm

Once the pull request is merged, you will see a "contributor" badge on the user's comments. In addition to being a badge of pride for contributors, the additional flag can also help maintainers better separate signal from noise in lengthy or heated discussions. This information is also exposed via the GraphQL API as the issue, pull request, or comment's authorAssociation.

Easier open source licensing

You've been able to select an open source license template for a while. Now, when you click the "add a license" button from your community profile, or begin adding a LICENSE file via the web editor, you'll be presented with a new license picker:

Open source license picker

The license picker offers a brief overview of the license as well as the full text, and allows you to customize any applicable fields before committing the file or opening a pull request.

Simpler email privacy

Joining a community and making your first contribution can be intimidating. For one, not everyone wants their personal information to be public, often inadvertently the default workflow for many Git online tutorials.

While you've been able to hide your email while performing web-based commits for a number of years, and block pushes that expose your email address more recently, now, when you check the "keep your email address private" option in your email settings, we'll also prevent your email from displaying in places like on your profile, in search results, or via the API so that you can contribute more confidently.

email privacy settings

We've also made "keep my email private" the default for new users going forward, and regardless of your email privacy settings, your email address will never be visible to logged out users.

Better blocking

Not every open source interaction is a positive one. If you navigate to a repository and someone you've blocked is a prior contributor, we'll show you a warning so that you can make an informed decision if you'd like to contribute to the project or not:

blocked prior contributor warning

In addition to repositories you own, blocked users are now no longer able to comment on issues or pull requests you author in repositories owned by organizations or other users.

We hope these improvements will help you make your first contribution, start a new project, or grow your community. If you have any questions, check out the building a strong community documentation or get in touch.

Introducing Soft U2F, a software U2F authenticator for macOS

Soft U2F - Software U2F authenticator for macOS

In an effort to increase the adoption of FIDO U2F second factor authentication, we're releasing Soft U2F—a software-based U2F authenticator for macOS.

Soft U2F currently works with Google Chrome and Opera's built-in U2F implementations, as well as with the U2F extensions for Safari and Firefox.

When a site loaded in a U2F-compatible browser attempts to register or authenticate with the software token, you'll see a notification asking you to accept or reject the request. You can experiment on Yubico's U2F demo site:

U2F authentication with Soft U2F

And as of today, you can download the Soft U2F installer and configure it for use with your GitHub account.

Interested in learning more? Head over to our Engineering Blog and read more about the motivations for the project plus the security considerations of hardware vs. software key storage.