二月四号那天,因为准备毕设的原因,睡得不踏实,凌晨四点醒来。
醒来时突然感觉心里有话要说,便写下了如下的句子,妄自称之为诗吧。
二月四号那天,因为准备毕设的原因,睡得不踏实,凌晨四点醒来。
醒来时突然感觉心里有话要说,便写下了如下的句子,妄自称之为诗吧。
一年多以前写过一篇文章(Octopress 新建博客脚本)描述了我简化之后新建博客的流程,很简洁。但是在使用 Mou、Marked 等软件实时预览 Octopress 中的文章时,存在一些缺陷:
I met this problem in one interview: How to reverse a char? It took me a long time to figure out which I thought was very easy.
#include <iostream>
using namespace std;
unsigned char reverse_char(unsigned char in) {
unsigned char high = 0x80;
unsigned char res = 0x0, tmp = 0x0;
for (int i=7; i>=0; i--) {
tmp = (in&0x1)<<i;
in = in>>1;
res = (res&~high)|tmp;
high = high>>1;
}
return res;
}
int main(int argc, char *argv[]) {
printf("%x\n", reverse_char(0xc4));
}
You have to pay attention to the difference of char and unsigned char.
More info about signed char: What does it mean for a char to be signed? - Stack Overflow
- EOF -
OS X 10.8 sdk was not included in Xcode 6.1, so if you want to use that sdk, you have to add it to /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/
yourself. For me, the reason I needed 10.8 sdk was I wanted to compile objc runtime source code with it so I can debug the code.
You can extract previous sdks from old versions fo Xcode. Or you can get them more efficently from this repository(phracker/MacOSX-SDKs) by using git or just downloading the zip file.
But if you choose downloading the zip file, the zip format will break all the soft link by changing them into plain text files.
In order to fix it, I wrote several lines of python. Here is the code:
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
# vim: set et sw=4 ts=4 sts=4 ff=unix fenc=utf8:
# Author: Jeswang<wangyi724@gmail.com>
# http://blog.jeswang.org
# Created on 2014-10-22 13:03:12
import os
def file_exists(filename):
try:
with open(filename) as f:
return True
except IOError:
return False
def folder_exists(foldername):
try:
os.walk(foldername).next()
return True
except StopIteration:
return False
def generateSoftLink(realfile, linkfile):
print("%s -> %s" % (linkfile, realfile))
os.symlink(realfile, linkfile)
def generateSoftLinkForPath(path):
list_of_files = {}
for (dirpath, dirnames, filenames) in os.walk(path):
for filename in filenames:
print filename
linkfile = dirpath+"/"+filename
if os.path.islink(linkfile) or os.path.getsize(linkfile) > 200:
continue
f = open(linkfile)
relpath = f.readline()
f.close()
if len(relpath) == 0:
continue
relpath = relpath.replace("\n", "")
if len(relpath.replace("/", "")) == 0:
continue
realfile = dirpath+"/"+relpath
if file_exists(realfile) or folder_exists(realfile):
os.remove(linkfile)
generateSoftLink(relpath, linkfile)
if __name__ == "__main__":
generateSoftLinkForPath("/Users/jeswang/Downloads/MacOSX-SDKs-master")
The tricky part is, under mac os x python’s function os.path.exists
can’t deal well with soft links, so you have to test whether there is a file or folder in given path by trying to read the file or list the folder.
Because of the recursion of references, you may need to run this script several time to make sure all the soft link have be changed back.
- EOF -
今天被问到如下代码的输出是多少:
#include <iostream>
using namespace std;
int main(int argc, char *argv[]) {
int a = 0;
int b = (++a) + (++a) + (++a);
cout<<b;
return 0;
}
说来惭愧,已经面了几个公司的 iOS 开发岗位,几次被问倒——有些问题回答得比较含糊,有些问题只知道结果,不知道原理。根据回忆,梳理一下不太明白的一些问题,尽管对问题的解答只是点到为止,也算为以后的学习留点线索。