電視遙控器 - 阿尼. 今年年初看到有人用 Kinect 寫電視遙控器,看人家用手勢控制電視一副超好玩的樣子,讓我自己也想來寫寫看。 我想它的原理應該是 Kinect 連到電腦,靠電腦讀手勢外加送指令給電視。 於是我打算分兩部份來寫,由於自己手上沒有 Kinect 這東西,得跟別人借才行。 所以先來處理送指令給電視的部份。 回到家看一下電視背板:哦哦,有 COM Port 可以用耶。 有 COM Port 就方便了,照上次的寫法來送指令應該就行了。 接上 USB轉COM Port 之後可以在裝置管理員看到它,等一下就是要對這個 COM8 進行存取。 有了裝備,再加上電視使用說明裡的指令詳解,就可以開始寫程式了。 控制電視的完成了,再來就差 Kinect 的部份,如果有哪位善心人士願意出借 Kinect 的再麻煩留言給我,謝謝囉。 Dependency Injection 筆記 (1) 我打算將我閱讀 Dependency Injection in .NET 的筆記整理一些出來,這是第一篇。 其實,剛開始作筆記的時候,比較像在翻譯。 後來陸續加油添醋、畫蛇添足,以及一些刪減取捨,就很難稱得上是翻譯了。 故曰「筆記」。 首先要談的是:何謂相依性注入(dependency injection),為什麼要了解它? 聲明:筆記內容可能會持續修訂更新,請勿以複製全文的方式轉載。 定義 相依性注入(dependency injection)是一組軟體設計原則與模式,能夠協助我們撰寫寬鬆耦合的程式碼。 方便起見,往後碰到這個名詞時,皆使用英文縮寫:DI。 註:右圖的出處在這裡。 維護是王 使用 DI 的主要目的,是為了寫出容易維護的程式碼。 如果你的程式碼在完成第一個版本之後就不會再有任何更動,自然可以不用考慮日後維護的問題。 寬鬆耦合 我們知道,在 .NET (或某些物件導向程式語言)的世界裡,任何東西都是「物件」,而應用程式的各項功能便是由各種物件彼此相互合作所達成。
DI 的迷思 DI 就是晚期繫結(late binding)或動態繫結DI 只是為了單元測試(unit testing)DI 只是加了威而剛的抽象工廠(Abstract Factory)模式DI 必須搭配 DI 容器(container)。 晚期繫結就是執行時期才進行繫結,亦即物件之間的連結並非編譯時期決定,而是等到執行時期才知道欲使用之物件的實際型別。 又如,應用程式所使用的資料庫,如果將來有可能從 SQL Server 換成 Oracle 或其他資料庫,那麼撰寫程式時就得針對這個部分採用比較彈性的設計。 然而,晚期繫結只是 DI 的其中一項好處,而非全部。 註1:Gamma, Erich, et al. 單元測試 有的人認為 DI 主要是為了支援單元測試。 威而剛版本的抽象工廠 前面提過,物件導向應用程式的各項功能,都是由一群物件彼此合作所共同實現的,而這群物件通常又會依賴底層的架構或框架所提供的基礎服務。 如此說來,Service Locator 也就是一種更動態、更彈性的物件工廠。
DI 並不詢問相依的型別是什麼或在哪裡;它是直接要求呼叫端(用戶端)明確提供相依的物件。 DI 容器 所謂的 DI 容器,就是一個用來註冊和保存型別的地方,同時還負責建立適當型別的物件實體。 續集. Fluent Configuration API 入門範例. Intro to ASP.NET MVC 3 (C#) Note: An updated version of this tutorial is available here that uses ASP.NET MVC 5 and Visual Studio 2013. It's more secure, much simpler to follow and demonstrates more features. This tutorial will teach you the basics of building an ASP.NET MVC Web application using Microsoft Visual Web Developer 2010 Express Service Pack 1, which is a free version of Microsoft Visual Studio. Before you start, make sure you've installed the prerequisites listed below. You can install all of them by clicking the following link: Web Platform Installer. If you're using Visual Studio 2010 instead of Visual Web Developer 2010, install the prerequisites by clicking the following link: Visual Studio 2010 prerequisites.
A Visual Web Developer project with C# source code is available to accompany this topic. What You'll Build You'll implement a simple movie-listing application that supports creating, editing, and listing movies from a database. Skills You'll Learn Here's what you'll learn: Getting Started. Create Your Website Today. 批次取得資料庫中全部的 Stored Procedure、View、Function - IT狂想曲~ Lessons on development of 64-bit C/C++ applications. The course is devoted to creation of 64-bit applications in C/C++ language and is intended for the Windows developers who use Visual Studio 2005/2008/2010 environment. Developers working with other 64-bit operating systems will learn much interesting as well. The course will consider all the steps of creating a new safe 64-bit application or migrating the existing 32-bit code to a 64-bit system.
The course is composed of 28 lessons devoted to introduction to 64-bit systems, issues of building 64-bit applications, methods of searching errors specific to 64-bit code and code optimization. Such questions are also considered as estimate of the cost of moving to 64-bit systems and rationality of this move. Lesson 01. What 64-bit systems are. By the moment of writing the course, there are two most popular 64-bit architectures of microprocessors: IA64 and Intel 64. IA-64 is a 64-bit microprocessor architecture developed by Intel and Hewlett Packard companies together. Intel 64 architecture. HTML5/CSS3 graphic enhancement: buttons, inputs. Download Setup_Volta814T-noexe.zip Download Setup_Volta814T.zip The solution described in this article serves both practical and didactic purposes. This popular Electrical Engineering Calculator VOLTA demonstrates HTML5/CSS3 styling technique, which does not require any graphic files like .jpg or .png, etc.
All aesthetic enhancements, like: rounded corners color gradients (in particular, color-stop property) borders shadows are achieved exclusively via CSS3 styling, resulting in very small digital footprint and fast web page load. Online Demo Fully-functional Demo is available online at: Engineering Calculator VOLTA-2011. Fig. 1. Another version of Calculator VOLTA-2013 adapted for "modern" 16:9 display aspect ratio is shown below in Fig.2: Fig. 2. Dynamic switch to another CSS3 file produced a rounded-corner effect as shown below in Fig.3: Fig. 3. Another screenshot corresponding to the "light" background (dynamically loaded CSS3) follows: Fig. 4.
Aesthetic HTML5 Button elements Listing 1. 廢柴上的風霜菇: 開啟AHCI,我的SSD更加殘暴兇猛了(帝國士兵:我等不及捅爆烏佛瑞克那小子.... 昨天看到AHCI(Advanced Host Controller Interface)這個關鍵字,於是我興沖沖的在BIOS上找到這個選項,預設是IDE,後來手動改成AHCI,在改之前先去微軟的網站打個修正檔做安心。 ※Here we go! (筆頭! 筆頭! 筆頭! 建議AHCI在安裝作業系統之前就先開啟,如果是安裝作業系統後才更改,可能會導致藍白畫面。 首先,AHCI這技術雖是Intel主導的,AMD陣營的主機板也可以用。 不過呢,主機板必須支援且硬碟必須是SATA2規格以上。 作業系統方面,Vista跟Windows 7對AHCI具備較完善的支援,XP還得另外外掛驅動。 ※對於AHCI的表現我也只能說棒極了 啟用AHCI最大的好處,就是支援熱插拔跟NCQ(原生指令排序),其中後者影響到硬碟的效能。 以往硬碟在儲存資料時,資料會散落在磁盤上各處,導致讀寫效率不佳,得仰賴定期的硬碟重組;NCQ則是在讀取檔案時,會依照檔案在硬碟上的分佈,將存取的順序作最有效率的排序,以減少機械臂移動的距離,進而達到省時以及延長硬碟壽命的效果。
換而言知,以前東西都亂丟,得要定期整理才能維持效率;用NCQ之後等於是直接做有系統有效率的放置。 依照wiki上面寫的『改善硬碟內部磁區的讀取順序,可以提高硬碟效能約30%,亦能夠輕微減輕硬碟損耗的速率。 SSD固態硬碟方面就沒這麼好了,並不是所有SSD都支援AHCI模式(已知Intel有支援) ※SATA1玩不到AHCI,哭哭喔 說是這樣說啦,硬碟也要是SATA2以後(含SATA2在內)才有支援...... 但重要的是,主機板並不是預設開啟AHCI模式 所以......熱插拔跟NCQ當然也就不被啟用啦 若想知道自己的電腦有沒有啟動AHCI模式,可以去『裝置管理員』看看,檢查『IDE ATA/ATAPI控制器』底下有沒有AHCI控制器(請見本網誌後半部的圖),如果沒有就是沒啟動。 通常推薦AHCI最好在安裝作業系統前就啟用,因為只需要在BIOS那邊設定就好,無需其他設定;但是針對已安裝好作業系統的電腦,就不建議這樣直接去BIOS啟動,因為作業系統的相關設定並沒有跟著更改,衝突的結果只有藍白當機的下場。
先確認主機板跟硬碟是否符合SATA2以上的條件 AHCI其實談不上新穎的玩意兒,只是我到現在才驚覺,原來我家電腦那兩張主機板(870A-G54跟770-C45)預設都沒開啟AHCI模式。 Chapter 11 - Improving Remoting Performance. Improving .NET Application Performance and Scalability J.D. Meier, Srinath Vasireddy, Ashish Babbar, and Alex Mackman Microsoft Corporation May 2004 Related Links Home Page for Improving .NET Application Performance and Scalability Chapter 5, Improving Managed Code Performance Checklist: Remoting Performance Send feedback to Scale@microsoft.com patterns & practices Library Summary: This chapter presents concrete recommendations for when to use remoting and when not to use it, together with appropriate alternatives. Contents ObjectivesOverviewHow to Use This ChapterArchitecturePrescriptive Guidance for Choosing Web Services, Enterprise Services, and .NET RemotingPerformance and Scalability IssuesDesign ConsiderationsImplementation ConsiderationsActivationLifetime ConsiderationsHostsChannelsFormattersMarshalByRef vs.
Objectives Identify remoting performance issues. Overview .NET remoting is the preferred communication mechanism for single process, cross application domain communication. Architecture. Iptables 指南 1.1.19. 译者sllscn是中国Linux公社里的“Linux 新鲜社员”,一个Linux爱好者,在实际工作中使用iptables构造防火墙时,发现有关iptables的中文资 料太少,故而不得已参考英文版的材料。 为了今后参考的方便,也为了广大使用者,不怕自己的英文水平 太差,翻着字典翻译了本文。 翻译只为了能看懂,达不到“好看”,勿怪! 第一章序言部分除了第三小节介绍的术语要看看,其他都没什么。 第二章对想要亲自编 译iptables的兄弟们是有些帮助的。 第三、第四两章可以使我们理解、掌握iptables工作方式和流程。 第五 章和第六章是iptables命令使用方法的详细介绍。 因为术语的缘故,目录部分有一些未翻译,但正文的内容都翻译了。 在阅读本文时,你可能会发现有重复的地方,这不是原作者的水平不高,反而恰恰是他 为我们考虑的结果。 本章的目的是对指南提到的每个脚本都给以简单明了的说明,以及提供一个关于这些脚本的框架,描述它 们提供的服务。 本指南所有的脚本都是依据一个特定的结构来写的。 这就是本指南所有脚本遵循的脚本结构。 Configuration —— 首先是一个配置选项区,里面的变量在脚本中会用到。
这应该可以较详细地解释每个脚本的结构是怎样的以及它们为什么要使用这个结构了。 脚本rc.firewall.txt是核心,第七章防火墙配置实例 rc.firewall对它已经做了很详细的解释,其他的脚 本都是以它为基础得到的。 脚本rc.firewall.txt要完全发挥作用,系统必需要有下面列出的功能,你可 以把它们编译进内核,也可以编译成模块。 脚本rc.DMZ.firewall.txt所针对的情况 是这样的:有一个可信任的内网,一个DMZ,还有一个Internet连接。 这个脚本需要以下模块,也可能它们已被编译进内核了。 从图中可以看出,此脚本假设你有两个内网,一个是可信任的内网,使用地址192.168.0.0/24,另一个是 DMZ(我们正是对它做一对一的NAT),使用地址192.168.1.0/24。 $IPTABLES -t nat -A PREROUTING -p TCP -i $INET_IFACE -d $DNS_IP \ --dport 53 -j DNAT --to-destination $DMZ_DNS_IP 现在,你应该完全可以读懂这个脚本了。 它需要如下功能模块。 x10 2.3.3 root+Recovery完全教學 - Android 進階技術討論 GPhonefans.net.