Git Product home page Git Product logo

howto's Introduction

How To Do Things With Computers

Simple guides to foundational tech tasks for Code for America projects.

The guides here serve two purposes:

  1. Code for America software documentation should link here for common tasks like setting up a dev environment or framework. We prefer a tightly-edited, central collection of the most common tasks to everyone re-writing their own versions.
  2. Guides here should be normative, describing the simplest, lowest-friction ways of getting common things done. If your app or library doesn’t work with the directions here, consider whether you can modify your app so that it works rather than making a change to a guide.

Current Guides

  • Python Virtualenv, an isolated working copy of Python which allows you to work on a specific project without worry of affecting other projects.
  • Ruby, for the Ruby programming language and its version manager to install, manage, and work with multiple ruby environments.
  • Node.js, for the Node server-side Javascript framework.
  • Local PostgreSQL, for local installation of the open source object-relational database system.
  • Jekyll, a static website builder that runs Github Pages.
  • Persona, an identity service from Mozilla for building app login/logout.
  • Build Tools, for core software development tools Make and GCC needed by many downstream libraries and installation processes.
  • Basic Shell Commands, for a set of essential commands to use on command line.
  • Discussing Things Using GitHub Issues, a short video on how to use GitHub Issue for discussion (no coding needed!)
  • How to make a good README, a simple guide to making a good README file for your project.
  • Writing good GitHub Issues, how to write good GitHub issues that are clear and accessible to new contributors.

Future Guides

Suggest new guides in the codeforamerica/howto Github repository.

Write code. Not too much. Mostly procedural.

howto's People

Contributors

anselmbradford avatar ascott1 avatar bengolder avatar c-lliope avatar daguar avatar ernieatlyd avatar glassresistor avatar hartsick avatar jeremiak avatar junosuarez avatar migurski avatar monfresh avatar ondrae avatar phae avatar pui avatar rossettistone avatar therebelrobot avatar tmaybe avatar wknowles 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  avatar  avatar  avatar  avatar

Watchers

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

howto's Issues

Spotiflyer

Can't download playlist in spotiflyer

java.lang.Exception: Client request(https://aac.saavncdn.com/951/mSwaQUNvvna4YJ1SJkw23kOvFGPM6yaZGiN19K_320.mp4) invalid: 404 Not Found. Text: "BlobNotFoundThe specified blob does not exist.
RequestId:99992ca6-f01e-0034-6d04-a10eb4000000
Time:2023-06-17T10:14:18.1517401Z"
at com.shabinder.spotiflyer.service.ForegroundService$enqueueDownload$2.emit(ForegroundService.kt:6)
at com.shabinder.spotiflyer.service.ForegroundService$enqueueDownload$2.emit(ForegroundService.kt:1)
at com.shabinder.common.core_components.file_manager.FileManagerKt$downloadFile$4.invokeSuspend(FileManager.kt:54)
at com.shabinder.common.core_components.file_manager.FileManagerKt$downloadFile$4.invoke(Unknown Source:11)
at com.shabinder.common.core_components.file_manager.FileManagerKt$downloadFile$4.invoke(Unknown Source:6)
at kotlinx.coroutines.flow.FlowKt__ErrorsKt$catch$$inlined$unsafeFlow$1.collect(SafeCollector.common.kt:94)
at kotlinx.coroutines.flow.FlowKt__ErrorsKt$catch$$inlined$unsafeFlow$1$1.invokeSuspend(Unknown Source:12)
at h7.a.resumeWith(ContinuationImpl.kt:10)
at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:74)
at io.ktor.util.pipeline.SuspendFunctionGun.access$resumeRootWith(SuspendFunctionGun.kt:0)
at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:17)
at h7.a.resumeWith(ContinuationImpl.kt:33)
at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:74)
at io.ktor.util.pipeline.SuspendFunctionGun.access$resumeRootWith(SuspendFunctionGun.kt:0)
at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:17)
at h7.a.resumeWith(ContinuationImpl.kt:33)
at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:74)
at io.ktor.util.pipeline.SuspendFunctionGun.access$resumeRootWith(SuspendFunctionGun.kt:0)
at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:17)
at h7.a.resumeWith(ContinuationImpl.kt:33)
at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:55)
at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:17)
at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:0)
at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:24)
at h7.a.resumeWith(ContinuationImpl.kt:33)
at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:55)
at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:17)
at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:0)
at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:24)
at h7.a.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:12)
at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:2)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:0)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:14)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:28)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:0)

HowTo develop for older browsers

We just talked about a bunch of different tools and things, and agreed this would make a great HowTo article for this repo.

I don't have anything off the top of my head to start this with.

Write a guide for crafting a good README

Description

We could use a guide to a good README. Perhaps even something copy and pasteable for CfA projects. One was started last year.

screen shot 2015-01-29 at 12 11 57 pm

Important Sections

  • What
  • Status
  • Screenshots
  • Press
  • Why
  • How
  • Install
  • Contribute
  • License

Descriptive issue title

Example of issue template

Description

A clear and concise description of what the issue is about.

Screenshots

Downhill Windmills

Files

A list of relevant files for this issue. This will help people navigate the project and offer some clues of where to start.

To Reproduce

If this issue is describing a bug, include some steps to reproduce the behavior.

Tasks

Include specific tasks in the order they need to be done in. Include links to specific lines of code where the task should happen at.

  • Task 1
  • Task 2
  • Task 3

Running *nix inside a Windows organization?

I wonder if providing a tutorial on lightweight options to running *nix-y stuff inside a Windows-dominated organization would be useful.

I'm bumping up against this concretely in Oakland: I wrote some simple ETL shell scripts that process campaign finance data for the Public Ethics Commission, which should allow them to sync their vendors' data with Socrata automatically and nightly.

The problem is that it's unclear where the best place to run these scripts is. There are no *nix boxes inside the City.

Some potential paths might be:

  • Vagrant/VirtualBox (other other virtualization software)
  • Cloud computing services (Heroku, EC2/Rackspace, Docker)
  • Cygwin (though I think this would create more problems than it would solve)

Would love feedback on how people have addressed these things in the past, and what might make for a useful tutorial.

Related 18F project with dev environment guides - feel free to reuse

Hi Code for America! Over at 18F, a few of us had a similar motivation for writing a few basic guides: we want to make it easier for coworkers and external contributors to work on our projects, so we'd like to link project install instructions to background information about using the relevant language and related tools. It's been helpful to look at this howto project, and I wanted to share what we've come up with so far (still in early stages), to invite you to reuse anything that looks useful (CC0/public domain):

Descriptive issue title

Description

A clear and concise description of what the issue is about.

Screenshots

Downhill Windmills

Files

A list of relevant files for this issue. This will help people navigate the project and offer some clues of where to start.

To Reproduce

If this issue is describing a bug, include some steps to reproduce the behavior.

Tasks

Include specific tasks in the order they need to be done in. Include links to specific lines of code where the task should happen at.

  • Task 1
  • Task 2
  • Task 3

Remember to use helpful labels and milestones. If you use the "help wanted" label, Code for America will promote it widely.

Descriptive issue title

Description

A clear and concise description of what the issue is about.

Screenshots

Frodo

Files

A list of relevant files for this issue. This will help people navigate the project and offer some clues of where to start.

To Reproduce

If this issue is describing a bug, include some steps to reproduce the behavior.

Tasks

Include specific tasks in the order they need to be done in. Include links to specific lines of code where the task should happen at.

  • Task 1
  • Task 2
  • Task 3

Remember to use helpful labels and milestones. If you use the "help wanted" label, Code for America will promote it widely.

Write a guide for crafting good Issues

Description

We could use a good guide for writing useful Issues. Perhaps something copy and pasteable.

The guide could cover a few things:

  1. The important sections of an Issue
  2. Examples of how designers can use Issues
  3. Labels & Milestones
  4. The Civic Issue Finder
  5. Waffle & github-lite

Important Sections of an Issue

  • Description
  • Screenshots / Mocks
  • Code snippets
  • How to Reproduce a bug
  • Which files are relevant

Instructions for using cloud-based dev environments? (Nitrous.io, Cloud9)

A common pain point with CfA applications — particularly for Windows users — is getting them set up locally to either tinker with or deploy to a service like Heroku. Installing all the dependencies can be a pain in the behind.

A number of services for running modern web apps in a cloud-based development environment that runs in your browser are now available, and may provide the easiest path for getting started with CfA project.

Two specific services:

Anyway, just a thought.

Configure datasource for application

Description

Set up datasource to manage the application's data. This should be MongoDB.

Links

LoopBack 4 DataSources

Tasks

Include specific tasks in the order they need to be done in. Include links to specific lines of code where the task should happen at.

  • Set up new datasource with the LoopBack CLI command lb4 datasource
  • Test connection with local MongoDB instance

Add basics of accessing a command prompt on OSX and Windows

I'm finding I need this for the CityVoice documentation — where non-technical users can easily deploy to Heroku without anything beyond the toolbelt, but they do need to know how to access a command prompt.

So I'm adding a stub; might do myself, but would love to know if this scratches someone else's itch.

Descriptive issue title

Description

A clear and concise description of what the issue is about.

Screenshots

Downhill Windmills

Files

A list of relevant files for this issue. This will help people navigate the project and offer some clues of where to start.

To Reproduce

If this issue is describing a bug, include some steps to reproduce the behavior.

Tasks

Include specific tasks in the order they need to be done in. Include links to specific lines of code where the task should happen at.

  • Task 1
  • Task 2
  • Task 3

Remember to use helpful labels and milestones. If you use the "help wanted" label, Code for America will promote it widely.

Descriptive issue title

Description

A clear and concise description of what the issue is about.

Screenshots

Downhill Windmills

Files

A list of relevant files for this issue. This will help people navigate the project and offer some clues of where to start.

To Reproduce

If this issue is describing a bug, include some steps to reproduce the behavior.

Tasks

Include specific tasks in the order they need to be done in. Include links to specific lines of code where the task should happen at.

  • Task 1
  • Task 2
  • Task 3

Remember to use helpful labels and milestones. If you use the "help wanted" label, Code for America will promote it widely.

Add gruntjs installation howto

This howto can be brief and look like this:

  1. Install NPM
  2. From the command line, run sudo npm install -g grunt-cli. Enter your system password and hit return.

The grunt command will now be available globally on your system.

Give fellows team access to this repo?

I put a thread on the Fellows board asking for feedback on running Nix inside Windows shops but it appears the "fellows" team inside the org doesn't have access to it.

Any reason not to give them access? I presume this will be public at some point anyway, no?

(Also happy to move that convo elsewhere, but I figured it made sense here.)

How to point to a particular server to run/view a project locally

Specifically, I need to do this to make edits to the midyear report. I've done it a bunch of times but have since forgotten.
If CfA standardizes reports to the DFD/midyear report model, directions for running these locally to view changes would be helpful.

Thanks!

Descriptive issue title

Description

A clear and concise description of what the issue is about.

Screenshots

Downhill Windmills

Files

A list of relevant files for this issue. This will help people navigate the project and offer some clues of where to start.

To Reproduce

If this issue is describing a bug, include some steps to reproduce the behavior.

Tasks

Include specific tasks in the order they need to be done in. Include links to specific lines of code where the task should happen at.

  • Task 1
  • Task 2
  • Task 3

Remember to use helpful labels and milestones.

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.