本标题其实是指在开发中,如何限制自己的APP只能横屏或者竖屏。
在xcode的工程中,目前已经能够选择APP是否使用横屏还是竖屏了,但其实APP还是可以进行横竖屏切换。有几个办法
1、代码法:
C++代码
- - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{
-
-
- }
当然这段return中其实有很多判断:
C++代码
- return (toInterfaceOrientation==UIInterfaceOrientationLandscapeLeft) || (toInterfaceOrientation==UIInterfaceOrientationLandscapeRight);
-
-
-
- return (toInterfaceOrientation == UIInterfaceOrientationPortrait)
- || (toInterfaceOrientation==UIInterfaceOrientationLandscapeLeft)
- || (toInterfaceOrientation==UIInterfaceOrientationLandscapeRight)
- || (toInterfaceOrientation==UIInterfaceOrientationPortraitUpsideDown);
2、其实还可以在代码之外操作:
设置应用程序的横竖屏显示很简单,默认新建的工程,是支持左横屏,右横屏,竖屏三种方式的,若不希望横屏显示,只需要在工程的配置文件中删除掉横屏的两个item即可。
记得在:Supported interface orientations 有三个项的,items0,如果你要固定横、竖屏,记得将items0展开看一下,如果不是自己需要,就删除吧。我在设置横屏的时候,就不需要这个items0。于是将它删除了
最近在:http://mosir.org/ 的网站上发现一些好文章。比如这篇我要转的这篇。毕竟我现在用的就是VPS,用VPS的话,你也知道,最担心的是什么?有几点?
1、服务器的母机会突然挂掉(当然任何机器都会有这种情况)。怎么样快速转移,或者是有备份机?(小网站可能就是在等待了)
2、母机商跑路。这个嘛,在大家的VPS经历里还是会遇到过的。现在都是推荐选择大一点的供应商,比如virtualhost/linode/ovh等。我现在尽量不选择太便宜的,贵就贵一点,稳定。。。
3、备份,你总不能完全相信说服务器商对你说的,都是用的raid1服务器吧?总有万一的时候,这时候怎么办?
其实早些年都有一些脚本在网上流传,比如,mysql定时备份,自动发邮件到自己邮箱。(小网站都没问题,mysql最多也就上百M,每天增量的话,也没多少,就算全量,现在的mail其实也完全可以。大不了再压缩一下。大不了再切割一下,总能解决),对于代码什么的,现在都会想着是git发布/svn发布等,代码也能够保存在本地。然后附件直接存储到第三方。所有的就都解决了。但毕竟这样是存储在多个地方了。
于是这才是我转贴本文的原因,原文来自:http://mosir.org/html/y2012/use-dropbox-backup-vps.html
XML/HTML代码
- vps的定期备份是一件很必要的工作。大多数idc并没有提供免费的vps备份空间,这就需要我们自己来完成这个工作了。
-
- 一般情况下,得自己打包需要备份的数据,然后下载到本地,但这太麻烦。也有人通过lftp及脚本工具将需要备份的数据上传到某些ftp服务器上,但这也不稳妥。想找个稳妥的方法似乎只能出钱买备份空间了。
-
- 还好Dropbox提供了比较大的免费空间来让我们备份数据,申请了帐号后,只有2G空间,但可以很容易的扩展到20G左右,用来备份vps上的程序和数据也够了。如果需要更大的空间,可以考虑购买。
-
- 当然,靠谱的网盘有不少,但使用起来方便的并不多。这里就只考虑dropbox了。
-
- 在vps里的安装方法很简单,官方的说明在这里:https://www.dropbox.com/install?os=lnx
-
- 步骤如下:
-
- cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86" | tar xzf -
- 这会在vps服务器上当前用户目录下创建.dropbox-dist目录并解压所有所需文件。
-
- 接下来运行dropboxd
-
- ~/.dropbox-dist/dropboxd
- 它会自动在用户目录下创建Dropbox目录。
-
- 然后你会看到不断出现类似这样的提示:
-
- This client is not linked to any account...
- Please visit https://www.dropbox.com/clilink?hostid=6a57828b2191161aea851e72a48f8451&cl=en_US to link this machine.
- 不要中断dropboxd的运行,将https://xxx链接复制出来,打开浏览器登录你的dropbox帐号,再把这个链接复制到浏览器打开,将vps机器加入到你的帐号中。
-
- 然后,有什么需要备份的打包后丢到~/Dropbox目录下即可。
-
- 因为dropboxd大约要占用2XM~1xxM的内存,所以同步完成后,按Ctrl-C中止其运行即可。
-
- 也就是说需要备份时运行dropboxd,备份完就中止它。
-
- 如果vps内存充足,也可以把它作为一个服务运行。可以下载官方的控制脚本:https://www.dropbox.com/download?dl=packages/dropbox.py,编辑rc.local,加入
-
- /yourpath/dropbox.py start
- 这样,vps启动后就会自动运行dropbox,保证只要有新的备份文件被放到Dropbox目录就立即被同步到dropbox网络存储空间里去。
-
- 如果只希望同步dropbox目录下的某个子目录,或不希望同步某些子目录,可以自己参考修改dropbox.py,大约在1105行,这里有个排除列表的函数及使用说明。
-
- 完成。
赞。过两天试试
重启apache的时候报错:
/etc/init.d/apache2 restart
[....] Restarting web server: apache2apache2: apr_sockaddr_info_get() failed for (none)
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
... waiting apache2: apr_sockaddr_info_get() failed for (none)
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
. ok
看到这个(none),让我想起,我的ssh的登录路径:root@(none):~#
OK,在老鬼的提示上,用hostname函数进行了设置。问题解决:
root@(none):~# hostname
(none)
root@(none):~# hostname neatstudio.com
root@(none):~# hostname
neatstudio.com
--做个笔记
关于think2go的介绍,我自己是写了一篇,但因为第一次写的内容不慎消失,后面是重写的。心情和精力都不佳了。
以下是部分内容,详细的话,还是去点击上面的链接吧。。。
摘选 :
首先是谢大闪亮登场,为我们分享他用Go语言在盛大的CDN系统中的应用,大家鼓掌。
我觉得讲的主要内容上可以分两大块来看,一部分是从中心结点到IDC的文件分发过程,另一部分是用户请求到达之后的调度设计。
主要应用场景像什么游戏客户端的分发之类的。先说中心结点服务器到IDC服务器的分发过程。
谢大在讲这些东西时还给我们展示了一下代码,很赞!
上一部分的内容基本是内部传输部分,从中心服务器分发到IDC。接下来是另一部分,调度器的设计部分。
调度器设计就是要考虑,根据网络情况,地理位置,当前各个服务器负载等等,来一个下载请求,决定取哪一台机器给用户提供下载服务。
CDN的基本技术,就是通过用户的IP段,查找他属于哪个网络,电信,网通?然后分配相应网络的服务器给用户提供下载。他们以前的做法是,只要找到同网络的服务器后,随机分配一台给用户提供服务。随机分配存在的问题是,服务器的负载不均衡,可能有的机器忙不过来了,而另一些却闲着。
盛大有个IP库,记录了各个IP段所处的网络,对应的分配服务器。这个在代码中谢大是用treap数据结构体存的,treap是一个kv数据结构,通过二叉树进行查找,通过一个随机权值保证树的平衡。我尚不明白这里为什么选用treap数据结构。使用treap数据结构的结点权值,和服务器负载之间是否有关系?不是吧(期间我去WC了,这里漏了一些内容)。
现在添加了负载分配的部分,会给服务器加上状态。比如优先挑选同网络服务器上负荷较低的机器,如果各个机器负荷都是中等的,则随机挑选一个。如果都到满负荷了,这时则不局限于同网络了,从全局服务器中随机挑一个,总不至于给用户返回404吧。
据谢大称,用Go语言实现以后,目前的系统相比以前的传输速度大大提升,传大文件速度是几乎原来的十倍了,小文件的提升也有30%。用户下载也明显变快了。最后谈到了下阶段可做的优化。其中有一点就是处理上行和下载之间的带宽。有时候几十G的文件任务啪一下就过来了,目前是没有限制的,这样会占用大量带宽,对已在进行中的用户服务造成影响。
接着是邵天宇带来的分享。其实我个人觉得他分享的内容跟Go语言的主题并不算太搭,个人觉得他项目中做的很多事情选择别的语言,别的开源库可能会做得更好,并没有突出Go语言的优势,选择Go只是他强烈的个人偏好而已,这个我持保留态度。这是这位同学第一次做这种分享,不管怎么样,即然使用了Go也算是Go语言的实践了,并且内容方面我认为还是比较精彩的。
微博数据分析中,我觉得可以分以下部分看吧,先是数据源的获取,接着是数据存储,然后是数据分析。
他先给我们介绍了他的开源库的选型。数据源的获取中,他是自己写的爬虫抓取微博的数据,给我们展示了Go的interface在这里的使用,一个url加一个handler。分词和索引方面之前他尝试用wukong的Go语言开源库,但是这个库有个问题是不做持久化,数据全部存放在内存的。内存占用量非常大,在与作者沟通并没得到满意的解决之后,转而使用Es..search(名字记不清了)【是:Elasticsearch + IK 】。列举了好多的开源项目,相信他是做了不少的调研工作。
还提到了他们以前系统是用php做的,硬件用的16核CPU,32G内存,而现在改用Go语言之后只用普通的PC机就能跑了。他还列举了好多数据,微博的活跃用户数啦,抓取的记录数啦,各种...反正是用数据说话,不明觉历啊,呵呵。【在这里我要提一下,他说原来是用python的】
golang与高强度在线服务
由韩拓给我们分享的,标题临时换了一下,他坦承"golang与高强度在线服务"这个标题有点太装B了。这个分享就比较高度抽象了,没有谈具体的项目,算是一些Go的使用经验吧。
中间有很多,我能记得的包括他们公司的panic是不能抛到进程级别的,必须在goroutine捕获。
像内存使用方面,不使用Go做大内存(大于1G)的服务。合适的东西做合适的事,这是我的感触,比如Go+memcached。主要是Go的垃圾回收不算完善,大量内存分配,回收时会卡。而C语言写的像memcached什么,肯定更专业。
http作为最基本的通信协议。
cgo是尽量避免不要使用的,即使像音频视频转码这类的,只有C的库,他们的做法是用C程序写成服务了让Go去调。
还有什么内存对齐,大多都是七牛公司踩过坑之后约定的一些使用习惯。给我印象比较深的是他们的log处理,他们重写了log的包,提供程序log和事务log两类日志。
---
更详细的请看上述链接。比我写的好多了啦 。