Articles in the Tech category

  1. django制作first app(1)

    django中的migrate有三种: 1、makemigrate 2、sqlmigrate 3、migrate

    makemigrate,基于当前的model,根据对models的修改,创建新的迁移文件 sqlmigrate,用于显示迁移的SQL语句 migrate,是真正用于执行迁移操作的命令

    一般用法是修改models之后,以如下命令顺序执行

    python manage.py makemigrate
    python manage.py sqlmigrate appname 0001
    python manage.py migrate
    

    一些简单的查询语句都可以通过对python的对象的操作来实现,比如

    Question.objects.filter(id=1)
    Question.objects.all()
    Question.objects.get(pk=1)
    
    # Question是Choice的外键
    q = Question.objects ...
    Tagged as : develop django migrate
  2. eclipse的C++索引index

    eclipse中经常碰到一些头文件找不到的问题,就是程序能编译通过,但是编辑器上就是显式unresolved include files,这个时候,可以对工程进行配置,右键工程的property,找到C/C++ General,里面有个Paths and Symbols,在include的GNU C和GNU C++中都添加相应的头文件,如果只配置C++,那么以.c为后缀的文件就不能找到相应的头文件了,所以把两个都配上。配置好之后如果还不行,那就右键工程,点index,Rebuild就可以了。

    Tagged as : develop eclipse
  3. 折腾博客

    博客出问题好久了,一直没有注意搞,今天终于好好弄了一遍,记录一些问题。

    记得在git shell中加入git remote add origin https://github.com/heifrank/heifrank.github.io.git,查看的时候可以用git remote -v来查。之前出的问题是git的submodule相关的,不太了解git具体怎么用,好像说是要用gitmodule这个文件,还有一些命令什么的,没搞清楚,其实说白了就是pelican-themes和pelican-plugins是两个子模块,之前不用指定gitmodule就能用,现在不行了,必须用gitmodule。我于是把主题和插件的位置都换成了本机的绝对路径,就没问题了,具体可以见pelicanconf.py的设置即可。

    开始配置的时候好像还需要git user什么的
    git config --global user.name "your name"
    git config --global user.email "your email"

    还有一些命令比如git ...

    Tagged as : blog
  4. 设计模式学习笔记

    按照最近学习的顺序记录设计模式的一些知识

    我觉得设计模式要注意的主要方面有几个
    a)面向接口编程!!!
    b)开闭原则!!!(对修改封闭,对扩展开放)
    c)设计模式很相通,有些设计模式非常相似,不需要太纠结细节,只要能设计出合适的类就OK,不用在乎具体是哪个模式

    写在前面

    所有的设计模式的最终目的都是:让代码结构更加清晰(方便看你代码的人一眼就懂),当发生变动的时候,改动代码的代价最小。站在开发者的角度想,比如你用了个别人开发的库,你想在他开发的这个库基础上进行开发,那么你就得使用这个库,怎么用就是个大问题。
    a)如果你用他的库,却要做一大堆的初始化,还有先后顺序要考虑,那你就很头疼;如果很简单就能用多好
    b)如果你用他的库,却需要修改他的源代码,那就是个痛苦的决定:如果能直接继承或者包含个他的类多好
    c)如果你用他的库,但是他的库中各个模块的耦合度太高,牵一发而动全身,那就是个不良的设计:如果代码清晰耦合度低多棒

    先做个哈希表

    单例模式 1
    简单工厂模式 9
    工厂方法模式 10
    抽象工厂模式 ...

    Tagged as : learning design
  5. socket基本用法

    写个文章记录一下基本的socket的使用

    一、面向连接的编程TCP

    1、服务器端:

    首先建立socket

    sockfd = socket(AF_INET, SOCK_STREAM, 0)
    

    第二个参数说明是面向连接的编程,如果返回-1代表出错,否则返回socket描述符的值;
    然后本机配置一个sockaddr_in类型的地址

    myaddr.sin_family = AF_INET;  
    myaddr.sin_port = htons(SERVER_PORT);  
    myaddr.sin_addr.s_addr = INADDR_ANY;//这个值代表自动为这个字段填入本机的IP地址  
    memset(&myaddr.sin_zero, 0, sizeof(myaddr.sin_zero));
    

    接下来要将socket和配置的地址绑定

    bind(sockfd, (struct sockaddr *)&myaddr, sizeof(struct sockaddr))
    

    如果返回值为-1代表出错;
    接下来设置同时接收请求的最大数量

    listen(sockfd, NUM)
    

    NUM代表最大的同时请求的数量,这个函数在tcp连接中才有用 ...

    Tagged as : learning socket
  6. windows下用eclipse开发C++

    eclipse + cdt + mingw的一些配置 下载标准版本的eclipse(我用的是4.3.0版本的,也叫kepler),下载对应版本的CDT(8.2.0),安装mingw,我是用mingw-get-inst-20120426.exe装的(这个版本我用的比较舒服,如果在官网上下载mingw的话,安装完可能缺少libiconv2,它是个windows运行的dll库,一般电脑上貌似没有这个库,如果没有它的话不能执行make命令),选装gcc和g++两个组件,如果按照默认路径(C:\MinGW)装可能会碰到少一点的问题。

    cdt有两种下载方式,可以在eclipse的help中通过install安装,也可以在网上下载,然后把下载完的压缩包解压,把里面的features文件夹和plugins文件夹复制到eclipse的根目录中,和eclipse的根目录中的features、plugins文件夹合并就行。

    1、头文件unresolved问题
    这个可以通过在环境变量中设置PATH=MinGW\bin来解决,如果设置了这个path的话,那么eclipse会自动找mingw的一些头文件库,加入到工程中的include文件夹下面(刚创建工程的时候只有一个src目录,没有include目录)。不幸的是,有的时候可能不起作用,我的就是加入了变量,但是不管用,后来把变量删了,又重新加入了一次才管用 ...

    Tagged as : develop eclipse

Pages

Categories

Tags

Page 1 / 1