Archive

‘程式設計’ 分類過的Archive

影片轉檔–Zencoder帶來的舒爽

2012年7月2日 尚無評論

以前網站在做線上影片時,很辛苦的自己用ffmpeg做影片轉檔伺服器,不但常有影片會卡住沒轉到,更會轉出品質不是很理想的flv或mp4。曾想過用第三方轉檔平台處理轉檔的部份,但當時成本費用太高,而一直沒有把這一個部份做改變。
總算,現在在各方技術成熟的情況之下,不少線上多媒體轉檔平台變多了,在公司的團隊試用之下,最後決定使用 zencoder 來做為網站影音轉檔的平台。

zencoder

閱讀全文…

使用django modelform的save()之後,可以取得model的資料

2012年2月21日 尚無評論

原來在用modelform時,還有一個方便的小地方
原文件請看:https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#the-save-method

當新增一筆資料後,我想取得這筆資料的id,其實可以這樣做:
model:
[ccc language="python"]
class ADProject(models.Model):
platform = models.ForeignKey(Platform)
name = models.CharField(_(‘name’), max_length=200)
[/ccc]

form:
[ccc language="python"]
class ADProjectBGMAdminForm(forms.ModelForm):
class Meta:
model = ADProject
[/ccc]

view:
[ccc language="python" highlight="5″]
def adproject_create(request):
form = AdprojectForm(request.POST or None)

if form.is_valid():
f = form.save()
return HttpResponse(‘platform id is:%s, this new id is:%s’ % (str(f.platform.id), str(f.id)))

return render(request, ‘adproject-create.html’, {
‘form’: form
})
[/ccc]

重點就在第5行,似乎是方便多了

Categories: Python Tags: , ,

[jQuery] drag image in div (仿facebook編輯大頭圖)

2012年1月19日 尚無評論

在玩facebook時,覺得他的編輯大頭圖及編輯動態時報的大banner滿好玩的

索性也來玩一下,基本的DEMO在這邊

http://rdandy.tw/imagemagick/drag.php

CSS:

<style type="text/css">
<!--
body {
	margin:0;
}
#container {
	width:300px;
	height:300px;
	border:0;
	margin:0;
	padding:0;
	position: relative;
}
#smallwindow {
	overflow:hidden;
	width:300px;
	height:300px;
	position: relative;
	border:0;
	margin:0;
	padding:0;
	cursor:move;
}
#dragimage {
	position:relative;
	border:0;
}
-->
</style>

HTML body:

<input type="text" id="x" value="">
<input type="text" id="y" value="">
<input type="text" id="w" value="">
<input type="text" id="h" value="">
<br />
crop left: <input type="text" id="realleft" value="">
crop top: <input type="text" id="realtop" value="">
<table>
  <tr>
    <td>拖拉圖</td>
    <td><div id="smallwindow" align="center"><img src="yaya.jpg" id="dragimage" draggable="false" onclick="javascript:return false;" onmousedown="javascript:return false;" onmouseup="javascript:return false;" /></div></td>
  </tr>
</table>

JavaScript:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.17/jquery-ui.min.js"></script>
<script type="text/javascript">
$(function() 
{
	var max_size = 1920;
	var smallwindow = $("#smallwindow");
	var smallwindowwidth = smallwindow.width();
	var smallwindowheight = smallwindow.height();
	var smallwindowleft = smallwindow.offset().left;
	var smallwindowtop = smallwindow.offset().top;
	
    var imgwidth = $("#dragimage").width();
	var imgheight = $("#dragimage").height();
	
	var limitleft = smallwindowleft - (imgwidth - smallwindowwidth);
	var limittop = smallwindowtop - (imgheight - smallwindowheight);
	var limitright = smallwindowleft;
	var limitbottom = smallwindowtop;

	$("#dragimage").draggable({containment:[limitleft,limittop,limitright,limitbottom]});
	
	$("#dragimage").mouseup(function() {
		//var pos = $("#dragimage").position();
		
		var offset = $("#dragimage").offset();
  		$("#x").val(offset.left - smallwindowleft);
		$("#y").val(offset.top - smallwindowtop);
		$("#w").val($("#dragimage").width());
		$("#h").val($("#dragimage").height());
  		$("#realleft").val((offset.left - smallwindowleft) * -1);
		$("#realtop").val((offset.top - smallwindowtop) * -1);
	});
	
	var rleft = smallwindowleft - ((imgwidth - smallwindowwidth) / 2);
	var rtop = smallwindowtop - ((imgheight - smallwindowheight) / 2);
	$("#dragimage").offset({left: rleft, top:rtop })
	
});

</script>
Categories: JavaScript, 程式設計 Tags: ,

設定Apache上跑Django需要注意的幾個小設定

2011年12月2日 尚無評論

在Apache上的部份幾幾乎乎都用設的就行了

但為了整體安全及效能,還是要把幾個小地方設定做一下

這裡我記錄還記得的部份…….

Apache相關的:

檔案:/etc/apache2/conf.d/security

ServerTokens Full

TraceEnable On

檔案:/etc/apache2/ports.conf

NameVirtualHost *
Listen 80
檔案:/etc/apache2/apache2.conf

Timeout 300
KeepAlive Off
<ifmodule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          150
    MaxRequestsPerChild   2000
</ifmodule>
<ifmodule mpm_worker_module>
    StartServers          4
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadLimit          64
    ThreadsPerChild      50
    MaxClients          250
    MaxRequestsPerChild   0
</ifmodule>

#若有 mpm_event_module
#整個mark掉,因為說是過時的東西@@?!
<files ~ "^\.ht">
    Order allow,deny
    Deny from all
    #Satisfy all   #這個不要?!
</files>

設定mod_wsgi:

檔案:/etc/apache2/mods-available/wsgi_module.load

LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so
WSGIPythonOptimize 2

設定site:

檔案:/etc/apache2/sites-available/site

WSGIDaemonProcess site user=www-data group=www-data processes=4 threads=1 display-name=site
WSGIProcessGroup site

WSGIScriptAlias / /path/to/django.wsgi

ServerSignature Off   #不想在錯誤時出現host的資料
Categories: Python, uBuntu Tags: ,

Django aggregation tutorial

2011年11月24日 尚無評論

之前搞不太懂Django的Group by來求Sum, Count之類的

後來看了這篇就清楚多了

 

Django aggregation tutorial

 

Categories: Python, 程式設計 Tags: