Gowhich

Durban's Blog

RDF Site Summary 1.0 Modules: Syndication

举个例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?xml version="1.0" encoding="utf-8"?> 

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns="http://purl.org/rss/1.0/"
>

<channel rdf:about="http://meerkat.oreillynet.com/?_fl=rss1.0">
<title>Meerkat</title>
<link>http://meerkat.oreillynet.com</link>
<description>Meerkat: An Open Wire Service</description>
<sy:updatePeriod>hourly</sy:updatePeriod>
<sy:updateFrequency>2</sy:updateFrequency>
<sy:updateBase>2000-01-01T12:00+00:00</sy:updateBase>

<image rdf:resource="http://meerkat.oreillynet.com/icons/meerkat-powered.jpg" />

<items>
<rdf:Seq>
<rdf:li resource="http://c.moreover.com/click/here.pl?r123" />
</rdf:Seq>
</items>

<textinput rdf:resource="http://meerkat.oreillynet.com" />

</channel>

<image rdf:about="http://meerkat.oreillynet.com/icons/meerkat-powered.jpg">
<title>Meerkat Powered!</title>
<url>http://meerkat.oreillynet.com/icons/meerkat-powered.jpg</url>
<link>http://meerkat.oreillynet.com</link>
</image>

<item rdf:about="http://c.moreover.com/click/here.pl?r123">
<title>XML: A Disruptive Technology</title>
<link>http://c.moreover.com/click/here.pl?r123</link>
<description>
XML is placing increasingly heavy loads on the existing technical
infrastructure of the Internet.
</description>
</item>

<textinput rdf:about="http://meerkat.oreillynet.com">
<title>Search Meerkat</title>
<description>Search Meerkat's RSS Database...</description>
<name>s</name>
<link>http://meerkat.oreillynet.com/</link>
</textinput>

</rdf:RDF>

最有效的解决方式是: 使用

1
- (void) tableView: (UITableView *) tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath

托管函数中定义Cell的背景颜色值。(注意:cell.textLabel的背景颜色默认为white, 如有要自定义还是需另用代码来控制实现)

1
2
3
- (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath {
[cell.contentView setBackgroundColor: [UIColor redColor] ];
}

当你在A视图调用pushViewController:animated:,并且从B视图返回A视图的时候需要做一些操作,比如刷新数据,或者做个浏览记录的操作的时候,可以调用这个函数viewWillAppear,就可以解决问题了。

在我的实例中,我在A视图做了这个操作:

1
self.navigationController.navigationBarHidden = YES;

但是在B视图我要做相反的操作

1
self.navigationController.navigationBarHidden = NO;

但是在返回来的时候,问题出现了,A视图达不到我想要的效果了,似乎也继承了B视图的navigationBar不隐藏的操作,但是我需要隐藏,那么结果做这个操作就好 了:

1
2
3
-(void) viewWillAppear:(BOOL)animated{
self.navigationController.navigationBarHidden = YES;
}

测试环境

1
2
3
(r'^css/(?P<path>.*)$', 'django.views.static.serve', {'document_root': '/var/www/django-demo/css'}),
(r'^js/(?P</path><path>.*)$', 'django.views.static.serve', {'document_root': '/var/www/django-demo/js'}),
(r'^images/(?P</path><path>.*)$', 'django.views.static.serve', {'document_root': '/var/www/django-demo/images'}),

模板中使用下述方式即可:

1
<link href="/css/demo.css" type="text/css" rel="stylesheet">

注:可采用os.path.dirname(globals()["__file__"])来获得当前文件所在路径,比如

1
(r'^css/(?P<path>.*)$', 'django.views.static.serve', {'document_root': os.path.dirname(globals()["__file__"])+'/css'}),

可以使用os.path.abspath()函数返回此路径的绝对路径。
==============
要在django的tempalte file中引用css、js、gif等静态文件,首先一条setting.py中DEBUG开关打开。

1、在project目录下建立一个存放静态文件的目录,如:medias

2、在url.py patterns中增加一行:

1
(r'^site_media/(?P<path>.*)$','django.views.static.serve',{'document_root':settings.STATIC_PATH}),

还要from django.conf import setting

3、在setting.py中加入一行:

1
STATIC_PATH='./medias'

如此设置后,就可以在template file 中引用media中存放的静态文件了,如:

1
<img src='/site_media/django.gif'>

线上环境

在使用Django开发的Web项目中是避免不了使用css、javascript、js等静态文件的,而对于这些静态文件的处理,django官 网这样写:Django itself doesn’t serve static (media) files, such as images, style sheets, or video. It leaves that job to whichever Web server you choose.就是说django本身不处理类似于图片、样式表、视频等静态文件,它将此项工作交给了你选择的Web服务器。
在网上搜索到的django项目处理静态文件的示例中,大家似乎都在使用如下的方法让django处理静态文件:

1
urlpatterns += patterns('', (r'^static/(?P.*)$', 'django.views.static.serve', {'document_root':  settings.MEDIA_ROOT}), )

而对于django.views.static.serve方法,django官网说得很清楚:Using this method is inefficient and insecure. Do not use this in a production setting. Use this only for development.就是说这种方法是低效且不安全的,不要在生产环境使用此方法,只在开发环境使用。
这时对于静态文件的处理,我们只能使用我们选择的Web服务器来处理了。比如使用nginx服务器的话,可以如下设置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
server {
listen 80; ## listen for ipv4; this line is default and implied
root /home/davidzhang/pythonweb/mysite/mysite;
index index.html index.htm;

# Make site accessible from http://localhost/
server_name local.ubuntu.python.blog.com;

access_log /var/log/uwsgi/local.ubuntu.python.blog.access.log;
error_log /var/log/uwsgi/local.ubuntu.python.blog.error.log;

location / {
include uwsgi_params;
uwsgi_pass unix:///tmp/mysite.socket;
#uwsgi_pass 127.0.0.1:9090;
}
location ^~ /static { #^~ 与 /static之间有空格
alias /usr/local/lib/python2.7/dist-packages/Django-1.4.2-py2.7.egg/django/contrib/admin/static;
}

location ~* ^/(css|img|js)/.*$ {
root /home/davidzhang/pythonweb/mysite/media;
expires 12h;
break;
}

location ~ ^.+\.(gif|jpg|png|ico|jpeg)$ {
expires 3d;
}
}

一晚上写的shell的脚本

uwsgi启动和停止脚本(代码如下):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/bin/bash
if [ ! -n "$1" ]
then
echo "Usages: sh uwsgiserver.sh [start|stop|restart]"
exit 0
fi

if [ $1 = start ]
then
psid=`ps aux | grep "uwsgi" | grep -v "grep" | wc -l`
if [ $psid -gt 4 ]
then
echo "uwsgi is running!"
exit 0
else
uwsgi /etc/uwsgi.ini
echo "Start uwsgi service [OK]"
fi


elif [ $1 = stop ];then
killall -9 uwsgi
echo "Stop uwsgi service [OK]"
elif [ $1 = restart ];then
killall -9 uwsgi
/usr/bin/uwsgi --ini /etc/uwsgi.ini
echo "Restart uwsgi service [OK]"

else
echo "Usages: sh uwsgiserver.sh [start|stop|restart]"
fi

UISearchBar 在Xcode默认环境的工程中, 所有文字显示的是英文, 这让大家很不爽, 网上有修改Cancel键的上文字的办法, 就是取UISearchBar的子视图上的控件, 进行遍历, 个人认为这个办法不可取, 因为除了取消按钮外, 还有全选,粘贴显示的还是英文, 你是不是也要遍历一下呢? 我也做了这个操作,但是结果没有达到想要的。

正确的处理方法:

点击工程名, 打开如下图界面
在Localizations默认只有English这一项, 我们只需在Localizations上添加Chinese就可以了, 你还可以根据你的需要添加其他的语言.

如果用户把手机语言设成英文, 那么显示的就是英文, 设置成中文,那么显示的就是中文.

正确的解决的方法, 可以让我们节省很多事情, 不是么?

解决办法:

  • 创建控制器. File->New File->Iphone OS->Cocoa Touch Class->UIViewController subclass;

  • 创建xib. File->New File->Iphone OS->User Interface->View XIB

  • 绑定controller和view. 用Interface Builder打开xxx.xib, 点击Files’ Owner, 在Identity Inspector里面的Class Identity, 选择Step 1创建的控制器类, 接着拖拽File’s Owner到View中, 选择Outlets->view.先选中file’s owner(这个很重要)

来源:http://blog.csdn.net/thebesttome/article/details/7799893

CSS3发布很久了,现在在国外的一些页面上常能看到他的身影,这让我羡慕已久,只可惜在国内为了兼容IE,让这一项技术受到很大的限制,很多Web前端人员都望而止步。虽然如此但还是有很多朋友在钻研CSS3在web中的应用,为了不被淘汰,我也开始向CSS3进发,争取跟上技术的前沿。从现在开始我会不断的发布一些CSS3的应用,和大家一起分享,今天我们首先要看的就是:CSS3: Gradient─CSS3渐变。

CSS3 Gradient分为linear-gradient(线性渐变)和radial-gradient(径向渐变)。而我们今天主要是针对线性渐变来剖析其具体的用法。为了更好的应用CSS3 Gradient,我们需要先了解一下目前的几种现代浏览器的内核,主流内容主要有Mozilla(熟悉的有Firefox,Flock等浏览器)、WebKit(熟悉的有Safari、Chrome等浏览器)、Opera(Opera浏览器)、Trident(讨厌的IE浏览器)。本文照常忽略IE不管,我们主要看看在Mozilla、Webkit、Opera下的应用,当然在IE下也可以实现,他需要通过IE特有的滤镜来实现,在后面会列出滤镜的使用语法,但不会具体介绍如何实用,感兴趣的可以搜索相关技术文档。那我们了解了这些,现在就开始今天的主题吧。

节选如下:

CSS3的线性渐变

一、线性渐变在Mozilla下的应用
语法:
-moz-linear-gradient( [<point> || <angle>,]? <stop>, <stop> [, <stop>]* )
参数:其共有三个参数,第一个参数表示线性渐变的方向,top是从上到下、left是从左到右,如果定义成left top,那就是从左上角到右下角。第二个和第三个参数分别是起点颜色和终点颜色。你还可以在它们之间插入更多的参数,表示多种颜色的渐变。
注:这个效果暂时只有在Mozilla内核的浏览器下才能正常显示。
二、线性渐变在Webkit下的应用
语法:
-webkit-linear-gradient( [<point> || <angle>,]? <stop>, <stop> [, <stop>]* )//最新发布书写语法
-webkit-gradient(<type>, <point> [, <radius>]?, <point> [, <radius>]? [, <stop>]*) //老式语法书写规则
参数:-webkit-gradient是webkit引擎对渐变的实现参数,一共有五个。第一个参数表示渐变类型(type),可以是linear(线性渐变)或者radial(径向渐变)。第二个参数和第三个参数,都是一对值,分别表示渐变起点和终点。这对值可以用坐标形式表示,也可以用关键值表示,比如 left top(左上角)和left bottom(左下角)。第四个和第五个参数,分别是两个color-stop函数。color-stop函数接受两个参数,第一个表示渐变的位置,0为起点,0.5为中点,1为结束点;第二个表示该点的颜色。
三、线性渐变在Opera下的应用
语法:
-o-linear-gradient([<point> || <angle>,]? <stop>, <stop> [, <stop>]); /* Opera 11.10+ */
参数:-o-linear-gradient有三个参数。第一个参数表示线性渐变的方向,top是从上到下、left是从左到右,如果定义成left top,那就是从左上角到右下角。第二个和第三个参数分别是起点颜色和终点颜色。你还可以在它们之间插入更多的参数,表示多种颜色的渐变。(注:Opera支持的版本有限,本例测试都是在Opera11.1版本下,后面不在提示)。
四、线性渐变在Trident (IE)下的应用
语法:
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr=#1471da, endColorstr=#1C85FB);/*IE<9>*/ -ms-filter: "progid:DXImageTransform.Microsoft.gradient (GradientType=0, startColorstr=#1471da, endColorstr=#1C85FB)";/*IE8+*/
IE依靠滤镜实现渐变。startColorstr表示起点的颜色,endColorstr表示终点颜色。GradientType表示渐变类型,0为缺省值,表示垂直渐变,1表示水平渐变。

详细的自己去参考吧。

来源:http://www.w3cplus.com/content/css3-gradient

当我们在视图里面调用pushViewController的时候,有时间不想要这种默认的返回方式,或者也会用,但是有时候会遇到奇怪的问题,比如我就遇到了push之后没有返回按钮,或者说返回按钮消失了,不见了,因为我在rootViewController里面将navigationBar隐藏掉了,因为我想要我自己定义的navigationBar,之后在切换的视图里面就要自己定义这个但会按钮,然后给予他一个响应事件,来调用下面的类似代码,但是往往不知道返回到哪里

1
2
3
[self.navigationController popToRootViewControllerAnimated:<#(BOOL)#>]
[self.navigationController popToViewController:<#(UIViewController *)#> animated:<#(BOOL)#>]
[self.navigationController popViewControllerAnimated:<#(BOOL)#>]

在我的代码中,我是希望返回到到rootViewController这个视图中,那就只有调用[self.navigationController popToRootViewControllerAnimated:<#(BOOL)#>]

这个方法最适合了。结果达到了我想要的效果

0%