-
Notifications
You must be signed in to change notification settings - Fork 2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
BSKY
committed
Nov 27, 2019
1 parent
b3d0461
commit e4045e6
Showing
62 changed files
with
6,193 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
.docusaurus/ | ||
build/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
# Website | ||
|
||
This website is built using Docusaurus 2, a modern static website generator. | ||
|
||
### Installation | ||
|
||
``` | ||
$ yarn | ||
``` | ||
|
||
### Local Development | ||
|
||
``` | ||
$ yarn start | ||
``` | ||
|
||
This command starts a local development server and open up a browser window. | ||
Most changes are reflected live without having to restart the server. | ||
|
||
### Build | ||
|
||
``` | ||
$ yarn build | ||
``` | ||
|
||
This command generates static content into the `build` directory and can be | ||
served using any static contents hosting service. | ||
|
||
### Deployment | ||
|
||
``` | ||
$ GIT_USER=<Your GitHub username> USE_SSH=1 yarn deploy | ||
``` | ||
|
||
If you are using GitHub pages for hosting, this command is a convenient way to | ||
build the website and push to the `gh-pages` branch. |
23 changes: 23 additions & 0 deletions
23
website/blog/2015-05-22-Infer-on-open-source-android-apps.md.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
--- | ||
title: Infer on Open Source Android Apps | ||
author: Dulma Churchill | ||
--- | ||
|
||
We ran Infer on a few open source Android apps with the aim of finding some bugs | ||
and getting them fixed. Some of those reports got indeed fixed. | ||
|
||
One of the apps analyzed was the search engine | ||
[DuckDuckGo](https://github.com/duckduckgo/android). We found that many database | ||
cursors were not closed. Soon after we reported the issue, a developer | ||
[fixed it](https://github.com/duckduckgo/android/commit/2c2d79f990dde0e44cdbecb1925b73c63bf9141d). | ||
|
||
We also analyzed the popular email client [k-9](https://github.com/k9mail/k-9). | ||
We found a file not closed leak and reported it. Interestingly, a developer | ||
[fixed it](https://github.com/k9mail/k-9/commit/d538278be62687758c956af62ee47c53637d67d8) | ||
by not writing some logging info to the file at all. So Infer helped them to | ||
simplify their code. | ||
|
||
[Conversations](https://github.com/siacs/Conversations) is an open source | ||
XMPP/Jabber client for Android smart phones. We analyzed it as well and found a | ||
file not closed leak, which was also | ||
[fixed](https://github.com/Flowdalic/MemorizingTrustManager/commit/190c57a9a8385f4726c817924b123438af6adc2f). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
--- | ||
title: Collaboration with Spotify | ||
author: Jules Villard | ||
--- | ||
|
||
 | ||
|
||
Working on deploying Infer inside Facebook has taught us how important it is to | ||
have the analysis tool deeply embedded into the developers' workflow; see our | ||
[“Moving Fast with Software Verification” paper](https://research.facebook.com/publications/moving-fast-with-software-verification/). | ||
|
||
Infer runs as part of our continuous integration (CI) system, where it reports | ||
issues on code modifications submitted for review by our engineers. We think | ||
it's great when someone can hook up Infer to their workflow, and we're working | ||
with several other companies to help integrate Infer into their own CI systems. | ||
We've come far enough in a collaboration with Spotify to talk about it now! | ||
|
||
Last July, shortly after Infer was open-sourced, we started talking with the | ||
Marvin (Android Infrastructure) team at Spotify. They were interested in using | ||
Infer on their Android app, but it did not work with their build system. They | ||
were using the [Gradle](http://gradle.org/) build system, but Infer's deployment | ||
within Facebook is done using a different build system, Facebook's | ||
[Buck](https://buckbuild.com/); we had only an initial, basic integration with | ||
Gradle, which did not work with Spotify's app. A Spotify engineer, Deniz | ||
Türkoglu, made improvements to our Gradle integration, which he submitted as a | ||
[pull request](https://github.com/facebook/infer/pull/131) to Infer's codebase, | ||
which is hosted on [GitHub](https://github.com/facebook/infer/). | ||
|
||
Then, in November 2015, two of our engineers, Dulma Churchill and Jules Villard, | ||
traveled to the Spotify office in Stockholm to attend a Hack Week there. After | ||
running Infer on the Spotify app, we discussed the analyzer reports with Spotify | ||
engineers, and we agreed that they identified potential problems in the code. | ||
Infer is now running as part of Spotify's CI system, and here is a quote from | ||
Deniz on Spotify's perspective on Infer, which we include with his kind | ||
permission. | ||
|
||
> “At Spotify we are continuously working on making our codebase better, and in | ||
> the Android infrastructure team we use a lot of tools: static analyzers, | ||
> linters, thread/address sanitizers, etc. In our quest to make our code even | ||
> better, we started using Infer. Infer found several legitimate issues that | ||
> other tools had missed. The Infer team was also very helpful in following a | ||
> few false positives that we encountered, and we now have it running on our | ||
> build servers. | ||
> | ||
> Infer is a great add-on to a company's toolbox. It's not intrusive — you can | ||
> simply add it to your flow and it will tell you where you forgot to close that | ||
> cursor or leaked that context. If you find a false positive, just report it | ||
> or, even better, make a PR. With more users, it will just keep getting | ||
> better.” | ||
This collaboration was truly a two-way street: Not only does Infer find issues | ||
in Spotify, which helps improve its Android app, but feedback from Spotify led | ||
to several improvements in Infer, including resolution of false positives and | ||
improvements of Infer's UI and integration with Gradle. The better Gradle | ||
integration will make it easier for other people to run Infer on lots of other | ||
apps around the world. | ||
|
||
We're excited to collaborate with other companies and individuals to help make | ||
the world's software better. If you are interested in integrating Infer into CI | ||
or otherwise hearing about our experience, [drop us a line](/support.html)! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
--- | ||
title: Talk at Mobile@Scale London | ||
author: Dulma Churchill | ||
authorURL: | ||
authorFBID: | ||
--- | ||
|
||
<iframe width="560" height="315" src="https://www.facebook.com/plugins/video.php?width=560&height=315&href=https%3A%2F%2Fwww.facebook.com%2Fatscaleevents%2Fvideos%2F1708059786133785%2F&show_text=0"></iframe> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
--- | ||
title: Open Sourcing Infer, 1 Year On | ||
author: Jules Villard | ||
--- | ||
|
||
It's been a little over a year ago since we | ||
[open-sourced Infer](https://github.com/facebook/infer/commit/b8982270f2423864c236ff8dcdbeb5cd82aa6002) | ||
on 9 June 2016! | ||
|
||
The Infer GitHub repo has seen a lot of activity since then: | ||
|
||
- 5350 stars on [GitHub](https://github.com/facebook/infer) | ||
- 339 [issues](https://github.com/facebook/infer/issues) opened | ||
- 44 [pull requests](https://github.com/facebook/infer/pulls) by 15 contributors | ||
- 10 [releases](https://github.com/facebook/infer/releases/) | ||
- 5 [external companies](/index.html#who-uses-infer) officially using Infer (add | ||
yourself | ||
[here](https://github.com/facebook/infer/edit/gh-pages/_data/powered_by.yml)) | ||
|
||
Infer was presented at 13 academic and tech international conferences, and at 8 | ||
universities around the world! | ||
|
||
Amongst these was | ||
[Mobile@Scale](https://code.facebook.com/posts/1566627733629653/mobile-scale-london-recap/) | ||
in March 2016, where we | ||
[announced](/blog/2016/03/17/collaboration-with-spotify.html) our collaboration | ||
with [Spotify](https://www.spotify.com/). Around the same time, | ||
[Uber](https://www.uber.com/) presented at | ||
[Droidcon SF](http://sf.droidcon.com/) their | ||
[Rave](https://github.com/uber-common/rave) + Infer combo to | ||
[help their developers move fast](https://speakerdeck.com/lukestclair/frameworks-for-coding-confidence), | ||
and open-sourced a | ||
[Gradle plugin for Infer](https://github.com/uber-common/infer-plugin). | ||
|
||
Infer has also been used to introduce static analysis to students in university | ||
courses, including at [UCL](http://www.ucl.ac.uk/), | ||
[Imperial College](http://www.imperial.ac.uk/), and | ||
[Queen Mary University](http://www.qmul.ac.uk/). | ||
|
||
In May, [Reason](http://facebook.github.io/reason/) was released publicly and, | ||
simultaneously, Infer became the first ever project to | ||
[use Reason](https://github.com/facebook/infer/commit/885beed0b14e8ef4b6e8a0aa3f4239e60c4e567b)! | ||
Reason is a new syntax for [OCaml](http://ocaml.org/), the programming language | ||
in which Infer is written. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
--- | ||
title: Video of CurryOn Rome talk. Move Fast to Fix More Things | ||
author: Peter O'Hearn | ||
--- | ||
|
||
This is the video for Peter's talk at the | ||
[Curry0n Conference](http://www.curry-on.org/2016/) in Rome in July. CurryOn is | ||
a conference series where academia and industry get together to exchange ideas | ||
about Programming Languages technology. | ||
|
||
<iframe width="560" height="315" src="https://www.youtube.com/embed/xc72SYVU2QY?start=110" frameborder="0" allowfullscreen></iframe> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
--- | ||
title: Video of @Scale2016 talk. Getting the most out of static analyzers | ||
author: Sam Blackshear | ||
--- | ||
|
||
Check out the | ||
[video](https://atscaleconference.com/videos/getting-the-most-out-of-static-analyzers) | ||
of Sam's talk from the | ||
[@Scale2016](https://atscaleconference.com/events/main-event) conference in San | ||
Jose this past September. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
--- | ||
title: OCamlFormat open-source released | ||
author: Josh Berdine | ||
--- | ||
|
||
We are pleased to announce the first public release of OCamlFormat. | ||
|
||
OCamlFormat is a tool to automatically format [OCaml](https://ocaml.org/) code. | ||
It follows the same basic design as refmt for | ||
[Reason](https://reasonml.github.io/) code, but for OCaml. In particular, it | ||
works by parsing source code using the OCaml compiler's standard parser, | ||
deciding where to place comments in the parsetree, and printing the parsetree | ||
and comments in a uniform style. | ||
|
||
At Facebook, we currently use this for the OCaml code of | ||
[Infer](https://github.com/facebook/infer) to enable developers to stop thinking | ||
about line breaking, indentation, parenthesization, etc., to minimize stylistic | ||
nit-picking during code review, and to make it as visually obvious as possible | ||
when the parser's interpretation of code does not match the programmer's. We use | ||
this both with integration with editors as well as a pre-commit hook. | ||
|
||
Development is taking place on | ||
[github](http://github.com/ocaml-ppx/ocamlformat). License is MIT. | ||
|
||
See the [github page](http://github.com/ocaml-ppx/ocamlformat) for more info on | ||
installation, documentation, contributing, etc. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
--- | ||
id: getting-started | ||
title: Getting started with Infer | ||
--- | ||
|
||
## Get Infer | ||
|
||
You can use Homebrew (Mac only), our binary releases, build infer from source, | ||
or use our Docker image. | ||
|
||
On Mac (Mojave), the simplest way is to use [Homebrew](http://brew.sh/). There | ||
is a user-provided tap for infer. Type this into a terminal: | ||
|
||
```sh | ||
brew install amar1729/infer/infer | ||
``` | ||
|
||
For Mac pre-Mojave, use Homebrew core: | ||
|
||
```sh | ||
brew install infer | ||
``` | ||
|
||
On Linux, or if you do not wish to use Homebrew on Mac, use our latest | ||
[binary release](https://github.com/facebook/infer/releases/latest). Download | ||
the tarball then extract it anywhere on your system to start using infer. For | ||
example, this downloads infer in /opt on Linux (replace `VERSION` with the | ||
latest release, eg `VERSION=0.17.0`): | ||
|
||
```sh | ||
VERSION=0.XX.Y; \ | ||
curl -sSL "https://github.com/facebook/infer/releases/download/v$VERSION/infer-linux64-v$VERSION.tar.xz" \ | ||
| sudo tar -C /opt -xJ && \ | ||
ln -s "/opt/infer-linux64-v$VERSION/bin/infer" /usr/local/bin/infer | ||
``` | ||
|
||
If the binaries do not work for you, or if you would rather build infer from | ||
source, follow the | ||
[install from source](https://github.com/facebook/infer/blob/master/INSTALL.md#install-infer-from-source) | ||
instructions to install Infer on your system. | ||
|
||
Alternatively, use our [Docker](https://docs.docker.com/engine/installation/) | ||
image: | ||
|
||
```sh | ||
wget -O Dockerfile https://raw.githubusercontent.com/facebook/infer/master/docker/0.14.0/Dockerfile | ||
wget -O run.sh https://raw.githubusercontent.com/facebook/infer/master/docker/0.14.0/run.sh | ||
sh run.sh | ||
``` | ||
|
||
## Try Infer in your browser | ||
|
||
Try Infer on a small example on | ||
[Codeboard](https://codeboard.io/projects/11587?view=2.1-21.0-22.0). |
Oops, something went wrong.