This is what we did to setup a few dashboards at platanus
- Raspberry Pi
- Dashing Service
- Wifi stick (optional)
@implementation PSPDFTableViewCell // UITableViewCell subclass | |
/** | |
On iOS 10, constraints involving a UITableViewCell’s contentView’s layoutMarginsGuide are removed for some | |
reason before the cell appears, which breaks the layout. This layout guide is a working alternative. | |
*/ | |
- (UILayoutGuide *)pspdf_layoutMarginsGuide { | |
if (@available(iOS 11.0, *)) { | |
return self.contentView.layoutMarginsGuide; | |
} |
This is what we did to setup a few dashboards at platanus
exec > /tmp/${PROJECT_NAME}_archive.log 2>&1 | |
UNIVERSAL_OUTPUTFOLDER=${BUILD_DIR}/${CONFIGURATION}-universal | |
if [ "true" == ${ALREADYINVOKED:-false} ] | |
then | |
echo "RECURSION: Detected, stopping" | |
else | |
export ALREADYINVOKED="true" |
@interface MySingleton : NSObject | |
// ... | |
+ (instancetype) sharedInstance; | |
+ (instancetype) alloc __attribute__((unavailable("alloc not available, call sharedInstance instead"))); | |
- (instancetype) init __attribute__((unavailable("init not available, call sharedInstance instead"))); | |
+ (instancetype) new __attribute__((unavailable("new not available, call sharedInstance instead"))); |
#!/bin/bash | |
############################################################################################################## | |
### 1. Name your profiles with the convention of ProjectName_TargetName_ConfigurationName.mobileprovision ### | |
### 2. Create a directory called CodeSign in your project directory ### | |
### 3. Move all your project's provisioning profiles into the CodeSign directory ### | |
### ### | |
### Running this script will update your project file to point to the correct UUIDs of each corresponding ### | |
### profile in your CodeSign directory. ### | |
############################################################################################################## |
curl -L -o ~/.clang-format https://gist.githubusercontent.com/dev4dev/78d0508304558e969b2a/raw/9bab5aefe2e29f4b7b6a5560642618e1e78b397c/.clang-format.yml
5. In Xcode select menu Edit
-> Clang Format
-> File
to use rules from downloaded .clang-format.ylm file
// Android app | |
private void setupParse(Context context) { | |
Parse.initialize(this, <PARSE_APP_ID>, <PARSE_CLIENT_KEY>); | |
ParseInstallation.getCurrentInstallation().put("uniqueId", getWifiMacAddress(context)); | |
ParseInstallation.getCurrentInstallation().saveInBackground(); | |
} | |
private String getWifiMacAddress(Context context) { | |
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); | |
if (wifiManager != null && wifiManager.getConnectionInfo() != null) { |
# | |
# Original version by Grant Parnell is offline (http://digitaldj.net/2011/07/21/trim-enabler-for-lion/) | |
# Update July 2014: no longer offline, see https://digitaldj.net/blog/2011/11/17/trim-enabler-for-os-x-lion-mountain-lion-mavericks/ | |
# | |
# Looks for "Apple" string in HD kext, changes it to a wildcard match for anything | |
# | |
# Alternative to http://www.groths.org/trim-enabler-3-0-released/ | |
# Method behind this madness described: http://forums.macrumors.com/showthread.php?t=1409151&page=4 | |
# See discussion in comments here: https://www.macupdate.com/app/mac/39654/lion-tweaks | |
# And here: http://forums.macrumors.com/showthread.php?t=1410459 |
THIS IS A WORK IN PROGRESS USING THE YOSEMITE BETA - DO NOT RELY ON IT!
Install OSX on a fresh drive. I recommend using Disk Utility to repartition the entire drive as 1 partition, as this clears any hidden volumes.
Once the initial install is complete, the OSX Setup Assistant will create your first adminstrator account.
UISearchBar *searchBar = [[UISearchBar alloc] init]; | |
self.navigationItem.titleView = searchBar; | |
UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"cancel", @"Cancel") | |
style:UIBarButtonSystemItemCancel | |
target:self | |
action:@selector(cancelButtonClicked)]; | |
self.navigationItem.rightBarButtonItem = cancelButton; |