<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-14894453</id><updated>2024-12-07T19:58:04.869+09:00</updated><category term="programming"/><category term="linux"/><category term="windows"/><category term="C#"/><category term="links"/><category term="software"/><category term="CAD"/><category term="Database"/><category term="Mac"/><category term="Access"/><category term="WPF"/><category term="hardware"/><category term="DraftSight"/><category term="JavaScript"/><category term="MySQL"/><category term="SQL"/><category term="Excel"/><category term="GUI"/><category term="HTML"/><category term="Java"/><category term="PHP"/><category term="SQL Server"/><category term="SQLite"/><category term="Solidworks"/><category term="UTF8"/><category term="Unicode"/><category term="hack"/><category term="macos"/><category term="Asp.NET"/><category term="AutoCAD"/><category term="Blazor"/><category term="EntityFramework"/><category term="IAmTimCorey"/><category term="LISP"/><category term="Markdown"/><category term="Netbeans"/><category term="PostgreSQL"/><category term="Prism"/><category term="StudyNote"/><category term="Ubuntu"/><category term="VM"/><category term="VirtualBox"/><category term="Win32"/><category term="ebook"/><category term="fiddler"/><category term="homebrew"/><category term="httpd"/><category term="leetcode"/><category term="network"/><category term="proxy"/><category term="subtitle"/><category term="system"/><category term="wifi"/><category term="字幕"/><title type='text'>桂馬の学習ノード</title><subtitle type='html'>A Blog of Keima Sawamura, male from Taiwan. &#xa;Programming, Life, and Others.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://keimasawamura.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://keimasawamura.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>澤村桂馬</name><uri>http://www.blogger.com/profile/08623018329038797126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>198</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-14894453.post-4089752231187144738</id><published>2021-12-23T10:31:00.004+09:00</published><updated>2021-12-23T10:31:58.588+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="windows"/><category scheme="http://www.blogger.com/atom/ns#" term="WPF"/><title type='text'>[C#][Windows] MessageBox中に改行処理</title><content type='html'>&lt;p&gt;
  仕事メモです。
&lt;/p&gt;
&lt;p&gt;Windowsプログラミングによく使用するMessageBox。大量の内容を見せやすくするには改行が必要不可欠です。&lt;/p&gt;
&lt;p&gt;いちいちCrLfを追加するのが面倒くさいので、より分かりやすくなる名前はC#内にあるようです。&lt;/p&gt;
&lt;p&gt;
  &lt;code&gt;
    Environment.NewLine
  &lt;/code&gt;
&lt;/p&gt;
&lt;p&gt;
  上記の意味ある内部変数を使ったらいいです。将来LinuxやMacに変更しても同じもので対応可能。通常のCrLfはWindowsのみであり、OSによる覚え間違いは減りますが、長い英単語を覚える方が逆に難しい…なんです。&lt;/p&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;- iStyle, myStyle -
RoKashou(Keima.Sawamura@gmail.com)&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keimasawamura.blogspot.com/feeds/4089752231187144738/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14894453/4089752231187144738' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/4089752231187144738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/4089752231187144738'/><link rel='alternate' type='text/html' href='http://keimasawamura.blogspot.com/2021/12/cwindows-messagebox.html' title='[C#][Windows] MessageBox中に改行処理'/><author><name>澤村桂馬</name><uri>http://www.blogger.com/profile/08623018329038797126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14894453.post-8631689267502619095</id><published>2021-10-03T13:55:00.000+09:00</published><updated>2021-10-03T13:55:15.716+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><category scheme="http://www.blogger.com/atom/ns#" term="leetcode"/><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><title type='text'>LeetCode 01: Two Sum</title><content type='html'>&lt;p&gt;&amp;nbsp;長い間ウワサは聞いておりますが、初めて触りました。リートコード(LeetCode)という中国発のネットジャージシステム。一応自分が登録したのはアメリカサーバですけどね。&lt;/p&gt;&lt;p&gt;多分アルゴリズム上ではそこまで最適化していませんが、一応コードを記録しておくことに：&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre style=&quot;pretty-code&quot;&gt;public class Solution {
    public int[] TwoSum(int[] nums, int target) {
            int index1=0;
            int index2=1;

            int maxindex = nums.Length;

            while (true)
            {
                int solution = nums[index1] + nums[index2];
                if (solution == target)
                {
                    int[] result = new int[] { index1, index2 };
                    return result;
                }

                index2++;

                if(index2 &amp;gt;= maxindex)
                {
                    index1++;
                    index2 = index1 + 1;
                }
            }
    }
}
            &lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;- iStyle, myStyle -
RoKashou(Keima.Sawamura@gmail.com)&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keimasawamura.blogspot.com/feeds/8631689267502619095/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14894453/8631689267502619095' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/8631689267502619095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/8631689267502619095'/><link rel='alternate' type='text/html' href='http://keimasawamura.blogspot.com/2021/10/leetcode-01-two-sum.html' title='LeetCode 01: Two Sum'/><author><name>澤村桂馬</name><uri>http://www.blogger.com/profile/08623018329038797126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14894453.post-4853843036882107052</id><published>2021-09-13T19:42:00.005+09:00</published><updated>2021-09-13T22:16:27.626+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Asp.NET"/><category scheme="http://www.blogger.com/atom/ns#" term="Blazor"/><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><title type='text'>在多個專案中同時設定依賴專案版本</title><content type='html'>&lt;div&gt;如果你像我在做&lt;a href=&quot;https://github.com/dotnet-presentations/blazor-workshop &quot; target=&quot;_blank&quot;&gt;Blazor的披薩工作坊&lt;/a&gt;時，執行build卻發生像下面的錯誤:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;

&lt;div&gt;
&lt;code class=&quot;pretty-code codearea code&quot;&gt;
  warning NU1604: Project dependency &#39;PackageA&#39; (&amp;lt;= 9.0.0) does not contain an inclusive lower bound. Include a lower bound in the dependency version to ensure consistent restore results.
&lt;/code&gt;
&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;
很好，第一步你找對地方了。這是一個msbuild的問題，也是這個工作坊內容的一個小問題。&lt;/div&gt;&lt;div&gt;這個專案中牽扯到了nuget包裝版本問題。而通常我們在github等上傳資料時，並不會包含nuget引用的封包(可以自己抓的就不要浪費網路流量啦)。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;基本上專案用的方法並沒有錯，他只是少傳了一個檔案。在這個檔案中，我們可以將多個proj所需的最低版本放到同一個檔案中集中管理，這樣升級的時候就不需要一個一個去打開專案檔修改參考版本。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;你所需要做的動作如下:&lt;/div&gt;&lt;div&gt;1. 在&lt;code&gt;Solution&lt;/code&gt;檔案夾下放一個共通的檔案。如果你像我常常使用VSCode，那就是把檔案放在sln檔的同一個目錄中。在標準設定中，他會被叫做&lt;code&gt;Directory.Build.props&lt;/code&gt;&lt;/div&gt;&lt;div&gt;2. 修改檔案內容，改成像下面這樣:&lt;/div&gt;

&lt;div&gt;&lt;pre class=&quot;codezone codearea code pretty-code&quot;&gt;&amp;lt;Project&amp;gt;&lt;br /&gt;    &amp;lt;PropertyGroup Label=&quot;Package Dependencies&quot;&amp;gt;&lt;br /&gt;        &amp;lt;AspNetCoreVersion&amp;gt;5.0&amp;lt;/AspNetCoreVersion&amp;gt;&lt;br /&gt;        &amp;lt;EntityFrameworkVersion&amp;gt;5.0&amp;lt;/EntityFrameworkVersion&amp;gt;&lt;br /&gt;        &amp;lt;BlazorVersion&amp;gt;5.0&amp;lt;/BlazorVersion&amp;gt;&lt;br /&gt;        &amp;lt;SystemNetHttpJsonVersion&amp;gt;5.0&amp;lt;/SystemNetHttpJsonVersion&amp;gt;    &lt;br /&gt;    &amp;lt;/PropertyGroup&amp;gt;&lt;br /&gt;&amp;lt;/Project&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;div&gt;3. 如果你是用dotnet cli或是Visual Studio，恭喜你，你已經可以正常build了。&lt;br /&gt;如果你不是使用標準build。那你就繼續做下一步。&lt;/div&gt;&lt;div&gt;4. 打開你的各個專案檔(就是那些csproj檔)。在&lt;code&gt;&amp;lt;Project&amp;gt;&lt;/code&gt;的最上層添加下面這行&lt;/div&gt;&lt;div&gt;&lt;code&gt;&amp;lt;import Project=&quot;..\Directory.Build.props&quot; /&amp;gt;&lt;/code&gt;&lt;/div&gt;&lt;div&gt;5. 結束。這樣應該又恢復正常了。未來有升級的時候，自己進去修改所需最低nuget的版本，看是要改成6.0還是什麼的，就看大家造詣了。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ref: https://github.com/dotnet-presentations/blazor-workshop&lt;/div&gt;

&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;keyword: asp.net, dependencies.props, Directory.Build.props, .net core&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;- iStyle, myStyle -
RoKashou(Keima.Sawamura@gmail.com)&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keimasawamura.blogspot.com/feeds/4853843036882107052/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14894453/4853843036882107052' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/4853843036882107052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/4853843036882107052'/><link rel='alternate' type='text/html' href='http://keimasawamura.blogspot.com/2021/09/blog-post.html' title='在多個專案中同時設定依賴專案版本'/><author><name>澤村桂馬</name><uri>http://www.blogger.com/profile/08623018329038797126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14894453.post-1582893055117020313</id><published>2021-02-12T17:12:00.002+09:00</published><updated>2021-02-12T17:12:29.542+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="WPF"/><title type='text'>DataGridCheckBoxColumn動作模式變更</title><content type='html'>&lt;div&gt;
參考: &lt;a href=&quot;http://tawamuredays.blog.fc2.com/blog-entry-265.html&quot;&gt;http://tawamuredays.blog.fc2.com/blog-entry-265.html&lt;/a&gt;
&lt;/div&gt;

&lt;div&gt;
  &lt;p&gt;DataGridCheckBoxColumn裡的CheckBox，在預設狀態下，必須先點一次，Row取得focurs之後才能改變狀態。使用上不是很直覺，跟一般的CheckBox不太一樣。&lt;/p&gt;
  &lt;p&gt;背後的原因是因為DataGridCell本身有分成顯示用的ElementStyle跟編輯用的EditElementStyle兩種模式，為了做出區分，犧牲了CheckBox的直覺性。&lt;/p&gt;
  &lt;p&gt;可以依靠設定Style的方法，使操作更為直覺。&lt;/p&gt;&lt;/div&gt;
&lt;div&gt;修改方式如下:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;在各自的Style設定中(可以放在上位DataGrid的DataGrid.Resource裡)，加入以下程式碼&lt;/div&gt;
&lt;div class=&quot;codearea&quot;&gt;
  
&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;sh_keyword&quot; style=&quot;color: blue; font-family: monospace; font-size: 14px; font-weight: bold; white-space: pre;&quot;&gt;&amp;lt;Style&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: monospace; font-size: 14px; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;sh_type&quot; style=&quot;color: darkgreen; font-family: monospace; font-size: 14px; white-space: pre;&quot;&gt;TargetType&lt;/span&gt;&lt;span class=&quot;sh_symbol&quot; style=&quot;color: darkred; font-family: monospace; font-size: 14px; white-space: pre;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;sh_string&quot; style=&quot;color: red; font-family: monospace; font-size: 14px; white-space: pre;&quot;&gt;&quot;CheckBox&quot;&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: monospace; font-size: 14px; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;sh_type&quot; style=&quot;color: darkgreen; font-family: monospace; font-size: 14px; white-space: pre;&quot;&gt;x:Key&lt;/span&gt;&lt;span class=&quot;sh_symbol&quot; style=&quot;color: darkred; font-family: monospace; font-size: 14px; white-space: pre;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;sh_string&quot; style=&quot;color: red; font-family: monospace; font-size: 14px; white-space: pre;&quot;&gt;&quot;CheckBoxCellStyle&quot; &lt;/span&gt;&lt;span class=&quot;sh_keyword&quot; style=&quot;color: blue; font-family: monospace; font-size: 14px; font-weight: bold; white-space: pre;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;sh_keyword&quot; style=&quot;color: blue; font-family: monospace; font-size: 14px; font-weight: bold; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;或是&lt;/div&gt;&lt;div&gt;&lt;pre class=&quot;sh_xml sh_sourceCode&quot; style=&quot;background-color: white; font-size: 14px;&quot;&gt;&lt;span class=&quot;sh_keyword&quot; style=&quot;color: blue; font-weight: bold;&quot;&gt;&amp;lt;Style&lt;/span&gt; &lt;span class=&quot;sh_type&quot; style=&quot;color: darkgreen;&quot;&gt;TargetType&lt;/span&gt;&lt;span class=&quot;sh_symbol&quot; style=&quot;color: darkred;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;sh_string&quot; style=&quot;color: red;&quot;&gt;&quot;CheckBox&quot;&lt;/span&gt; &lt;span class=&quot;sh_type&quot; style=&quot;color: darkgreen;&quot;&gt;x:Key&lt;/span&gt;&lt;span class=&quot;sh_symbol&quot; style=&quot;color: darkred;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;sh_string&quot; style=&quot;color: red;&quot;&gt;&quot;CellCheckBoxStyle&quot;&lt;/span&gt;
       &lt;span class=&quot;sh_type&quot; style=&quot;color: darkgreen;&quot;&gt;BasedOn&lt;/span&gt;&lt;span class=&quot;sh_symbol&quot; style=&quot;color: darkred;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;sh_string&quot; style=&quot;color: red;&quot;&gt;&quot;{StaticResource {x:Type CheckBox}}&quot; &lt;/span&gt;&lt;span class=&quot;sh_keyword&quot; style=&quot;color: blue; font-weight: bold;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;sh_xml sh_sourceCode&quot; style=&quot;background-color: white; font-size: 14px;&quot;&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;

然後就可以在DataGridCheckBoxColumn上設定我們所需的ElementStyle
&lt;div&gt;&lt;pre class=&quot;sh_xml sh_sourceCode&quot; style=&quot;background-color: white; font-size: 14px;&quot;&gt;&lt;span class=&quot;sh_keyword&quot; style=&quot;color: blue; font-weight: bold;&quot;&gt;&amp;lt;DataGridCheckBoxColumn&lt;/span&gt; &lt;span class=&quot;sh_type&quot; style=&quot;color: darkgreen;&quot;&gt;Binding&lt;/span&gt;&lt;span class=&quot;sh_symbol&quot; style=&quot;color: darkred;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;sh_string&quot; style=&quot;color: red;&quot;&gt;&quot;{Binding Selected}&quot;&lt;/span&gt;
                        &lt;span class=&quot;sh_type&quot; style=&quot;color: darkgreen;&quot;&gt;ElementStyle&lt;/span&gt;&lt;span class=&quot;sh_symbol&quot; style=&quot;color: darkred;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;sh_string&quot; style=&quot;color: red;&quot;&gt;&quot;{StaticResource CheckBoxCellStyle}&quot;&lt;/span&gt; &lt;span class=&quot;sh_keyword&quot; style=&quot;color: blue; font-weight: bold;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;sh_xml sh_sourceCode&quot; style=&quot;background-color: white; font-size: 14px;&quot;&gt;&lt;span class=&quot;sh_keyword&quot; style=&quot;color: blue; font-weight: bold;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;sh_xml sh_sourceCode&quot; style=&quot;background-color: white; font-size: 14px;&quot;&gt;&lt;span style=&quot;background-color: transparent;&quot;&gt;做完以上的設定，指定的DataGridCheckBoxColumn裡面的CheckBox就會是我們常用的單點就會有反應的CheckBox了。

以上。&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;- iStyle, myStyle -
RoKashou(Keima.Sawamura@gmail.com)&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keimasawamura.blogspot.com/feeds/1582893055117020313/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14894453/1582893055117020313' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/1582893055117020313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/1582893055117020313'/><link rel='alternate' type='text/html' href='http://keimasawamura.blogspot.com/2021/02/datagridcheckboxcolumn.html' title='DataGridCheckBoxColumn動作模式變更'/><author><name>澤村桂馬</name><uri>http://www.blogger.com/profile/08623018329038797126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14894453.post-8030474593824542518</id><published>2020-10-09T13:47:00.005+09:00</published><updated>2020-10-09T13:47:38.025+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="SQL"/><title type='text'>SQL 改行コードの処理</title><content type='html'>SQL中に、改行コードはCHAR(13)あるいはCHAR(13)+CHAR(10)が該当します。&amp;nbsp;&lt;div&gt;それらを用いて保存すると、CSV出力やExcelにコピーする際にちょっと厄介です。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;次のコードで、一括それら改行コードを削除できます。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;


&lt;code&gt;
  &lt;div&gt;UPDATE [TableName] SET [FieldName] = REPLACE([FieldName], CHAR(13) + CHAR(10), &#39;&#39;) WHERE [FieldName] LIKE &#39;%&#39; + CHAR(13) + CHAR(10) + &#39;%&#39;;&lt;/div&gt;
  
  &lt;div&gt;UPDATE [TableName] SET [FieldName] = REPLACE([FieldName], CHAR(13), &#39;&#39;) WHERE [FieldName] LIKE &#39;%&#39; + CHAR(13) + &#39;%&#39;;&lt;/div&gt;
  
  
&lt;/code&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;- iStyle, myStyle -
RoKashou(Keima.Sawamura@gmail.com)&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keimasawamura.blogspot.com/feeds/8030474593824542518/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14894453/8030474593824542518' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/8030474593824542518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/8030474593824542518'/><link rel='alternate' type='text/html' href='http://keimasawamura.blogspot.com/2020/10/sql.html' title='SQL 改行コードの処理'/><author><name>澤村桂馬</name><uri>http://www.blogger.com/profile/08623018329038797126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14894453.post-3184679603834177562</id><published>2020-09-28T19:25:00.009+09:00</published><updated>2020-09-28T19:25:59.923+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><category scheme="http://www.blogger.com/atom/ns#" term="EntityFramework"/><category scheme="http://www.blogger.com/atom/ns#" term="Prism"/><category scheme="http://www.blogger.com/atom/ns#" term="WPF"/><title type='text'>PrismでDIコンテナを使用するRegister vs RegisterInstance vs RegisterSingleton</title><content type='html'>&lt;p&gt;Prism 7以降に、サービスを注入する際に、Register, RegisterSingleton, RegisterInstance三つのメソッドが使えます。それぞれを使用する場面について、ちょっとした解説を書き残します。&lt;/p&gt;
&lt;p&gt;実際にサービスを登録する場合、そのサービスを使用する場面によって、異なるサービスを使用するべきと言われていますが、次のように大まかに分けています：&lt;/p&gt;
&lt;p&gt;&lt;ul&gt;&lt;li&gt;&lt;span class=&quot;brush: CSharp&quot;&gt;&lt;code&gt;Register&lt;/code&gt;&lt;/span&gt; 該当Interfaceが注入された場合、DIコンテナが自動的に新しいインスタンスを生成し、終わったときにインスタンスを廃棄する。&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;brush: CSharp&quot;&gt;&lt;code&gt;RegisterSingleton&lt;/code&gt;&lt;/span&gt; 全部の注入には同じインスタンスで対応する。&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;brush: CSharp&quot;&gt;&lt;code&gt;RegisterInstance&lt;/code&gt;&lt;/span&gt; 主にRegisterSingletonと同じだが、生成されるInstanceは自分で管理する場合使用。&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;

&lt;p&gt;&lt;blockquote&gt;では、どれを使うほうか正解ですか？&lt;/blockquote&gt;&lt;/p&gt;

&lt;p&gt;まぁ、ほとんどなサービスはSingletonとして登録されます。ViewModelはそれらのサービスによって通信できるようにするためです。例えば、&lt;code&gt;EventAggregator&lt;/code&gt;サービスで、あなたが持つあるViewModelからEventを発行する際に、他の何かはそのことを知らせたいですが、それは同じインスタンスのサブスクリプションを発行者サービスとして登録している場合受け取ることができます。とはいえ、WCFクライアントは、同じシングルトンを使用する必要はありません。なぜならば、その処理はサーバー側が処理すべきなのです。&lt;/p&gt;
&lt;p&gt;場合によっては、インスタンスを登録することは嫌がります。特に登録(register)と逆解析(resolve)が混在している場合。インスタンスを作成する際にそのインスタンスの依頼先をすべて確保する場合も。（だから&lt;code&gt;Resolve&lt;/code&gt;を呼び出す。その呼び出す自体がやや気に障るが。）&lt;/p&gt;
&lt;p&gt;ひとつのメソッドですべての必要項目を全部登録してしまえば問題は減りますが、複数の交互依頼モジュールがある場合にはちょっと頭痛いです。&lt;/p&gt;

&lt;h3&gt;訳者注記&lt;/h3&gt;
&lt;p&gt;最近のプロジェクトでDBのアクセスサービスに、Singletonの登録にはちょっと問題あると気付きました。EntityFrameworkのDbContextを利用していますが、すべての画面が同じDbContextを登録した場合、DB側に更新がある場合、リアルタイムにReloadができません。渋々にSingletonを解除して、画面ごとに新しいDbContextを使うことにしたら、キレイに解決しました。ネットで検索したら、DbContextは長時間メモリに滞在するようには良い影響はしないようです。とりあえずEntityFrameworkのDbContextはSingleton登録しないようにする方が良いです。あるいは必要の場合自分でインスタンスを管理する方が良いかもしれません。&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;- iStyle, myStyle -
RoKashou(Keima.Sawamura@gmail.com)&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keimasawamura.blogspot.com/feeds/3184679603834177562/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14894453/3184679603834177562' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/3184679603834177562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/3184679603834177562'/><link rel='alternate' type='text/html' href='http://keimasawamura.blogspot.com/2020/09/prismdiregister-vs-registerinstance-vs.html' title='PrismでDIコンテナを使用するRegister vs RegisterInstance vs RegisterSingleton'/><author><name>澤村桂馬</name><uri>http://www.blogger.com/profile/08623018329038797126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14894453.post-7160606435634190049</id><published>2020-08-16T00:31:00.001+09:00</published><updated>2020-08-17T11:43:15.829+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="IAmTimCorey"/><category scheme="http://www.blogger.com/atom/ns#" term="links"/><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><title type='text'>[IAmTimCorey]15 Visual Studio Editor Tips</title><content type='html'>&lt;p&gt;這是一連串的文章，關於我所知道的C#推廣者 Tim Corey 頻道&amp;nbsp;&lt;a href=&quot;https://www.youtube.com/channel/UC-ptWR16ITQyYOglXyQmpzw&quot; target=&quot;_blank&quot;&gt;IAmTimCorey&lt;/a&gt;&amp;nbsp;的內容。&lt;br /&gt;這同時是我的學習筆記。以下的中文用詞，大部分是個人慣用語。一般來說會附上英文原詞，方便大家對照。&lt;/p&gt;&lt;p&gt;原始連結:&amp;nbsp;&lt;a href=&quot;https://www.youtube.com/watch?v=qv6ZflueASY&amp;amp;t=631s&quot;&gt;https://www.youtube.com/watch?v=qv6ZflueASY&lt;/a&gt;&lt;/p&gt;&lt;p&gt;這次的題目，是有關那個號稱地表最強IDE的&lt;b&gt;&lt;i&gt;Visual Studio在設定上的一些小技巧與內容&lt;/i&gt;&lt;/b&gt;。&lt;/p&gt;&lt;span&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/span&gt;&lt;p&gt;TOC&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;IntelliCode 智能程式碼&lt;/li&gt;&lt;li&gt;個人化的IntelliCode Personalize IntelliCode&lt;/li&gt;&lt;li&gt;程式碼風格 Code Styles&lt;/li&gt;&lt;li&gt;編輯器設定 Editor Config&lt;/li&gt;&lt;li&gt;方案效能 Solution Performance&lt;/li&gt;&lt;li&gt;程式碼清理 Code Cleanup&lt;/li&gt;&lt;li&gt;專案/方案範圍的程式碼清理 Project/Solution-wide Code Cleanup&lt;/li&gt;&lt;li&gt;以JSON格式貼上 Paste as JSON&lt;/li&gt;&lt;li&gt;快速動作與重購(更多選項) Quick Actions and Refactoring (more options)&lt;/li&gt;&lt;li&gt;阻擋字元Discard Character&lt;/li&gt;&lt;li&gt;XAML熱重載 XAML Hot Reload&lt;/li&gt;&lt;li&gt;XAML右鍵選單 XAML Pop-out Option(bonus)&lt;/li&gt;&lt;li&gt;&lt;/li&gt;&lt;li&gt;清單固定屬性 Pin Properties in List&lt;/li&gt;&lt;li&gt;剪貼簿環 Clipboard Ring&lt;/li&gt;&lt;li&gt;視窗剪貼簿環 Windows Clipboard Ring (bonus)&lt;/li&gt;&lt;li&gt;工具盒程式碼存放 Toolbox Code Storage&lt;/li&gt;&lt;li&gt;統一搜尋 Universal Search&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;span&gt;&lt;!--more--&gt;&lt;/span&gt;&lt;h2&gt;IntelliCode 智能程式碼&lt;/h2&gt;&lt;p&gt;IntelliCode是VS在2019上追加的功能，它是藉由延伸功能(Extension)來達成的功能。這個功能也因為在不同的版本上而有不同的功能實作。如果在已安裝套件中查不到[Visual Studio IntelliCode]或是看到該功能未被打開，可以將它打開，也可以從Market中搜尋相關字詞來進行安裝。&lt;/p&gt;&lt;p&gt;那麼它實際的功能是什麼呢？說明文說，這是一個AI輔助的開發生產力工具。他實際上做的，就是根據過去的相關程式(基本上是基於GitHub的巨量程式碼)的撰寫內容，主動幫你建議接下來要鍵入的內容。這幫我們省下很多打程式碼的時間。&lt;/p&gt;&lt;span&gt;&lt;!--more--&gt;&lt;/span&gt;&lt;h2&gt;個人化的IntelliCode&lt;/h2&gt;&lt;p&gt;有些人在寫程式碼的時候，有一些自己的風格，可能跟GitHub大師們的風格不大一樣。我們可以自行訓練我們自己的AI訓練模型，讓他比較接近這些[我流]的風格。你可以打開View -&amp;gt; Other Windows -&amp;gt; IntelliCode Model Window，然後建立一些IntelliCode的訓練模型(model)，你也可以設定這個訓練模型是方案中，還是適用於你帳號下的所有程式碼，並將這些訓練模型分享給其他人，或是使用其他人製作好的訓練模型。&lt;/p&gt;&lt;p&gt;當然，這些訓練模型可以手動進行訓練，也可以自動進行訓練。自動進行訓練的選項，是讓VS將分析的內容自動上傳到Azure DevOps，並使之時常依照你的編碼風格去尋找你最常使用的功能或是用字。這樣你的團隊就可以使用你最新的編碼風格。&lt;/p&gt;&lt;p&gt;再次提醒，如果沒有看到上述的功能視窗，記得要進選項(options)去打開所有相關的IntelliCode的功能。&lt;/p&gt;&lt;span&gt;&lt;!--more--&gt;&lt;/span&gt;&lt;h2&gt;程式碼風格 Code Styles&lt;/h2&gt;&lt;p&gt;這個設定，是要讓VS在自動生成程式碼的時候，或是進行Code Formating的時候，更能貼近你平常的使用方法。要進入這個設定，請打開Options -&amp;gt; Text Editor -&amp;gt; C# -&amp;gt; Code Style -&amp;gt; Naming進行設定。如果這部分沒有設定好，你會需要一直花時間在與「自動格式化」抵抗。記得把這地方設定成你所習慣的方式，然後再開始進行Coding。&lt;/p&gt;&lt;span&gt;&lt;!--more--&gt;&lt;/span&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;編輯器設定 Editor Config&lt;/h2&gt;&lt;p&gt;事實上，我們可以將上述的程式碼風格個別套用到不同的專案或方案中，透過設定一個實體.editorconfig檔。這將會讓我們在編碼時可以將不同程式碼風格帶入不同的專案中。最方便的地方，是當我們在分享專案時，同時分享程式碼風格。&lt;/p&gt;&lt;p&gt;另外一種方式，你也可以像製造IntelliCode的訓練模型一樣，讓VS掃描你的專案後，用你當前的專案程式碼風格去產生一個.editorconfig檔。&lt;/p&gt;&lt;span&gt;&lt;!--more--&gt;&lt;/span&gt;&lt;h2&gt;方案效能 Solution Performance&lt;/h2&gt;&lt;p&gt;好，真正重點的來了。這個設定會影響到你使用VS的效能。&lt;/p&gt;&lt;p&gt;Tim建議以下設定&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Options -&amp;gt; Projects and Solutions -&amp;gt; General -&amp;gt; Track Active Item in Solution Explorer -&amp;gt; Checked&lt;br /&gt;這會讓你的方案瀏覽器在你編輯檔案時，直接將該檔案在瀏覽器中顯示高亮。這會便於讓你知道檔案目前在哪裡，或是你目前是在編輯哪個檔案。&lt;/li&gt;&lt;li&gt;Options -&amp;gt; Projects and Solutions -&amp;gt; General -&amp;gt; Restore Solution Explorer project hierarchy state on solution load -&amp;gt; Off&lt;br /&gt;這會提升你打開VS時或是打開專案時的讀取速度。&lt;/li&gt;&lt;li&gt;Options -&amp;gt; Projects and Solutions -&amp;gt; General -&amp;gt; Reopen documents on solution load -&amp;gt; Off&lt;br /&gt;理由同上&lt;/li&gt;&lt;/ul&gt;&lt;span&gt;&lt;!--more--&gt;&lt;/span&gt;&lt;div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;程式碼清理 Code Cleanup&lt;/h2&gt;&lt;div&gt;VS有個小工具，它可以幫你自動清理程式中不需要的程式碼，讓你的程式碼保持最低限的文字。他在你的程式碼編輯器的下面，有個小小的像掃把一樣的圖示，點擊後可以進行設定，也就是設定你在完成程式後，或是整個專案中，當你在修改完程式後，它會自動幫你進行清理動作，這些動作會依照你的設定進行。&lt;/div&gt;&lt;span&gt;&lt;!--more--&gt;&lt;/span&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;專案/方案範圍的程式碼清理 Project/Solution-wide Code Cleanup&lt;/h2&gt;&lt;div&gt;好，就如同上面一樣，但是你可以套用到整個專案中，如果你有設定好你的清理規則。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;span&gt;&lt;!--more--&gt;&lt;/span&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;以JSON格式貼上 Paste as JSON&lt;/h2&gt;&lt;div&gt;事實上，他是幫你分析剪貼簿中的JSON資料，然後你可以使用［貼上特殊］(Paste Special -&amp;gt; Paste JSON as Class)，然後讓你超快速地完成建立POCO類的動作，而不用自己一個一個建立field。&lt;/div&gt;&lt;span&gt;&lt;!--more--&gt;&lt;/span&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;快速動作與重購(更多選項) Quick Actions and Refactoring (more options)&lt;/h2&gt;&lt;div&gt;這功能其實不用太多講，因為大家都在不知不覺中使用了。在你撰寫程式碼的時候，有時候你會在不知不覺間打太多多餘的程式，而這些功能可能在新版的程式中是多餘的。你可以利用Ctrl+.的快速鍵來進行快速重構，簡單的縮減或重構你的程式碼。&lt;/div&gt;&lt;div&gt;有時候，你常常可以在這個選項中找到更有效率的Coding方式。&lt;/div&gt;&lt;span&gt;&lt;!--more--&gt;&lt;/span&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;阻擋字元Discard Character(_)&lt;/h2&gt;&lt;div&gt;這功能，與其說它是VS的功能，不如說它是C#的新功能。&lt;/div&gt;&lt;div&gt;你可以設定一個名為_的變數，讓他儲存你不想要使用的資料，並在當下馬上將讀取的資料放進垃圾回收桶。&lt;/div&gt;&lt;span&gt;&lt;!--more--&gt;&lt;/span&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;XAML熱重載 XAML Hot Reload&lt;/h2&gt;&lt;div&gt;在某些與後端不須交流的前端設計上，當你修改XAML設定時，VS會直接熱重載你的XAML介面，讓你可以幾乎即時地確認設計變更。&lt;/div&gt;&lt;span&gt;&lt;!--more--&gt;&lt;/span&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;XAML視窗分離 XAML Pop-out Option(bonus)&lt;/h2&gt;&lt;div&gt;當在設計時，有時候你會覺得XAML的程式碼與顯示介面分別占掉畫面的一部份是很煩的事。你可以選擇性地將其中之一迸出並分離，這時視窗是前後(上下?)分離的，所以你可以更容易確認你的XAML顯示。&lt;/div&gt;&lt;span&gt;&lt;!--more--&gt;&lt;/span&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;&lt;span&gt;清單固定屬性 Pin Properties in List&lt;/span&gt;&lt;/h2&gt;&lt;span&gt;當你在Debug模式中，當資料停止在清單處，你可以展開並使用屬性欄旁邊的固定PIN來固定顯示這些屬性。這讓你在除錯時，就算沒有展開清單屬性，依舊可以確認你想確認的重要屬性。&lt;/span&gt;&lt;div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;另外一個好處是，當你PIN固定這些屬性後，你甚至可以用視窗左上的搜尋選項，去尋找你想要的資料是在清單內的哪個部分。&lt;br /&gt;&lt;!--more--&gt;&lt;/span&gt;&lt;h2&gt;剪貼簿履歷 Clipboard Ring&lt;/h2&gt;&lt;div&gt;當你在VS中複製了很多程式碼片段後，事實上你可以使用Ctrl-Shift-V來叫出你曾經複製過的程式碼片段，而不只是最後一次複製的內容。這個功能叫他做Clipboard Ring&lt;/div&gt;&lt;span&gt;&lt;!--more--&gt;&lt;/span&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;視窗剪貼簿履歷 Windows Clipboard Ring (bonus)&lt;/h2&gt;&lt;p style=&quot;text-align: left;&quot;&gt;這其實是Windows 10的特異功能。你可以按下Win+V來達成上述的剪貼簿履歷的功能。這不限於VS之中，而是會將你Windows中所複製/剪下過的所有內容放進這個剪貼簿內容中，並適度貼上。&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;&lt;span&gt;&lt;!--more--&gt;&lt;/span&gt;工具盒程式碼存放 Toolbox Code Storage&lt;/h2&gt;&lt;div&gt;很多重複性高的程式，你可以利用自製snipper的方式來進行縮碼。但是有些東西甚至是不常用到，連為他建立snipper你都會覺得懶。這時候，就是好好利用Toolbox的程式碼儲存功能。你可以直接選擇那段程式碼，然後把它拉進你的工具箱。&lt;/div&gt;&lt;span&gt;&lt;!--more--&gt;&lt;/span&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;統一搜尋 Universal Search&lt;/h2&gt;&lt;div&gt;在右上有個Universal Search框。你可以在裡面設定或是進行一些簡單的快速編碼設定。而且也會給你一些建議。有時可以把它當快速指令集來使用。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;- iStyle, myStyle -
RoKashou(Keima.Sawamura@gmail.com)&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keimasawamura.blogspot.com/feeds/7160606435634190049/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14894453/7160606435634190049' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/7160606435634190049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/7160606435634190049'/><link rel='alternate' type='text/html' href='http://keimasawamura.blogspot.com/2020/08/iamtimcorey15-visual-studio-editor-tips.html' title='[IAmTimCorey]15 Visual Studio Editor Tips'/><author><name>澤村桂馬</name><uri>http://www.blogger.com/profile/08623018329038797126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14894453.post-5355211306277409973</id><published>2020-08-05T09:42:00.000+09:00</published><updated>2020-08-05T09:42:00.131+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Database"/><category scheme="http://www.blogger.com/atom/ns#" term="Excel"/><title type='text'>Excelに外部データベースを自動取り入れする方法</title><content type='html'>ここで使用する技は、次の使用状況を前提に考えた：&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- 参照するキーはExcel上もともとある資料&lt;/div&gt;&lt;div&gt;- 外部データベース（今回はSQL Serverを例にする）には、すでに必要な資料を整理してある（つまり、DB内のTableのJOIN等は、Viewなどの形で、すでに整理してある）&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;使用する技の中身を明かすと、次のように分解する：&lt;/div&gt;&lt;div&gt;1. 必要なパラメータをそれぞれTableにする（Queryを掛けるときには必要）&lt;/div&gt;&lt;div&gt;2. それぞれのパラメータをクエリに変換。（後ほど詳しく説明）&lt;/div&gt;&lt;div&gt;3. 本当にデータをクエリし、必要のパラメータフィルタはひとまず「定数」で設定。&lt;/div&gt;&lt;div&gt;4. 上記定数のパラメータをそれぞれクエリに入れ替え。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;それでは、ステップ分けて説明する。&lt;/div&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;パラメータをテーブルに設定&lt;/h2&gt;&lt;div&gt;例として、Microsoftの&lt;b&gt;Northwind&lt;/b&gt;データベースをSqlServerの&lt;b&gt;LocalDB&lt;/b&gt;に構築した前提で進む。目標としては&lt;b&gt;[Order Details Extended]&lt;/b&gt;というViewの中で、&lt;b&gt;OrderID&lt;/b&gt;が同一するものを抽出する。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;では、まずは[OrderID]をTableに設定する。A1のセルに&lt;b&gt;OrderID&lt;/b&gt;と入力し、例えの内容として、&quot;&lt;b&gt;10254&lt;/b&gt;&quot;をA2に入力する。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A1のセルをクリックして、[&lt;b&gt;挿入&lt;/b&gt;] - [&lt;b&gt;テーブル&lt;/b&gt;]をクリックして、該当範囲をテーブルに変換する。ショートカットは[&lt;b&gt;Ctrl-T&lt;/b&gt;]を押しても同じようなものが出る。注意すべきのは、「先頭行をテーブルの見出しとして使用する」にチェックを入れること。Excelの設計上、必ず一番上のマスにタイトルを入れるので、自分でタイトルを入れないと、Excelが勝手にタイトルを付けておくようになってしまう。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;以上で、パラメータをテーブルに変換する手順が終わる。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;パラメータをクエリに変換&lt;/h2&gt;&lt;div&gt;次に、それぞれのパラメータテーブルをクエリに変換していく。&lt;/div&gt;&lt;div&gt;テーブルの一部をクリックして、[データ] - (取得と変換) - [テーブルから]をクリックする。とすると、Power Queryエディターが出てくる。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;先ずはタイトルの部分を注目。ここでは「数値」としてマスの内容を認識しているはず。どっちにしよう、SQLクエリを掛けるのに、「&lt;b&gt;文字&lt;/b&gt;」タイプが一番ベスト。ゆえに、ここは一度文字へ変換しておく。また、テーブルが複数欄になってしまった場合、ここで一度整理整頓を行う。&lt;b&gt;一つのパラメータは一つの欄だけにする&lt;/b&gt;ことが大事。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;そして、1欄目のところに右クリックして、「&lt;b&gt;ドリルダウン&lt;/b&gt;」をクリックする。とすると、ちょっと変な形になるが、使用上支障はないので、無視する。右側にプロパティが出るので、ここで&lt;b&gt;名前&lt;/b&gt;を&lt;b&gt;QueryOrderID&lt;/b&gt;とする。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;そのままの形で、&lt;b&gt;ホーム&lt;/b&gt; - &lt;b&gt;閉じて次に読み込む　&lt;/b&gt;(&lt;b&gt;閉じて読み込む&lt;/b&gt;の裏にある)をクリックする。読み込み先が聞かれてくるが、「&lt;b&gt;接続の作成のみ&lt;/b&gt;」として読み込み。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;上記の繰り返して、すべてのパラメータをクエリへ変換しておく。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;一度本クエリを行う&lt;/h2&gt;&lt;div&gt;&lt;b&gt;データ&lt;/b&gt;⇒&lt;b&gt;新しいクエリ&lt;/b&gt;⇒&lt;b&gt;データベースから&lt;/b&gt;⇒&lt;b&gt;SqlServerデータベースから&lt;/b&gt;をクリック、接続のダイアログを出す。サーバーは　&lt;b&gt;(localdb)\MSSQLLocalDB &lt;/b&gt;で、データベースは &lt;b&gt;Northwind&lt;/b&gt;&amp;nbsp;となる。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;実際に接続するときには、毎回接続情報を聞いてくるが、そこは各自に解決してください…&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;今回接続したいテーブル（実はView）は前述の「&lt;b&gt;Order Details Extended&lt;/b&gt;」、そして下の「編集」をクリックする。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;それぞれパラメータを掛けたいところに、タイトルの右にあるドリルダウンボタンをクリックし、フィルタを掛ける。今回の案では、&lt;b&gt;10254&lt;/b&gt;とフィルタする。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;終了したときは、同じホーム ⇒ 閉じて次に読み込む として、同じ表のA4セルに読み込む。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;クエリのパラメータを入れ替える&lt;/h2&gt;&lt;div&gt;鬼門が来た。前のステップで作成した本クエリのところをクリックして、編集を掛ける。編集を行いやすいように、&lt;b&gt;表示&lt;/b&gt; - &lt;b&gt;レイアウト&lt;/b&gt; - &lt;b&gt;数式バー&lt;/b&gt;　にチェックを入れる。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;とすると、数式バーに「&lt;b&gt;[OrderID] = 10254&lt;/b&gt;」のような文字が書いてある。&lt;b&gt;10254&lt;/b&gt;のところを&lt;b&gt;OrderID&lt;/b&gt;と書き換える。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;同じように、掛けたいパラメータのところをそれぞれ対応するクエリ名に入れ替えて置く。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;完成したら、&lt;b&gt;閉じて読み込む&lt;/b&gt;。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;以上で、完成。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;おわりに&lt;/h2&gt;&lt;div&gt;SQLクエリを変更可能なパラメータで行うには上記のやり方で可能だが、実際に操作してみてはやはり面倒くさいし、いろいろセキュリティ上の問題で、ネットでこれらの方法を展開していないのは理由が分かる気がする。自分でもやってみて「VBAにした方が楽だなぁ」と思ったりする。なにかいい方法があれば教えてください。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;- iStyle, myStyle -
RoKashou(Keima.Sawamura@gmail.com)&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keimasawamura.blogspot.com/feeds/5355211306277409973/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14894453/5355211306277409973' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/5355211306277409973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/5355211306277409973'/><link rel='alternate' type='text/html' href='http://keimasawamura.blogspot.com/2020/08/excel.html' title='Excelに外部データベースを自動取り入れする方法'/><author><name>澤村桂馬</name><uri>http://www.blogger.com/profile/08623018329038797126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14894453.post-4259802027711291690</id><published>2019-12-09T12:00:00.002+09:00</published><updated>2020-08-16T00:33:34.316+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><category scheme="http://www.blogger.com/atom/ns#" term="Database"/><category scheme="http://www.blogger.com/atom/ns#" term="GUI"/><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="windows"/><category scheme="http://www.blogger.com/atom/ns#" term="WPF"/><title type='text'>WPFでEFオブジェクトにData Bindingする場合の4t自動設定</title><content type='html'>WPFコントロールに自動的にBindingする場合、&lt;br /&gt;
デフォルトの4Tフレームワークで生成するファイルに少しだけの変更を入れると、あとはいつもの通りに任せきりにします。&lt;br /&gt;
&lt;br /&gt;
内容はMSDNの公式文書からの抜粋で、私なりに必要な部分だけ取り出しました。&lt;br /&gt;
&lt;br /&gt;
まず、適用する環境は次の通り：&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Visual Studio Express 2017&amp;nbsp;for Windows Desktop&lt;/li&gt;
&lt;li&gt;SQL Server Express 2017(大事でないけど、一応記録しておく。)&lt;/li&gt;
&lt;li&gt;EF 6.0&lt;/li&gt;
&lt;li&gt;WPF 3.0以上&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
そして、使用する手法はDatabase Firstで、ある程度データベースに保存するデータの形はDBですでに定義している前提で進みます。&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
ちなみに、MSDN公式は次の通り&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;https://docs.microsoft.com/ja-jp/ef/ef6/fundamentals/databinding/wpf#bind-object-to-controls&quot;&gt;https://docs.microsoft.com/ja-jp/ef/ef6/fundamentals/databinding/wpf#bind-object-to-controls&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
MSDN公式を閲覧した時点では内容めちゃくちゃなので、蛇足ですが私なりに訳しておきました。&lt;/div&gt;
&lt;div&gt;
https://hackmd.io/@rokashou/rkSHqVM2H&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
カギになる設定の部分を抜粋：&lt;/div&gt;
&lt;br /&gt;
&lt;ul class=&quot;part&quot; data-endline=&quot;200&quot; data-startline=&quot;193&quot; style=&quot;background-color: white; box-sizing: border-box; color: #333333; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Roboto, Arial, &amp;quot;Hiragino Kaku Gothic Pro&amp;quot;, &amp;quot;ヒラギノ角ゴ Pro W3&amp;quot;, Osaka, Meiryo, メイリオ, &amp;quot;MS Gothic&amp;quot;, &amp;quot;ＭＳ ゴシック&amp;quot;, sans-serif, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;; font-size: 16px; letter-spacing: 0.35px; margin-bottom: 16px; margin-top: 0px; padding-left: 2em; position: relative;&quot;&gt;
&lt;li class=&quot;&quot; data-endline=&quot;193&quot; data-startline=&quot;193&quot; style=&quot;box-sizing: border-box;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-weight: 700;&quot;&gt;ソリューションエクスプローラー&lt;/span&gt;を開き、&lt;span style=&quot;box-sizing: border-box; font-weight: 700;&quot;&gt;edmx&lt;/span&gt;ファイルの下にある&lt;b&gt;tt&lt;/b&gt;ファイル探します。編集としてファイルを開けます。&lt;/li&gt;
&lt;li class=&quot;&quot; data-endline=&quot;196&quot; data-startline=&quot;196&quot; style=&quot;box-sizing: border-box; margin-top: 0.25em;&quot;&gt;二箇所にある「&lt;span style=&quot;box-sizing: border-box; font-weight: 700;&quot;&gt;ICollection&lt;/span&gt;」を「&lt;span style=&quot;box-sizing: border-box; font-weight: 700;&quot;&gt;ObservableCollection&lt;/span&gt;」へ置き換えます。それぞれは約296行目と484行目あたりにあります。&lt;/li&gt;
&lt;li class=&quot;&quot; data-endline=&quot;197&quot; data-startline=&quot;197&quot; style=&quot;box-sizing: border-box; margin-top: 0.25em;&quot;&gt;最初に出た「&lt;span style=&quot;box-sizing: border-box; font-weight: 700;&quot;&gt;HashSet&lt;/span&gt;」を見つけて「&lt;span style=&quot;box-sizing: border-box; font-weight: 700;&quot;&gt;ObservableCollection&lt;/span&gt;」に置き換えます。 それは約50行目にあります。コードの後半にある2番目のHashSetを&lt;span style=&quot;box-sizing: border-box; font-weight: 700;&quot;&gt;置き換えないでください&lt;/span&gt;。&lt;/li&gt;
&lt;li class=&quot;&quot; data-endline=&quot;198&quot; data-startline=&quot;198&quot; style=&quot;box-sizing: border-box; margin-top: 0.25em;&quot;&gt;一回だけある「&lt;span style=&quot;box-sizing: border-box; font-weight: 700;&quot;&gt;System.Collections.Generic&lt;/span&gt;」を検索し、「&lt;span style=&quot;box-sizing: border-box; font-weight: 700;&quot;&gt;System.Collections.ObjectModel&lt;/span&gt;」に置き換えます。 それは約424行目にあります。&lt;/li&gt;
&lt;li class=&quot;&quot; data-endline=&quot;200&quot; data-startline=&quot;199&quot; style=&quot;box-sizing: border-box; margin-top: 0.25em;&quot;&gt;.ttファイルを保存します。 これにより、エンティティのコードが再生成されます。 コードが自動的に再生成されない場合は、.ttファイルを右クリックして、「カスタムツールの実行」を選択します。&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;div&gt;
以上。&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
あとは普通にプログラムを組んでください。&lt;/div&gt;
&lt;div&gt;
ちょっと前のやつにはいろいろ不具合があるようで、見つけた次第にエラーでないように更新していく…&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;- iStyle, myStyle -
RoKashou(Keima.Sawamura@gmail.com)&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keimasawamura.blogspot.com/feeds/4259802027711291690/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14894453/4259802027711291690' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/4259802027711291690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/4259802027711291690'/><link rel='alternate' type='text/html' href='http://keimasawamura.blogspot.com/2019/12/wpfdata-binding.html' title='WPFでEFオブジェクトにData Bindingする場合の4t自動設定'/><author><name>澤村桂馬</name><uri>http://www.blogger.com/profile/08623018329038797126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14894453.post-2978373594553010654</id><published>2019-11-20T12:56:00.001+09:00</published><updated>2019-11-20T12:56:35.893+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Markdown"/><category scheme="http://www.blogger.com/atom/ns#" term="StudyNote"/><title type='text'>Markdown記法, HackMDとGitHub</title><content type='html'>ちょっと前まではwiki記法が流行っていたが、最近ではGitHubでのreadme.mdの記入としてMarkdown記法が流行っている方です。&lt;br /&gt;
&lt;br /&gt;
一応、関連のサイトのリンクを貼り付けておく：&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/&quot; target=&quot;_blank&quot;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://hackmd.io/&quot; target=&quot;_blank&quot;&gt;HackMD.io&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
Markdownは、特定の文字をHTML標準タグへ変換することで、ブラウザで表示されると、HTMLで記入したハイパーテキストと同じような表示ができること。まぁ、Wikiとは似ている同志ですね。&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
関連文法/説明文書はここでは割愛。&lt;/div&gt;
&lt;div&gt;
HackMDのTutorialだけは置いておく。異なるサイトによるMDの文法が多少違うけど、基本的なところは同じですね。&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;https://hackmd.io/c/tutorials-tw/&quot;&gt;https://hackmd.io/c/tutorials-tw/&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
では、また次のときに。&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;- iStyle, myStyle -
RoKashou(Keima.Sawamura@gmail.com)&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keimasawamura.blogspot.com/feeds/2978373594553010654/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14894453/2978373594553010654' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/2978373594553010654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/2978373594553010654'/><link rel='alternate' type='text/html' href='http://keimasawamura.blogspot.com/2019/11/markdown-hackmdgithub.html' title='Markdown記法, HackMDとGitHub'/><author><name>澤村桂馬</name><uri>http://www.blogger.com/profile/08623018329038797126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14894453.post-5132037792555600659</id><published>2019-06-21T09:48:00.002+09:00</published><updated>2019-06-21T09:48:33.379+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="fiddler"/><category scheme="http://www.blogger.com/atom/ns#" term="network"/><category scheme="http://www.blogger.com/atom/ns#" term="proxy"/><category scheme="http://www.blogger.com/atom/ns#" term="system"/><category scheme="http://www.blogger.com/atom/ns#" term="windows"/><title type='text'>認証プロキシ非対応アプリケーションを、認証プロキシ環境下で動かす方法</title><content type='html'>いやー、非常に助かります。&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
仕事上でVS Expressを入れたいのに、会社の環境でproxyが設定されて、何回か試しても公式サイトにつながらないので、いろいろ探した末に、この方法にたどり着いた。&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
カギになる部分だけを記録しておく：&lt;br /&gt;
1. Fiddlerをダウンロードし、インストール。最新版ではFiddlerScriptも同梱しているので、特に分けて設置する必要はありません。&lt;br /&gt;
2. IEで任意のウェブサイトを閲覧し、通信を行う。&lt;br /&gt;
3. Fiddlerのinspectorsで、Headers中のProxy-Authorizationのtokenを取得（前提条件はその合法的なtokenを取得できることですが…&lt;br /&gt;
4. FiddlerScriptを編集し、onBeforeRequestの中に、最後に上記のProxy-Authorizationを注入。&lt;br /&gt;
oSession.oRequest[&quot;Proxy-Authorization&quot;]=&quot;TOKEN&quot;;&lt;br /&gt;
5. Script保存して完了！&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
ちなみに、使用するアプリケーションはフリーで、商用利用不可とは書いてません。&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
参考になったサイトは次の通り&lt;br /&gt;
&lt;a href=&quot;https://qiita.com/Nuits/items/1bd84b45b0b092527d8d&quot; target=&quot;_blank&quot;&gt;https://qiita.com/Nuits/items/1bd84b45b0b092527d8d&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
無事に設定して、現在VS Expressをダウンロード中。。。&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
では、また今度～～&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
そろそろネットワークについて勉強しないとなぁ。&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;- iStyle, myStyle -
RoKashou(Keima.Sawamura@gmail.com)&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keimasawamura.blogspot.com/feeds/5132037792555600659/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14894453/5132037792555600659' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/5132037792555600659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/5132037792555600659'/><link rel='alternate' type='text/html' href='http://keimasawamura.blogspot.com/2019/06/blog-post.html' title='認証プロキシ非対応アプリケーションを、認証プロキシ環境下で動かす方法'/><author><name>澤村桂馬</name><uri>http://www.blogger.com/profile/08623018329038797126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14894453.post-2153369376225318921</id><published>2018-12-24T12:50:00.000+09:00</published><updated>2018-12-24T12:50:00.864+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GUI"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="Ubuntu"/><title type='text'>在Ubuntu Server加裝Desktop(GUI)環境</title><content type='html'>對於許多老骨董來說，CUI環境總是比較有親和力(咦?)又快速，但是安裝之後有時候要用一些東西又想轉回GUI&lt;br /&gt;
&lt;br /&gt;
打入以下指令可以在Ubuntu Server上面加裝Desktop(GUI)環境&lt;br /&gt;
&lt;br /&gt;
首先更新你的package list&lt;br /&gt;
&lt;pre class=&quot;code lang-zsh&quot; data-lang=&quot;zsh&quot; data-unlink=&quot;&quot; style=&quot;background: rgb(250, 250, 250); border-radius: 3px; box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 5px inset; color: #454545; font-family: Monaco, Consolas, &amp;quot;Courier New&amp;quot;, Courier, monospace, sans-serif; font-size: 14px; overflow: auto hidden; padding: 10px;&quot;&gt;$ sudo apt-get update&lt;/pre&gt;
&lt;br /&gt;
然後安裝desktop環境&lt;br /&gt;
&lt;pre class=&quot;code&quot; data-lang=&quot;&quot; data-unlink=&quot;&quot; style=&quot;background: rgb(250, 250, 250); border-radius: 3px; box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 5px inset; color: #454545; font-family: Monaco, Consolas, &amp;quot;Courier New&amp;quot;, Courier, monospace, sans-serif; font-size: 12px; overflow: auto hidden; padding: 10px;&quot;&gt;$ sudo apt-get install ubuntu-desktop&lt;/pre&gt;
&lt;br /&gt;
最後，重開機讓他自己去讀取GUI介面&lt;br /&gt;
&lt;pre class=&quot;code lang-zsh&quot; data-lang=&quot;zsh&quot; data-unlink=&quot;&quot; style=&quot;background: rgb(250, 250, 250); border-radius: 3px; box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 5px inset; color: #454545; font-family: Monaco, Consolas, &amp;quot;Courier New&amp;quot;, Courier, monospace, sans-serif; font-size: 14px; overflow: auto hidden; padding: 10px;&quot;&gt;$ sudo shutdown -r now&lt;/pre&gt;
&lt;br /&gt;
結束。&lt;br /&gt;
&lt;br /&gt;
参考資料：&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://tadaoyamaoka.hatenablog.com/entry/2018/01/10/233519&quot; target=&quot;_blank&quot;&gt;
TadaoYamaokaの日記 - Ubuntu Serverを後からDesktopにする&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href=&quot;https://blog.amedama.jp/entry/2018/08/04/230601&quot; target=&quot;_blank&quot;&gt;CUBE SUGAR CONTAINER - Ubuntu 18.04 LTS に後から GUI (X Window System) を追加する&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;- iStyle, myStyle -
RoKashou(Keima.Sawamura@gmail.com)&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keimasawamura.blogspot.com/feeds/2153369376225318921/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14894453/2153369376225318921' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/2153369376225318921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/2153369376225318921'/><link rel='alternate' type='text/html' href='http://keimasawamura.blogspot.com/2018/12/ubuntu-serverdesktopgui.html' title='在Ubuntu Server加裝Desktop(GUI)環境'/><author><name>澤村桂馬</name><uri>http://www.blogger.com/profile/08623018329038797126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14894453.post-5145582499969361356</id><published>2018-10-04T10:25:00.000+09:00</published><updated>2019-11-20T11:48:37.310+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Mac"/><category scheme="http://www.blogger.com/atom/ns#" term="macos"/><title type='text'>Time Machine reset</title><content type='html'>最近やたらTime Machineがバックアップできない・完了しない。&lt;br /&gt;
あれこれでosX 10.12以降かな…&lt;br /&gt;
&lt;br /&gt;
いろいろネットにある情報を探してみましたが、次の有利情報が手に入った。&lt;br /&gt;
参考サイト：&lt;a href=&quot;https://wayohoo.com/mac/troubles/how-to-deal-with-the-problem-of-backup-for-time-machine.html&quot;&gt;https://wayohoo.com/mac/troubles/how-to-deal-with-the-problem-of-backup-for-time-machine.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
何をするというと、Time Machineの設定を削除して、1からやり直す…&lt;br /&gt;
まぁ、できないよりはマシかな？&lt;br /&gt;
&lt;br /&gt;
という訳で、やってみましょう&lt;br /&gt;
&lt;br /&gt;
つぎの設定ファイルを削除する&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #333333; font-family: &amp;quot;hiragino kaku gothic pro&amp;quot; , &amp;quot;ヒラギノ角ゴ pro w3&amp;quot; , , &amp;quot;meiryo&amp;quot; , &amp;quot;ｍｓ ｐゴシック&amp;quot; , &amp;quot;myriad set pro&amp;quot; , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;/Library/Preferences/com.apple.TimeMachine.plist&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #333333; font-family: &amp;quot;hiragino kaku gothic pro&amp;quot; , &amp;quot;ヒラギノ角ゴ pro w3&amp;quot; , , &amp;quot;meiryo&amp;quot; , &amp;quot;ｍｓ ｐゴシック&amp;quot; , &amp;quot;myriad set pro&amp;quot; , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: #333333; font-family: &amp;quot;hiragino kaku gothic pro&amp;quot; , &amp;quot;pro w3&amp;quot; , , &amp;quot;meiryo&amp;quot; , , &amp;quot;myriad set pro&amp;quot; , &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;background-color: white;&quot;&gt;できるかどうかわからないが、とりあえずひとメモ。&lt;/span&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;- iStyle, myStyle -
RoKashou(Keima.Sawamura@gmail.com)&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keimasawamura.blogspot.com/feeds/5145582499969361356/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14894453/5145582499969361356' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/5145582499969361356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/5145582499969361356'/><link rel='alternate' type='text/html' href='http://keimasawamura.blogspot.com/2018/10/time-machine-reset.html' title='Time Machine reset'/><author><name>澤村桂馬</name><uri>http://www.blogger.com/profile/08623018329038797126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14894453.post-7279161800560150213</id><published>2018-09-26T12:26:00.001+09:00</published><updated>2018-09-26T12:26:05.946+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="software"/><category scheme="http://www.blogger.com/atom/ns#" term="subtitle"/><category scheme="http://www.blogger.com/atom/ns#" term="字幕"/><title type='text'>SSA, ASS 字幕特效參數</title><content type='html'>ref url
&lt;br /&gt;
&lt;dl&gt;
&lt;dt&gt;&lt;a href=&quot;https://www.douban.com/note/284573295/&quot;&gt;https://www.douban.com/note/284573295/&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;字幕软件Aegisub ASS代码使用指南&lt;/dd&gt;
&lt;dt&gt;&lt;a href=&quot;https://blog.xuite.net/allenyin/blog/63417097-SSA%E3%80%81ASS+%E5%8F%83%E6%95%B8-%E6%94%BB%E7%95%A5&quot;&gt;https://blog.xuite.net/allenyin/blog/63417097-SSA%E3%80%81ASS+%E5%8F%83%E6%95%B8-%E6%94%BB%E7%95%A5&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;SSA、ASS 參數-攻略&lt;/dd&gt;
&lt;dt&gt;&lt;a href=&quot;https://github.com/weizhenye/ASS/wiki/ASS-%E5%AD%97%E5%B9%95%E6%A0%BC%E5%BC%8F%E8%A7%84%E8%8C%83&quot;&gt;https://github.com/weizhenye/ASS/wiki/ASS-%E5%AD%97%E5%B9%95%E6%A0%BC%E5%BC%8F%E8%A7%84%E8%8C%83&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;ASS 字幕格式规范&lt;/dd&gt;
&lt;dt&gt;&lt;a href=&quot;https://arctime.org/subtitle-special-effect.html&quot;&gt;https://arctime.org/subtitle-special-effect.html&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;Arctime 特殊字幕效果的制作&lt;/dd&gt;
&lt;/dl&gt;
&lt;br /&gt;
&lt;h2&gt;
SSA、ASS 參數-攻略&lt;/h2&gt;
&lt;br /&gt;
說明:&lt;br /&gt;
&amp;lt;參數&amp;gt;&lt;br /&gt;
[可選項] &lt;br /&gt;
&amp;lt;../..&amp;gt;任選其中一項&lt;br /&gt;
&lt;hr /&gt;
&lt;h3&gt;
[Script Info]部分&lt;/h3&gt;
&lt;dl&gt;
&lt;dt&gt;PlayResX&lt;/dt&gt;
&lt;dd&gt;屏幕的寬度。&lt;br /&gt;
影響到字幕中的距離單位，最好和視頻文件的高寬相等&lt;/dd&gt;
&lt;dt&gt;PlayResY&lt;/dt&gt;
&lt;dd&gt;屏幕的高度&lt;/dd&gt;
&lt;/dl&gt;
&lt;br /&gt;
&lt;h3&gt;
[v4+ Styles]部分&lt;/h3&gt;
Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColor, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding&lt;br /&gt;
&lt;dl&gt;
&lt;dt&gt;Name&lt;/dt&gt;
&lt;dd&gt;字體名稱&lt;/dd&gt;
&lt;dt&gt;Fontname&lt;/dt&gt;
&lt;dd&gt;所使用的字型&lt;/dd&gt;
&lt;dt&gt;Fontsize&lt;/dt&gt;
&lt;dd&gt;字體大小&lt;/dd&gt;
&lt;dt&gt;PrimaryColour&lt;/dt&gt;
&lt;dd&gt;主體顏色&lt;br /&gt;
顏色格式為AABBGGRR，十六進制，00-FF，alpha藍綠紅,和SSA不同&lt;/dd&gt;
&lt;dt&gt;SecondaryColour&lt;/dt&gt;
&lt;dd&gt;次要顏色&lt;br /&gt;
卡拉OK中使用&lt;/dd&gt;
&lt;dt&gt;OutlineColor&lt;/dt&gt;
&lt;dd&gt;邊框顏色&lt;br /&gt;
就是SSA的 TertiaryColour&lt;/dd&gt;
&lt;dt&gt;BackColour&lt;/dt&gt;
&lt;dd&gt;陰影顏色&lt;/dd&gt;
&lt;dt&gt;Bold&lt;/dt&gt;
&lt;dd&gt;粗體&lt;br /&gt;
0關閉，-1開啟。Italic,Underline,Strikeout相同&lt;/dd&gt;
&lt;dt&gt;Italic&lt;/dt&gt;
&lt;dd&gt;斜體&lt;/dd&gt;
&lt;dt&gt;Underline&lt;/dt&gt;
&lt;dd&gt;下劃線&lt;/dd&gt;
&lt;dt&gt;Strikeout&lt;/dt&gt;
&lt;dd&gt;刪除線&lt;/dd&gt;
&lt;dt&gt;ScaleX&lt;/dt&gt;
&lt;dd&gt;橫向縮放&lt;br /&gt;
單位是%，默認為100，即正常大小&lt;/dd&gt;
&lt;dt&gt;ScaleY&lt;/dt&gt;
&lt;dd&gt;縱向縮放&lt;/dd&gt;
&lt;dt&gt;Spacing&lt;/dt&gt;
&lt;dd&gt;字間距&lt;/dd&gt;
&lt;dt&gt;Angle&lt;/dt&gt;
&lt;dd&gt;旋轉&lt;/dd&gt;
&lt;dt&gt;BorderStyle&lt;/dt&gt;
&lt;dd&gt;邊框樣式&lt;/dd&gt;
&lt;dt&gt;Outline&lt;/dt&gt;
&lt;dd&gt;邊框寬度&lt;/dd&gt;
&lt;dt&gt;Shadow&lt;/dt&gt;
&lt;dd&gt;陰影距離&lt;/dd&gt;
&lt;dt&gt;Alignment&lt;/dt&gt;
&lt;dd&gt;對齊方式
&lt;br /&gt;
&lt;b&gt;ASS&lt;/b&gt;&lt;br /&gt;
&lt;table&gt;
&lt;tbody align=&quot;middle&quot;&gt;
&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;左&lt;/th&gt;&lt;th&gt;中&lt;/th&gt;&lt;th&gt;右&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;上&lt;/th&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;中&lt;/th&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;下&lt;/th&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;b&gt;SSA&lt;/b&gt;&lt;br /&gt;
&lt;table&gt;
&lt;tbody align=&quot;middle&quot;&gt;
&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;左&lt;/th&gt;&lt;th&gt;中&lt;/th&gt;&lt;th&gt;右&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;上&lt;/th&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;中&lt;/th&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;td&gt;11&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;下&lt;/th&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/dd&gt;
&lt;dt&gt;MarginL&lt;/dt&gt;
&lt;dd&gt;字幕距左邊的距離，右對齊時無效&lt;/dd&gt;
&lt;dt&gt;MarginR&lt;/dt&gt;
&lt;dd&gt;字幕距右邊的距離，左對齊時無效&lt;/dd&gt;
&lt;dt&gt;MarginV&lt;/dt&gt;
&lt;dd&gt;字幕高度&lt;br /&gt;
下對齊時表示到底部的距離&lt;br /&gt;
上對齊時表示到頂部的距離&lt;br /&gt;
中對齊時無效&lt;/dd&gt;
&lt;dt&gt;Encoding&lt;/dt&gt;
&lt;dd&gt;編碼&lt;/dd&gt;
&lt;dt&gt;AlphaLevel&lt;/dt&gt;
&lt;dd&gt;透明度&lt;br /&gt;
SSA 中用 AlphaLevel 來控制透明度。在ASS中被取消。&lt;/dd&gt;&lt;/dl&gt;
&lt;br /&gt;
&lt;h3&gt;
[Events]部分&lt;/h3&gt;
Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text&lt;br /&gt;
&lt;dl&gt;
&lt;dt&gt;Layer&lt;/dt&gt;
&lt;dd&gt;字幕層次&lt;br /&gt;
字幕重疊時數值大的顯示在上層&lt;/dd&gt;
&lt;dt&gt;Start&lt;/dt&gt;
&lt;dd&gt;開始時間&lt;br /&gt;
格式0:00:00.00&lt;br /&gt;
最小單位1/100秒&lt;/dd&gt;
&lt;dt&gt;End&lt;/dt&gt;
&lt;dd&gt;結束時間&lt;/dd&gt;
&lt;dt&gt;Style&lt;/dt&gt;
&lt;dd&gt;字體名稱&lt;/dd&gt;
&lt;dt&gt;Name&lt;/dt&gt;
&lt;dd&gt;名字，相當於注釋&lt;/dd&gt;
&lt;dt&gt;MarginL&lt;/dt&gt;
&lt;dd&gt;同[v4+ Styles]&lt;/dd&gt;
&lt;dt&gt;MarginR&lt;/dt&gt;
&lt;dd&gt;同[v4+ Styles]&lt;/dd&gt;
&lt;dt&gt;MarginV&lt;/dt&gt;
&lt;dd&gt;同[v4+ Styles]&lt;/dd&gt;
&lt;dt&gt;Effect 特效&lt;/dt&gt;
&lt;dd&gt;
&lt;dl&gt;
&lt;dt&gt;Scroll up;&amp;lt;y1&amp;gt;;&amp;lt;y2&amp;gt;;&amp;lt;delay&amp;gt;[;&amp;lt;fadeawayheight&amp;gt;]&lt;/dt&gt;
&lt;dd&gt;字幕從下向上捲動&lt;/dd&gt;
&lt;dt&gt;Scroll down;&amp;lt;y1&amp;gt;;&amp;lt;y2&amp;gt;;&amp;lt;delay&amp;gt;[;&amp;lt;fadeawayheight&amp;gt;]&lt;/dt&gt;
&lt;dd&gt;字幕從上向下捲動&lt;br /&gt;
&lt;dl&gt;
&lt;dt&gt;y1,y2&lt;/dt&gt;
&lt;dd&gt;上下範圍&lt;/dd&gt;
&lt;dt&gt;delay&lt;/dt&gt;
&lt;dd&gt;速度&lt;br /&gt;
表示移動一像素所用的時間，單位為1/1000秒&lt;br /&gt;
delay=5表示一秒移動200的距離&lt;/dd&gt;
&lt;dt&gt;fadeawayheight&lt;/dt&gt;
&lt;dd&gt;上下的淡出淡入範圍&lt;/dd&gt;&lt;/dl&gt;
&lt;/dd&gt;
&lt;dt&gt;Banner;&amp;lt;delay&amp;gt;[;&amp;lt;lefttoright&amp;gt;[;&amp;lt;fadeawaywidth&amp;gt;]]&lt;/dt&gt;
&lt;dd&gt;跑馬燈效果
&lt;br /&gt;
&lt;dl&gt;
&lt;dt&gt;lefttoright &amp;lt;0/1&amp;gt;&lt;/dt&gt;
&lt;dd&gt;0從右向左移動，1從左向右移動&lt;/dd&gt;&lt;br /&gt;
&lt;dt&gt;fadeawaywidth&lt;/dt&gt;
&lt;dd&gt;左右的淡出淡入範圍&lt;/dd&gt;&lt;/dl&gt;
&lt;/dd&gt;
&lt;dt&gt;Karaoke&lt;/dt&gt;
&lt;dd&gt;卡拉OK，在字幕正文中使用代碼{\k}&lt;/dd&gt;
&lt;/dl&gt;
&lt;/dd&gt;
&lt;dt&gt;Text&lt;/dt&gt;
&lt;dd&gt;字幕正文&lt;br /&gt;
字幕正文中可以添加代碼來實現各種特效&lt;/dd&gt;
&lt;/dl&gt;
&lt;hr /&gt;
&lt;h3&gt;
ASS 正文特效代碼&lt;/h3&gt;
所有代碼加{}表示，\n,\N,\h除外&lt;br /&gt;
所有代碼由\開頭&lt;br /&gt;
&lt;table style=&quot;border: 1px solid black;&quot;&gt;&lt;tbody style=&quot;border: 1px solid black;&quot;&gt;
&lt;tr&gt;&lt;td&gt;\n&lt;/td&gt;&lt;td&gt;空格，寬度超出範圍後自動換行&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;\N&lt;/td&gt;&lt;td&gt;硬回車&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;\h&lt;/td&gt;&lt;td&gt;硬空格&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;\b&amp;lt;0/1&amp;gt;&lt;/td&gt;&lt;td&gt;粗體&lt;br /&gt;
0關閉，1開啟&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;\i&amp;lt;0/1&amp;gt;&lt;/td&gt;&lt;td&gt;斜體&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;\u&amp;lt;0/1&amp;gt;&lt;/td&gt;&lt;td&gt;下劃線&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;\s&amp;lt;0/1&amp;gt;&lt;/td&gt;&lt;td&gt;刪除線&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;\bord&amp;lt;width&amp;gt;&lt;/td&gt;&lt;td&gt;邊框寬度&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;\shad&amp;lt;depth&amp;gt;&lt;/td&gt;&lt;td&gt;陰影距離&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;\fn&amp;lt;font name&amp;gt;&lt;/td&gt;&lt;td&gt;改變字型&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;\fs&amp;lt;font size&amp;gt;&lt;/td&gt;&lt;td&gt;改變字號&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;\fsc&amp;lt;x/y&amp;gt;&amp;lt;percent&amp;gt;&lt;/td&gt;&lt;td&gt;字符縮放&lt;br /&gt;
正常大小為100%&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;\fsp&amp;lt;pixels&amp;gt;&lt;/td&gt;&lt;td&gt;調整字間距&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;\fr[&amp;lt;x/y/z&amp;gt;]&amp;lt;degrees&amp;gt;&lt;/td&gt;&lt;td&gt;旋轉&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;\frz&lt;/td&gt;&lt;td&gt;= \fr，和[v4+Styles]中的Angle效果相同&lt;br /&gt;
旋轉所圍繞的中心由\a或\an決定&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;\fe&amp;lt;charset&amp;gt;&lt;/td&gt;&lt;td&gt;改變編碼&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;\c&amp;amp;H&amp;lt;bbggrr&amp;gt;&amp;amp;&lt;/td&gt;&lt;td&gt;改變顏色&lt;br /&gt;
十六進制00-ff，藍綠紅&lt;br /&gt;
\c = \1c&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;\1c&amp;amp;H&amp;lt;bbggrr&amp;gt;&amp;amp;&lt;/td&gt;&lt;td&gt;改變主體顏色&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;\2c&amp;amp;H&amp;lt;bbggrr&amp;gt;&amp;amp;&lt;/td&gt;&lt;td&gt;改變次要顏色&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;\3c&amp;amp;H&amp;lt;bbggrr&amp;gt;&amp;amp;&lt;/td&gt;&lt;td&gt;改變邊框顏色&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;\4c&amp;amp;H&amp;lt;bbggrr&amp;gt;&amp;amp;&lt;/td&gt;&lt;td&gt;改變陰影顏色&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;\alpha&amp;amp;H&amp;lt;aa&amp;gt;&amp;amp;&lt;/td&gt;&lt;td&gt;改變透明度&lt;br /&gt;
\alpha是同時改變字幕所有部分的透明度&lt;br /&gt;
&lt;dl&gt;
&lt;dt&gt;\1a&amp;amp;H&amp;lt;aa&amp;gt;&amp;amp;&lt;/dt&gt;
&lt;dd&gt;改變主體透明度&lt;/dd&gt;
&lt;dt&gt;\2a&amp;amp;H&amp;lt;aa&amp;gt;&amp;amp;&lt;/dt&gt;
&lt;dd&gt;改變次要透明度&lt;/dd&gt;
&lt;dt&gt;\3a&amp;amp;H&amp;lt;aa&amp;gt;&amp;amp;&lt;/dt&gt;
&lt;dd&gt;改變邊框透明度&lt;/dd&gt;
&lt;dt&gt;\4a&amp;amp;H&amp;lt;aa&amp;gt;&amp;amp;&lt;/dt&gt;
&lt;dd&gt;改變陰影透明度&lt;/dd&gt;
&lt;/dl&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;\r[&amp;lt;style&amp;gt;]&lt;/td&gt;&lt;td&gt;\r恢復成最初的字體&lt;br /&gt;
\r &amp;lt;style&amp;gt;可以改變成其它的字體&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;\a&amp;lt;alignment&amp;gt;&lt;/td&gt;&lt;td&gt;設置對齊方式&lt;br /&gt;
和SSA相同 &lt;br /&gt;
左  中  右 &lt;br /&gt;
上  5   6   7&lt;br /&gt;
中  9  10  11&lt;br /&gt;
下  1   2   3&lt;br /&gt;
一般正文用\a2，特效用\a10&lt;br /&gt;
\an&amp;lt;alignment&amp;gt; 設置對齊方式&lt;br /&gt;
和ASS相同&lt;br /&gt;
左  中  右&lt;br /&gt;
上  7   8   9&lt;br /&gt;
中  4   5   6&lt;br /&gt;
下  1   2   3&lt;br /&gt;
一般正文用\an2，特效用\an5&lt;br /&gt;
\a和\an對整個字幕有效，不論放在何處.調整對齊方式非常重要，它決定了字幕旋轉，縮放，移動時的參照點。&lt;br /&gt;
對齊方式是針對字幕的整體有效，字幕中的每個字符都是向下方對齊的。&lt;br /&gt;
如果要使用不同大小的字符，應該將一段字幕分為多段時間軸相同的字幕&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;\k&amp;lt;duration&amp;gt;&lt;/td&gt;&lt;td&gt;卡拉OK&lt;br /&gt;
\k 無平滑效果&lt;br /&gt;
\K或\kf 有平滑效果&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;\ko&lt;/td&gt;&lt;td&gt;有邊框的卡拉OK效果。時間單位是1/100秒&lt;br /&gt;
{\K50}aaaa表示用0.5秒來顯示歌詞aaaa----------後面沒有字符表示停頓一段時間&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;\t([&amp;lt;t1&amp;gt;, &amp;lt;t2&amp;gt;, ] [&amp;lt;accel&amp;gt;,] &amp;lt;style modifiers&amp;gt; )&lt;/td&gt;&lt;td&gt;動態效果&lt;br /&gt;
t1,t2分別是動態效果開始和結束時間，省略後以時間軸的開始結束時間為准&lt;br /&gt;
accel控制動態效果的運動速度 1 正常速度&lt;br /&gt;
0&amp;lt;accel&amp;lt;1 速度從快到慢減速運動&lt;br /&gt;
1&amp;lt;accel 速度從慢到快加速運動&lt;br /&gt;
計算公式為 t時的動作完成量 = pow((t-t1)/(t2-t1), accel)&lt;br /&gt;
style modifiers可以使用的效果 \c,\&amp;lt;1/2/3/4&amp;gt;c,\alpha,\&amp;lt;1/2/3/4&amp;gt;a,\fs,\fr[&amp;lt;x/y/z&amp;gt;],\fsc&amp;lt;x/y&amp;gt;,\fsp,\bord,\shad&lt;br /&gt;
可同時使用多個效果&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;\move(&amp;lt;x1&amp;gt;, &amp;lt;y1&amp;gt;, &amp;lt;x2&amp;gt;, &amp;lt;y2&amp;gt;[, &amp;lt;t1&amp;gt;, &amp;lt;t2&amp;gt;])&lt;/td&gt;&lt;td&gt;x1,y1為移動開始的位置&lt;br /&gt;
x2,y2為移動結束的位置&lt;br /&gt;
屏幕的確左上角是0,0，右下角由[Script Info]中的PlayResX:和PlayResY:決定&lt;br /&gt;
t1,t2是移動開始和結束時間，省略後以時間軸的開始結束時間為准，只能使用一次。&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;\pos(&amp;lt;x&amp;gt;, &amp;lt;y&amp;gt; )&lt;/td&gt;&lt;td&gt;改變位置。只能使用一次。&lt;br /&gt;
使用\move或\pos後MarginL,MarginR,MarginV無效&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;\fade(&amp;lt;a1&amp;gt;, &amp;lt;a2&amp;gt;, &amp;lt;a3&amp;gt;, &amp;lt;t1&amp;gt;, &amp;lt;t2&amp;gt;, &amp;lt;t3&amp;gt;, &amp;lt;t4&amp;gt; )&lt;/td&gt;&lt;td&gt;淡出淡入效果&lt;br /&gt;
a1是顯示開始時的透明度，t1,t2表示顯示的開始和結束時間&lt;br /&gt;
a2是顯示結束到消失開始時的透明度&lt;br /&gt;
a3是消失結束時的透明度，t3,t4表示消失的開始和結束時間&lt;br /&gt;
此處透明度必須使用十進制來表示，範圍0-255&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;\fad(&amp;lt;t1&amp;gt;, &amp;lt;t2&amp;gt; )&lt;/td&gt;&lt;td&gt;淡出淡入效果&lt;br /&gt;
t1表示顯示使用的時間&lt;br /&gt;
t2表示消失使用的時間&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;\p&amp;lt;0/1/2...&amp;gt;&lt;/td&gt;&lt;td&gt;繪圖，參數1/2...表示繪圖比例，0表示繪圖結束&lt;br /&gt;
\p&amp;lt;1/2...&amp;gt;&amp;lt;繪圖命令&amp;gt;&lt;br /&gt;
\p0 繪制圖形，繪制出的圖形作為一個字符來處理，可以近行旋轉，縮放等
&lt;br /&gt;
&lt;table style=&quot;border: 1px solid black;&quot;&gt;&lt;caption&gt;繪圖命令&lt;/caption&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;m &amp;lt;x&amp;gt; &amp;lt;y&amp;gt;&lt;/td&gt;&lt;td&gt;移動到x,y並開始繪制&lt;br /&gt;
繪圖開始時必須使用一次&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;n &amp;lt;x&amp;gt; &amp;lt;y&amp;gt;&lt;/td&gt;&lt;td&gt;移動到x,y並開始繪制，但不關閉上一個繪圖&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;l &amp;lt;x&amp;gt; &amp;lt;y&amp;gt;&lt;/td&gt;&lt;td&gt;畫直線到x,y&lt;br /&gt;
可以用l &amp;lt;x1&amp;gt; &amp;lt;y2&amp;gt; &amp;lt;x2&amp;gt; &amp;lt;y2&amp;gt; ... &amp;lt;xn&amp;gt; &amp;lt;yn&amp;gt;的方式畫連續直線&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;b &amp;lt;x1&amp;gt; &amp;lt;y1&amp;gt; &amp;lt;x2&amp;gt; &amp;lt;y2&amp;gt; &amp;lt;x3&amp;gt; &amp;lt;y3&amp;gt;&lt;/td&gt;&lt;td&gt;畫曲線&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;s &amp;lt;x1&amp;gt; &amp;lt;y1&amp;gt; &amp;lt;x2&amp;gt; &amp;lt;y2&amp;gt; &amp;lt;x3&amp;gt; &amp;lt;y3&amp;gt; ... &amp;lt;xn&amp;gt; &amp;lt;yn&amp;gt;&lt;/td&gt;&lt;td&gt;畫封閉曲線&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;p &amp;lt;x&amp;gt; &amp;lt;y&amp;gt;&lt;/td&gt;&lt;td&gt;延伸封閉曲線&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;c&lt;/td&gt;&lt;td&gt;關閉封閉曲線&lt;br /&gt;
繪制的圖形是實心的，在前面添加\1a&amp;amp;Hff&amp;amp;可以得到空心的圖形&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;- iStyle, myStyle -
RoKashou(Keima.Sawamura@gmail.com)&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keimasawamura.blogspot.com/feeds/7279161800560150213/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14894453/7279161800560150213' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/7279161800560150213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/7279161800560150213'/><link rel='alternate' type='text/html' href='http://keimasawamura.blogspot.com/2018/09/ssa-ass.html' title='SSA, ASS 字幕特效參數'/><author><name>澤村桂馬</name><uri>http://www.blogger.com/profile/08623018329038797126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14894453.post-1305572861539045533</id><published>2018-09-22T14:53:00.003+09:00</published><updated>2018-09-22T14:56:55.385+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="homebrew"/><category scheme="http://www.blogger.com/atom/ns#" term="Mac"/><category scheme="http://www.blogger.com/atom/ns#" term="macos"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><title type='text'>Homebrew 系統升級後設定</title><content type='html'>這次的問題發生在MacOS 10.13以後的版本上。主要由於MacOS本身升級後改掉了一些目錄的設定，導致Homebrew抓不到自己的設定。還好Homebrew自己的設定還滿容易升級的。&lt;br /&gt;
&lt;br /&gt;
錯誤訊息發生於執行&lt;span class=&quot;codearea&quot;&gt;&lt;code&gt;brew update&lt;/code&gt;&lt;/span&gt;時，brew會告訴你&lt;code&gt;&lt;span class=&quot;codearea&quot;&gt;/usr/local&lt;/span&gt;&lt;/code&gt;這個目錄的使用者權限有問題，叫你用下面的指令進行修復後繼續&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&lt;/code&gt;&lt;br /&gt;
&lt;pre class=&quot;codearea&quot;&gt;&lt;code&gt;sudo chown -R $(whoami):admin /usr/local&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
但是執行了指令之後並沒有多大作用。還是一樣跳一大堆錯誤之後停下來。&lt;br /&gt;
&lt;br /&gt;
找了找網路的解法，看起來是要重新install過brew。執行下面指令（建議先自己跑過Xcode把CommandLine Tool更新一下）&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&lt;/code&gt;&lt;br /&gt;
&lt;pre class=&quot;codearea&quot;&gt;&lt;code&gt;/usr/bin/ruby -e &quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;
以上，解決。暫時完成brew更新的問題。&lt;br /&gt;
&lt;br /&gt;
參考資料：&lt;br /&gt;
High SierraにアップデートされたMacでHomebrewがうまく動かない時&lt;a href=&quot;https://qiita.com/takustaqu/items/65aa67286345baac363e&quot;&gt;https://qiita.com/takustaqu/items/65aa67286345baac363e&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;- iStyle, myStyle -
RoKashou(Keima.Sawamura@gmail.com)&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keimasawamura.blogspot.com/feeds/1305572861539045533/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14894453/1305572861539045533' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/1305572861539045533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/1305572861539045533'/><link rel='alternate' type='text/html' href='http://keimasawamura.blogspot.com/2018/09/homebrew.html' title='Homebrew 系統升級後設定'/><author><name>澤村桂馬</name><uri>http://www.blogger.com/profile/08623018329038797126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14894453.post-7118919109006826200</id><published>2018-09-17T17:42:00.002+09:00</published><updated>2018-09-17T17:42:21.999+09:00</updated><title type='text'>控制盤燈號顏色等規定</title><content type='html'>&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
IEC 60073                   Basic and safety principles for man -machine interface, marking and identification – Coding principles for indicators and actuators&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ISO 3864                     Safety colours and safety signs&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ISO 13850                   Safety of machinery – Emergency stop – Principles for design&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CNS 14816-1(IEC 60947-1:2004)      低電壓開關裝置及控制裝置 － 第1部 ： 通則 &lt;br /&gt;
(Low-voltage switchgear and controlgear – Part 1: General rules)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CNS 14816-5-1(IEC 60947-5-1:2003)        Low-voltage switchgear and controlgear – Part 5-1: Control circuit devices and switching elements – Electromechanical control circuit devices&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CNS 5741 C 1067       指示燈及按鈕之顏色
&lt;div class=&quot;blogger-post-footer&quot;&gt;- iStyle, myStyle -
RoKashou(Keima.Sawamura@gmail.com)&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keimasawamura.blogspot.com/feeds/7118919109006826200/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14894453/7118919109006826200' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/7118919109006826200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/7118919109006826200'/><link rel='alternate' type='text/html' href='http://keimasawamura.blogspot.com/2018/09/blog-post.html' title='控制盤燈號顏色等規定'/><author><name>澤村桂馬</name><uri>http://www.blogger.com/profile/08623018329038797126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14894453.post-6765285597981647581</id><published>2018-07-23T16:32:00.000+09:00</published><updated>2018-07-24T13:02:51.914+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="links"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><category scheme="http://www.blogger.com/atom/ns#" term="windows"/><title type='text'>代替小畫家的免費繪圖軟體</title><content type='html'>小畫家殺手...有點言過於實了，畢竟小畫家太弱XD&lt;br /&gt;
Windows馴染みのペイントの代わりですが、私がよく使っている方をお紹介します。&lt;br /&gt;
&lt;br /&gt;
1. GIMP &lt;a href=&quot;https://www.gimp.org/&quot;&gt;https://www.gimp.org/&lt;/a&gt;&lt;br /&gt;
最強殺手，以前是號稱推倒Photoshop...&lt;br /&gt;
昔からフリーウェアなので使っていますが、「オープンソース界のPhotoshop」と言われるほど有名だと思います。&lt;br /&gt;
&lt;br /&gt;
2.Krita &lt;a href=&quot;https://krita.org/zh/&quot;&gt;https://krita.org/zh/&lt;/a&gt;&lt;br /&gt;
開源版的 illustrators，向量圖就靠它了。&lt;br /&gt;
新たに紹介された「オープンソース界のillustrators」です。ベクター画像の編集にはこっちのほうが向いています。&lt;br /&gt;
3.Inkscape &lt;a href=&quot;https://inkscape.org/zh-hant/&quot;&gt;https://inkscape.org/zh-hant/&lt;/a&gt;&lt;br /&gt;
其實講到開源的向量圖軟體，在下對這個軟體比較耳熟能詳。網路上的比較也比Krita好得多，只能說可能是因為針對中文用戶的支援太少，導致其在華文世界的評價不是很高。&lt;br /&gt;
正直こっちのほうが僕にとってのオープンソース界のillustratorsですが、なぜか他のサイトでは上のKritaが紹介された。まぁ、アジア系のサポートが悪いのかな？&lt;br /&gt;
&lt;br /&gt;
4. Paint .NET&amp;nbsp;&lt;a href=&quot;https://www.getpaint.net/&quot;&gt;https://www.getpaint.net/&lt;/a&gt;&lt;br /&gt;
操作上最接近原來的小畫家。缺點是只能在Windows上用。&lt;br /&gt;
画面と操作にはWindowsのペイントに一番近いですが、残念ながらWindowsしか使えません(.NET Frameworkを使うので）。&lt;div class=&quot;blogger-post-footer&quot;&gt;- iStyle, myStyle -
RoKashou(Keima.Sawamura@gmail.com)&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keimasawamura.blogspot.com/feeds/6765285597981647581/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14894453/6765285597981647581' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/6765285597981647581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/6765285597981647581'/><link rel='alternate' type='text/html' href='http://keimasawamura.blogspot.com/2018/07/blog-post.html' title='代替小畫家的免費繪圖軟體'/><author><name>澤村桂馬</name><uri>http://www.blogger.com/profile/08623018329038797126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14894453.post-3796598249079331596</id><published>2018-06-04T09:56:00.002+09:00</published><updated>2018-06-04T09:56:49.946+09:00</updated><title type='text'>Adobe Reader DC icon lost/missing</title><content type='html'>不確定是不是因為Adobe跟Windows 10吵架。每當更新Adobe Reader DC之後，桌面跟快速列上的ICON(圖示)就會爛掉(變成空白)。&lt;br /&gt;
&lt;br /&gt;
稍微搜尋一下，似乎這是常態性的問題，只能手動修正。&lt;br /&gt;
&lt;br /&gt;
以下手續進行修正：&lt;br /&gt;
Step 1. 打開&lt;strong style=&quot;color: green; font-family: Helvetica, Arial, FreeSans, sans-serif; font-size: 13px;&quot;&gt;C:\ProgramData\Microsoft\Windows\Start Menu\Programs&lt;/strong&gt;資料夾，刪除其中的&lt;strong style=&quot;color: green; font-family: Helvetica, Arial, FreeSans, sans-serif; font-size: 13px;&quot;&gt;Adobe Reader DC&lt;/strong&gt;的捷徑。&lt;br /&gt;
&lt;br /&gt;
Step 2. 另外在桌面新建一個捷徑，指向&lt;strong style=&quot;color: green; font-family: Helvetica, Arial, FreeSans, sans-serif; font-size: 13px;&quot;&gt;C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe&lt;/strong&gt;，並將它改名為&lt;strong style=&quot;color: green; font-family: Helvetica, Arial, FreeSans, sans-serif; font-size: 13px;&quot;&gt;Adobe Reader DC&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Step 3. 好，你猜到了。把剛剛桌面上建好的那個捷徑拉到&amp;nbsp;&lt;strong style=&quot;color: green; font-family: Helvetica, Arial, FreeSans, sans-serif; font-size: 13px;&quot;&gt;C:\ProgramData\Microsoft\Windows\Start Menu\Programs&amp;nbsp;&lt;/strong&gt;資料夾裡面。&lt;br /&gt;
&lt;br /&gt;
以上，完成。&lt;br /&gt;
&lt;br /&gt;
reference:&lt;br /&gt;
https://www.mysysadmintips.com/windows/clients/700-broken-adobe-reader-dc-icon-in-windows-10-start-menu&lt;div class=&quot;blogger-post-footer&quot;&gt;- iStyle, myStyle -
RoKashou(Keima.Sawamura@gmail.com)&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keimasawamura.blogspot.com/feeds/3796598249079331596/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14894453/3796598249079331596' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/3796598249079331596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/3796598249079331596'/><link rel='alternate' type='text/html' href='http://keimasawamura.blogspot.com/2018/06/adobe-reader-dc-icon-lostmissing.html' title='Adobe Reader DC icon lost/missing'/><author><name>澤村桂馬</name><uri>http://www.blogger.com/profile/08623018329038797126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14894453.post-98297246313424637</id><published>2018-03-31T14:02:00.003+09:00</published><updated>2018-03-31T14:02:47.065+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CAD"/><category scheme="http://www.blogger.com/atom/ns#" term="Solidworks"/><category scheme="http://www.blogger.com/atom/ns#" term="windows"/><title type='text'>VBE6EXT.OLB無法載入</title><content type='html'>今天Solidworks開啟時發生一個問題&lt;br /&gt;
「VBE6EXT.OLD無法載入」&lt;br /&gt;
&lt;br /&gt;
問題其實影響很大，會讓後續開啟小窗格要修正尺寸的時候一直警報不讓你改。&lt;br /&gt;
(聽說不只Solidworks, AutoCAD也會有類似的狀況)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
主要原因是Windows的登錄檔不知什麼原因將VBA 6.0的登錄刪掉了。&lt;br /&gt;
VBE6EXT.OLD檔案本身應該還在下面的目錄中&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;C:\Program Files (x86)\Common Files\microsoft shared\VBA\VBA6\VBE6EXT.OLB&lt;/pre&gt;
&lt;br /&gt;
稍微搜尋了一下解決方法，網路上很多把這個X86的DLL轉貼到VBA7.1的目錄裡面的做法，那並不是正道。正確的應該是像&lt;a href=&quot;https://forum.solidworks.com/thread/40593&quot;&gt;https://forum.solidworks.com/thread/40593&lt;/a&gt;中Luke Malpass前輩的做法，另外將VBAE6EXT.OLB這個檔案登錄回去。&lt;br /&gt;
&lt;br /&gt;
登錄碼如下：&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;code-area&quot;&gt;[HKEY_CLASSES_ROOT\TypeLib\{0002E157-0000-0000-C000-000000000046}]

[HKEY_CLASSES_ROOT\TypeLib\{0002E157-0000-0000-C000-000000000046}\5.3]
&quot;PrimaryInteropAssemblyName&quot;=&quot;Microsoft.Vbe.Interop, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C&quot;
@=&quot;Microsoft Visual Basic for Applications Extensibility 5.3&quot;

[HKEY_CLASSES_ROOT\TypeLib\{0002E157-0000-0000-C000-000000000046}\5.3\0]

[HKEY_CLASSES_ROOT\TypeLib\{0002E157-0000-0000-C000-000000000046}\5.3\0\win32]
@=&quot;C:\\Program Files (x86)\\Common Files\\Microsoft Shared\\VBA\\VBA6\\VBE6EXT.OLB&quot;

[HKEY_CLASSES_ROOT\TypeLib\{0002E157-0000-0000-C000-000000000046}\5.3\FLAGS]
@=&quot;0&quot;

[HKEY_CLASSES_ROOT\TypeLib\{0002E157-0000-0000-C000-000000000046}\5.3\HELPDIR]
@=&quot;[{0002E157-0000-0000-C000-000000000046}]&quot;&lt;/pre&gt;
&lt;br /&gt;
或者是直接下載論壇上的附檔&lt;br /&gt;
&lt;a href=&quot;https://forum.solidworks.com/servlet/JiveServlet/download/204911-63820/reg.reg.zip&quot;&gt;https://forum.solidworks.com/servlet/JiveServlet/download/204911-63820/reg.reg.zip&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
以上&lt;div class=&quot;blogger-post-footer&quot;&gt;- iStyle, myStyle -
RoKashou(Keima.Sawamura@gmail.com)&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keimasawamura.blogspot.com/feeds/98297246313424637/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14894453/98297246313424637' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/98297246313424637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/98297246313424637'/><link rel='alternate' type='text/html' href='http://keimasawamura.blogspot.com/2018/03/vbe6extolb.html' title='VBE6EXT.OLB無法載入'/><author><name>澤村桂馬</name><uri>http://www.blogger.com/profile/08623018329038797126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14894453.post-1634927624784952225</id><published>2018-03-26T15:18:00.002+09:00</published><updated>2018-03-26T15:18:55.179+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CAD"/><category scheme="http://www.blogger.com/atom/ns#" term="Solidworks"/><category scheme="http://www.blogger.com/atom/ns#" term="windows"/><title type='text'>Solidworks解決雙點無法直接開啟問題</title><content type='html'>又是一個困擾我已久的問題&lt;br /&gt;
從Windows 10開始，灌完Solidworks之後，總是無法直接從檔案總管打開文件。&lt;br /&gt;
&lt;br /&gt;
找了一下之後，發現有不少人遇到同樣的問題。試了一下網友提供的解法，嘿，還真解決了。&lt;br /&gt;
&lt;br /&gt;
快速筆記如下：&lt;br /&gt;
1. 以「系統管理員身分」開啟Solidworks&lt;br /&gt;
進設定-&amp;gt;系統選項-&amp;gt;檔案Explorer&lt;br /&gt;
點擊「&lt;span style=&quot;color: red;&quot;&gt;還原檔案關聯&lt;/span&gt;」&lt;br /&gt;
&lt;br /&gt;
2. 以「系統管理員身分」開啟命令提示字元(cmd)&lt;br /&gt;
&lt;br /&gt;
輸入以下指令重新註冊DLL檔(記得先確認DLL檔位置)&lt;br /&gt;
&lt;pre&gt;regsvr32 &lt;span style=&quot;color: red;&quot;&gt;&quot;D:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\sldthumbnailprovider.dll&quot;&lt;/span&gt;
regsvr32 &lt;span style=&quot;color: red;&quot;&gt;&quot;C:\Program Files\Common Files\SOLIDWORKS Shared\sldwinshellextu.dll&quot;&lt;/span&gt;
&lt;/pre&gt;
3. 再次從檔案總管確認預設開啟程式。應該要是&quot;&lt;span style=&quot;color: red;&quot;&gt;SOLIDWORKS Launcher&lt;/span&gt;&quot;&lt;br /&gt;
&lt;br /&gt;
以上，解決。&lt;br /&gt;
&lt;br /&gt;
參考資料：&lt;a href=&quot;http://solidworks.org.tw/forum.php?mod=viewthread&amp;amp;tid=25495&quot;&gt;http://solidworks.org.tw/forum.php?mod=viewthread&amp;amp;tid=25495&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;- iStyle, myStyle -
RoKashou(Keima.Sawamura@gmail.com)&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keimasawamura.blogspot.com/feeds/1634927624784952225/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14894453/1634927624784952225' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/1634927624784952225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/1634927624784952225'/><link rel='alternate' type='text/html' href='http://keimasawamura.blogspot.com/2018/03/solidworks.html' title='Solidworks解決雙點無法直接開啟問題'/><author><name>澤村桂馬</name><uri>http://www.blogger.com/profile/08623018329038797126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14894453.post-7692880812401988935</id><published>2017-11-04T10:40:00.003+09:00</published><updated>2017-11-04T10:40:53.844+09:00</updated><title type='text'>提問的藝術</title><content type='html'>&lt;div&gt;
被小屁孩鬧版鬧得很不爽，順便查了一下資料。&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
#發問的藝術 #提問的智慧&lt;/div&gt;
&lt;br /&gt;[.Net 海角點部落] 發問的藝術與技術 2009-06-11&lt;a href=&quot;https://dotblogs.com.tw/billchung/archive/2009/06/11/8792.aspx&quot;&gt;https://dotblogs.com.tw/billchung/archive/2009/06/11/8792.aspx&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
GitBook 提問的智慧 by Eric&lt;br /&gt;&lt;a href=&quot;https://ryanhanwu.gitbooks.io/how-to-ask-questions-the-smart-way/&quot;&gt;https://ryanhanwu.gitbooks.io/how-to-ask-questions-the-smart-way/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;- iStyle, myStyle -
RoKashou(Keima.Sawamura@gmail.com)&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keimasawamura.blogspot.com/feeds/7692880812401988935/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14894453/7692880812401988935' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/7692880812401988935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/7692880812401988935'/><link rel='alternate' type='text/html' href='http://keimasawamura.blogspot.com/2017/11/blog-post.html' title='提問的藝術'/><author><name>澤村桂馬</name><uri>http://www.blogger.com/profile/08623018329038797126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14894453.post-7732102958385120805</id><published>2017-09-29T21:42:00.004+09:00</published><updated>2017-09-29T21:42:38.613+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Mac"/><category scheme="http://www.blogger.com/atom/ns#" term="wifi"/><title type='text'>MacOS X wifi slow </title><content type='html'>先日、通常使っているMBAのネットワークが急に遅くなった事象が起こりました。&lt;br /&gt;
ちょうどHigh Sierra更新と共に現れたので、それのせいかなと思ったけど、どうやら違う問題だったようだ。&lt;br /&gt;
&lt;br /&gt;
そう。問題はWifi自身です。しかもMBAのWifi設定自身か狂ったんだ。&lt;br /&gt;
まぁ、幸に、ネットサーフィン自体はまたできる（やや遅いけれども）。&lt;br /&gt;
&lt;br /&gt;
解決方法は簡単。次のステップを踏めて設定を一度整理すること。&lt;br /&gt;
&lt;br /&gt;
1. wifiをoffにする。&lt;br /&gt;
2. 次のフォルダを開ける&lt;br /&gt;
&lt;span style=&quot;background-color: #f3f3f3; color: #303030; font-family: monospace; font-size: 15.6px;&quot;&gt;/Library/Preferences/SystemConfiguration/&lt;/span&gt;&lt;br /&gt;
3.フォルダ中の次のファイルらを消す。&lt;br /&gt;
&lt;span style=&quot;background-color: #f3f3f3; color: #303030; font-family: monospace; font-size: 15.6px;&quot;&gt;com.apple.airport.preferences.plist&lt;br /&gt;
com.apple.network.eapolclient.configuration.plist&lt;br /&gt;
com.apple.wifi.message-tracer.plist&lt;br /&gt;
NetworkInterfaces.plist&lt;br /&gt;
preferences.plist&lt;/span&gt;
&lt;br /&gt;
4.システムを再起動&lt;br /&gt;
5.wifiをonする。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;
&lt;br /&gt;
wifiの設定を一度消して、システムに一から構築し直すことによって、過去の不要な設定などを省く、速度も早くなった→予想。&lt;br /&gt;
まぁ、早くなったし、App Storeも普通に開けられたし、High Sierraにアップデータしよう！&lt;br /&gt;
&lt;br /&gt;
参考資料：&lt;a href=&quot;http://osxdaily.com/2016/09/22/fix-wi-fi-problems-macos-sierra/&quot;&gt;http://osxdaily.com/2016/09/22/fix-wi-fi-problems-macos-sierra/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;- iStyle, myStyle -
RoKashou(Keima.Sawamura@gmail.com)&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keimasawamura.blogspot.com/feeds/7732102958385120805/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14894453/7732102958385120805' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/7732102958385120805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/7732102958385120805'/><link rel='alternate' type='text/html' href='http://keimasawamura.blogspot.com/2017/09/macos-x-wifi-slow.html' title='MacOS X wifi slow '/><author><name>澤村桂馬</name><uri>http://www.blogger.com/profile/08623018329038797126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14894453.post-7975781180019069450</id><published>2017-05-22T09:42:00.003+09:00</published><updated>2017-05-22T09:42:41.018+09:00</updated><title type='text'>gVim menu language setting</title><content type='html'>A few days ago, I download the lastest(It&#39;s 8.0 in May, 2017) Vim.&lt;br /&gt;
&lt;br /&gt;
And when I launch the gVim, the menu text is almost &quot;????&quot;.&lt;br /&gt;
I have to explain my PC setting. I used to have Japanese menu on my PC.&lt;br /&gt;
It is Win10 at this moment.&lt;br /&gt;
&lt;br /&gt;
Seems the VIM has old fashion, it used to use the encode 932 or Shift-JIS or something like that. It shows as &quot;????&quot; for the Kana. I have to force it to show in english.&lt;br /&gt;
&lt;br /&gt;
I found some answers as below:&lt;br /&gt;
&lt;br /&gt;
https://superuser.com/questions/746387/change-menu-ui-language-of-vim-to-english&lt;br /&gt;
&lt;br /&gt;
There is the code you have to add in your .vimrc(or _vimrc in windows)&lt;br /&gt;
&lt;pre class=&quot;prettyprint codeblock&quot;&gt;&lt;code&gt;set langmenu=en_US
let $LANG = &#39;en_US&#39;
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim&lt;/code&gt;&lt;/pre&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;- iStyle, myStyle -
RoKashou(Keima.Sawamura@gmail.com)&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keimasawamura.blogspot.com/feeds/7975781180019069450/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14894453/7975781180019069450' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/7975781180019069450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/7975781180019069450'/><link rel='alternate' type='text/html' href='http://keimasawamura.blogspot.com/2017/05/gvim-menu-language-setting.html' title='gVim menu language setting'/><author><name>澤村桂馬</name><uri>http://www.blogger.com/profile/08623018329038797126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14894453.post-2387630552744394176</id><published>2016-08-03T15:50:00.000+09:00</published><updated>2016-08-03T15:50:15.826+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Database"/><title type='text'>Codd&#39;s 12 rules 科德十二定律</title><content type='html'>Codd&#39;s 12 Rules/科德十二定律/コッドの12の規則&lt;br /&gt;
&lt;hr /&gt;
&lt;br /&gt;
Related to Wikipedia 2016/8/2 data&lt;br /&gt;
純屬資料收集，順便做一下語言學習&lt;br /&gt;
&lt;hr /&gt;
&lt;h2&gt;
&lt;br /&gt;全關係系統十二準則&lt;/h2&gt;
全關係系統應該完全支持關係模型的所有特徵。關係模型的奠基人埃德加·科德具體地給出了全關係系統應遵循的基本準則。&lt;br /&gt;
&lt;br /&gt;
&lt;dl&gt;
&lt;dt style=&quot;margin: 10pt 0pt;&quot;&gt;&lt;b&gt;&lt;i&gt;準則0&lt;/i&gt;&lt;/b&gt; The &lt;i&gt;Foundation rule&lt;/i&gt;&lt;/dt&gt;
&lt;dd&gt;For any system that is advertised as, or claimed to be, a relational data base management system, that system must be able to manage data bases entirely through its relational capabilities.&lt;br /&gt;
一個關係形的關係資料庫系統必須能完全通過它的關係能力來管理資料庫。&lt;/dd&gt;
&lt;dt style=&quot;margin: 10pt 0pt;&quot;&gt;&lt;b&gt;&lt;i&gt;準則1&lt;/i&gt;&lt;/b&gt; The &lt;i&gt;information rule&lt;/i&gt; 信息準則&lt;/dt&gt;
&lt;dd&gt;All information in a relational data base is represented explicitly at the logical level and in exactly one way — by values in tables.&lt;br /&gt;
關係資料庫系統的所有信息都應該在邏輯一級上用表中的值這一種方法顯式的表示。&lt;/dd&gt;
&lt;dt style=&quot;margin: 10pt 0pt;&quot;&gt;&lt;b&gt;&lt;i&gt;準則2&lt;/i&gt;&lt;/b&gt; The &lt;i&gt;guaranteed access rule&lt;/i&gt; 保證訪問準則 &lt;/dt&gt;
&lt;dd&gt;Each and every data (atomic value) in a relational data base is guaranteed to be logically accessible by resorting to a combination of table name, primary key value and column name.&lt;br /&gt;
依靠表名、主碼和列名的組合，保證能以邏輯方式訪問關係資料庫中的每個數據項。&lt;/dd&gt;
&lt;dt style=&quot;margin: 10pt 0pt;&quot;&gt;&lt;i&gt;&lt;b&gt;準則3&lt;/b&gt;&lt;/i&gt; Systematic treatment of null values 空值的系統化處理 &lt;/dt&gt;
&lt;dd&gt;Null values (distinct from the empty character string or a string of blank characters and distinct from zero or any other number) are supported in fully relational DBMS for representing missing information and inapplicable information in a systematic way, independent of data type.&lt;br /&gt;
全關係的關係資料庫系統支持空值的概念，並用系統化的方法處理空值。&lt;/dd&gt;
&lt;dt style=&quot;margin: 10pt 0pt;&quot;&gt;&lt;i&gt;&lt;b&gt;準則4&lt;/b&gt;&lt;/i&gt; &lt;i&gt;Dynamic online catalog based on the relational model&lt;/i&gt; 基於關係模型的動態的聯機數據字典 &lt;/dt&gt;
&lt;dd&gt;The data base description is represented at the logical level in the same way as ordinary data, so that authorized users can apply the same relational language to its interrogation as they apply to the regular data.&lt;br /&gt;
資料庫的描述在邏輯級上和普通數據採用同樣的表述方式。&lt;/dd&gt;
&lt;dt style=&quot;margin: 10pt 0pt;&quot;&gt;&lt;i&gt;&lt;b&gt;準則5&lt;/b&gt;&lt;/i&gt; The &lt;i&gt;comprehensive data sublanguage rule&lt;/i&gt; 統一的數據子語言 &lt;/dt&gt;
&lt;dd&gt;A relational system may support several languages and various modes of terminal use (for example, the fill-in-the-blanks mode). However, there must be at least one language whose statements are expressible, per some well-defined syntax, as character strings and that is comprehensive in supporting all of the following items:
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt; Data definition&lt;/li&gt;
&lt;li&gt; View definition&lt;/li&gt;
&lt;li&gt; Data manipulation (interactive and by program). &lt;/li&gt;
&lt;li&gt; Integrity constraints &lt;/li&gt;
&lt;li&gt; Authorization &lt;/li&gt;
&lt;li&gt; Transaction boundaries (begin, commit and rollback)&lt;/li&gt;
&lt;/ol&gt;
一個關係資料庫系統可以具有幾種語言和多種終端訪問方式，但必須有一種語言，它的語句可以表示為嚴格語法規定的字符串，並能全面的支持各種規則。&lt;/dd&gt;
&lt;dt style=&quot;margin: 10pt 0pt;&quot;&gt;&lt;i&gt;&lt;b&gt;準則6&lt;/b&gt;&lt;/i&gt; The view updating rule 視圖更新準則 &lt;/dt&gt;
&lt;dd&gt;All views that are theoretically updatable are also updatable by the system.&lt;br /&gt;
所有理論上可更新的視圖也應該允許由系統更新。&lt;/dd&gt;
&lt;dt style=&quot;margin: 10pt 0pt;&quot;&gt;&lt;i&gt;&lt;b&gt;準則7&lt;/b&gt;&lt;/i&gt; High-level insert, update, and delete 高階的插入、修改和刪除操作 &lt;/dt&gt;
&lt;dd&gt;The capability of handling a base relation or a derived relation as a single operand applies not only to the retrieval of data but also to the insertion, update and deletion of data.&lt;br /&gt;
系統應該對各種操作進行查詢優化。&lt;/dd&gt;
&lt;dt style=&quot;margin: 10pt 0pt;&quot;&gt;&lt;i&gt;&lt;b&gt;準則8&lt;/b&gt;&lt;/i&gt; Physical data independence 數據的物理獨立性 &lt;/dt&gt;
&lt;dd&gt;Application programs and terminal activities remain logically unimpaired whenever any changes are made in either storage representations or access methods.&lt;br /&gt;
無論資料庫的數據在存儲表示或存取方法上作任何變化，應用程式和終端活動都保持邏輯上的不變性。&lt;/dd&gt;
&lt;dt style=&quot;margin: 10pt 0pt;&quot;&gt;&lt;i&gt;&lt;b&gt;準則9&lt;/b&gt;&lt;/i&gt; Logical data independence 數據邏輯獨立性 &lt;/dt&gt;
&lt;dd&gt;Application programs and terminal activities remain logically unimpaired when information-preserving changes of any kind that theoretically permit unimpairment are made to the base tables.&lt;br /&gt;
當對基本關係進行理論上信息不受損害的任何改變時，應用程式和終端活動都保持邏輯上的不變性。&lt;/dd&gt;
&lt;dt style=&quot;margin: 10pt 0pt;&quot;&gt;&lt;i&gt;&lt;b&gt;準則10&lt;/b&gt;&lt;/i&gt; Integrity independence 數據完整的獨立性 &lt;/dt&gt;
&lt;dd&gt;Integrity constraints specific to a particular relational data base must be definable in the relational data sublanguage and storable in the catalog, not in the application programs.&lt;br /&gt;
關係資料庫的完整性約束條件必須是用資料庫語言定義並存儲在數據字典中的。&lt;/dd&gt;
&lt;dt style=&quot;margin: 10pt 0pt;&quot;&gt;&lt;i&gt;&lt;b&gt;準則11&lt;/b&gt;&lt;/i&gt; Distribution independence 分布獨立性 &lt;/dt&gt;
&lt;dd&gt;A relational DBMS has distribution independence.&lt;br /&gt;
關係資料庫系統在引入分布數據或數據重新分布時保持邏輯不變。&lt;/dd&gt;
&lt;dt style=&quot;margin: 10pt 0pt;&quot;&gt;&lt;i&gt;&lt;b&gt;準則12&lt;/b&gt;&lt;/i&gt; The nonsubversion rule 無破壞準則 &lt;/dt&gt;
&lt;dd&gt;If a relational system has a low-level (single-record-at-a-time) language, that low level cannot be used to subvert or bypass the integrity rules and constraints expressed in the higher level relational language (multiple-records-at-a-time).&lt;br /&gt;
如果一個關係資料庫系統具有一個低級語言，那麼這個低級語言不能違背或繞過完整性準則。&lt;/dd&gt;
&lt;/dl&gt;
&lt;br /&gt;
Ref:&lt;br /&gt;
&lt;a href=&quot;http://computing.derby.ac.uk/c/codds-twelve-rules/&quot;&gt;http://computing.derby.ac.uk/c/codds-twelve-rules/&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.itworld.com/nl/db_mgr/09022002&quot;&gt;http://www.itworld.com/nl/db_mgr/09022002&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%83%E3%83%89%E3%81%AE12%E3%81%AE%E8%A6%8F%E5%89%87&quot;&gt;https://ja.wikipedia.org/wiki/ゴッドの12の規則&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;- iStyle, myStyle -
RoKashou(Keima.Sawamura@gmail.com)&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keimasawamura.blogspot.com/feeds/2387630552744394176/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14894453/2387630552744394176' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/2387630552744394176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/2387630552744394176'/><link rel='alternate' type='text/html' href='http://keimasawamura.blogspot.com/2016/08/codds-12-rules.html' title='Codd&#39;s 12 rules 科德十二定律'/><author><name>澤村桂馬</name><uri>http://www.blogger.com/profile/08623018329038797126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14894453.post-3316418370939069303</id><published>2016-07-03T01:21:00.002+09:00</published><updated>2017-05-22T13:35:11.064+09:00</updated><title type='text'>[翻譯文]開源跨平台開發方法與工具</title><content type='html'>&lt;div&gt;
這是我近年來一直很想好好坐下來寫的一篇文章。我一開始是從開發90年代後期的軟體開始的，並且為我自己取得了一個Borland C++編譯器，藉此我快速地理解在Windows中什麼才是真正在背後實際應該要做的事。一開始我寫了一些小型的命令列應用程式，並且開始嘗試使用圖性介面的應用程式。我好愛創造的過程，也對這套工具的很多地方感到不滿。在那時候，我並沒有真正走進適用簡單的範例之後的過程。&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
過了一段時間後，我開始對開發網路應用程式感到興趣，並在對Perl感到失望後開始玩弄一個叫做PHP的新語言。我喜歡那些讓我可以非常自由的混合程式碼與HTML，並擁有使用PHP語言來對伺服端機器擁有完整存取權的感覺。我用PHP開發了一些網站，並試著使用不同的方法在可能的狀況下盡可能地將處理丟給JavaScript去做。這些真的很菜，但是將他與資料庫連結這件事讓我成長了很多。我也同時開始處理郵件清單，回答一些問題，並學習我所能知道有關已開發的開源軟體語言的任何事情。&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
在那之後我有一點分心到Linux身上，封裝應用程式，身為一個Gentoo開發者將那些推送給新的64位元架構。那真的很好玩，而且我學到了很多有關相依性、安全性更新、共享函數庫、以及在撰寫建造系統中許多科學家是處於多麼壞的處境中。經過這個時期，我也學到有關如何成為一個延展的線上社群的一份子，並有機會與很多非常熟練且專業的人共同作業。&lt;/div&gt;
&lt;h3&gt;
C++與原生開發&lt;/h3&gt;
最終，我理解到我想要開發軟體，而且當我不得不存取硬體時我真的想要使用原生語言來做開發。在那時候我使用Linux作為我的主要作業系統，但是我也必須與那些使用主流的Windows與Mac OS X的人們一起工作。我想讓可以使用我開發的軟體，但不想因為這樣寫三次程式碼。於是我開始調整軟體庫，主要針對KDE以及那些我必須要在Google Summer of Code專案中使用的部分。這就是最近九年左右我在Google Summer of Code專案中所做的事，而且我主要使用同樣的堆疊，增加或是更新函數，來促進合作，開源與跨平台開發。&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
C++是一個標準化的程式語言，擁有很多強力的開源編譯器與許多延伸編譯器支援，分散於從嵌入式系統到地球上最大的超級電腦中的所有地方。在我的作業中，我們定期將目標放在業界的兩個極端，就像是在桌機/筆記型電腦上的許多作業一樣。我想它仍然是最多元化的語言之一，擁有對比於Ｃ語言的高階特性，卻又與基層夠接近可以得到良好的性能。他也可以使用許多通常使用C語言介面擴展的API, 甚至可以在需要的時候與FORTRAN溝通。&lt;/div&gt;
&lt;div&gt;
&lt;h3&gt;
跨平台抽象度&lt;/h3&gt;
&lt;div&gt;
C++可以用可攜式的方式撰寫，但是有很多平台專用的API, 工具組，以及語言延伸套件。有很多方式可以建造C++應用程式。我一開始使用簡單的手寫Makefile，但是很快地就發現即使是維護那些簡單的專案也十分的瑣碎且容易出錯。我開始尋找Autotools, 然後轉向SCONS, 在大約是KDE在尋找切換方式前開始跨到CMake。&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
CMake是一個標記型建造系統生成器，那意味著他並沒有自己直接打造任何東西。你會使用CMake語言去指定你的專案應該要怎麼被建造，並且可以在必要的時候定義特定平台的例外。這也許聽起來有一點瑣碎，但是你可以得到一些十分巨大的回饋——他將為你的環境創建一個編譯系統。如果你想要用Visual Studio，請自便。如果你想要Makefile，很好。如果你偏好新的Ninja系統，你可以用它。我通常使用Ninja與那個叫CodeBlocks的東西來打造我的Qt Creator集成環境。&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
一旦你有某些可以打造的東西了，你會想要思考如何將視窗介面虛擬化。我也歷經了一點虛擬化，包括Java Swing, GTKMM(C++可以用GTK來替換), wxWidget, 以及一些我想我不願提到。我最後是留在Qt身上了，而他已經慣於擁有一個大缺點是他是在GPLv2版權協議下，而你的代碼必須同樣使用GPL公開，除非你付商業版權的費用。那總是雙重定義，但我從不真的喜歡這個方案。比起其他我試過的方案，他真的是非常好用，並且讓我覺得非常務實且自然，而且它在KDE上有一個很大的友善開源開發者社群。&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
另一個好事我經常藉由Qt獲得的是原生的視覺外觀。這個虛擬化努力的使用原生的Widget, 檔案對話框、色彩選擇器、諸如此類。就像工具箱進化後，他可以延伸到支援Android與iOS, 並且他在Nokia被Trolltech合併後改為使用LGPL授權。他也與KDE e.V.達成協議確保她永遠都是自由的，這替未來提供了保障。&lt;/div&gt;
&lt;h3&gt;
版本控制，源碼review&lt;/h3&gt;
&lt;div&gt;
我一開始使用CVS，而我們通常在東西被整合進Gentoo與KDE之後會review源碼。他做得很好，但是需要規範開發者留意提交清單上的提交訊息。切換到Subversion之後事情依然很類似，但是工具感覺較為易於使用且擁有更小的單元性(atomicity)。&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
對我來說，最大的改革是發生在搬到Git的時候。一開始，我們慣於把它用的像是一個簡單的拖拉置換，有能力可以在在上傳前於本機端提交。晚一點我們開始尋找更為整合性的源碼review，試著找出一些解決方案。有一陣子我們使用Gerrit, 但是我從不覺得那個介面夠直觀，我也不喜歡他專注於單一的提交上。&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
我現在大部分的工作都是使用GitHub或是GitLab, 兩者都擁有強力的焦點在拉取/整合需求上，感覺就像是分支包含了一個或多個的提交。這讓我們分離事情給分別的提交上，而這感覺比較符合直覺，可以發行他們就像他們被開發的目的一樣，而且請求review當它已經準備好被整合了。我喜歡這個等級的粗度，讓我可以切換到單一的提交，了解為什麼發生了一組變更，或是看到分支中的不同點。逐行註解容許我們專注在review上，並讓高層級的討論可以被放在主要頁籤裡面。&lt;/div&gt;
&lt;h3&gt;
自動化構建與測試&lt;/h3&gt;
&lt;div&gt;
跨平台開發中的另一個重要的方面是自動化構建與測試。這也同時讓我們不用進入到構建/封裝的相依性之中，就像我們很少寫那些不會在其他函式庫中重用的源碼。這是另一個CMake提供了非常大的幫助的部分，而我們的做法也時常進化。&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
我想這是在跨平台開發中一個或是多個困難的方面，而某些平台上會比其他平台更加困難。傳統的做法是使用cron工作分配去自動執行構建起始過程，而控制host上的dashboard腳本主要使用CMake透過CTest去自動建構。他們也會生成建構文件並上傳到CDash.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
很多專案都擁有我們稱之為超建構(superbuilds)的某種東西。他們會在我們感興趣的專案最終建構之前自動化建構與專案的相依性階段。他們讓我們可以確定每一件東西都是在正確的旗標與正確的版本下被建造的。他們也會與CPack互動，在某些狀況下創建為不同的平台創建安裝器。CDash將會顯示出建造的概要，被自動創建的安裝器，測試結果，等等的資訊。&lt;/div&gt;
&lt;h3&gt;
總結&lt;/h3&gt;
&lt;div&gt;
跨平台開發是一個挑戰。這很重要，看到你所做的改變的結果在數小時（或者是數天，在最糟的狀況下）推放到其他平台上。一個專案需要考慮到跨平台作為他的流程的一部份，為了獲得最佳的結果。我可以在我們的做法上提到更多，但是這篇文章已經太長了。你可以用原生碼來獲得更好的結果，而且科學應用程式通常擁有數量龐大的額外依賴。一旦你將超級電腦與崁入式裝置混進來，事情就會變得十分有趣。&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;hr /&gt;
本文章原文來源： &lt;a href=&quot;https://opensource.com/business/16/6/trials-and-tribulations-cross-platform-software-development?sc_cid=70160000000lcFrAAI&quot;&gt;Open source cross-platform development methods and toolsI&lt;/a&gt; by Marcus D. Hanwell posted 20 Jun 2016 on opensource.com&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;- iStyle, myStyle -
RoKashou(Keima.Sawamura@gmail.com)&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://keimasawamura.blogspot.com/feeds/3316418370939069303/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14894453/3316418370939069303' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/3316418370939069303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14894453/posts/default/3316418370939069303'/><link rel='alternate' type='text/html' href='http://keimasawamura.blogspot.com/2016/07/blog-post.html' title='[翻譯文]開源跨平台開發方法與工具'/><author><name>澤村桂馬</name><uri>http://www.blogger.com/profile/08623018329038797126</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>