[Study@Practice] Tự chế điều khiển từ xa cho máy ảnh, dùng được với TV, giá 20 ngàn đồng

Tóm tắt bài viết:

– Hướng dẫn bạn đọc tự chế tạo một món đồ chơi sử dụng với điện thoại thông minh để làm điều khiển từ xa cho các thiết bị sử dụng sóng hồng ngoại như TV, điều hòa, quạt, đầu kỹ thuật số v.v…

– Giá thành linh kiện để tạo được sản phẩm này chỉ mất khoảng 20 ngàn đồng.

Trong cộng đồng những người ham thích tìm tòi công nghệ thì thực hành là điều mà rất nhiều người sợ. Họ sợ phải động chạm vào những thứ nằm ngoài tầm hiểu biết của mình, họ sợ vì phải phá phách những thứ giá trị để thu được 1 thứ cảm giác vui thích khi phá lanh tanh bành 1 thứ gì đó.

Đối với nhiều nước phát triển trên thế giới, DIY (Do It Yourself) hay dịch nôm là tự làm một món đồ gì đó, đây là một hoạt động khá phổ biến và được những người có đam mê yêu thích vì nó gắn liền với thực tế. Còn ở Việt Nam những thứ này còn khá xa vời với các bạn trẻ cho dù ngày nay, điều kiện để có thể tiếp cận đến những thứ như DIY là điều rất dễ đáp ứng.

Ví dụ như món đồ chơi mà GenK sắp giới thiệu tới bạn đọc dưới đây có thể khiến nhiều bạn trẻ yêu công nghệ cảm thấy được sự phấn khích khi tự tay mình tạo ra được thứ gì đó thỏa mãn mà cái giá phải trả lại chỉ bằng 1 phần 10 so với việc cầm tiền và đi mua một món đồ chơi tương tự do người khác làm.

Trong bài viết hôm nay, GenK sẽ hướng dẫn bạn đọc một thiết bị cũng không có gì mới mẻ bởi cũng đã từng có rất nhiều bài viết tại Việt Nam nói tới đó chính là bộ điều khiển từ xa cho máy ảnh DSLR với chi phí khoảng 20 ngàn đồng cho 1 bộ.

Tự chế điều khiển từ xa cho máy ảnh, dùng được với TV, giá 20 ngàn đồng

Tác dụng của món đồ chơi

Trước tiên, chúng ta cần biết tác dụng cụ thể của món đồ chơi mà ta sắp làm dưới đây đó là điều khiển cho chiếc máy ảnh DSLR chụp ảnh mà không cần đứng bấm máy, rất phù hợp để các bạn “thể hiện” trước đám đông trong các buổi tham quan dã ngoại với cái mác “tự làm”.

Phần lớn các máy ảnh DSLR phổ thông hiện nay đều được trang bị 1 cổng nhận sóng hồng ngoại trên thân máy, cổng này có cấu tạo tương tự trên các loại thiết bị điều khiển từ xa như TV, điều hòa, đầu đĩa, quạt v.v… có thể nhận được tín hiệu hồng ngoại định trước để chụp ảnh mà không cần có người đứng bấm máy. Và món đồ chơi mà chúng ta chuẩn bị thực hành dưới đây là một thứ phụ kiện cắm thêm vào bất cứ chiếc smartphone nào (trên lý thuyết) để biến chiếc smartphone đó thành một bộ remote cho máy ảnh với giá khoảng 20 ngàn đồng thay vì một thứ phụ kiện chính hãng được bán với giá khoảng 15 USD.

Chuẩn bị đồ dùng và một số chú ý

Đối với những người thường xuyên làm DIY nói chung và làm về những món đồ điện nói riêng thì công cụ là thứ không thể thiếu, những thứ này là loại vật tư chỉ cần sắm 1 lần và có thể dùng lâu dài trong các món đồ chơi mà GenK hướng dẫn trong tương lai.

Dụng cụ cần thiết:

Tự chế điều khiển từ xa cho máy ảnh, dùng được với TV, giá 20 ngàn đồng

– Mỏ hàn thiếcMỏ hàn thiếc là một món đồ khá phổ biến đối với người thích tháo lắp đồ điện tử, loại mỏ hàn này hiện có 2 loại chính:

+ Mỏ hàn nung: là mỏ hàn cắm điện để nung nóng đầu mỏ hàn liên tục và duy trì nhiệt độ đủ làm chảy thiếc hàn liên tục cho đến khi chúng ta rút điện. Loại mỏ hàn này có khá nhiều ưu điểm đối với người phải hàn nhiều mối liên tục nhưng nhược điểm của nó là liên tục duy trì ở nhiệt độ cao nên nếu không kiểm soát mỏ hàn tốt thì nó khá nguy hiểm khi sử dụng. Giá thành của mỏ hàn loại này rơi vào khoảng 50 tới 90 ngàn đồng.

+ Mỏ hàn xung: là loại mỏ hàn có thể đưa đầu mỏ hàn từ nhiệt độ thường lên nhiệt độ làm chảy thiếc trong thời gian vài giây vì thế mà mỏ hàn không cần phải ở trạng thái cấp điện liên tục nên khi không sử dụng mỏ hàn này ở nhiệt độ thường và ít bị ảnh hưởng nếu có lỡ tay chảm phải đầu hàn. Bù lại mỏ hàn xung khá nặng nên không phù hợp với người phải hàn nhiều. Giá của loại mỏ hàn này rơi vào khoảng 150 tới 170 ngàn đồng.

Cả 2 loại mỏ hàn này có thể dễ dàng tìm thấy ở các khu vực chợ linh kiện điện tử như ở Hà Nội là khu Thịnh Yên thuộc khu chợ Trời khá nổi tiếng.

Trong trường hợp làm đồ chơi công nghệ như bài viết thì mỏ hàn xung là một món đồ nên trang bị nếu các bạn thực sự có hứng thú với công việc này.

– Thiếc hàn: là một loại kim loại đã được làm thành sợi sẵn dùng để dính vào các chân linh kiện bằng kim loại. Giá của 1 cuộn thiếc khoảng 10 ngàn đồng và có thể dùng trong vòng 1 tháng nếu chỉ để làm đồ chơi.

– Nhựa Thông: Là loại chất dùng để tẩy rửa các chân kim loại để dễ bám thiếc hơn. Giá của nhựa Thông cũng rất rẻ khoảng 5-10 ngàn 1 cục có thể dùng tới cả năm.

Tất cả những món đồ kể trên đều có thể tìm mua ở dãy bán đồ điện tử trên phố Thịnh Yên.

Linh kiện làm đồ chơi:

Sau khi đã chuẩn bị đủ công cụ chúng ta sẽ quay lại với những linh kiện cần thiết để làm món đồ chơi kể trên.

– 2 bóng LED hồng ngoại: LED hồng ngoại có hình dáng không khác gì so với đèn LED sáng trắng bình thường nhưng có thể nhìn vào đỉnh của bóng để phân biệt.

Tự chế điều khiển từ xa cho máy ảnh, dùng được với TV, giá 20 ngàn đồng

Để kiếm được linh kiện này các bạn có thể đến các khu đồ điện tử của chợ Trời nói trên và hỏi mua bóng LED hồng ngoại. Bóng này có giá 300 ngàn/ 100 bóng hoặc 50 ngàn/ 10 bóng. Loại bóng này thường được sử dụng trên các loại điều khiển từ xa TV, điều hòa v.v… vì vậy các bạn có thể tháo lấy 2 bóng từ đây thay vì đi mua 10 bóng mới.

Đèn LED trắng nhìn từ trên đỉnh sẽ là một chất phát quang màu vàng.

Đèn LED trắng nhìn từ trên đỉnh sẽ là một chất phát quang màu vàng.

LED hồng ngoại nhìn từ trên xuống sẽ là một chấm đen.

LED hồng ngoại nhìn từ trên xuống sẽ là một chấm đen.

– 1 Jack 3.5 mm: là loại jack cắm tai nghe 3.5 mm thông thường mà chúng ta vẫn sử dụng trong các loại tai nghe. Các bạn có thể hỏi mua Jack 3.5 mm mới ở chợ hoặc cắt từ những chiếc tai nghe không sử dụng nữa. Ở đây GenK mua 1 Jack mới với giá 10 ngàn đồng.

Bộ Jack 3.5 mm có giá 10 ngàn đồng.

Bộ Jack 3.5 mm có giá 10 ngàn đồng.

– Smartphone (android hoặc iOS) để cắm món đồ chơi vừa tạo, chọn Android hoặc iOS là vì phần mềm dễ kiếm hơn.

Bắt đầu chế tạo đồ chơi

Món đồ chơi mà chúng ta sắp làm có cấu tạo vô cùng đơn giản như sau:

Bước 1: nối 2 bóng hồng ngoại với nhau theo sơ đồ.

Tự chế điều khiển từ xa cho máy ảnh, dùng được với TV, giá 20 ngàn đồng

Bóng LED hồng ngoại cũng có cấu tạo gồm 2 cực âm dương như bóng LED trắng thường, đặc điểm nhận biết 2 cực này đó là nhìn từ mặt ngang thì chân nối với mảng kim loại to hơn là cực dương, bên còn lại là cực âm. Hoặc nếu bóng mới mua thì chân dài hơn sẽ là cực dương.

Cực bên trái là dương, bên phải là âm.

Cực bên trái là dương, bên phải là âm.

Theo như sơ đồ, chúng ta sẽ hàn cực dương của bóng thứ nhất với cực âm của bóng thứ 2 tương tự nối 2 cực còn lại với nhau.

Hàn cực dương bóng 1 với cực âm của bóng thứ 2 và ngược lại chúng ta sẽ được 1 cụm 2 bóng.

Hàn cực dương bóng 1 với cực âm của bóng thứ 2 và ngược lại chúng ta sẽ được 1 cụm 2 bóng.

Điểm cần hàn.

Điểm cần hàn.

Tự chế điều khiển từ xa cho máy ảnh, dùng được với TV, giá 20 ngàn đồng

Sau khi hàn xong hoặc các bạn có thể cắt ngắn bớt chân thừa hoặc xoắn nó vào thành chân của cụm bóng luôn.

Tự chế điều khiển từ xa cho máy ảnh, dùng được với TV, giá 20 ngàn đồng

Bước 2: Xác định đầu dây cần hàn trên Jack 3.5 mm

Vì 2 cực này nối ngược chiều nhau nên khi nối cụm đèn này vào jack 3.5 chúng ta không cần để ý tới chiều của bóng mà chỉ cần quan tâm làm sao để các chân không bị chạm nhau.

Trên jack 3.5 mm có 3 tầng trong đó tầng 1 và 2 là là 2 đầu tương ứng với tai trái và tai phải của tai nghe. Nếu dùng dây cắt từ tai nghe cũ thì các bạn cần tìm cách xác định xem dây nào là tầng 1 dây nào là tầng 2. Tầng 3 là tầng GND (nối đất) trong trường hợp này chúng ta không sử dụng vì thế cần cách điện không cho cực 3 chạm vào 2 cực này. Nếu sử dụng Jack 3.5 mua mới thì có thể dễ dàng nhận thấy đâu là tầng 1 và tầng 2.

Tự chế điều khiển từ xa cho máy ảnh, dùng được với TV, giá 20 ngàn đồng

Bước 3: Hàn Jack 3.5 với bóng hồng ngoại

Như sơ đồ, sau khi hàn được 2 bóng với nhau ta tiếp tục hàn 2 đầu của cụm bóng vào tầng 1 và 2 của Jack 3.5 mm ( không cần quan tâm chiều bóng).

Hàn chân của cụm bóng vào 2 chần 1 và 2 của jack 3.5 mm.

Hàn chân của cụm bóng vào 2 chần 1 và 2 của jack 3.5 mm. Lớp ống nhựa được lồng vào để cách điện với chân số 3.

Sau khi hàn.

Sau khi hàn.

Bước 4: Cách điện và trang trí

Dùng băng dính hoặc những loại vật liệu cách điện để tránh chạm giữa các tầng và bọc lại cho đẹp.

Bước 5: Chuẩn bị phần mềm.

Tự chế điều khiển từ xa cho máy ảnh, dùng được với TV, giá 20 ngàn đồng

GenK sử dụng iPhone 4 để làm thí nghiệm với một app miễn phí có tên IrdslrRemote (tải tại đây) và chọn đúng loại máy ảnh mà chúng ta cần điều khiển. Ở đây chúng tôi thử trên 1 chiếc DSLR khá cũ là Canon 550D.

Bước 6: Dùng thử

Cắm món đồ chơi chúng ta vừa tạo vào cổng tai nghe 3.5 mm trên iPhone.

Tự chế điều khiển từ xa cho máy ảnh, dùng được với TV, giá 20 ngàn đồng

Chỉnh sang chế độ chụp ảnh bằng remote trên máy DSLR. Gạt về chế độ MF để máy chụp ngay không cần lấy nét (Nếu để AF chúng ta cần giữ nút chụp bên iphone lâu 1 chút để máy lấy nét rồi mới chụp).

Hướng đèn hồng ngoại vào đầu nhận hồng ngoại của DSLR thường nằm ở chỗ tay cầm của máy ảnh và bấm chụp.

Tự chế điều khiển từ xa cho máy ảnh, dùng được với TV, giá 20 ngàn đồng

Một số kinh nghiệm

Trên thực tế thử nghiệm của chúng tôi, với công suất trên cổng 3.5 của iPhone 4 thì khoảng cách có thể điều khiển chụp được từ xa bằng thiết bị này ở khoảng cách 3 mét, với những smartphone có cổng 3.5 mm công suất cao hơn (cắm tai nghe thấy âm to hơn) thì khoảng cách này cũng xa hơn.

Theo một số thủ thuật để tăng tầm phát của sóng hồng ngoại có một cách khá đơn giản đó là dùng giấy kim loại như giấy bạc nướng đồ ăn bọc phía dưới của đèn hồng ngoại để hướng tia hồng ngoại tập trung vào 1 hướng và tăng tầm phát của thiết bị.

Ngoài ra với thiết bị này các bạn có thể tải các phần mềm giả lập sóng hồng ngoại của các hãng TV hay điều hòa nổi tiếng để điều khiển các thiết bị khác trong gia đình chứ không chỉ riêng máy ảnh.

Vậy là với các bước đơn giản, các bạn có thể tự chế tạo 1 món đồ chơi công nghệ có tác dụng “khoe mẽ” rất cao đặc biệt là trong các buổi đi chơi dã ngoại tập thể.

[Discovery] Hãy cẩn thận! Điện thoại tắt nguồn vẫn có thể bị theo dõi

Đây là điều đã được cựu nhân viên tình báo CIA “người thổi còi” Edward Snowden hé lộ trong cuộc phỏng vấn gần đây với kênh truyền hình NBC (Mỹ).

Theo đó, Cơ quan an ninh quốc gia Mỹ có thể khiến chủ nhân của một chiếc điện thoại tưởng rằng nó đã hoàn toàn “chết lịm” bằng động tác tắt nguồn, với màn hình đen kịt theo sau tiếng rung quen thuộc, trong khi trên thực tế, microphone và máy ảnh của thiết bị vẫn… hoạt động bình thường.

Hãy cẩn thận! Điện thoại tắt nguồn vẫn có thể bị theo dõi

Vậy làm thế nào NSA tiếp cận được với thiết bị của bạn? Trang CNN trích dẫn phần giải thích của một số cựu nhân viên CIA, SEAL hải quân và tư vấn viên mảng mặt trận điện tử của quân đội Mỹ như sau:

Đầu tiên, các nhân viên tình báo sẽ dựng những cột thu phát sóng di động của riêng họ gần vị trí chiếc điện thoại của đối tượng cần theo dõi. Khi đó, thiết bị sẽ tự động kết nối với những cột thu phát sóng “giả mạo” này. Tiếp đến, các nhân viên tình báo sẽ gửi tín hiệu đến ăngten của thiết bị, hay còn gọi là chip dải tần cơ sở (baseband chip), để “ra lệnh” cho chiếc điện thoại thực hiện hành vi… “giả chết”, tức là vẫn hoạt động sau khi đã được chủ nhân trực tiếp tắt nguồn.

Từ đây, các nhân viên tình báo có thể sử dụng chiếc điện thoại của nạn nhân như một máy ghi âm từ xa, hay chỉ đơn giản là gửi tín hiệu “ping” để tiết lộ tọa độ vị trí của đối tượng… tất cả trong khi thiết bị được cho là đã tắt nguồn.

John Pirc, chuyên viên nghiên cứu tội phạm điện tử tại CIA, cho hay thủ thuật này (cùng với nhiều biện pháp khác như đặt “bọ” nghe lén) cho phép người Mỹ chiếm quyền kiểm soát điện thoại của những đối tượng khủng bố.

Vậy làm cách nào để một người có thể nhận biết chiếc điện thoại của mình có an toàn hay không? “Cách duy nhất để biết là sờ xem điện thoại của bạn có ấm sau khi đã tắt nguồn hay không. Nếu có, điều này đồng nghĩa với chip dải tần cơ sở trong máy đang hoạt động”.

Biện pháp phòng ngừa

Chế độ hồi phục (Recovery Mode). Sau khi tắt nguồn, hãy chỉnh điện thoại của bạn sang chế độ Device Firmware Upgrade (DFU), hay còn gọi là “chế độ hồi phục”. Đây là chế độ giúp “qua mặt” hệ điều hành của thiết bị. Ở chế độ này, điện thoại sẽ không thể thu hay nhận sóng.

Tùy theo từng hãng sản xuất mà mỗi điện thoại sẽ có cách truy cập chế độ hồi phục khác nhau. Với người dùng iPhone thì mọi thứ tương đối đơn giản: ấn và giữ nút nguồn và nút Home ít nhất 10 giây rồi nhả nút nguồn ra, một màn hình iTunes sẽ hiện lên là xong.

Đối với hệ điều hành Android, người dùng cần liên hệ với nhà sản xuất thiết bị để biết cách truy cập chế độ Recovery Mode cho thiết bị của mình. Theo trang công nghệ Littlegreenrobot, cách phổ biến đối với hầu hết điện thoại Android là nhấn giữ nút âm lượng giảm (volume down) hoặc âm lượng tăng (volume up) đồng thời bật máy, tuy nhiên cách này không áp dụng cho mọi đối tượng thiết bị.

Tạo một áo giáp vật lý. Hãy sử dụng một vỏ bọc chặn sóng điện thoại chuyên dụng của những công ty như Off Pocket hay HideCell.

Hãy cẩn thận! Điện thoại tắt nguồn vẫn có thể bị theo dõi

Một chiếc vỏ bọc chuyên dùng để chặn sóng – Ảnh: Internet

Tháo pin. Một giải pháp logic: không có nguồn năng lượng, điện thoại của bạn không thể hoạt động. Tuy nhiên, bạn không thể làm điều này với nhiều model smartphone như iPhone, HTC One hay NokiaLumia… do thiết kế pin không thể tháo rời ở những sản phẩm này.

Cuối cùng, như lời trấn an của Mike Janke – CEO Công ty Silent Circle kiêm cựu lính đặc nhiệm SEAL, hầu hết chúng ta không cần quan tâm đến “mối đe dọa” mang tên NSA, vì cơ quan này chỉ áp dụng những biện pháp do thám gắt gao với những đối tượng khủng bố và nguy hiểm đặc biệt, không phải thường dân.

[Dev Tip] How to use web.config transforms to replace appSettings and connectionStrings?

Introduction

This article will cover how you can use the new Visual Studio 2010 web.config transform concept to have a OneClick Deployment for your web applications. I will demonstrate how you can override sections of the web.config with the ones necessary for the release (e.g. appSettings and connectionStrings)

With Visual Studio 2010 Microsoft included specific web.config files for each solution configuration. Per default there are two settings: ‘Debug’ and ‘Release’.

We will store the values for our local IDE inside the web.config and the specific settings in the individual configuration web.xxx.config file. As far as I know VS 2010 with Cassini and our local IIS 7.5 is only capable of reading the settings that are stored in the web.config. Selecting another configuration (like Release) will not force the web.config replacements to work on the localhost. It only has affect upon publishing the project.

How to create new solution configurations and the web.xxx.config files

You can easy add some more solution configurations (e.g. a configuration for your testserver) by clicking on the Configuration Manager
solution configuration

In the DropDownList for ‘Active solution configuration’ select ‘<New…>’ and fill out a name for the new configuration.

Although the Checkbox for create new project configurations was checked, no new file named ‘Web.Testserver.config’ was created. But we can manually force it’s creation. This context menu entry also become clickable for projects that have been converted into a VS 2010 project.
Rightclick on the Web.config and select ‘Add Config Transforms’

Add Config Transforms
which results in:

How to replace the appSettings

1. Comments

The appSettings are an old way of storing settings in the web.config. Accessing them will not grant any type security.

At the moment (VS 2010 without any service pack)  I’m prefering appSettings over the designer generated applicationSettings (Project properties -> Settings) because using the web.config transform produces unwanted whitespaces or linebreaks for Strings that are stored as inner value of XML Tags. Strings that are stored as XML-Attributes are not affected.
This behaviour will affect in runtime errors. (Think of a setting that stores a directory name. If you use the transforms your setting will add a linebreak at the end of the foldername, which will ultimately result in a runtime error, because valid directory names do not contain line breaks)
Microsoft announced that VS 2010 SP1 will fix this problem.http://connect.microsoft.com/VisualStudio/feedback/details/544183/web-config-transform-writes-extra-line-break-spaces-to-values-elements-under-applicationsettings-section#

2. Walkthrough on how to replace the appSettings

Let’s say you have some appSettings in your web.config:

1
2
3
4
<appSettings>
    <add key="GoogleAnalyticsEnabled" value="false"/>
    <add key="TestEnvironment" value="true"/>
</appSettings>

 

These are your local debug settings. Upon release you want the values reversed, meaning you want it to look like this:

1
2
3
4
<appSettings>
    <add key="GoogleAnalyticsEnabled" value="true"/>
    <add key="TestEnvironment" value="false"/>
</appSettings>

There are only a few thing you need to do. Open the Web.Release.config and insert the same appSettings block into it and add the attribute xdt:Transform=”Replace” to the appSettings node. Afterwards yourWeb.Release.config will look similar to this (comments removed):

1
2
3
4
5
6
7
8
9
10
<?xml version="1.0"?>
    <appSettings xdt:Transform="Replace">
        <add key="GoogleAnalyticsEnabled" value="true"/>
        <add key="TestEnvironment" value="false"/>
    </appSettings>
  <system.web>
    <compilation xdt:Transform="RemoveAttributes(debug)" />
  </system.web>
</configuration>

Thats everything you need to replace the appSettings upon publishing. Your publishing process will probably look familiar to this:

  1. Select your solution configuration you want to use. Because we want to test our Release settings, you need to select Release.
    Release
  2. Right-Click on your project and select Publish
  3. Select your publish method. I chose ‘File System’ but also works with other publish methods, like WebDav for instance.
  4. Press the “Publish” button

 

3. Fully functional sample:

Web.config

1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0"?>
<configuration>
    <appSettings>
        <add key="GoogleAnalyticsEnabled" value="false"/>
        <add key="TestEnvironment" value="true"/>
    </appSettings>
    <connectionStrings />
    <system.web>
        <compilation debug="false">
        </compilation>
        <authentication mode="Windows" />
    </system.web>
</configuration>

Web.Release.config

1
2
3
4
5
6
7
8
9
10
<?xml version="1.0"?>
    <appSettings xdt:Transform="Replace">
        <add key="GoogleAnalyticsEnabled" value="true"/>
        <add key="TestEnvironment" value="false"/>
    </appSettings>
    <system.web>
        <compilation xdt:Transform="RemoveAttributes(debug)" />
    </system.web>
</configuration>

 

Published web.config

1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0"?>
<configuration>
    <appSettings>
        <add key="GoogleAnalyticsEnabled" value="true"/>
        <add key="TestEnvironment" value="false"/>
    </appSettings>
    <connectionStrings/>
    <system.web>
        <compilation>
        </compilation>
        <authentication mode="Windows" />
    </system.web>
</configuration>

 

How to replace connectionStrings

1. Walkthrough on how to change connectionStrings with web-transforms

Replacing connectionStrings is very similar to replacing appSettings.
Let’s assume you have a single connectionString in your Web.config that holds credentials to your test database.

1
2
3
4
<connectionStrings>
    <add name="FooEntities" connectionString="metadata=res://*/;provider=System.Data.SqlClient;provider connection string="Data Source=IP,PORT\Instancename;
        Initial Catalog=Foo;Persist Security Info=True;User ID=admin;Password=password;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient"/>
</connectionStrings>

Upon release you want to change the connectionString to the production server that it looks like the following.

1
2
3
4
<connectionStrings>
    <add name="FooEntities" connectionString="metadata=res://*/;provider=System.Data.SqlClient;provider connection string="Data Source=LIVEIP,PORT\Instancename;
        Initial Catalog=Foo;Persist Security Info=True;User ID=admin;Password=password;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient"/>
</connectionStrings>

Copy your connectionString from the Web.config into your Web.Release.config and add thexdt:Transform=”Replace” attribute:

1
2
3
4
<connectionStrings xdt:Transform="Replace">
    <add name="FooEntities" connectionString="metadata=res://*/;provider=System.Data.SqlClient;provider connection string="Data Source=LIVEIP,PORT\Instancename;
    Initial Catalog=Foo;Persist Security Info=True;User ID=admin;Password=password;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient"/>
</connectionStrings>

Now you do have a working connectionString replacement for the solution configuration Release. For the publishing process view “How to replace the appSettings” from above.

2. Fully functional sample

Web.config

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version="1.0"?>
<configuration>
    <appSettings>
        <add key="GoogleAnalyticsEnabled" value="false"/>
        <add key="TestEnvironment" value="true"/>
    </appSettings>
    <connectionStrings>
        <add name="FooEntities" connectionString="metadata=res://*/;provider=System.Data.SqlClient;provider connection string="Data Source=IP,PORT\Instancename;
        Initial Catalog=Foo;Persist Security Info=True;User ID=admin;Password=password;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient"/>
    </connectionStrings>
    <system.web>
        <compilation debug="false">
        </compilation>
        <authentication mode="Windows" />
    </system.web>
</configuration>

Web.Release.config

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version="1.0"?>
    <appSettings xdt:Transform="Replace">
        <add key="GoogleAnalyticsEnabled" value="true"/>
        <add key="TestEnvironment" value="false"/>
    </appSettings>
    <connectionStrings xdt:Transform="Replace">
        <add name="FooEntities" connectionString="metadata=res://*/;provider=System.Data.SqlClient;provider connection string="Data Source=LIVEIP,PORT\Instancename;
        Initial Catalog=Foo;Persist Security Info=True;User ID=admin;Password=password;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient"/>
    </connectionStrings>
    <system.web>
        <compilation xdt:Transform="RemoveAttributes(debug)" />
    </system.web>
</configuration>

Publish Web.config

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?xml version="1.0"?>
<configuration>
    <appSettings>
        <add key="GoogleAnalyticsEnabled" value="true"/>
        <add key="TestEnvironment" value="false"/>
    </appSettings>
    <connectionStrings>
        <add name="FooEntities"
            connectionString="metadata=res://*/;provider=System.Data.SqlClient;provider connection string="Data Source=LIVEIP,PORT\Instancename;
            Initial Catalog=Foo;Persist Security Info=True;User ID=admin;Password=password;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient"/>
    </connectionStrings>
    <system.web>
        <compilation>
        </compilation>
        <authentication mode="Windows" />
    </system.web>
</configuration>

[Dev Tip] All ASP.NET MVC Forms Need To Include Html.AntiForgeryToken() For Security

Having recently been implementing many new form pages in ASP.NET MVC, I’ve found myself over and over again adding the following two things to every form.

After Html.BeginForm() I Put @Html.AntiForgeryToken()
Add the Attribute [ValidateAntiForgeryToken] To Every Post Action Method
Before I was doing so much ASP.NET MVC, I would often see in Channel 9 videos, the presenter add the AntiForgeryToken() after the BeginForm() method on the cshtml razor page and say something like “you should always add this”. I never saw them say “and don’t forget to add the attribute ValidateAntiForgeryToken to the controller POST method.

Just to be clear, below is what I’m talking about:

image

image

What this does is to make sure that the trusted browser that go the original GET page is the same one that is delivering the POST message. Basically, this is all assuming that the end user is running a trusted browser. It’s more about protecting the end user and not the server. The idea is that a user who is using a browser they know is good (and trustworthy) will not be posting bad code back to the server. You can read more details here:

http://blog.stevensanderson.com/2008/09/01/prevent-cross-site-request-forgery-csrf-using-aspnet-mvcs-antiforgerytoken-helper/

https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet

If you look at the traffic in Chrome debug tools, you’ll notice an extra parameter on your form that the controller checks for as follows:


Hope this helps!

[Technology] Các nhà nghiên cứu chế tạo thành công dây điện vừa truyền vừa lưu trữ năng lượng

Dây_siêu_điện_dung.

Mới đây 2 nhà nghiên cứu đến từ đại học Central Florida (UCF) đã tìm ra một phương pháp sử dụng công nghệ nano để tạo ra các dây điện với điện dung cực lớn. Mục tiêu sau cùng của họ là tạo ra một loại dây điện vừa có khả năng truyền dẫn, vừa có thể lưu trữ năng lượng như pin.

Giáo sư Jayan Thomas và nghiên cứu sinh tiến sĩ Zenan Yu sử dụng kỹ thuật “nuôi trồng” các sợi nano đồng oxit trong phòng thí nghiệm để thiết kế loại dây điện đặc biệt nói trên. Các sợi này có thể mang lại liên kết dẫn giữa lớp trong và lớp ngoài của dây điện siêu điện dung.

Khởi đầu, nhóm nghiên cứu phát triển một lớp sợi nano từ đồng oxit được cách ly trên lớp ngoài cùng của một sợi dây đồng. Sau đó, các sợi nano được xử lý với hợp kim vàng-palladium và cuối cùng, một lớp phủ mangan oxit hoạt động điện hóa được kết tụ trên hợp kim. Kết quả là các sợi nano sẽ đóng vai trò là một lớp vỏ bao quanh dây đồng và hình thành điện cực đầu tiên.

Để bổ sung điện cực thứ 2 nhằm mang lại khả năng lưu trữ năng lượng, nhóm nghiên cứu đã phủ điện cực đầu tiên với một chất điện phân thể rắn và một lớp ngăn cách bằng polymer, sau đó lắp một điện cực khác hình trụ tròn xung quanh nó. Điện cực thứ 2 được hình thành theo cách tương tự điện cực đầu tiên nhưng các sợi nano lại được đính vào một lá đồng để hoạt động như một trục dẫn xung quanh lớp ngoài.

Ứng dụng thực tế của dây điện siêu điện dung là giúp các thiết bị lưu trữ năng lượng và các hệ thống trở nên linh hoạt hơn, đeo được và có thể tích hợp trực tiếp vào quần áo cũng như vải dệt. Những sợi cáp siêu tụ điện có thể uốn cong cũng có thể được dùng cho các thiết bị điện tử và khiến chúng nhỏ hơn và di động hơn bằng việc giảm thiểu đáng kể kích thước pin hoặc tích hợp các dây lưu trữ năng lượng vào thiết bị nhằm thay thế cho pin.

Mặc dù vẫn cần được cải tiến nhưng kỹ thuật “nuôi trồng” các sợi nano của nhóm nghiên cứu có thể được áp dụng trên nhiều loại vật liệu khác không chỉ riêng đồng. Nhóm nghiên cứu cho rằng khi công nghệ phát triển hơn, các loại sợi và cáp bằng chất liệu khác có thể được phát triển với cấu trúc nano tương tự để có thể truyền dẫn và lưu trữ năng lượng.

Nguồn: UCF