Skip to content

Instantly share code, notes, and snippets.

View markcerqueira's full-sized avatar
📌
Join me! Pinterest is hiring!

Mark Cerqueira markcerqueira

📌
Join me! Pinterest is hiring!
View GitHub Profile
@markcerqueira
markcerqueira / gist:400f3b6ac516690f72cd
Last active September 3, 2015 22:54
Nova Launcher (4.0.2) stack-trace after crash when adding a widget (Don't Keep Activities on)
09-07 23:49:00.139 31092-31092/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.teslacoilsw.launcher, PID: 31092
java.lang.RuntimeException: Unable to resume activity {com.teslacoilsw.launcher/com.teslacoilsw.launcher.NovaLauncher}: java.lang.NullPointerException: Attempt to invoke virtual method 'float[] o.eE.eN(int, int, float, float, float, float, float[])' on a null object reference
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2986)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3017)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1347)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
@markcerqueira
markcerqueira / google_groups_csv_parser.py
Created September 8, 2015 20:07
"Parser" to print out only names and emails from Google Groups "Export Members" CSV file
# google_groups_csv_parse.py
# Author: Mark Cerqueira
#
# Strips out names and emails from Google Groups members list export
#
# 1. Download CSV from Export Members option in Google Groups
# 2. Name file stanfordkendo.csv and place in same directory as this script
# 3. Run it! e.g. $ python google_groups_csv_parser.py | pbcopy
import csv
@markcerqueira
markcerqueira / Account.java
Created May 9, 2016 00:12
One of my earlier programming assignments for AP Computer Science circa Spring 2005
//********************************************************************
// Account.java Author: Lewis/Loftus/Cocking
//
// Represents a bank account with basic services such as deposit
// and withdraw.
//********************************************************************
import java.text.NumberFormat;
public class Account
@markcerqueira
markcerqueira / WebViewMeasuringActivity.java
Last active November 28, 2018 21:21
Android WebView Content Measuring
public class WebViewMeasuringActivity extends RelativeLayout {
public void loadHtml(String html)
WebView webView = (WebView) findViewById(R.id.web_view);
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new WebViewResizer(), "WebViewResizer");
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView webView, String url) {
webView.loadUrl("javascript:window.WebViewResizer.processHeight(document.querySelector('body').offsetHeight);");
@markcerqueira
markcerqueira / ChuckPadServiceTests.m
Last active August 30, 2016 00:17
Snippet of ChuckPadServiceTests.m from markcerqueira/hello-chuckpad
// 1 - Create a new user so we can upload patches
XCTestExpectation *expectation1 = [self expectationWithDescription:@"createUser timed out (1)"];
[[ChuckPadSocial sharedInstance] createUser:user.username email:user.email password:user.password callback:^(BOOL succeeded, NSError *error) {
[self doPostAuthAssertChecks:user];
[expectation1 fulfill];
}];
[self waitForExpectations];
// 2 - Upload a new patch
ChuckPadPatch *localPatch = [ChuckPadPatch generatePatch:@"demo0.ck"];
@markcerqueira
markcerqueira / brew.sh
Last active December 19, 2019 03:10
Bootstrapping Mac Apps with Homebrew Cask
#!/bin/sh
# chmod a+x brew.sh
# https://computers.tutsplus.com/tutorials/perfect-configurations-with-homebrew-and-cask--cms-20768
# brew packages
brew install git
brew install gradle
brew install openssl
brew install ruby
@markcerqueira
markcerqueira / TrailingClosures.swift
Created November 13, 2016 07:50
Trailing Closures in Swift
// Adapted from https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Closures.html
// Here's a function that takes a closure as an argument:
func funFunction(closure: () -> Void) {
// Do stuff and call closure when done
}
// Here's how you call this function passing the closure normally:
funFunction(closure: {
// Closure code goes in here
@markcerqueira
markcerqueira / WKWebViewCookie.m
Last active May 15, 2020 06:20
Getting cookies into a WKWebView
// API reference: https://developer.apple.com/reference/webkit/webpolicydelegate/1536273-webview?language=objc
// Adapted from the Swift implementation: http://stackoverflow.com/a/32196541
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction
decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
if (![self requiresCookie:navigationAction]) {
decisionHandler(WKNavigationActionPolicyAllow);
return;
}
@markcerqueira
markcerqueira / controller.rb
Last active January 12, 2017 01:02
ACME challenge responder for Sinatra
class ApplicationController
# ACME Challenge responder. See: https://github.com/dmathieu/sabayon
# If you want to keep this code in a separate controller, remove /.well-known from
# the next line, make a new controller that inherits from ApplicationController (in
# this example ChallengeController), and put this line in your config.ru file:
# map('/.well-known/') { run ChallengeController }
get '/.well-known/acme-challenge/:token' do
data = []
@markcerqueira
markcerqueira / pi.txt
Created March 14, 2017 21:21
31,415 digits of Pi formatted with spaces in between digits
3 . 1 4 1 5 9 2 6 5 3 5 8 9 7 9 3 2 3 8 4 6 2 6 4 3 3 8 3 2 7 9 5 0 2 8 8 4 1 9 7 1 6 9 3 9 9 3 7 5 1 0 5 8 2 0 9 7 4 9 4 4 5 9 2 3 0 7 8 1 6 4 0 6 2 8 6 2 0 8 9 9 8 6 2 8 0 3 4 8 2 5 3 4 2 1 1 7 0 6 7 9 8 2 1 4 8 0 8 6 5 1 3 2 8 2 3 0 6 6 4 7 0 9 3 8 4 4 6 0 9 5 5 0 5 8 2 2 3 1 7 2 5 3 5 9 4 0 8 1 2 8 4 8 1 1 1 7 4 5 0 2 8 4 1 0 2 7 0 1 9 3 8 5 2 1 1 0 5 5 5 9 6 4 4 6 2 2 9 4 8 9 5 4 9 3 0 3 8 1 9 6 4 4 2 8 8 1 0 9 7 5 6 6 5 9 3 3 4 4 6 1 2 8 4 7 5 6 4 8 2 3 3 7 8 6 7 8 3 1 6 5 2 7 1 2 0 1 9 0 9 1 4 5 6 4 8 5 6 6 9 2 3 4 6 0 3 4 8 6 1 0 4 5 4 3 2 6 6 4 8 2 1 3 3 9 3 6 0 7 2 6 0 2 4 9 1 4 1 2 7 3 7 2 4 5 8 7 0 0 6 6 0 6 3 1 5 5 8 8 1 7 4 8 8 1 5 2 0 9 2 0 9 6 2 8 2 9 2 5 4 0 9 1 7 1 5 3 6 4 3 6 7 8 9 2 5 9 0 3 6 0 0 1 1 3 3 0 5 3 0 5 4 8 8 2 0 4 6 6 5 2 1 3 8 4 1 4 6 9 5 1 9 4 1 5 1 1 6 0 9 4 3 3 0 5 7 2 7 0 3 6 5 7 5 9 5 9 1 9 5 3 0 9 2 1 8 6 1 1 7 3 8 1 9 3 2 6 1 1 7 9 3 1 0 5 1 1 8 5 4 8 0 7 4 4 6 2 3 7 9 9 6 2 7 4 9 5 6 7 3 5 1 8 8 5 7 5 2 7 2 4 8 9 1 2 2 7 9 3 8 1 8 3 0 1 1 9 4 9 1 2 9 8 3 3 6 7 3 3 6 2