This gist shows how to create a GIF screencast using only free OS X tools: QuickTime, ffmpeg, and gifsicle.
To capture the video (filesize: 19MB), using the free "QuickTime Player" application:
| #include <clang-c/Index.h> | |
| #include <cstdlib> | |
| #include <iostream> | |
| /* | |
| * Compile with: | |
| * g++ complete.cc -o complete -lclang -L/usr/lib/llvm | |
| * Run with: | |
| * LIBCLANG_TIMING=1 ./complete file.cc line column [clang args...] | |
| */ |
| #!/bin/sh | |
| echo "What should the Application be called (no spaces allowed e.g. GCal)?" | |
| read inputline | |
| name="$inputline" | |
| echo "What is the url (e.g. https://www.google.com/calendar/render)?" | |
| read inputline | |
| url="$inputline" |
| /* | |
| Copyright 2012-2021 Viktor Klang | |
| Licensed under the Apache License, Version 2.0 (the "License"); | |
| you may not use this file except in compliance with the License. | |
| You may obtain a copy of the License at | |
| http://www.apache.org/licenses/LICENSE-2.0 | |
| Unless required by applicable law or agreed to in writing, software |
| /* | |
| Copyright 2012-2021 Viktor Klang | |
| Licensed under the Apache License, Version 2.0 (the "License"); | |
| you may not use this file except in compliance with the License. | |
| You may obtain a copy of the License at | |
| http://www.apache.org/licenses/LICENSE-2.0 | |
| Unless required by applicable law or agreed to in writing, software |
| /* Base fragment to ensure the parent activity implements a contract interface. */ | |
| public abstract class ContractFragment<T> extends Fragment { | |
| private T mContract; | |
| @Override | |
| public void onAttach(Activity activity) { | |
| try { | |
| mContract = (T)activity; | |
| } catch (ClassCastException e) { | |
| throw new IllegalStateException(activity.getClass().getSimpleName() |
| /* | |
| * Copyright 2012 Google Inc. | |
| * | |
| * Licensed under the Apache License, Version 2.0 (the "License"); | |
| * you may not use this file except in compliance with the License. | |
| * You may obtain a copy of the License at | |
| * | |
| * http://www.apache.org/licenses/LICENSE-2.0 | |
| * | |
| * Unless required by applicable law or agreed to in writing, software |
| // This hack works with com.android.tools.build:gradle:0.2, won't work in later version without modification | |
| apply plugin: 'android' | |
| targetCompatibility = 1.6 | |
| sourceCompatibility = 1.6 | |
| android { | |
| target = 'android-14' |
| package org.tempura.console.util; | |
| import java.util.ArrayList; | |
| import java.util.Collections; | |
| import java.util.List; | |
| /** | |
| * Usage: | |
| * <li>String msg = Ansi.Red.and(Ansi.BgYellow).format("Hello %s", name)</li> | |
| * <li>String msg = Ansi.Blink.colorize("BOOM!")</li> |
| // Apache 2.0 licensed. | |
| import android.content.Context; | |
| import android.view.LayoutInflater; | |
| import android.view.View; | |
| import android.view.ViewGroup; | |
| import android.widget.BaseAdapter; | |
| /** An implementation of {@link BaseAdapter} which uses the new/bind pattern for its views. */ | |
| public abstract class BindableAdapter<T> extends BaseAdapter { |