I’ve been using h3lix (https://h3lix.tihmstar.net) in the past on my Iphone. Recently I needed it again, but it turned out Cydia Impactor doesn’t let you install h3lix anymore.
There was a tweet about it:
https://twitter.com/EzequielTBH/status/1197231387255939073
and followed the steps:
4a. Enter your valid Certificate
4b. Enter Provisioning Profile using the one you created with your new project
4c. Change App Display Name if you wish
5. After…
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
export PATH=/path/to/fetched/depot_tools:$PATH
mkdir webrtc
cd webrtc
fetch --nohooks webrtc_ios
gclient sync
cd webrtc/src
Enable bitcode and specify architecutres needed.
tools_webrtc/ios/build_ios_libs.py --bitcode --arch arm64 x64 arm
Framework is inside:
webrtc/src/out_ios_libs/
Official docs:
How to strip unwanted architectures (when distributing to app store you need to strip x64 or i386).
That’s it!
Today we’ll explore how to send messages between multiple Apple devices using the Network framework, without the need of having external server. We’ll also use Bonjour service to let clients discover the each others automatically.
Let’s start with the first task: discovering devices using Bonjour (https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/NetServices/Introduction.html)
To accomplish this task we’ll need a server a browser. The server does the advertising and handles clients, the browser finds available servers (listeners).
First of all, we need to add NSBonjourServices key to Info.plist (https://developer.apple.com/documentation/bundleresources/information_property_list/nsbonjourservices), and pass an array of Bonjour service types. In our case, we’ll define one type and we’ll use…
There are only two hard things in Computer Science: cache invalidation and naming things.
— Phil Karlton
Fortunately for us, Apple helps us by providing robust and powerful cache policies. Policies we should use instead of building a custom (NSCache) solution!
In this post, we’ll explore different URLRequest cache policies and the consequences of using them. Those policies apply to both iOS and macOS. We’ll use a hands-on approach looking both on server and front-end sides.
To make things easy, the Node.js Express Server (the Backend) will return strings, and we’ll log the responses in the console. …
Reset mysql root access:
sudo service mysql stop
sudo mysqld_safe —skip-grant-tables —skip-networking &
mysql -u root
In the mysql:
use mysql;
update user set authentication_string=password('NEWPASSWORD') where user='root';
flush privileges;
quit
Restart mysql:
sudo service mysql restart
In case of: mysqld_safe Directory ‘/var/run/mysqld’ for UNIX socket file don’t exists. error, create this directory and set ownership:
mkdir -p /var/run/mysqld
chown mysql:mysql /var/run/mysqld
Grant access to mysql from other host:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
Check for running server in local network:
for i in {2..255}; do echo $i; curl --connect-timeout 1…
Let’s create a new Vue / Nuxt app:
npx create-nuxt-app google-sign
Enable Axios, choose Single Page App rendering mode. Add firebase to our Nuxt app:
npm install firebase --save
Create a firebase plugin, add new file ‘firebase.js’ inside /plugins and register it inside nuxt.config.js
Next, create a Firebase project. Go to
https://console.firebase.google.com
and create a new project, call it ‘google-sign’.
Inside the Firebase project, go to Settings and add a new Web app. Call it ‘google-sign’.
Let say you need to perform multiple network calls and need to wait for them to complete to aggregate results.
I think the simplest solution would be to use DispatchGroup
(if the order of execution doesn’t matter) or DispatchSemaphore
.
I will demonstrate both the problem and its solutions by using a function which will combine two async calls and then using a loop containing async calls.
Let’s create a command-line project.
Create a function which will convert Int to String after a pre-defined delay.
Create a function which will combine two async calls:
When we run it, the…
After finishing our family blog from our journey through Sulawesi, we still haven’t decided where we will host it. I decided using docker to contain it and make it easy to switch hosts in the future.
Backup both content and database.
Connect to your host (for example via ssh).
Zip the folder containing wordpress wp-content directory. For example /var/www/html/wp-content:
sudo tar -czf wp-content.tar.gz wp-content
Export database, where wordpress is the name of wordpress database “add-drop-table” will drop tables when importing this backed up database into existing one:
mysqldump wordpress --add-drop-table -uuser -ppassword | gzip > wordpress.sql.gz
Recreate Wordpress on the…
This post shows how to use UICollectionView inside UIView with custom UICollectionView cells and interface builder, this is super basic example without any extras.
First Create new Single View App.
Create custom view using File… New / Cocoa Touch Class, call it CustomView and make sure it subclasses UIView
Next create CustomView.xib, open New File… and select View, call it CustomView
There aren’t many resources regarding Audio Unit Extensions out there. There’s one Apple sample project, some info, and WWDC talk about it:
https://developer.apple.com/videos/play/wwdc2015/508/
The basic idea about Audio Unit V3 is that, by default, it runs as separated process (Extension Service Process) and communicates with the host application using IPC (interprocess communication). There are pros and cons to this approach (it’s safer, but it adds overhead, around 40u seconds for each call, which could be problematic when working with very low latencies).
For easier development, and in cases in which the IPC overhead is too high on OS X, there’s…