Skip to content

Instantly share code, notes, and snippets.

marcoarment

Block or report user

Report or block marcoarment

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@marcoarment
marcoarment / FCPrivateBatteryStatus.m
Created Jan 29, 2016
How to get raw battery info (mAh remaining, etc.) from iOS using private APIs. For internal testing only, NOT APP STORE DISTRIBUTION!
View FCPrivateBatteryStatus.m
#import <Foundation/Foundation.h>
#include <dlfcn.h>
NSDictionary *FCPrivateBatteryStatus()
{
static mach_port_t *s_kIOMasterPortDefault;
static kern_return_t (*s_IORegistryEntryCreateCFProperties)(mach_port_t entry, CFMutableDictionaryRef *properties, CFAllocatorRef allocator, UInt32 options);
static mach_port_t (*s_IOServiceGetMatchingService)(mach_port_t masterPort, CFDictionaryRef matching CF_RELEASES_ARGUMENT);
static CFMutableDictionaryRef (*s_IOServiceMatching)(const char *name);
@marcoarment
marcoarment / encode-podcast.sh
Created Feb 13, 2015
Encode a podcast with metadata using command-line LAME
View encode-podcast.sh
#!/bin/bash
# Encode a WAV to a finalized podcast MP3 with metadata, in the current directory
# Requires lame
# With Homebrew on Mac OS X: brew install lame
SHOW_AUTHOR="ATP"
EPISODE_NUMBER=104
EPISODE_TITLE="Minutiæ"
View gist:64ffc783d9e593ab62be
// ...
@property (nonatomic) NSMutableDictionary *downloadStateByURLString;
// ...
- (double)downloadProgressOfURLString:(NSString *)urlStr
{
return [self.downloadProgressByURLString[urlStr] doubleValue]; // SIGSEGV sometimes here
// Should I be doing this instead, or is ARC doing it for me and the problem lies elsewhere?
// NSNumber *progress = self.downloadProgressByURLString[urlStr];
View gist:dc89ccc29ae9d0a2c76f
<?php
//TODO get URL from parameters and authenticate it with an expiring hash/timestamp
$url = 'http://traffic.libsyn.com/atpfm/atp95.mp3';
// Forward these headers from original request
$requestHeaders = [];
if (isset($_SERVER['HTTP_USER_AGENT'])) $requestHeaders[] = 'User-Agent: ' . $_SERVER['HTTP_USER_AGENT'];
if (isset($_SERVER['HTTP_RANGE'])) $requestHeaders[] = 'Range: ' . $_SERVER['HTTP_RANGE'];
@marcoarment
marcoarment / gist:1105553afba6b4900c10
Created Oct 21, 2014
Variable-height UITableView tableHeaderView with autolayout
View gist:1105553afba6b4900c10
// in a UITableViewController (or any other view controller with a UITableView)
- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
{
UIView *header = [[UIView alloc] initWithFrame:CGRectMake(0, 0, size.width, 0)];
header.translatesAutoresizingMaskIntoConstraints = NO;
// [add subviews and their constraints to header]
NSLayoutConstraint *headerWidthConstraint = [NSLayoutConstraint
@marcoarment
marcoarment / .htaccess
Created Jul 15, 2014
Old preview.fm source (omitting chorus includes)
View .htaccess
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_URI} ^\.htpasswd
RewriteRule .* - [L]
RewriteRule ^(.*/)?\.svn/ - [F,L]
ErrorDocument 404 "Not Found"
php_flag register_globals Off
php_flag magic_quotes_gpc Off
@marcoarment
marcoarment / ATPLogoView.m
Created Apr 29, 2014
Source for the Accidental Tech Podcast (ATP) T-Shirt
View ATPLogoView.m
// Source for the Accidental Tech Podcast (ATP) T-Shirt:
// http://www.marco.org/2014/04/29/atp-shirts
//
// By Marco Arment, April 28, 2014. MIT license.
@implementation ATPLogoView
- (void)drawRect:(CGRect)rectIgnored
{
NSString *fontName = @"MyriadPro-Semibold";
View ApplePushNotification.php
<?
/*
This is part of the Reprise framework, not yet released publicly.
Copyright 2013 Marco Arment. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
@marcoarment
marcoarment / feed-subscribers.php
Created Jul 10, 2013
Better RSS-subscribers script for the post-Google-Reader world.
View feed-subscribers.php
<?php /* With apologies to Dr. Drang and John Siracusa.
feed-subscribers.php
By Marco Arment.
Released into the public domain with no warranties and no restrictions.
Usage: Pipe an Apache access log into stdin, e.g.:
php -f feed-subscribers.php < /var/log/httpd/access_log
@marcoarment
marcoarment / parallelize.c
Created May 3, 2013
A simple shell command parallelizer.
View parallelize.c
/* parallelize: simple shell command parallelizer.
Useful if you have a multiprocessor computer and need to run a batch of
single-threaded CPU-intensive tasks, such as image processing or
media encoding.
Pipe a list of commands to stdin.
The only argument is the number of simultaneous processes to run.
parallelize will execute that number of the input commands simultaneously
You can’t perform that action at this time.