青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

2016年4月28日

有效利用標(biāo)準(zhǔn)庫(kù)提供的type_traits,讓程序在編譯時(shí)作出分支選擇

讓程序中的簡(jiǎn)單if-else在編譯期間決定

ex. 1 /*
 2  * =====================================================================================
 3  *
 4  *       Filename:  3.cpp
 5  *
 6  *    Description:  
 7  *
 8  *        Version:  1.0
 9  *        Created:  03/01/2016 11:38:53 AM
10  *       Revision:  none
11  *       Compiler:  gcc
12  *
13  *         Author:  shih (Hallelujah), sh19871122@gmail.com
14  *   Organization:  
15  *
16  * =====================================================================================
17  */
18 
19 #include <stdio.h>
20 #include <stdint.h>
21 #include <iostream>
22 #include <type_traits>
23 
24 template<typename T>
25 struct is_swapable
26 {
27     static const bool value = std::is_integral<T>::value && sizeof(T) >= 2;
28 };
29 
30 template<typename T>
31 T byte_swap(T value, std::true_type)
32 {
33    uint8_t *bytes = reinterpret_cast<uint8_t *>(&value);
34    for (std::size_t i = 0; i < sizeof(T)/2; ++i)
35    {   
36        uint8_t v = bytes[i];
37        bytes[i] = bytes[sizeof(T) - 1 - i]; 
38        bytes[sizeof(T) -1 -i] = v;
39    }   
40    return value;
41 }
42 
43 template<typename T>
44 T byte_swap(T value, std::false_type)
45 {
46     return value;
47 }
48 
49 template<typename T>
50 T byte_swap(T value)
51 {
52     return byte_swap(value, std::integral_constant<bool, is_swapable<T>::value>());
53 }
54 
55 int main(int argc, const char *argv[])
56 {
57     int a = 0x11223344;
58     long b = 0x4455221112345678;
59     std::cout << std::hex << a << " " << b << std::endl;
60     std::cout << std::hex << byte_swap(a) << " " << byte_swap(b) << std::endl;
61     uint8_t c = 0x11;
62     char *d = "hello world";
63     std::cout << std::hex << byte_swap(c) << " " << byte_swap(d) << std::endl;
64     return 0;
65 }
66 

posted @ 2016-04-28 17:50 Hallelujah 閱讀(1358) | 評(píng)論 (0)編輯 收藏

2014年10月22日

CentOS 7安裝EPEL Repo

安裝額外的EPEL倉(cāng)庫(kù)
wget https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm
yum install epel-release-7-2.noarch.rpm
安裝后就可以安裝R等了


posted @ 2014-10-22 07:56 Hallelujah 閱讀(2421) | 評(píng)論 (0)編輯 收藏

2014年9月12日

使用Python通過(guò)Hive的Streaming來(lái)寫(xiě)UDF的一些記錄

      最近使用Hive來(lái)統(tǒng)計(jì)數(shù)據(jù),用了pyhs2來(lái)實(shí)現(xiàn)查詢,但是有些復(fù)雜的處理比如,自定義對(duì)域名的處理等,不能通過(guò)hql來(lái)實(shí)現(xiàn),發(fā)現(xiàn)能夠使用udf。

      Java來(lái)實(shí)現(xiàn)Hive的寫(xiě)法 

package jsl.hive.udf;

import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.io.Text;

public final class DomainRoot extends UDF {
    public Text evaluate(Text s) {
        if (s == null) {return null;}
        String tmp = s.toString();
        tmp = this.getDomainRoot(tmp);
        return new Text(tmp);
    }   

    private String getDomainRoot(String domain) {
        throw NoneImplementException("xxxx");
    }   
}

如果Java的UDF需要當(dāng)成常用的,不用每次add可以注冊(cè)到Hive中,
ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java中加入
registerUDF("domain_root", UDFParseUrl.class, false);并重新編譯hive即可


   下面來(lái)說(shuō)說(shuō)重點(diǎn),通過(guò)Streaming用Python來(lái)寫(xiě)處理。
   關(guān)于Streaming的基礎(chǔ)內(nèi)容:

   約束:首先必須add file到hive中(當(dāng)python中引用了其他如自己寫(xiě)的模塊時(shí),也需要一并add進(jìn)去)
            其次非常不幸,在單獨(dú)的一個(gè)查詢中,不能夠使用UDAF的函數(shù)如sum()
            再次不得為中間結(jié)果數(shù)據(jù)使用cluster by或distribute by

注意:對(duì)于優(yōu)化查詢,使用cluster by或distribute by 和sort by一起非常重要

posted @ 2014-09-12 11:41 Hallelujah 閱讀(2136) | 評(píng)論 (0)編輯 收藏

2014年7月29日

C++編譯期契約之must_have_base

在C++中不直接支持約束,用過(guò)C#模板的有個(gè)where來(lái)處理,但是C++中也有些小的技巧來(lái)處理。
在不完美C++中的must_have_base如下:

template<typename D, typename B>
struct must_have_base
{
    ~must_have_base()
    {
        void (*p)(D*, B*) = constraints;
    }

private:
    static void constraints(D *pd, B *pb)
    {
        pb = pd;
    }
};
原理是通過(guò)不執(zhí)行的成員函數(shù)把函數(shù)指針在析構(gòu)函數(shù)中賦值,強(qiáng)迫編譯器在編譯期間檢查成員函數(shù)內(nèi)的約束。  

自己寫(xiě)了個(gè)小的實(shí)例,雖然這兒有點(diǎn)點(diǎn)牽強(qiáng),但是,很多情況也需要檢查是否是某種類(lèi)型的子類(lèi)型的時(shí)候還是可以的,
完整代碼如下:
 1 
 2 template<typename D, typename B>
 3 struct must_have_base
 4 {
 5     ~must_have_base()
 6     {
 7         void (*p)(D*, B*) = constraints;
 8     }
 9 
10 private:
11     static void constraints(D *pd, B *pb)
12     {
13         pb = pd;
14     }
15 };
16 
17 class base
18 {
19 public:
20     virtual ~base() {}
21 
22     virtual void run() = 0;
23 };
24 
25 class inherit_base: public base
26 {
27 public:
28     virtual void run()
29     {
30 
31     }
32 };
33 
34 class inherit_not_base 
35 {
36 public:
37     virtual void run()
38     {
39 
40     }
41 };
42 
43 class test
44 {
45 public:
46     template<typename T>
47     void testfunc(T &t)
48     {
49         must_have_base<T, base>();
50 
51         t.run();
52     }
53 };
54 
55 int main()
56 {
57     test t_ok, t_nok;
58     inherit_base hb;
59     inherit_not_base hnb;
60     t_ok.testfunc(hb);
61     t_nok.testfunc(hnb);
62 
63     return 0;
64 }
拋磚引玉,希望這些東西都能用在實(shí)際的工程代碼中。

posted @ 2014-07-29 12:25 Hallelujah 閱讀(1538) | 評(píng)論 (0)編輯 收藏

2014年6月5日

Vagrant啟動(dòng)自己CentOS的時(shí)候出現(xiàn)文件夾不能正常掛載

解決辦法:
$ vagrant plugin install vagrant-vbguest
$ vagrang reload


reload會(huì)重新編譯vbox的additions,然后mount就能成功了
我的環(huán)境是CentOS 6.5,在yum中開(kāi)啟了kernel更新的,默認(rèn)是exclude=kernel*

這是別人給的解決方案:
vagrant up; vagrant ssh -c 'sudo ln -s /opt/VBoxGuestAdditions-4.3.10/lib/VBoxGuestAdditions /usr/lib/VBoxGuestAdditions'; vagrant reload

posted @ 2014-06-05 11:16 Hallelujah 閱讀(1848) | 評(píng)論 (0)編輯 收藏

2014年5月18日

kivy的第一步------安裝,與IDEA共同開(kāi)發(fā)

環(huán)境:Windows 7 64bits,IDE:IntelliJ IDEA 13.1.2
安裝kivy:1. 下載安裝包http://kivy.org/#download,我使用的是Python 2.7.6,選擇的2.7版本(注意此版本是32位Python)
              2. 解壓到一個(gè)目錄,我在我的系統(tǒng)環(huán)境變量中將根目錄命名為了KIVY_ROOT
              3. 雖然kivy中自帶了Python的,可以直接使用,也可以自己安裝,我是自己下載的Python 2.7.6(記得一定是32位,不然后面寫(xiě)程序會(huì)出問(wèn)題)
              4. 如果機(jī)器以前沒(méi)安裝git的,可以直接使用KIVY中帶的mingw,我自己機(jī)器安裝了git,所以環(huán)境變量就沒(méi)設(shè)置mingw的
              5. 設(shè)置環(huán)境變量,GST_REGISTRY=%KIVY_ROOT%gstreamer\registry.bin
                                     GST_PLUGIN_PATH=%KIVY_ROOT%gstreamer\lib\gstreamer-1.0
                  PATH變量中加入了%KIVY_ROOT%;%KIVY_ROOT%tools;%KIVY_ROOT%gstreamer\bin;(還有Python的mingw的)
                  最后,需要在PYTHONPATH中加入%KIVY_ROOT%kivy
最后寫(xiě)入第一個(gè)程序來(lái)測(cè)試:
代碼如下
 1 
 2 # -*- coding:utf-8 -*-
 3 #/user/bin/env python
 4 
 5 __author__ = 'shih'
 6 
 7 from kivy.app import App
 8 
 9 class Hello(App):
10     pass
11 
12 if __name__ == "__main__":
13     Hello().run()
執(zhí)行結(jié)果如下:


posted @ 2014-05-18 20:35 Hallelujah 閱讀(1318) | 評(píng)論 (0)編輯 收藏

2014年4月14日

Python特殊方法的操作符重載表

不知道里面怎么弄表格,就上傳圖片了

如果用戶自定義的類(lèi),想有add功能,如果類(lèi)沒(méi)提供__add__或__radd__方法的話,會(huì)拋出異常
再如,if xxxobj:默認(rèn)是如果xxxobj不是None則為T(mén)rue,否則為False,如果不是這個(gè)邏輯則可以通過(guò)實(shí)現(xiàn)__bool__方法(自己的測(cè)試中2.7需要再加上__nonzero__()方法,3.2中直接就行)

posted @ 2014-04-14 11:38 Hallelujah 閱讀(352) | 評(píng)論 (1)編輯 收藏

2014年3月16日

zeromq學(xué)習(xí),第一章

Asynchronous Input/Output(AIO):AIO可以在input/output的請(qǐng)求到來(lái)之前繼續(xù)執(zhí)行。AIO在實(shí)時(shí)應(yīng)用程序中是必須的。使用AIO可以映射多個(gè)任務(wù)到一個(gè)線程上去。
首先zeromq的設(shè)計(jì)是弱中間人的(brokerless,相對(duì)于ActiveMQ、RabbitMQ等,使用0zq的程序就可以直接和其他的節(jié)點(diǎn)通信而不通過(guò)broker的代理。),zeromq不會(huì)存儲(chǔ)信息到磁盤(pán)上,然而可能使用本地的交換文件來(lái)存儲(chǔ)消息(當(dāng)設(shè)置了zmq.SWAP時(shí))。

示例:HelloWorld(server)

server

示例:Helloworld(client)

client

這里使用了最基本的請(qǐng)求應(yīng)答架構(gòu)。詳細(xì)解析代碼:
第一步:創(chuàng)建了context和socket,zmq_ctx_new方法創(chuàng)建了一個(gè)新的context,這是線程安全的,即一個(gè)context可用于多個(gè)線程操作。 zmq_socket方法創(chuàng)建了一個(gè)在context中定義的socket,ZeroMQ的socket不是線程安全。傳統(tǒng)的socket是同步的,然而ZMQ的socket在客戶端和服務(wù)端都維護(hù)了一個(gè)隊(duì)列來(lái)管理request-reply的異步模式。ZMQ自動(dòng)的處理連接、重連、斷開(kāi)連接和內(nèi)容交付。
服務(wù)端創(chuàng)建了Reply(ZMQ_REP)用來(lái)處理接收消息并應(yīng)答消息。如果客戶端和服務(wù)端遺失(lost),應(yīng)答的消息將在沒(méi)有任何通知的情況下丟掉。
客戶端創(chuàng)建了一個(gè)Request(ZMQ_REQ)來(lái)發(fā)送消息并接收來(lái)自服務(wù)的應(yīng)答。ZMQ_REQ下不會(huì)丟棄任何信息,不管是沒(méi)有沒(méi)有可用與發(fā)送消息的服務(wù)或是服務(wù)處于忙狀態(tài),所有的發(fā)送操作zmq_send函數(shù)會(huì)阻塞,直到一個(gè)服務(wù)變?yōu)榭捎糜诎l(fā)送消息。ZMQ_REQ和ZMQ_REP、ZMQ_ROUTER類(lèi)型兼容。
消息的發(fā)送zmq_send函數(shù)的第三個(gè)參數(shù)是flags,是ZMQ_DONTWAIT或ZMQ_SNDMORE。ZMQ_DONTWAIT表明消息是異步的發(fā)送。ZMQ_SNDMORE表明消息有多部分,其余的部分已經(jīng)“在路上了”。消息接收函數(shù)zmq_msg_recv函數(shù),如服務(wù)端,在先前接收的消息是無(wú)效的。第三個(gè)參數(shù)flugs可能是ZMQ_DONTWAIT。

先睡覺(jué)了

posted @ 2014-03-16 23:41 Hallelujah 閱讀(3746) | 評(píng)論 (2)編輯 收藏

2013年12月31日

Python的參數(shù)解包小技巧(使用容器作為參數(shù)時(shí))

 1 def args_unpacking_test(x, y):
 2     print 'x = ', x, ' y = ', y
 3 
 4 A = namedtuple('A''y x')
 5 
 6 list_foo = [3, 4]
 7 tuple_foo = (3, 4)
 8 ntuple_foo = A(4, 3)
 9 dict_foo = {'y':4, 'x':3}
10 
11 
12 args_unpacking_test(*list_foo)
13 args_unpacking_test(*tuple_foo)
14 args_unpacking_test(*ntuple_foo)
15 args_unpacking_test(**dict_foo)
16 
17 他們的結(jié)果輸出都是一樣的

這個(gè)方式處理非常有用,如果參數(shù)個(gè)數(shù)不一致的話會(huì)報(bào)錯(cuò)

posted @ 2013-12-31 11:07 Hallelujah 閱讀(1182) | 評(píng)論 (0)編輯 收藏

2013年12月17日

Oracle的編程準(zhǔn)備工作:搭建本地的基本環(huán)境

首先下載Instant Client,我下載的11.2

下載的文件包括如下列表:
1. instantclient-basic-nt-11.2.0.3.0.zip
2. instantclient-odbc-nt-11.2.0.3.0.zip
3. instantclient-sdk-nt-11.2.0.3.0.zip
4. instantclient-sqlplus-nt-11.2.0.3.0.zip
5. instantclient-tools-nt-11.2.0.3.0.zip
最后兩個(gè)隨便了,解壓文件到instantclient_11_2目錄中

命令行下到解壓的目錄instantclient_11_2中執(zhí)行>odbc_install

在環(huán)境變量中的系統(tǒng)變量PATH中加入instantclient_11_2目錄的全路徑

創(chuàng)建一個(gè)用戶變量ORACLE_HOME,指向ic的安裝目錄,這點(diǎn)很關(guān)鍵,特別是用cmake編譯soci,并需要支持Oracle的話。

在ic目錄中創(chuàng)建network/admin目錄,并加入OCI的.ora文件,在環(huán)境變量中加入TNS_ADMIN來(lái)指定剛才創(chuàng)建的目錄

創(chuàng)建一個(gè)用戶變量NLS_LANG來(lái)設(shè)置語(yǔ)言,我的設(shè)置是SIMPLIFIED CHINESE_CHINA.ZHS16GBK,這個(gè)要和數(shù)據(jù)庫(kù)那邊一致?

創(chuàng)建一個(gè)用戶變量SQLPATH來(lái)指定sqlpath工具的文件路徑,下載的第四個(gè)文件

OK,所有安裝就此。

再安裝Oracle的訪問(wèn)工具,我使用的是Navicat for Oracle工具
1. 普通安裝
2. 破解、注解
3. 非常重要:在軟件的option中OCI選項(xiàng)中將OCI library(oci.dll)的路徑指向安裝的instant clent的oci.dll上
4. SQL*PLUS以相同方式處理,不過(guò)不用這個(gè)的話初步處理無(wú)所謂了。

好了,可以嘗試你的第一次Oracle連接之旅了(是我的……)

posted @ 2013-12-17 20:16 Hallelujah 閱讀(1241) | 評(píng)論 (0)編輯 收藏

僅列出標(biāo)題  下一頁(yè)
<2014年5月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

導(dǎo)航

統(tǒng)計(jì)

常用鏈接

留言簿(1)

隨筆分類(lèi)(15)

隨筆檔案(14)

最新隨筆

搜索

最新隨筆

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美日韩国产a| 亚洲精品四区| 欧美成人首页| 一本到高清视频免费精品| 日韩写真视频在线观看| 国产精品欧美精品| 久久国产免费| 老牛国产精品一区的观看方式| 亚洲精品乱码久久久久久久久| 亚洲美女视频网| 国产欧美在线播放| 欧美福利一区| 欧美涩涩视频| 久久亚洲国产精品日日av夜夜| 欧美插天视频在线播放| 亚洲免费伊人电影在线观看av| 欧美在线免费视屏| 最新国产成人在线观看| 99香蕉国产精品偷在线观看| 国产欧美日本在线| 欧美国产精品久久| 国产精品超碰97尤物18| 久久天天躁狠狠躁夜夜爽蜜月| 欧美成人精精品一区二区频| 亚洲欧美日韩高清| 久久男女视频| 亚洲制服少妇| 久久伊人免费视频| 亚洲综合三区| 久久综合九色九九| 亚洲一区免费| 久久只有精品| 欧美亚洲一区二区在线观看| 蜜臀91精品一区二区三区| 亚洲欧美国产精品va在线观看| 久久久噜噜噜久久| 亚洲综合精品四区| 另类综合日韩欧美亚洲| 亚洲欧美一区二区视频| 老牛嫩草一区二区三区日本 | 久久精品国产清自在天天线| 日韩午夜在线电影| 欧美一级视频免费在线观看| 亚洲精品影院在线观看| 欧美呦呦网站| 亚洲视频在线观看三级| 久久久一二三| 欧美一级视频精品观看| 欧美精品日韩一区| 久久久久亚洲综合| 欧美午夜不卡影院在线观看完整版免费 | 亚洲天堂av综合网| 亚洲欧洲中文日韩久久av乱码| 亚洲欧美日韩爽爽影院| 亚洲免费观看高清完整版在线观看熊| 性欧美在线看片a免费观看| 一本大道久久a久久精二百| 久久亚洲欧美| 久久国产一区二区| 欧美亚洲成人免费| 亚洲国产精品va在线看黑人| 国产亚洲精品成人av久久ww| 一区二区三区成人精品| 亚洲另类黄色| 噜噜噜噜噜久久久久久91| 久久爱另类一区二区小说| 欧美日韩亚洲高清一区二区| 亚洲国产cao| 在线精品视频在线观看高清| 亚洲欧美福利一区二区| 亚洲午夜精品视频| 欧美紧缚bdsm在线视频| 欧美凹凸一区二区三区视频| 国产亚洲欧美激情| 亚洲男女自偷自拍图片另类| 正在播放亚洲一区| 欧美成人综合网站| 欧美高清不卡| 精品成人免费| 久久高清国产| 久久久久国产精品一区二区| 国产精品最新自拍| 亚洲一二三区在线| 亚洲视频一区| 欧美色一级片| 99精品99| 亚洲一区二区三区四区在线观看| 欧美激情乱人伦| 亚洲成人自拍视频| 亚洲国产精品精华液网站| 久久免费偷拍视频| 免费观看在线综合| 又紧又大又爽精品一区二区| 久久久国产一区二区三区| 久久精品免费| 国产综合色精品一区二区三区 | 午夜在线观看免费一区| 国产精品video| 一区二区三区 在线观看视频| 亚洲视频精选| 欧美色视频在线| 亚洲午夜精品福利| 性做久久久久久免费观看欧美| 国产精品国产三级国产aⅴ入口| 亚洲视频久久| 欧美一区二区三区在线播放| 国产欧美日本| 久久国产欧美日韩精品| 久久综合九色综合欧美狠狠| 一区在线视频| 毛片av中文字幕一区二区| 欧美激情亚洲激情| 99综合视频| 欧美先锋影音| 午夜精品亚洲| 久久综合99re88久久爱| 在线精品视频免费观看| 欧美电影免费观看大全| 亚洲精品国产精品久久清纯直播| 在线中文字幕日韩| 国产精品老女人精品视频| 亚洲欧美日韩一区二区在线| 久久久久久色| 亚洲日本欧美天堂| 欧美午夜剧场| 性做久久久久久久免费看| 久久久久久久一区二区| 亚洲国产精品一区二区久 | 久久精品一区四区| 一区二区在线观看视频在线观看 | 欧美二区在线看| 一区二区三区精品久久久| 国产精品久久久久久久app| 午夜精品福利在线| 免费观看成人鲁鲁鲁鲁鲁视频| 日韩视频一区二区三区| 欧美亚韩一区| 久久高清一区| 亚洲精品偷拍| 欧美一区影院| 亚洲第一区中文99精品| 欧美日韩一区在线观看| 午夜欧美大片免费观看| 欧美高清在线播放| 亚洲欧美日韩国产综合在线 | 国产日韩欧美在线一区| 久久久亚洲午夜电影| 亚洲日本视频| 欧美在线www| 亚洲国产天堂久久综合网| 欧美日韩中文在线| 久久国产精品99国产| 亚洲人成网站999久久久综合| 新67194成人永久网站| ●精品国产综合乱码久久久久| 欧美日韩高清免费| 久久精彩免费视频| 亚洲精品一区在线观看| 久久精品在线播放| 99热在这里有精品免费| 国产亚洲欧美激情| 欧美日韩精品免费观看视频完整 | 久久午夜国产精品| 日韩午夜av| 老司机一区二区三区| 中文亚洲视频在线| 精品电影在线观看| 国产精品v亚洲精品v日韩精品| 久久国产精品网站| 一区二区三区毛片| 亚洲第一视频| 久久精品视频在线观看| 在线亚洲国产精品网站| 狠狠色香婷婷久久亚洲精品| 欧美日韩美女| 免费成人高清| 性伦欧美刺激片在线观看| 亚洲久久一区| 欧美成人激情视频免费观看| 欧美亚洲免费| 宅男66日本亚洲欧美视频| 精品成人国产| 国产精品网站在线| 欧美日韩的一区二区| 久久夜色撩人精品| 午夜精品一区二区三区在线| 亚洲毛片一区| 欧美激情2020午夜免费观看| 久久激情视频久久| 亚洲视频日本| 亚洲伦理网站| 亚洲电影免费观看高清完整版在线观看 | 韩国精品主播一区二区在线观看| 国产精品av久久久久久麻豆网| 欧美大片在线观看一区| 欧美在线观看一区| 亚洲专区一区二区三区| 亚洲精品日韩综合观看成人91| 欧美韩国日本综合| 久久亚洲不卡|