Home Favorite Sites
Post
Cancel

Favorite Sites

  1. Add fonts you gonna use to resource fonts folder
  2. Fonts provided by application (Info property list key)
1
xcrun size -x -l -m a.out 

thread 0 crashed with three question mark

Embedding Frameworks In An App

1
2
3
4
# list all of the libraries dynamically linked to a binary
otool -L <PathToArchive>/Products/Applications/<AppName>.app/<AppBinary>

otool -L BetChat-iOS-Hockeyapp-Internal\ 2020-7-15,\ 4.26\ PM.xcarchive/Products/Applications/BetChat.app/BetChat

@rpath what?

gcc Options for Directory Search

How to Setup Configurations and Schemes in XCode

1
2
3
4
5
6
7
# display name list (symbol table)
# -n Sort numerically rather than alphabetically. 
# -m Display  the  N_SECT  type  symbols  (Mach-O symbols) as (segment_name, sec-
#          tion_name) followed by either external or non-external and then  the  symbol
#          name.   Undefined,  common,  absolute  and indirect symbols get displayed as
#          (undefined), (common), (absolute), and (indirect), respectively
nm -nm 
  • Private module map for a framework

  • No space left on device - Centos 7
  • Cannot find what is filling up disk space /dev/vda1 is 100% full

  • Dynamic Library Programming Topics

  • Assembly Language

    most compilers convert source code directly to machine code An assembly language is a low-level programming language designed for a specific type of processor. It may be produced by compiling source code from a high-level programming language (such as C/C++) but can also be written from scratch. Assembly code can be converted to machine code using an assembler.

  • TechTerms

  • Mach-O Programming Topics

  • Weak symbol

  • How to check if port is in use in

    1
    2
    
    sudo lsof -i -P -n | grep LISTEN
    sudo netstat -tulpn | grep LISTEN
    
  • How To Install the Apache Web Server on CentOS 7

    1
    2
    3
    
    sudo yum install httpd
    sudo yum enable httpd
    sudo yum start httpd
    
  • Configure server port when running jar

    1
    2
    
    java -Dserver.port=8888 -jar myApplication.jar
    java -jar jenkins.war --httpPort=9090
    
  • Vagrant – Enabling a CentOS VM’s gui modeg

  • EM, PX, PT, CM, IN

  • Point vs Pixel: What is the difference?

  • Work (thermodynamics)

  • How To Install Linux, Apache, MySQL, PHP (LAMP) stack on Ubuntu 16.04

  • How To Install WordPress with LAMP on Ubuntu 16.04

  • Ubuntu Server GUI

  • Hot to install GUI on an Ubuntu Server

  • How To Install and Secure phpMyAdmin on Ubuntu 16.04

  • How to find out what profile was used for building *.ipa file?

  • How can I extract the Custom URL Scheme from a .ipa file?

  • How to check open ports in Linux using the CLI

    1
    2
    3
    
    sudo netstat -tulpn | grep LISTEN
    cat /etc/services
    grep -w '80/tcp' /etc/services
    
  • How to Reset Jenkins Admin users Password

  • App is forced to restart by iOS with new privacy settings

  • How can I merge two commits into one if I already started rebase?

    1
    
    git rebase -i commmitid
    
  • I ran into a merge conflict. How can I abort the merge?

    1
    
    git merge --abort
    
  • 提高Github Clone速度

    1
    2
    
    git config --global http.proxy socks5://127.0.0.1:1080
    git config --global https.proxy socks5://127.0.0.1:1080
    

    sudo vim /etc/hosts 151.101.72.249 http://global-ssl.fastly.Net 192.30.253.112 http://github.com

  • homebrew下载过慢问题

    替换/还原brew.git仓库地址

    1
    2
    
    cd "$(brew --repo)"
    git remote set-url origin https://mirrors.aliyun.com/homebrew/brew.git
    

    替换/还原homebrew-core.git仓库地址

    1
    2
    
    cd "$(brew --repo)"
    git remote set-url origin https://github.com/Homebrew/brew.git
    
    1
    2
    
    cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
    git remote set-url origin https://mirrors.aliyun.com/homebrew/homebrew-core.git
    
    1
    2
    
    cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
    git remote set-url origin https://github.com/Homebrew/homebrew-core.git
    

    替换/还原homebrew-bottles

    1
    
    echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles' >> ~/.zshrc
    
  • homebrew下载太慢的正确解决方法

    连手机热点,哈哈哈

  • Build and Run Telegram-iOS v7.3 in Simulator with Bazel

    1
    
     sed -i'' -e 's/Telegram development/Telegram distribution/g' Makefile
    
    1
    2
    3
    4
    5
    6
    7
    8
    
    CODESIGNING_DATA_PATH="build-system/fake-codesigning" \
    CODESIGNING_CERTS_VARIANT="distribution" \
    CODESIGNING_PROFILES_VARIANT="appstore" \
    COMMIT_ID=`git rev-parse HEAD` \
    BUILD_NUMBER=`git rev-list --count HEAD` \
    LOCAL_CODESIGNING=1 \
    IGNORE_XCODE_VERSION_MISMATCH=1 \
    sh build-system/verify.sh make bazel_project_noextensions
    
  • Xcode Build Configuration Files

  • Linear interpolation past, present and future

  • onevcat

    如果你有想要拓展视野的意愿和需求,我的建议是一定要迅速付诸实践 RN 虽然还在移动开发的界限内,但是他背后所一脉相承的React思想,单项信息流动,组件化的UI构建方式,确实软件开发中所共通的设计思维 接触React也能让你一撇前端开发的门径和现状

    逆向工程有助于理解计算机原理的深层实现,可以让你再更底层来审视高层级API的设计和逻辑,或者在日常工作的调试中更得心应手 AR和VR紧跟潮流,有希望成为下一个爆发点,会有机会创造出下一个人尽皆知,让人一举成名的应用。

    相比于苦恼哪个方向,其实最重要的是这份学习和进步的态度

    说句实话(或则说是丧气话),我们都不是那种顶尖开发者,也很少有机会去创造出所谓的颠覆世界的东西。 其实除非天资炳然,否则包括你我在内的绝大多数人总是会庸碌走完一生。但是这并不妨碍我们有所追求,也不应该成为我们裹足不前的进口。 如果保持上进心,那我们总需要有办法更进一步,而想到这件事最简单的方式就是不断学习和自我提升

    其实相比学什么,更重要的是行动起来。

    万事开头难,思考再多也不过是空想,只要开始就会有收获 不论方向,选定一个(或者几个),然后尽快着手走下去吧

    在软件开发领域有一个很有意思的现象,那就是顶尖的牛人一定不会是那种只精通一项技术的人。 AFNetworking的作者 @matt在转向iOS之前就是著名的Buby开发者 Swift的创造者Chris Lattner已经从Apple离开寻找新的挑战

    一个人在某项技术上总会遇到成长的瓶颈,而与其在这个瓶颈中死磕硬碰,可能有时候不如从其他方向进行“迂回”,并从其他的技术中开阔眼界、汲取经验,可能会更加有效。

    如果你再折腾iOS布局的时候纠结于自己计算frame还是使用autolayout, 如果你接触过Android开发的话,就会知道我们还有很多相对布局的方式;更近一步,如果你接触过一些用来布局的DSL(Domain-specific language),那么你可能就会想到将iOS已有的API与之结合,来创造出更简单易用的布局方式,这种举一反三,互相印证,融会贯通的能力,正是从中级开发者迈向高级开发者所需要的能力;而现在iOS上很多出色的布局框架,也正是结合了各种思想后的成果

    横向的视野在纵向的深入上也是至关重要的。 如果在未来三年成为iOS行业的顶尖开发者,在深入本行的同时,也一定要保证接触技术的广度。 这种兴趣的“转移”早看起来似乎和精通某一门具体的技术有些违背,但是他会在你遇到瓶颈的时候为你提供另外的思路,让你有机会能够跳出当前的维度和上下文来思考问题,并且最终找到解决的途径

    一个三年或者五年以上的从业者应该不仅仅能够熟练使用现有的API,更应该具有在创造的能力。 人的本质其实就是使用工具,而文门在面向最终产品的开发时,所做的本质也是使用已有的工具来完成项目。在创造产品的同时,如果能尽量多思考如何去创造新的工具,就会让整个社区的生产里得到提高。 如果我说我们现在的所有可用工具和已经实现的算法框架是一池子水的话,那么我想,尽量利用和扩展自己的知识,并努力为这池水添加一杯或者两杯新水,应该成为一个想要迈向高级开发者的从业人员的目标

  • onevcat

  • SSL Certificate Pinning Under the Hood

    Associating a host with its certificate or public key once you know a host’s certificate or public key, you pin it to the host

    In other words, you config the app to reject all but one or a few predefined certificates or public keys whenever the app connects to the server, it compares the server certificate with the pinned certificates or public keys, if and only if they match, the app trusts the server and establishes the connection

  • understanding runloop

    You and input sources and timer sources The runloop then watches them for activity

  • common modes

    Once a mode is added to the set of common modes, it can not be removed

    __CFRunLoopDoBlocks, CFRunLoopPerformBlock, _CFRunLoopSourceWakeUpRunLoops

  • what is a deadlock

    resource A and resource B are used by process X and process Y X starts to use A X and Y try to start using B Y ‘wins’ and gets B first now Y needs to use A A is locked by X, which is waiting for Y

  • deadlock

    Resource-Allocation Graph

  • math
  • math
  • asymptotic relationship, limit

  • Interview Q&A

  • Metal for Open-GL Developers

  • Threading Programming Guide

  • difference between cc, gcc and g++cc
This post is licensed under CC BY 4.0 by the author.