Dell Latitude 14 E7480開箱

E7480開箱
NVMe SSD

身為一個專業的IT人員
過完年新的設備到了
不開個箱要幹嘛
這次來介紹的是Dell最新出爐的E7480
包裝依舊環保使用再生紙漿製照的防撞包裝(不用保麗龍大大加分啊)

img_5545

內容物非常的簡單,就筆電E7480和它的充電器,沒有過分且不必要的包裝

img_5546

背面越來越簡便了,居然連最實用的E-Dock都被拔掉了@@
而且電池也改為內建了,雖然在整體的外觀上看起來更為簡潔
但電池這種消耗品,經過長時間的使用是必要換的
所以這時候如果不想要求助原廠就要自己拆機換了
後面我們會有拆機讓你了解內部的結構
但值得讚揚的是增加了許多的散熱孔
使筆電不至於使用太久而過熱

img_5547

在重量方面也表現得相當出色,14吋的筆電只有1414g,不到1.5KG
1414g是要說明自己是14吋的筆電嗎>W<

img_5548

充電器就和之前一樣沒有變化,這是件好事情,不會一直出新的規格充電器,可以使用以前的充電器
而且重量只有309g 攜帶相當的無感

img_5549

我們來看看這次側邊的IO
在官網上是寫明如下:
1 Universal Jack
2 USB 3.0 (one with PowerShare)
1 SD 4.0 Memory card reader
1 RJ-45
1 HDMI
1 SIM card slot

為了節省側邊的空間,RJ-45接頭變成伸縮式的,感覺變得有點不結實

img_5550

值得讚許的是HDMI不是Mini的,不需要透過任何轉接頭轉接它

img_5551

而且這系列最令人驚奇的就是它可以躺平180度m(_._)m
我們可以因此看他的身形是如此的薄

img_5553

是時候該開機了

img_5555

擁有背光鍵盤,使你在黑暗中使用它也不怕會按錯鍵
但由於本公司是外商公司,所以配的是英文鍵盤

img_5559

使用的系統當然是windows 10 pro
因為home版不能join domain啊

img_5560

為了使programmer能向愛妻般的疼愛這台筆電,公司配備了最高規格的I7給他們使用不至於lag
16G的Ram也是為了再跑virtual studio不會有太多的延遲

img_5561

來看看硬碟,什麼居然只有228G@@
但是你後面就會知道它的厲害了

img_5562

是NVMe的SSD耶  \(^0^)/
後面會有跑分,可以期待一下

img_5563

再來身為一個專業的IT宅宅,筆電拿來哪有不先來個拆坐墊公道價八萬一的道理
不對應該是拆開他的背蓋看看它可以有哪些擴充性
有兩條DDR4 8G的RAM,還有intel的wifi模組,以及一個M2的SSD插槽已插上了SSD,及一顆內建的電池
可惜的是不能加一顆sata硬碟給它使用

img_5564

NVMe的SSD果然不是蓋的,有著驚人的讀寫速度
是速度不是素肚歐XD

img_5566

 

img_5565

最令人期待的跑分來了
在PassMark跑出了3332.6分
CPU Mark跑出了6166.4分
2D及3D分別跑出672.7及1143.0分
Memory Mark為2726.3分
Disk Mark為8745.3分

img_5567

以筆電來講算是名列前茅的好寶寶了

img_5568

再來就要看看4K的youtube的CPU使用率了

img_5569

播放期間居然都不超過10%果然很有力

img_5570
結論
優點
1.14吋的筆電擁有輕盈的機身
2.快速的NVMe SSD讓你在開機和開程式像坐噴射機一樣快
3.I7 CPU超給力,看4K影片不lag

缺點:
1.無發接方便好用的Dell E-Dock
2.無法再加裝第二顆硬碟
3.電池內建更換麻煩

E-Dock的好處,就是你可以將所有的IO都接在上面,比如USB鍵盤、滑鼠、HDMI、Mini Display port、RJ-45網路線,只要你按個脫離鍵,就可以直接將筆電帶這走,不用離開位置還要拔一堆有的沒的線

Supernetting PHP 實做-2

asdf
<?php
asdf

sfdfd

<?php $time_start = microtime(true);

/**  * Initial  *  * */ $start = $_POST[“start"]; $Origin = $_POST[“Origin"]; $Join = $_POST[“Join"]; $Percentage = $_POST[“Percentage"]; $masktype = $_POST[“masktype"]; $is_debug = $_POST[“is_debug"]; $testType = $_GET[“testType"]; $TFile[“default"][“O"] = “./example/Origin.txt"; $TFile[“default"][“J"] = “./example/Join.simple.txt"; $TFile[“mask"][“O"] = “./example/Origin_mask.txt"; $TFile[“mask"][“J"] = “./example/Join.simple_mask.txt"; $TFile[“full"][“O"] = “./example/Origin.txt"; $TFile[“full"][“J"] = “./example/Join.full.txt"; $TFile[“waste"][“O"] = “./example/origin-waste.txt"; $TFile[“waste"][“J"] = “./example/join-waste.txt";

include(“./libs/supernetting_func.php");

if(trim($start) == NULL) {  if($testType == NULL) $testType = “default";    $TestFile = $TFile[$testType];    $fp = fopen($TestFile[“O"], “r");  $Origin =  fread($fp, filesize($TestFile[“O"]));    $fp = fopen($TestFile[“J"], “r");  $Join =  fread($fp, filesize($TestFile[“J"]));    } else {  $OriginList = explode(“\r\n", $Origin);  $JoinList = explode(“\r\n", $Join);    $Supernetting = new Supernetting();  $Supernetting->setMaskType($masktype);  if($is_debug == “yes") $Supernetting->enableDebug();  $Supernetting->start($OriginList, $JoinList, $Percentage / 100);  //$Supernetting->aggregateSupernetting($OriginList, $JoinList, $Percentage / 100);      $Origin = $Supernetting->getOrigin();  $Join = $Supernetting->getJoin();  $ResultList = $Supernetting->getResultList();  $AddList = $Supernetting->getAddList();  $DeleteList = $Supernetting->getDeleteList();

$AddMessage = $Supernetting->AddMessage;  $DeleteMessage = $Supernetting->DeleteMessage; }

$time_end = microtime(true);

?>

<html> <head> <title>Supernetting</title> <link type="text/css" href="./css/supernetting.css" rel="stylesheet" />     </head> <body>

<form method=POST action="<?php echo $_SERVER[“PHP_SELF"]; ?>"> <table> <tr>  <th colspan=6 style="color:#F00;"><?php echo $Supernetting->errorMessage; ?></th> </tr> <tr>  <th colspan=6>Supernetting.    Use Case:   {    <a href="./supernetting.php?testType=default">Default</a>,    <a href="./supernetting.php?testType=full">Full</a>,    <a href="./supernetting.php?testType=waste">IP waste</a>,    <a href="./supernetting.php?testType=mask">Mask</a>   }  </th> </tr> <tr>  <td>Origin</td>  <td>Join</td>  <td style="background-color: #BAD2BA" rowspan=2></td>  <td>Result</td>  <td>Add</td>  <td>Delete</td> </tr> <tr>  <td><textarea name="Origin" cols=32 rows=30><?php echo (!is_array($Origin))?$Origin:implode(“\n", $Origin); ?></textarea></td>  <td><textarea name="Join" cols=32 rows=30><?php echo (!is_array($Join))?$Join:implode(“\n", $Join); ?></textarea></td>  <td><textarea cols=32 rows=30><?php echo (!is_array($ResultList))?"":implode(“\n", $ResultList); ?></textarea></td>  <td><textarea cols=32 rows=30><?php echo (!is_array($AddList))?"":implode(“\n", $AddList); ?></textarea></td>  <td><textarea cols=32 rows=30><?php echo (!is_array($DeleteList))?"":implode(“\n", $DeleteList); ?></textarea></td> </tr> <tr>  <th colspan=6>   Convert mask:    <input type=radio name="masktype" value=cidr <?php echo ($masktype == “cidr" or empty($masktype))?"checked":"" ?> > CIDR    <input type=radio name=masktype value=mask <?php echo ($masktype == “mask")?"checked":"" ?> > Mask  </th> </tr> <tr>  <th colspan=6>Percentage: <input type=text name="Percentage" value="<?php echo ($Percentage < 1)?20:$Percentage; ?>" >% </th> </tr> <tr>  <th colspan=6>   Spend Time(sec): <?php echo round($time_end – $time_start, 3); ?>   Debug: <input type="checkbox" name="is_debug" value="yes" <?php echo ($is_debug == “yes")?"checked":"" ?>>    </th> </tr><tr>  <th colspan=6> <input type=submit name=start value=Go> </th> </tr> </table>

<?php

if($is_debug != “yes")  ; else {  //echo json_encode($AddMessage);  //echo json_encode($DeleteMessage);  echo “<hr />"   ."<table>"    ."<tr>"     ."<td colspan=\"2\" style=\"font-weight:bold;text-align:center;\">Debug Information</td>"    ."</tr>";    if($masktype != NULL AND $masktype != “cidr")   echo “<tr>"     ."<td colspan=\"2\" style=\"font-weight:bold;text-align:center;color:#F00;\">Debug mode only support CIDR. </td>"    ."</tr>";   else  {   echo  “<tr>"        ."<td style=\"font-weight:bold;text-align:center;\">Add List</td>"      ."<td style=\"font-weight:bold;text-align:center;\">Delete List</td>"     ."</tr>"     ."<tr>";       echo “<td style=\"text-align:left;\">";   @reset($AddList);   while(list($key, $thisValue) = @each($AddList))   {    echo “[“.$thisValue."]<br />";    @ksort($AddMessage[$thisValue], SORT_NATURAL);    @reset($AddMessage[$thisValue]);    while(list($key2, $Value2) = @each($AddMessage[$thisValue]))    {     echo " … from “.$key2."<br />";    }     }   echo “</td>";      echo “<td style=\"text-align:left;\">";   @reset($DeleteList);   while(list($key, $thisValue) = @each($DeleteList))   {    echo “[“.$thisValue."]<br />";    @ksort($DeleteMessage[$thisValue], SORT_NATURAL);    @reset($DeleteMessage[$thisValue]);    while(list($key2, $Value2) = @each($DeleteMessage[$thisValue]))    {     echo " … to “.$key2."<br />";    }   }   echo “</td>";  }    echo “</tr></table>"; }

?>

</body> </html>


	

Supernetting PHP 實做

<?php
$time_start = microtime(true);
/**
 * Initial
 * 
 * */
$start = $_POST["start"]; 
$Origin = $_POST["Origin"];
$Join = $_POST["Join"];
$Percentage = $_POST["Percentage"];
$masktype = $_POST["masktype"];
$is_debug = $_POST["is_debug"];
$testType = $_GET["testType"];
$TFile["default"]["O"] = "./example/Origin.txt";
$TFile["default"]["J"] = "./example/Join.simple.txt";
$TFile["mask"]["O"] = "./example/Origin_mask.txt";
$TFile["mask"]["J"] = "./example/Join.simple_mask.txt";
$TFile["full"]["O"] = "./example/Origin.txt";
$TFile["full"]["J"] = "./example/Join.full.txt";
$TFile["waste"]["O"] = "./example/origin-waste.txt";
$TFile["waste"]["J"] = "./example/join-waste.txt";

include("./libs/supernetting_func.php");
if(trim($start) == NULL)
{
 if($testType == NULL) $testType = "default";

 $TestFile = $TFile[$testType];

 $fp = fopen($TestFile["O"], "r");
 $Origin = fread($fp, filesize($TestFile["O"]));

 $fp = fopen($TestFile["J"], "r");
 $Join = fread($fp, filesize($TestFile["J"])); 

}
else
{
 $OriginList = explode("\r\n", $Origin);
 $JoinList = explode("\r\n", $Join);

 $Supernetting = new Supernetting();
 $Supernetting->setMaskType($masktype);
 if($is_debug == "yes") $Supernetting->enableDebug();
 $Supernetting->start($OriginList, $JoinList, $Percentage / 100);
 //$Supernetting->aggregateSupernetting($OriginList, $JoinList, $Percentage / 100);

 $Origin = $Supernetting->getOrigin();
 $Join = $Supernetting->getJoin();
 $ResultList = $Supernetting->getResultList();
 $AddList = $Supernetting->getAddList();
 $DeleteList = $Supernetting->getDeleteList();
$AddMessage = $Supernetting->AddMessage;
 $DeleteMessage = $Supernetting->DeleteMessage;
}
$time_end = microtime(true);
?>

<html>
<head>
<title>Supernetting</title>
<link type="text/css" href="./css/supernetting.css" rel="stylesheet" /> 
</head>
<body>
<form method=POST action="<?php echo $_SERVER["PHP_SELF"]; ?>">
<table>
<tr>
 <th colspan=6 style="color:#F00;"><?php echo $Supernetting->errorMessage; ?></th>
</tr>
<tr>
 <th colspan=6>Supernetting. 
 Use Case:
 {
 <a href="./supernetting.php?testType=default">Default</a>, 
 <a href="./supernetting.php?testType=full">Full</a>, 
 <a href="./supernetting.php?testType=waste">IP waste</a>, 
 <a href="./supernetting.php?testType=mask">Mask</a>
 }
 </th>
</tr>
<tr>
 <td>Origin</td>
 <td>Join</td>
 <td style="background-color: #BAD2BA" rowspan=2></td>
 <td>Result</td>
 <td>Add</td>
 <td>Delete</td>
</tr>
<tr>
 <td><textarea name="Origin" cols=32 rows=30><?php echo (!is_array($Origin))?$Origin:implode("\n", $Origin); ?></textarea></td>
 <td><textarea name="Join" cols=32 rows=30><?php echo (!is_array($Join))?$Join:implode("\n", $Join); ?></textarea></td>
 <td><textarea cols=32 rows=30><?php echo (!is_array($ResultList))?"":implode("\n", $ResultList); ?></textarea></td>
 <td><textarea cols=32 rows=30><?php echo (!is_array($AddList))?"":implode("\n", $AddList); ?></textarea></td>
 <td><textarea cols=32 rows=30><?php echo (!is_array($DeleteList))?"":implode("\n", $DeleteList); ?></textarea></td>
</tr>
<tr>
 <th colspan=6>
 Convert mask: 
 <input type=radio name="masktype" value=cidr <?php echo ($masktype == "cidr" or empty($masktype))?"checked":"" ?> > CIDR 
 <input type=radio name=masktype value=mask <?php echo ($masktype == "mask")?"checked":"" ?> > Mask
 </th>
</tr>
<tr>
 <th colspan=6>Percentage: <input type=text name="Percentage" value="<?php echo ($Percentage < 1)?20:$Percentage; ?>" >% </th>
</tr>
<tr>
 <th colspan=6>
 Spend Time(sec): <?php echo round($time_end - $time_start, 3); ?>
 Debug: <input type="checkbox" name="is_debug" value="yes" <?php echo ($is_debug == "yes")?"checked":"" ?>> 

 </th>
</tr><tr>
 <th colspan=6> <input type=submit name=start value=Go> </th>
</tr>
</table>
<?php
if($is_debug != "yes")
 ;
else
{
 //echo json_encode($AddMessage);
 //echo json_encode($DeleteMessage);
 echo "<hr />"
 ."<table>"
 ."<tr>"
 ."<td colspan=\"2\" style=\"font-weight:bold;text-align:center;\">Debug Information</td>"
 ."</tr>";

 if($masktype != NULL AND $masktype != "cidr")
 echo "<tr>"
 ."<td colspan=\"2\" style=\"font-weight:bold;text-align:center;color:#F00;\">Debug mode only support CIDR. </td>"
 ."</tr>"; 
 else
 {
 echo "<tr>" 
 ."<td style=\"font-weight:bold;text-align:center;\">Add List</td>"
 ."<td style=\"font-weight:bold;text-align:center;\">Delete List</td>"
 ."</tr>"
 ."<tr>";

 echo "<td style=\"text-align:left;\">";
 @reset($AddList);
 while(list($key, $thisValue) = @each($AddList))
 {
 echo "[".$thisValue."]<br />";
 @ksort($AddMessage[$thisValue], SORT_NATURAL);
 @reset($AddMessage[$thisValue]);
 while(list($key2, $Value2) = @each($AddMessage[$thisValue]))
 {
 echo " ... from ".$key2."<br />";
 } 
 }
 echo "</td>";

 echo "<td style=\"text-align:left;\">";
 @reset($DeleteList);
 while(list($key, $thisValue) = @each($DeleteList))
 {
 echo "[".$thisValue."]<br />";
 @ksort($DeleteMessage[$thisValue], SORT_NATURAL);
 @reset($DeleteMessage[$thisValue]);
 while(list($key2, $Value2) = @each($DeleteMessage[$thisValue]))
 {
 echo " ... to ".$key2."<br />";
 }
 }
 echo "</td>";
 }

 echo "</tr></table>";
}
?>

</body>
</html>