顯示具有 工具 標籤的文章。 顯示所有文章
顯示具有 工具 標籤的文章。 顯示所有文章
2017-09-01 11:27

SQL Server Management Studio 資料表設計模式顯示欄位描述


開啟登錄檔編輯器 regedit.exe
搜尋 SSVPropViewColumnsSQL70 及 SSVPropViewColumnsSQL80
將值從 1,2,6; 改為 1,2,6,17;

各個屬性欄位代號:
1:  Column Name
2:  Data Type
3:  Length
4:  Precision
5:  Scale
6:  Allow Nulls
7:  Default Value
8:  Identity
9:  Identity Seed
10: Identity Increment
11: Row GUID
12: Nullable
13: Condensed Type
14: Not for Replication
15: Formula
16: Collation
17: Description



2016-04-07 12:07

C# MVC + Cassette

Cassette 與 MVC 預設的 Bundle 最大的差異就是會自動轉換 CSS 的圖片網址。缺點就是開發時 F5 啟動專案會變慢。


NuGet 安裝

  • Cassette.Aspnet
  • Cassette.Views
  • Cassette


Web.config


基本上安裝完就會自動配置以下設定,但可以在確認一下。

<configuration>
  <configSections>
    <section name="cassette"
             type="Cassette.CassetteConfigurationSection, Cassette"
             requirePermission="false"
    />
  </configSections>
  <system.web>
    <pages>
      <namespaces>
        <add namespace="Cassette.Views" />
      </namespaces>
    </pages>
    <httpModules>
      <add name="CassetteHttpModule"
           type="Cassette.Aspnet.CassetteHttpModule, Cassette.Aspnet"
      />
    </httpModules>
    <httpHandlers>
      <!-- 用來處理綑綁打包的處理器 -->
      <add path="cassette.axd"
           verb="*"
           type="Cassette.Aspnet.CassetteHttpHandler, Cassette.Aspnet"
       />
    </httpHandlers>
  </system.web>
  <system.webServer>
    <!-- 保留 httpHandlers(IIS6) 及 handlers(IIS7) 需要關閉驗證 -->
    <validation validateIntegratedModeConfiguration="false" />
    <modules>
      <add name="CassetteHttpModule"
           type="Cassette.Aspnet.CassetteHttpModule, Cassette.Aspnet"
      />
    </modules>
    <handlers>
      <!-- 用來處理綑綁打包的處理器 -->
      <add name="CassetteHttpHandler"
           path="cassette.axd"
           verb="*"
           allowPathInfo="true"
           preCondition="integratedMode"
           type="Cassette.Aspnet.CassetteHttpHandler, Cassette.Aspnet"
       />
    </handlers>
  </system.webServer>

  <!-- For configuration options: http://getcassette.net/documentation/v2/web-config -->
  <cassette rewriteHtml="false" />
</configuration>



Views/Web.config


增加給 cshtml 用的 namespace

<configuration>
  <system.web.webPages.razor>
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
      <namespaces>
        <add namespace="Cassette.Views" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>
</configuration>



CassetteConfiguration.cs


public class CassetteBundleConfiguration : IConfiguration<BundleCollection>
{
    public void Configure(BundleCollection bundles)
    {
        bundles.AddPerIndividualFile<StylesheetBundle>("Content");
        bundles.AddPerIndividualFile<ScriptBundle>("Scripts");

        bundles.Add<StylesheetBundle>("Styles/Bundles", new string[] 
        {
            "~/Scripts/bootstrap/css/bootstrap.css",
            "~/Scripts/bootstrap/css/bootstrap-theme.css",
            //...
        });

        bundles.Add<ScriptBundle>("Scripts/Bundles", new string[] 
        {
            "~/Scripts/jquery/jquery-1.12.2.js",
            "~/Scripts/jquery.validate/jquery.validate-1.12.0.js",
            //...
        });
    }
}



_Layout.cshtml


<!DOCTYPE html>
@{
    Bundles.Reference("Styles/Bundles");
    Bundles.Reference("Scripts/Bundles");
}
<html>
<head>
    @Bundles.RenderStylesheets()
</head>
<body id="DialogLayout">
    @Bundles.RenderScripts()
</body>
</html>



Release Mode


當 Web.config 的 compilation debug="false" 就會壓縮綑綁。

<compilation debug="false" targetFramework="4.5" />
2013-08-17 14:55

[PHP] url, base64, sprite 三種格式的 icons.css 產生器

先做一個假設,如果 icon 的檔名就是 css 的 class 樣式名稱,那麼我們只要掃瞄資料夾的 Icon 圖檔,然後產生對應的 CSS 檔案,這樣就可以省去製作 Sprite 圖檔跟維護 CSS 對應的問題。

第一種 url 格式只是取得路徑的問題。

第二種 base64 格式可以透過 base64_encode(file_get_contents($path)); 就簡單的達成。

第三種 sprite 格式則使用 Imagick 去處理,會比較快樂。


接著以下就是如何達成的程式片段:

<?php

/*把目錄改變到當前文件下*/
chdir(dirname(__FILE__));

/*Sprite 圖與圖的間距*/
$spriteGap = 30;


/*=[ 取得圖檔資訊 ]=*/
$maxWidth = 0;
$maxHeight = 0;
$nextTop = 0;
$imageList = array();

foreach ( glob('icons/*.{png,jpg,gif}',GLOB_BRACE) as $path )
{
    $image = new Imagick($path);
    $name = pathinfo($path,PATHINFO_FILENAME);

    if(isset($imageList[$name])){ 
        throw new Exception("圖片名稱重複 [ $name ]"); 
    }

    $info = array(
        '{top}' => $nextTop,
        '{image}' => $image,
        '{width}' => $image->getImageWidth(),
        '{height}' => $image->getImageHeight(),
        '{name}' => $name,
        '{path}' => $path,
        '{isAnimate}' => false
    );

    $header = '';
    switch($image->getImageFormat()){
        case "PNG":
            $header = 'data:image/png;base64,'; break;
        case "JPEG":
            $header = 'data:image/jpeg;base64,'; break;
        case "GIF":
            $header = 'data:image/gif;base64,'; break;
        default: break;
    }

    $info['{uri}'] = $header.base64_encode(file_get_contents($path));

    $maxWidth = max($maxWidth, $info['{width}']);
    $maxHeight = max($maxHeight, $info['{height}']);

    
    /*檢查圖片是否為動畫*/
    $frameNum = 0;
    foreach($image->deconstructImages() as $i) {
        $frameNum++;
        if ($frameNum > 1) {
            $info['{isAnimate}'] = true;
            break;
        }
    }
    
    if(!$info['{isAnimate}']){
        $nextTop += $info['{height}'] + $spriteGap;
    }


    $imageList[$name] = $info;
}


/*=[ 製作 CSS Sprite 圖檔 ]=*/
$spriteImage = new Imagick();
$spriteImage->newImage($maxWidth, $nextTop, new ImagickPixel());
$spriteImage->setImageFormat('png');
$spriteImage->paintTransparentImage(new ImagickPixel(), 0.0, 0);

foreach ($imageList as $name => $info)
{
    if($info['{isAnimate}']){ continue; } /* 忽略 GIF 動畫 */

    /* 複製 Icon 圖檔到 Sprite */
    $spriteImage->compositeImage(
        $info['{image}'],
        $info['{image}']->getImageCompose(),
        0,
        $info['{top}']
    );

    $info['{image}']->destroy();
    unset($imageList[$name]['{image}']);
}

$spriteImage->writeImage('icons.sprite.png');
$spriteImage->destroy();
$spriteImage = null;


下載完整程式: php_make_icons_css.zip
2013-06-05 22:58

[轉載][MySQL] 修復工具 mysqlcheck

轉載自:mysql修复工具mysqlcheck

mysqlcheck -a -c -o -r -m --all-databases -uroot -p

即可最佳化所有db
參數含意:
  • -a = Analyse given tables.
  • -c = Check table for errors
  • -o = Optimise table
  • -r = Can fix almost anything except unique keys that aren't unique
  • -m = --medium-check


mysqlcheck 客戶端可以檢查和修復 MyISAM 資料表。它還可以優化和分析資料表。

mysqlcheck 的功能類似 myisamchk,但其工作不同。主要差別是當 mysqld 服務器在運行時必須使用mysqlcheck,而 myisamchk 應用於服務器沒有運行時。使用 mysqlcheck 的好處是不需要停止服務器來檢查或修復資料表。使用 myisamchk 修復失敗是不可逆的

Mysqlcheck 為用戶提供了一種方便的使用 SQL 語句 CHECK TABLE、REPAIR TABLE、ANALYZE TABLE和OPTIMIZE TABLE 的方式。它確定在要執行的操作中使用使用哪個語句,然後將語句發送到要執行的服務器上。


有3種方式來調用mysqlcheck:
shell> mysqlcheck [options] db_name [tbl_name ...]
shell> mysqlcheck [options] --databases db_name ...
shell> mysqlcheck [options] --all-databases

如果沒有指定任何資料表或使用 --databases 或 --all-databases 選項,則檢查整個數據庫。

同其它客戶端比較,mysqlcheck 有一個特殊特性。重新命名二進制可以更改檢查資料表的默認行為(--check)。如果你想要一個工具默認可以修復資料表的工具,只需要將 mysqlcheck 重新復制為 mysqlrepair,或者使用一個符號鏈接 mysqlrepair 鏈接 mysqlcheck。如果調用 mysqlrepair,可按照命令修復資料表。


下面的名可用來更改 mysqlcheck 的默認行為:
mysqlrepair默認選項為 --repair
mysqlanalyze默認選項為 --analyze
mysqloptimize默認選項為 --optimize


mysqlcheck支持下面的選項:
-A, --all-databases
檢查所有數據庫中的所有資料表。與使用---database選項相同,在命令行中命名所有數據庫。
-a, --analyze
分析資料表。
-1, --all-in-1
不是為每個表發出一個語句,而是為命名數據庫中待處理的所有表的每個數據庫執行一個語句。
--auto-repair
如果某個被檢查的表破壞了,自動修復它。檢查完所有表後自動進行所有需要的修復。
--character-sets-dir=name
字符集的安裝目錄。參見5.10.1節,"數據和排序用字符集"。
-c, --check
檢查資料表的錯誤。
-C, --check-only-changed
只檢查上次檢查以來已經更改的或沒有正確關閉的資料表。
--compress
壓縮在客戶端和服務器之間發送的所有信息(如果二者均支持壓縮)。
-B, --databases
處理數據庫中命名的所有資料表。使用該選項,所有字名參量被看作數據庫名,而不是資料表名稱。
-#, --debug[=#]
寫調試日誌。 debug_options字符串通常為'd:t:o,file_name'。
--default-character-set=name
使用charsetas默認字符集。參見5.10.1節,"數據和排序用字符集"。
-F, --fast
只檢查沒有正確關閉的資料表。
-f, --force
即使出現SQL錯誤也繼續。
-e, --extended
如果你正使用該選項來檢查資料表,可以確保它們100%地一致,但需要很長的時間。 如果你正使用該選項來修復資料表,則運行擴展修復,不但執行的時間很長,而且還會產生大量的垃圾行!
-?, --help
顯示幫助消息並退出。
-h, --host=name
連接給定主機上的MySQL服務器。
-m, --medium-check
執行比--extended操作更快的檢查。只能發現99.99%的錯誤,在大多數情況下這已經足夠了。
-o, --optimize
優化資料表。
-p, --password[=name]
當連接服務器時使用的密碼。如果使用短選項形式(-p),選項和密碼之間不能有空格。 如果在命令行中--password或-p選項後面沒有密碼值,則提示輸入一個密碼。
-P, --port=#
用於連接的TCP/IP端口號。
--protocol=name
使用的連接協議。
-q, --quick
如果你正使用該選項在檢查資料表,它防止掃描行以檢查錯誤鏈接的檢查。這是最快的檢查方法。 如果你正使用該選項在修復資料表,它嘗試只修復索引樹。這是最快的修復方法。
-r, --repair
執行可以修復大部分問題的修復,只是唯一值不唯一時不能修復。
-s, --silent
沉默模式。只打印錯誤消息。
-S, --socket=name
用於連接的套接字文件。
--tables
覆蓋---database或-B選項。選項後面的所有參量被視為資料表名稱。
-u, --user=name
當連接服務器時使用的MySQL用戶名。
-v, --verbose
冗長模式。打印關於各階段程序操作的信息。
-V, --version
顯示版本信息並退出。
2009-04-29 21:34

Web 文件類型壓縮及註解清除器

大部分的 Web 文件壓縮,都是將不要的空白文字或不必要的註解清除,以換取檔案的大小。

之前找尋不到合適的工具,索性就自己寫一個工具,這次將之前的HTML & Smarty、JavaScript、CSS 及 PHP 註解清除器做一個整合,並且做一些使用上的教學。

修改特點:
  • 整合之前的文件類型至一個工具上
  • 只針對 html , htm , css , js 及 php 副檔名的文件做處理
  • 增加參數選擇

web_clear 參數說明

web_clear [-hvc] (filename)
[-h | -?] : 顯示參數說明
[-v] : 顯示被執行的檔案列表
[-c] : 單純只清除註解
(filename) : 檔案路徑或目錄路徑


Windows 下的操作


可以透過拖移文件或資料夾的方式執行此工具。

也可以透過命令列或批次檔去執行

@ECHO off

web_clear.exe -v "Z:\Web" Z:\WebServer\1.html Z:\WebServer\1.css

PAUSE


Linux 下的操作

透過命令列或 Shell 去執行

#!/bin/bash

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

./web_clear -v /home/test/index.php

# 也可以配合 find 去執行
#./web_clear -v `find /home/test -name '*.css' -or -name '*.js'`

exit 0


檔案下載:

web_clear.tar.gz


web_clear
|-- linux
| |-- source
| | |-- web_clear.c
| | `-- web_clear.l
| |
| |-- clear_file.sh
| `-- web_clear
|
`-- windows
|-- source
| |-- web_clear.c
| `-- web_clear.l
|
|-- clear_file.bat
`-- web_clear.exe

4 directories, 8 files
2007-10-16 21:07

UltraEdit-32 關鍵字色彩

為了讓寫 SQL 指令可以更容易,我修改了 UltraEdit-32 中的 WORDFILE.TXT 檔,可是關鍵字實在太多了,所以上網找了一些定義好的來用,但是只有支援小寫,所以只好自己再加上大寫的部分,也順便加了 PHP 及 JavaScript2.0 的色彩樣式。

在新增樣式時要注意樣式編號要改一下,在每個樣式的第一行都有一個 /L? 的編號,而且必須延續上一個編號,用 UltraEdit-32 那麼久,他真的是一個不錯的文字編輯器,可以在很多語言上都用得到,還有非常方便的編碼轉換及許多功能。

官方下載 FTP

資料列表:山区程序员