How to setup Django and MySQL-python on Mac OS X Lion

Decoding the Web

Django is an excellent web-framework written in Python.

Here is a quick setup guide for installing Django and MySQL-python on Mac OS X Lion.

Setup Django

– Download latest Django here

– At this point I am assuming that you are familiar with the Terminal, so simply execute the following commands on your Downloads folder:

tar -xzvf Django-1.3.1.tar.gz
cd Django-1.3.1
sudo python setup.py install

Test Django installation

Type on the Terminal:

python
import django
print django.get_version()

Setup MySQL-python package

Download the latest MySQL (64-bit, tar archive) here

– Extract tar contents
– Rename folder to “mysql”
– Copy folder to /usr/local/
– You should now have mysql installed on /usr/local/mysql

Download the latest MySQL-python package here

Type on the Terminal:

tar -xvzf MySQL-python-1.2.3.tar.gz
cd MySQL-python-1.2.3

Edit site.cfg on your favorite text editor and change the mysql path as below: mysql_config = /usr/local/mysql/bin/mysql_config

You are now ready to build and install…

View original post 115 more words

Advertisements

Containerize your database volume with Tutum MySQL Images

Tutum Blog

Nowadays, there are more and more people starting to use docker to containerize their applications, and MySQL is the most popular one.It is as simple as one command line to create and start your own database:

docker run -d –P tutum/mysql

However if you decide to replace MySQL with MariaDB in the future, data migration will be painful to perform. Tutum MySQL/MariaDB images help solve this problem.

Here is a simple example:

1. Create a volume container that holds database data

docker run -d -v /var/lib/mysql –name db_vol -p 22:22 tutum/ubuntu:trusty

Note: you can change the name of the volume container, which will be used in the next step. The volume path (/var/lib/mysql) should not be changed.

2. Create a MySQL container and write data to the volume container:

docker run -d –volumes-from db_vol -p 3306:3306 tutum/mysql:5.5

Note: –volumes-from should use the name of the volume container.

Here’s the log…

View original post 161 more words

Web实战

JS实现点击链接在新的页面中打开:

黏贴如下代码到<body></body>中
<pre>

<a href=”signup.html”>asdafsdaf</a>
<script type=”text/javascript”>
function externallinks() {
if (!document.getElementsByTagName) return;
var anchors = document.getElementsByTagName(“a”);
for (var i=0; i<anchors.length; i++) {
var anchor = anchors[i];
if (anchor.getAttribute(“href”))
anchor.target = “_blank”;
}
}
window.onload = externallinks;
</script>

</pre>


Sent from Mailbox

Docker实战!把Angelnode.com放入 集装箱!

在本机上配置一堆文件才跑通Angelnode,本想给队友也简单配置一下,发现我们的配置还不太一样,debug花了一堆时间。
为了解决配置的问题,学习到Vagrant up来建立虚拟机跑程序,但是vagrant up占用的资源太多了,反正都是新学的,我们用Docker!

Docker就是类似vagrant up一样的原理,搞一个虚拟机,配置的文件可以事先配置好脚本放在本地,到队友的机器上跑一下脚本全都搞定,在也不同担心队友的机器不一样了!


Sent from Mailbox

为什么不应该使用QQ 进行技术交流?

原文来自GDG珠海:
http://blog.zhgdg.org/2013-06/anti-qq-as-tech-communication/

还是简单说三点核心问题:

同步vs异步

  • QQ也好,Skype也罢,以及消亡的ICQ/MSN等等,都是一种 IM ~即时通讯(Instant Messaging)
  • 因为很类似我们平常面对面交谈的形式,所以,为广大人民群众接受,成为好象主流的在线沟通形式
  • 这种形式是种同步(synchronization)沟通形式,在软件工程学中属于一种阻塞式工作模式
    • 即,一方发出的信息,必须等待另外一方反馈后,才能继续通讯下去
    • 也就是说,双方在没有相互明确对方的意思前,谈话是被阻塞的
    • 只能进行多次反复确认,才能继续的
  • 其实不然,多数情况下,技术问题涉及的相关人士,不仅仅两人,极端情况是涉及上千人的整个社区
  • 如果在 Q群 中要对某一技术问题,进行讨论,并达成共识决议,几乎是不可能的:
    • 因为 QQ 要求双方同时在线,才可能跟上讨论的进展
    • 如果有部分人不在线,或是注意力不在聊天窗口中
    • 那么就只能出声问,或是翻阅聊天历史来掌握进展
    • 可惜,多数人是直接询问,从而撕裂其它人的交流
    • 以上讨论线索被”自然”撕裂的情景,随着Q群人数的增加,而急剧爆增,直到所有人都搞不清现在在讨论什么
  • 而程序员们常用的沟通形式是种异步(asynchronization)非阻塞的交流方式:
    • 邮件列表(Mailing list ),即,大家通过一个公共的社区邮箱展开讨论
    • 一个问题统一回复到相同的话题之下
    • 大家在方便的时候才专心查阅邮件,逐一对其它人邮件提出的技术问题进行回复
    • 虽然,一个问题,可能热烈的讨论几天,甚至于几个月! 但是,所有人的意见/见解,都是有邮件可以追查/对比/反复理解的
    • 而且,一个问题随着讨论的深入,任何中间插入的人,也都可以通过历史邮件全面客观的掌握所有人的观点
    • 所以,再复杂的技术问题,通过列表,都可以优雅的,非时间强占式的,得以达成共识!
  • 同步交流最后总是趋向比谁刷屏刷的快,谁用的字体/表情亮瞎人的眼!
  • 异步交流的列表,则永远是有道理的,能解决问题的见解/代码获得认可!

形式决定内容

  • 参考 tiny4 的系列文章:书的历史与未来-从介质,内容和表现形式的相互影响谈起
  • QQ群的聊天记录,每天记录保存上限为3000条,普通QQ群只能保存最近七天的聊天记录,高级QQ群可以保存最近30天的聊天记录! 而且群记录只能由群成员查阅.
  • 而邮件列表的讨论过程因为是以邮件为介质的,所以,只要作好邮件备份,理论上保存数量是无限,记录时间也是无限的
  • 更加开放的是,多数技术社区的邮件列表,都通过第三方邮件列表服务自动完成公开的邮件归档和发布
  • 所以,任何人,可以轻易的搜索出历史上任何人,任何时候,发送的任何一封列表邮件内容!
    • 比如: https://lkml.org/lkml/2000/8/25/132
    • 就是 Linux 创始人 Linus 在13年前的一场讨论中发出的: Talk is cheap. Show me the code. 能侃不算什么,有本事把代码拿出来看看! 这一著名宣言的邮件内容原文!
  • 列表的这一形式,决定了所有明白列表这种交流形式真实意义的人
  • 在任何一封邮件中,都趋向与越来越理性/中立/认真,绝不不懂装懂!
  • 毎一封邮件,都尽可能将问题描述完备,说明清楚 5W1H: http://wiki.woodpecker.org.cn/moin/5W1H
    • who 谁,或 什么目标用户
    • When 何时,或 什么期限
    • Where 何地,或 什么场景/过程中
    • What 何解,或 前后文,具体的条件
    • Why 为何,或 具体的业务要求
    • How 如何,或 进行过怎样的尝试 以便其它人,有足够的信息,可以根据自身的经验,给出确切的建议
  • 从邮件列表的交流文化中,甚至于产生了类似: “提问的智慧” http://wiki.woodpecker.org.cn/moin/AskForHelp 这种详细的指导新人如何合理从容友好的进行交流的指导手册
  • 所以,尊重交流双方,永久记录交流过程的列表,得以自然的拘束大家进行有效的沟通
  • 而不是QQ群中大家习惯性的只是进行前后几句的沟通,永远不会认真对待那几句,反正没几天,谁也查不出你说过什么!

数据安全

  • 硬件不可靠,系统不可靠,网络不可靠,软件不可靠!但凡是人制造的东西,都不是100%可靠!
  • QQ群的交流,当然也是基于各种不可靠的东西之上的
    • 大家的发言,通过QQ 公司的服务器集群进行中转,广播,以及暂存
    • 中间一但发生什么意外,消息丢失了,QQ公司不承诺找回,大家也不当个事儿
    • 那么真出了什么事儿,就只能我们自个儿担着了!
  • 邮件列表则不同,邮件进行分发时,所有订阅者的私人邮箱都有了一份信息副本
    • 同时,列表服务系统中自动完成了一份归档文本
    • 再同时,搜索引擎自动抓取到了归档文本,分散存储到了全球无数主机中
    • 再再同时,如果我们使用 Gmail 进行列表沟通的话,那每封邮件自动完成三份相同的备份分散到全球数据中心中
    • 即,邮件列表中毎一个字都通过公开的传播流程,形成永不丢失的状态!

综上,在技术交流中,去邮件列表沟通令众人受益,是 珠海GDG 提倡的科学沟通渠道!

Sting Chen 的体验:与邮件相比,QQ沟通有很多缺点:

  • 1)QQ沟通废话多
    • 很多人喜欢问”XX在吗?”
    • 显然,从来没有人在邮件里面问.
  • 2)QQ容易打扰别人
    • 别人QQ找你,你正常情况下要迅速回复,否则就是不礼貌.
    • 甚至有人有强迫症,希望大家有立刻回复的,如果一个qq群没有人能立刻回复,立刻被指责为不活跃的qq群.
    • 回复呢,大片时间被切割,被打扰.
    • 而邮件则可以在自己的空余时间,在喜欢的时候回,没有人觉得不合理.
  • 4)用QQ的时间,往往人很急躁
    • 因为语言都是碎片化,往往话还没说完,就开始吵.
    • 一旦开始吵,就变成要维护自己的观点. 或者抓其中一个小点,不看大局全局.
  • 5)用QQ的时候,因为别人急,自己也少思考
    • 很多时候,容易乱说话,打错字更是大量存在,也显得人很不靠谱.
    • 而说话不靠谱,也会造成大量的沟通问题.
  • 6)QQ不适合长篇技术问题
    • 长篇的帖子无法黏贴,显示和阅读也是问题.
  • 7)QQ群难以形成按线索积累的内容
    • 这样,许多人会反复问同样的问题,而无法从前人的积累中获得.
  • 8)为了形成所谓活跃的QQ群,灌水严重
    • 往往qq群中,大家确实没有那么多正事聊,为了保持活跃度,一般都需要大量灌水.
    • 很多用手机3G流量上网的抱怨,流量很快就被灌水的图片等花光了.
  • 9)习惯性骂人,习惯性说怪话
    • 由于大部分网友都不是对普通的话语敏感,反应不够强烈. 往往在强烈的话语时候才会及时反应,所以在成员组成复杂的QQ群里面的话语经常比较激烈. 对成熟的成年人来说,往往感受到被侮辱. 而对90后来说,可能是正好的一种个性张扬和说法方式. 在qq群里面,这种语言的传染性极强,对不是很常用qq的人来说,往往不容易适应那种语言环境.

综上,QQ群形成了逆向淘汰,在QQ群里面活跃的,往往是很闲,很无聊.

  • QQ群里面说话也以碎片化,娱乐性的为主.
  • 但是,由于QQ群的及时性,用于在线开会,包括语音等都很棒.
  • 当然Skype和G+ Hangout也很棒. 只是很少人有这些账号.

因此,我个人只是把QQ当gtalk,skype一样用,把qq群当群体会议工具用. 上海GDG的陆康已经开始试验用新版Gtalk(hangout)群聊替代qq群.
以上是我的个人感受和观点,欢迎大家拍砖.

  • 另外,我不反对大家去建立qq群和使用qq群,只是我的个人习惯而已.
  • 但是,我个人以后对重度QQ用户申请志愿者,我建议大家更加谨慎地考核,避免这种坏习惯.


Sent from Mailbox

Vagrant Ubuntu上手

参考了happypeter老师的Vagrant实战教程,
我在本地也vagrant up了一番,建立了本地的虚拟镜像重新建立一个linux帝国。

Ubuntu的command line模式逼迫使用者提高效率。
慢慢的我学会了安装python、pip、mysql,使用vim编辑器、linux命令行、sql语句等等。

获得上帝权限
<code>sudo su</code>

安装pip
<code>sudo apt-get install python-pip</code>


Sent from Mailbox