<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="http://rss.egloos.com/style/blog.xsl" type="text/xsl" media="screen"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
	<title>김명신의 즐거운 하루</title>
	<link>http://himskim.egloos.com</link>
	<description>김명신의 블로그입니다.
email은 himskim@msn점com, twitter는 himskim입니다. 저에게 전해주실 말씀이 있으신 분은 email을 이용해 주시면 감사하겠습니다.</description>
	<language>ko</language>
	<pubDate>Thu, 12 Nov 2009 00:29:10 GMT</pubDate>
	<generator>Egloos</generator>
	<image>
		<title>김명신의 즐거운 하루</title>
		<url>http://pds.egloos.com/logo/1/200308/22/23/a0001923.jpg</url>
		<link>http://himskim.egloos.com</link>
		<width>80</width>
		<height>60</height>
		<description>김명신의 블로그입니다.
email은 himskim@msn점com, twitter는 himskim입니다. 저에게 전해주실 말씀이 있으신 분은 email을 이용해 주시면 감사하겠습니다.</description>
	</image>
  	<item>
		<title><![CDATA[ Texas로 Internship을 떠납니다. ]]> </title>
		<link>http://himskim.egloos.com/1967440</link>
		<guid>http://himskim.egloos.com/1967440</guid>
		<description>
			<![CDATA[ 
  <p>이번에 EE(escalation enginner)를 위한 intenrship을 위해 Texas로 떠납니다. 일정은 대략 한달 가량입니다.<br>Texas에 도착하면 특별히 할일도 없고 심심해서 저녁 무렵에 블로깅을 많이 할 것 같습니다.<br></p>			 ]]> 
		</description>
		<category>살다보면</category>

		<comments>http://himskim.egloos.com/1967440#comments</comments>
		<pubDate>Thu, 12 Nov 2009 00:29:10 GMT</pubDate>
		<dc:creator>김명신</dc:creator>
	</item>
	<item>
		<title><![CDATA[ Windows 7 그리고 새로운 API ]]> </title>
		<link>http://himskim.egloos.com/1964721</link>
		<guid>http://himskim.egloos.com/1964721</guid>
		<description>
			<![CDATA[ 
  <p><a href="http://himskim.egloos.com/1469128">새로운 VISTA API는 몇개나 될까?</a> 글에서 Vista에 추가된 API가 6892개라고 말씀드린적이 있는데, Windows 7은 어떨까요? msdn에서 제가 한번 쭉 세어 보았습니다. enumeration, structure, function, class등을 합하니까 총 2022개이군요. 그래도 Vista 보다는 덜하군요. ^^; Microsoft 개발자들이 놀고만 있는 것은 아닌 것 같습니다. Windows 7에서 새로 소개된 기능들에 대해서 잘 나와 있는 표가 있어 옮겨 봅니다.</p> <table cellspacing="0" cellpadding="0" border="0"> <tbody> <tr> <td width="271">Feature</td> <td width="550">Description</td></tr> <tr> <td width="271">Active Directory Rights Management Services</td> <td width="550"><a href="http://msdn.microsoft.com/en-us/library/dd574056(VS.85).aspx">For a list of API additions, see RMS in Windows 7.</a></td></tr> <tr> <td width="271">Biometric Service API</td> <td width="550">Use the Biometric Service API to create client applications that call into the Windows Biometric Framework (WBF) to capture, save, and compare end-user biometric information.</td></tr> <tr> <td width="271">&nbsp;</td> <td width="550"><a href="http://msdn.microsoft.com/en-us/library/dd401509(VS.85).aspx">For more information, see Biometric Service API.</a></td></tr> <tr> <td width="271">COM</td> <td width="550"><a href="http://msdn.microsoft.com/en-us/library/dd542640(VS.85).aspx">For a list of API changes, see Changes to COM in Windows 7.</a></td></tr> <tr> <td width="271">Core Windows</td> <td width="550"><a href="http://msdn.microsoft.com/en-us/library/dd433624(VS.85).aspx">For a list of API additions, see Windows 7.</a></td></tr> <tr> <td width="271">Distributed File System Replication</td> <td width="550"><a href="http://msdn.microsoft.com/en-us/library/dd405482(VS.85).aspx">For a list of API additions, see What's New in DFSR in Windows Server 2008 R2 and Windows 7.</a></td></tr> <tr> <td width="271">Enhanced Storage</td> <td width="550">The Enhanced Storage API enables consistent end-to-end authentication for personal storage devices that differ in form factor.</td></tr> <tr> <td width="271">&nbsp;</td> <td width="550"><a href="http://msdn.microsoft.com/en-us/library/dd430343(VS.85).aspx">For more information, see Enhanced Storage.</a></td></tr> <tr> <td width="271">Enhanced Taskbar</td> <td width="550">The taskbar has been extended significantly under the guiding principle of getting users where they're going as quickly and efficiently as possible. To that end, the application windows, files, and commands that the user needs to accomplish that are now centralized into a single taskbar button that consolidates previously scattered information sources and controls. A user can now find common tasks, recent and frequent files, alerts, progress notifications, and thumbnails for individual documents or tabs all in one place.</td></tr> <tr> <td width="271">&nbsp;</td> <td width="550"><a href="http://msdn.microsoft.com/en-us/library/dd378460(VS.85).aspx">For more information, see Taskbar Extensions.</a></td></tr> <tr> <td width="271">Event Tracing for Windows (ETW)</td> <td width="550"><a href="http://msdn.microsoft.com/en-us/library/dd392330(VS.85).aspx">For a list of API additions, see What's New.</a></td></tr> <tr> <td width="271">Extended Linguistic Services</td> <td width="550">Extended Linguistic Services (ELS) supports text-based services, including language detection, script detection, and transliteration services.</td></tr> <tr> <td width="271">&nbsp;</td> <td width="550"><a href="http://msdn.microsoft.com/en-us/library/dd317839(VS.85).aspx">For more information, see Extended Linguistic Services.</a></td></tr> <tr> <td width="271">File Server resource Manager</td> <td width="550"><a href="http://msdn.microsoft.com/en-us/library/dd392499(VS.85).aspx">For a list of API additions, see What's New.</a></td></tr> <tr> <td width="271">Hardware Counter Profiling</td> <td width="550">This API enables applications to capture thread profiling data such as cycle time and the reasons for context switches.</td></tr> <tr> <td width="271">&nbsp;</td> <td width="550"><a href="http://msdn.microsoft.com/en-us/library/dd796395(VS.85).aspx">For more information, see Hardware Counter Profiling.</a></td></tr> <tr> <td width="271">Hyper-V</td> <td width="550"><a href="http://msdn.microsoft.com/en-us/library/dd799409(VS.85).aspx">For a list of API additions, see What's New in Hyper-V.</a></td></tr> <tr> <td width="271">Internet Explorer</td> <td width="550">Internet Explorer 8 is available for download and is also included in Windows 7.</td></tr> <tr> <td width="271">&nbsp;</td> <td width="550"><a href="http://msdn.microsoft.com/en-us/library/cc288472(VS.85).aspx">For more information, see What's New in Internet Explorer 8.</a></td></tr> <tr> <td width="271">Location API</td> <td width="550">The Location API helps to simplify location-aware programming by providing a standard way to retrieve data about user location and standardizing formats for location data reports. The Location API automatically handles transitions between location data providers and always chooses the most accurate provider for the current situation.</td></tr> <tr> <td width="271">&nbsp;</td> <td width="550"><a href="http://msdn.microsoft.com/en-us/library/dd464636(VS.85).aspx">For more information, see Location API.</a></td></tr> <tr> <td width="271">Mobile Broadband</td> <td width="550">The Mobile Broadband API is used to implement connectivity to cellular networks. Applications should not communicate with such mobile broadband devices directly. Instead, they must use the Mobile Broadband API.</td></tr> <tr> <td width="271">&nbsp;</td> <td width="550"><a href="http://msdn.microsoft.com/en-us/library/dd323271(VS.85).aspx">For more information, see Mobile Broadband.</a></td></tr> <tr> <td width="271">Native Wifi</td> <td width="550"><a href="http://msdn.microsoft.com/en-us/library/dd439487(VS.85).aspx">For a list of API additions, see What's New in Native Wifi.</a></td></tr> <tr> <td width="271">Network Share Management</td> <td width="550"><a href="http://msdn.microsoft.com/en-us/library/dd405531(VS.85).aspx">For a list of API additions, see What's New in Network Share Management in Windows Server 2008 R2 and Windows 7.</a></td></tr> <tr> <td width="271">Packaging</td> <td width="550">A package is a compressed file that contains application data. The Open Packaging Conventions (OPC) introduce two basic concepts to describe a package: parts and relationships. A part is a physical object that contains application data and is located inside a package. A relationship is a logical association between any package or part and a URI-addressable resource such as a part or an external Web site.</td></tr> <tr> <td width="271">&nbsp;</td> <td width="550">A digital signature is used to validate the package originator's identity and to confirm that the signed contents of the package have not been modified after signing. In a package, the signature can reference the package components that have been signed; it can include objects that contain application data, which may also have been signed; and it can include certificates, which can be used in signature validation.</td></tr> <tr> <td width="271">&nbsp;</td> <td width="550"><a href="http://msdn.microsoft.com/en-us/library/dd371623(VS.85).aspx">For more information, see Packaging.</a></td></tr> <tr> <td width="271">Parental Controls</td> <td width="550"><a href="http://msdn.microsoft.com/en-us/library/dd630560(VS.85).aspx">For a list of changes, see What's New in Windows 7 Parental Controls.</a></td></tr> <tr> <td width="271">Peer Distribution</td> <td width="550">Use this API to publish or consume digital content.</td></tr> <tr> <td width="271">&nbsp;</td> <td width="550"><a href="http://msdn.microsoft.com/en-us/library/dd408043(VS.85).aspx">For more information, see Peer Distribution.</a></td></tr> <tr> <td width="271">Performance Counters</td> <td width="550"><a href="http://msdn.microsoft.com/en-us/library/aa373102(VS.85).aspx">For a list of API additions, see What's New.</a></td></tr> <tr> <td width="271">Power Management</td> <td width="550"><a href="http://msdn.microsoft.com/en-us/library/dd405537(VS.85).aspx">For a list of API additions, see What's New in Power Management.</a></td></tr> <tr> <td width="271">Scenic Animation</td> <td width="550"><a href="http://msdn.microsoft.com/en-us/library/dd371981(VS.85).aspx">For more information, see Scenic Animation.</a></td></tr> <tr> <td width="271">Sensor API</td> <td width="550">Sensors are devices or mechanisms that can measure physical phenomena, provide descriptive data, or provide information about the state of a physical object or environment. Computers can make use of built-in sensors, sensors that are connected through wired or wireless connections, or sensors that provide data through a network or the Internet. The Sensor API provides a standard way to programmatically access data that sensors provide.</td></tr> <tr> <td width="271">&nbsp;</td> <td width="550"><a href="http://msdn.microsoft.com/en-us/library/dd318953(VS.85).aspx">For more information, see Sensor API.</a></td></tr> <tr> <td width="271">Virtual Disk Service</td> <td width="550"><a href="http://msdn.microsoft.com/en-us/library/dd433619(VS.85).aspx">For a list of API additions, see What's New in VDS in Windows Server 2008 R2 and Windows 7.</a></td></tr> <tr> <td width="271">Virtual Hard Disk</td> <td width="550">The Virtual Hard Disk (VHD) format is a publicly-available image format specification that specifies a virtual hard disk encapsulated in a single file, capable of hosting native file systems while supporting standard disk and file operations. An example of how VHD files are used is the Hyper-V feature in Windows Server 2008, Virtual Server, and Virtual PC. These products use VHD to contain the Windows operating system image utilized by a virtual machine as its system boot disk.</td></tr> <tr> <td width="271">&nbsp;</td> <td width="550"><a href="http://msdn.microsoft.com/en-us/library/dd323684(VS.85).aspx">For more information, see Virtual Hard Disk.</a></td></tr> <tr> <td width="271">Volume Shadow Copy Service</td> <td width="550"><a href="http://msdn.microsoft.com/en-us/library/dd433621(VS.85).aspx">For a list of API additions, see What's New in VSS in Windows Server 2008 R2 and Windows 7.</a></td></tr> <tr> <td width="271">Windows Connect Now</td> <td width="550">Windows Connect Now (WCN) allows mobile and embedded devices, 802.11 access points (APs), and computers to securely connect, and exchange settings with each other. WCN is designed for the home or small business user, providing a reasonable compromise between ease-of-use and robust security.</td></tr> <tr> <td width="271">&nbsp;</td> <td width="550"><a href="http://msdn.microsoft.com/en-us/library/dd323260(VS.85).aspx">For more information, see Windows Connect Now.</a></td></tr> <tr> <td width="271">Windows Error Reporting</td> <td width="550"><a href="http://msdn.microsoft.com/en-us/library/bb513640(VS.85).aspx">For a list of API additions, see What's New in WER.</a></td></tr> <tr> <td width="271">Windows Event Log</td> <td width="550"><a href="http://msdn.microsoft.com/en-us/library/dd433625(VS.85).aspx">For a list of API additions, see What's New.</a></td></tr> <tr> <td width="271">Windows Gadget Platform</td> <td width="550">The Windows Gadget Platform is the new framework for creating and hosting mini-applications called gadgets on the desktop.</td></tr> <tr> <td width="271">&nbsp;</td> <td width="550"><a href="http://msdn.microsoft.com/en-us/library/dd370869(VS.85).aspx">For more information, see Windows Gadget Platform.</a></td></tr> <tr> <td width="271">Windows Installer</td> <td width="550"><a href="http://msdn.microsoft.com/en-us/library/dd408114(VS.85).aspx">For a list of changes, see What's New in Windows Installer 5.0.</a></td></tr> <tr> <td width="271">Windows Scenic Ribbon</td> <td width="550">The Windows Scenic Ribbon (Ribbon) is a rich command presentation system that provides a modern alternative to the layered menus, toolbars, and task panes of traditional Windows applications. Similar in functionality and appearance to the Microsoft Office Fluent Ribbon, the Ribbon is a command bar that exposes the major features of an application through a series of tabs at the top of an application window.</td></tr> <tr> <td width="271">&nbsp;</td> <td width="550"><a href="http://msdn.microsoft.com/en-us/library/dd371191(VS.85).aspx">For more information, see Windows Scenic Ribbon.</a></td></tr> <tr> <td width="271">Windows Touch</td> <td width="550">New hardware and API support enables applications to receive multitouch input. This gives such applications the ability to detect and respond to multiple simultaneous touch points on the application’s visible surface. Functionality for this feature is provided by a new set of dedicated window messages that report touch down, up, and move actions. The new messages report action and position of touch points with unique identification of simultaneous touch points.</td></tr> <tr> <td width="271">&nbsp;</td> <td width="550"><a href="http://msdn.microsoft.com/en-us/library/dd562197(VS.85).aspx">For more information, see Windows Touch.</a></td></tr> <tr> <td width="271">Windows Troubleshooting Platform</td> <td width="550">Windows Troubleshooting Platform (WTP) provides ISVs, OEMs, and administrators the ability to write troubleshooting packs that are used to discover and resolve issues found on the computer. Previously, troubleshooting software and hardware issues was a manual process; however, using WTP you can automate the process of fixing the most common detectable issues that the user might encounter using your software or hardware.</td></tr> <tr> <td width="271">&nbsp;</td> <td width="550"><a href="http://msdn.microsoft.com/en-us/library/dd323778(VS.85).aspx">For more information, see Windows Troubleshooting Platform.</a></td></tr> <tr> <td width="271">Windows Web Services</td> <td width="550">Windows Web Services API (WWSAPI) is a native-code implementation of SOAP which provides core network communication functionality by supporting a set of the WS-* and .NET-* family of protocols. WWSAPI offers C/C++ application programming interface (API) for building SOAP based web services and clients to them.</td></tr> <tr> <td width="271">&nbsp;</td> <td width="550"><a href="http://msdn.microsoft.com/en-us/library/dd430435(VS.85).aspx">For more information, see Windows Web Services.</a></td></tr> <tr> <td width="271">XPS Documents</td> <td width="550">Application developers can use XPS documents to share and archive content as electronic paper in a high-fidelity, efficient, and trustworthy format. The XPS document APIs enable developers to create, access, and manipulate XPS documents easily.</td></tr> <tr> <td width="271">&nbsp;</td> <td width="550">For more information, see XPS Digital Signatures and XPS Document.</td></tr></tbody></table> <p>어떤 부분이 눈에 띄시나요? 저는 Enhanced Taskbar, Mobile Broadband, Scenic Animation, Windows Touch, Windows Web Services, XPS Documents 등이 눈에 들어오는군요. 시간 나면 살펴보고 알려드리겠습니다.</p>			 ]]> 
		</description>

		<comments>http://himskim.egloos.com/1964721#comments</comments>
		<pubDate>Tue, 03 Nov 2009 01:42:06 GMT</pubDate>
		<dc:creator>김명신</dc:creator>
	</item>
	<item>
		<title><![CDATA[ Windows Vista나 Windows 7의 UX Design을 고민하시는 분이라면 ]]> </title>
		<link>http://himskim.egloos.com/1963529</link>
		<guid>http://himskim.egloos.com/1963529</guid>
		<description>
			<![CDATA[ 
  Windows Vista나 Windows 7의 UX Design을 고민하시는 분이라면, 다음 링크의 내용을 꼭! 참고하시기 바랍니다.<br><a href="http://msdn.microsoft.com/en-us/library/aa511258.aspx">Windows User Experience Interaction Guidelines</a><br>동일 내용이 pdb 파일로도 제공되고 있으며, 다음 Link로 부터 Download 받으실 수 있습니다. 그런데 무려 828! 페이지입니다.<br><a href="http://download.microsoft.com/download/e/1/9/e191fd8c-bce8-4dba-a9d5-2d4e3f3ec1d3/ux%20guide.pdf">UX Guide</a><br><br>아이콘이라도 좀 제대로 그려야할꺼 아닙니까? 			 ]]> 
		</description>
		<category>복잡한컴퓨터이야기</category>

		<comments>http://himskim.egloos.com/1963529#comments</comments>
		<pubDate>Fri, 30 Oct 2009 00:09:19 GMT</pubDate>
		<dc:creator>김명신</dc:creator>
	</item>
	<item>
		<title><![CDATA[ Visual Studio 2010, .NET Framework 4.0, Winidows 7 ]]> </title>
		<link>http://himskim.egloos.com/1963526</link>
		<guid>http://himskim.egloos.com/1963526</guid>
		<description>
			<![CDATA[ 
  <p>최근 Visual Studio 2010 beta 2가 일반에 공개되고부터 Visual Stuido 2010과 더불어 .NET Framework 4.0에 대한 자료들이 마구 쏟아져 나오고 있습니다. 저도 몇일전에 Visual Studio 2010 beta를 제 machine에 설치하고 이것저것 Test를 해보고 있답니다.<br>게다가 몇일전에는 Windows7에 대한 일반 판매를 시작하기도 했죠. Windows Vista에 별 관심이 없던 일반 사용자, 개발자들도 Windows 7에는 관심들이 많이 있는 듯 합니다. 이제는 Windows Vista/7에 포함된 새로운 기능들과 가능성에 대해서 한번 더 고민해 보아야 할 시점이 아닌가 싶습니다.<br><br>자료들은 무수히 널려있습니다만. 오늘은 packaging되어 있는 자료 2개만 소개 드립니다.<br><br><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=1c333f06-fadb-4d93-9c80-402621c600e7">Windows 7 Training Kit For Developers</a><br><a href="http://www.microsoft.com/downloads/details.aspx?familyid=752CB725-969B-4732-A383-ED5740F02E93&amp;displaylang=en" target="_blank">Visual Studio 2010 and .NET Framework 4 Training Kit</a><br><br><br></p>			 ]]> 
		</description>
		<category>복잡한컴퓨터이야기</category>

		<comments>http://himskim.egloos.com/1963526#comments</comments>
		<pubDate>Fri, 30 Oct 2009 00:02:42 GMT</pubDate>
		<dc:creator>김명신</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 부산에서 귀경길. 새로운 고속도로를 경유했더니 정체 없이 술술 ]]> </title>
		<link>http://himskim.egloos.com/1955768</link>
		<guid>http://himskim.egloos.com/1955768</guid>
		<description>
			<![CDATA[ 
  <p>이번 귀경은 아주 수월했다. 연휴 마지막 날 밤10시에 출발했는데, 휴게소에서 2번이나 쉬고도 4시간30분 정도 만에 집까지 도착했으니 상당히 빠르게 온 셈이다. 네비게이션이 시키는 데로 올라왔는데 나중에 확인해 보니 새로운 루트였다.</p> <p>부산—&gt;신대구부산 고속도로 –&gt;경부 고속도로 –&gt;중부내륙 고속도로-&gt;청원상주 고속도로-&gt;경부 고속도로-&gt;중부 고속도로-&gt;평택음성 고속도로-&gt;경부 고속도로—&gt;수원으로 빠져 나와서 죽전 집에 도착.<br>고속도로를 많이 갈아타긴 했지만 성공적인 귀경길이었다. 특히 청원상주와 평택음성 고속도로는 차량이 거의 없어서 연휴 마지막 날이었음에도 신나게 달릴 수 있었다.<br>다음에는 이 루트로 부산까지 한번 내려가봐야겠다.</p>			 ]]> 
		</description>

		<comments>http://himskim.egloos.com/1955768#comments</comments>
		<pubDate>Tue, 06 Oct 2009 01:48:42 GMT</pubDate>
		<dc:creator>김명신</dc:creator>
	</item>
	<item>
		<title><![CDATA[ Courier 그리고 Pink ]]> </title>
		<link>http://himskim.egloos.com/1951962</link>
		<guid>http://himskim.egloos.com/1951962</guid>
		<description>
			<![CDATA[ 
  <p>Mary-Jo Foley는&nbsp; ZDNET에서 마이크로소프트 소식만을 전문적으로 기고하는 기자이다. Mary의 Site를 방문해 보면 마이크로소프트의 최신 소식과 기술 등을 확인할 수 있는데 최근 9월22일 Mary가 올린 글을 보면 마이크로소프트의 “Courier”(쿠리어?)에 대한 소개가 나와 있다.</p> <p><a href="http://blogs.zdnet.com/microsoft/?p=4038">Courier: Microsoft’s new take on the Tablet PC?</a></p> <p>아래 동영상을 통해서 구체적인 모습을 살펴볼 수 있다. 한마디로 말하면 “멋지다”</p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/UmIgNfp-MdI&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;feature=player_embedded&amp;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.youtube.com/v/UmIgNfp-MdI&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;feature=player_embedded&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="425" height="344"></embed></object> <p>또 하나 재미난 내용은 그 동안 베일에 쌓여있던 Pink에 대한 마이크로소프트의 실토(?)도 확인할 수 있었다. </p> <p><a href="http://blogs.zdnet.com/microsoft/?p=4011">Pink and Microsoft Tablet (Take 2): A couple of updates</a></p> <p><strong>Pink:</strong> Yes, it’s <a href="http://blogs.zdnet.com/microsoft/?p=2519">a Microsoft-branded (but not Microsoft-manufactured) phone</a>. Yes, it also will feature premium mobile services (like the Zune video store and music subscription/purchasing). I wouldn’t be surprised if Pink looked like — or at least was targeted at the same demographic as — the Sidekick, given the Danger folks have been at the core of Pink’s development team since <a href="http://blogs.zdnet.com/microsoft/?p=1172">Microsoft acquired Danger in 2008.</a>  <p>Last I heard, Pink was being built on top of the Windows Mobile 7 core, which is in development, but now <a href="http://blogs.zdnet.com/microsoft/?p=3765">not expected to be available on phones until late 2010</a>. Does that mean it’s impossible that the <a href="http://www.techmeme.com/090919/p22#a090919p22">Consumer Electronics Show in January 2010 will be the Pink launch pad</a>,as one Mac site reported this weekend? I’d say it’s still possible that Microsoft could show off Pink (privately or publicly) at CES. After all, Microsoft already <a href="http://blogs.zdnet.com/microsoft/?p=3216">chose an ad agency to handle the Pink campaign</a>. It’d make sense for Microsoft to start trying to build buzz for Pink earlier than it actually will ship.  <p><a href="http://www.mediabistro.com/agencyspy/news/codename_pink_er_tribe_whatever_this_is_about_microsofts_new_search_tool_and_campaign_115195.asp">Pink (or whatever it is codenamed these days)</a> definitely still seems to be an active project. Stephen Chapman over at <a href="http://uxevangelist.blogspot.com/">UX Evangelis</a>t — who is quite skilled at combing through on-line job sites and resumes — recently sent me this mention of Pink on LinkedIn:  <p>관심을 가지고 찾아보니 벌써 출시될 휴대폰의 이미지도 얻을 수 있었다.  <p><a href="http://choboweb.com/attach/1/1121832553.jpg"><img title="500x_web2" height="464" alt="500x_web2" src="http://choboweb.com/attach/1/1042414708.jpg" width="500" border="0"></a>			 ]]> 
		</description>

		<comments>http://himskim.egloos.com/1951962#comments</comments>
		<pubDate>Thu, 24 Sep 2009 06:35:05 GMT</pubDate>
		<dc:creator>김명신</dc:creator>
	</item>
	<item>
		<title><![CDATA[ Windows Vista와 Windows 7의 Version checking ]]> </title>
		<link>http://himskim.egloos.com/1951478</link>
		<guid>http://himskim.egloos.com/1951478</guid>
		<description>
			<![CDATA[ 
  <p>Windows Vista나 Windows 7에서 어플리케이션을 수행해 보면 프로그램이 정상적으로 수행되지 않고 조용히 실패(silent fail)해 버리거나 “윈도우 XP 이상의 운영체제에서만 수행될 수 있습니다.”와 같은 오류 메시지가 나타나는 경우가 있다. 이러한 문제의 대부분은 어플리케이션 내부에서 운영체제의 버전을 확인하는 루틴에서 문제가 있는 경우이다. 어플리케이션이 이와 같이 버전 정보 확인에 실패하는 이유는 크게 2가지로 나누어 볼 수 있다.</p><ul><li>버전 확인 코드의 결함(버그). 주 버전(major version)이 증가했음에도 부 버전(minor version)이 감소하였다는 이유로 실패한다거나(예. 버전이 5.1에서 6.0으로 변경되는 것과 같이) 최신의 운영체제가 설치되어 있음에도 이전 운영체제의 서비스 팩 설치 여부를 확인하는 경우(예. Windows XP SP2에서 Windows Viats SP1으로 버전이 변경된 경우) <li>개발자가 테스트 해 보지 않은 운영체제에서 어플리케이션이 수행되지 않도록 의도적으로 제한한 경우(미래에 출시될 운영체제를 위해서라도 이처럼 어플리케이션의 수행을 제한해서는 안 된다.)</li></ul><p>잘못된 버전 확인 코드로 인해 실제로는 호환되지 않는 운영체제에서 어플리케이션이 수행되면 보통의 경우 오류 메시지가 출력되고 이를 통해 그 원인을 추적할 수 있지만, 간혹 앞서 말한 바와 같이 아무런 동작도 수행되지 않고 프로세스가 조용이 종료 되어버리는 경우도 있다.</p><p>다음 절에서 버전 확인 과정에서 야기될 수 있는 호환성 문제를 피할 수 있는 방법과 운영체제의 버전을 확인하는 올바른 방법에 대해서 설명하고 최종적으로 운영체제의 버전을 확인하기 보다는 운영체제의 기능이 사용 가능한지를 확인하는 더 나은 대안을 제안할 것이다.</p><h5>문제상황을 해결하는 방법</h5><p>Windows Viata와 Windows 7는 버전 확인 과정에서 발생할 수 있는 문제 상황을 회피할 수 있는 두 가지 메커니즘을 제공하고 있다.</p><p>1. 호환성 모드(Compatibility Mode) : 호환성 모드는 일반 사용자가 호환성 문제를 쉽게 해결할 수 있도록 제공되는 방법으로, 이전 버전의 윈도우에서만 수행되도록 작성된 어플리케이션을 Windows Vista나 Windows 7에서 수행될 수 있도록 운영체제의 version을 반환하는 함수들이 이전 운영체제의 version 정보를 반환하도록 버전 속이기(Version lie)를 수행하도록 하는 방법이다. 프로그램의 속성(Properties) 에서 호환성(Compatibility) 탭을 통해서 운영체제 버전 속이기를 수행할 수 있다.</p><p>2. 어플리케이션 호환성 툴킷(ACT: Application Compatibility Toolkit) : IT 프로와 개발자들이 어플리케이션 호환성 문제를 확인할 수 있도록 다양한 도구를 포함하고 있는 툴킷이다. 이를 이용하면 다양한 호환성 문제를 확인할 수 있으며, 개발자가 “버전 속이기(Version lie)등과 같은 방법을 통해서 손쉽게 문제 상황을 회피할 수 있는 방법을 제공해 준다. </p><h5>호환성 모드(Compatibility Mode)</h5><p>호환성 모드는 다음과 같이 사용할 수 있다.</p><p>1. 실행파일이나, 바로가기에서 오른 마우스를 클릭한다.<br>2. 속성(Properties)를 클릭한다.<br>3. 호환성(Compatibility) 탭을 클릭한다.<br>4. 이 프로그램을 실행할 호환 모드(Run this program in compatibility mode for)에서 어플리케이션이 수행 가능할 것으로 예상되는 운영체제 버전을 선택한다. 어플리케이션 여러 개의 실행파일로 구성되어 있는 경우 각각의 실행파일에 대해서 개별적으로 이러한 작업을 수행해 주어야 한다.</p><p align="center"><a href="http://pds16.egloos.com/pds/200909/23/23/a0001923_4ab97389918c3.png"><img title="image" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="345" alt="image" src="http://pds15.egloos.com/pds/200909/23/23/a0001923_4ab97389c648c.png" width="255" border="0"></a>&nbsp;</p><p>5. 확인(OK)를 눌러 대화창을 닫는다.</p><p>주의: 호환성 모드는 .net framework 기반의 managed code로 개발된 어플리케이션이 Environment.OSVersion을 사용하여 운영체제의 버전을 얻어오거나 P/Invoke를 사용하여 Win32 함수(예. GetVersionEx)를 호출하는 경우에는 영향을 미치지 못한다. 하지만 어플리케이션이 native code와 managed code가 섞여 있는 경우라면 적용 해 볼만하다. 다행히도 native code에서 버전 확인을 시도하는 경우라면 호환성 모드가 정상적으로 적용될 것이기 때문이다.</p><h5>어플리케이션 호환성 툴킷(ACT: Application Compatibility Toolkit)</h5><p>1. ACT를 설치한 후 시작 메뉴에서 Compatibility Administrator를 수행한다.<br>2. 왼쪽 트리에 “Custom Database” 노드가 나타나지 않는다면 툴바에서 “New”를 선택한다.</p><p align="center"><a href="http://pds16.egloos.com/pds/200909/23/23/a0001923_4ab9738a000c0.png"><img title="image" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="196" alt="image" src="http://pds17.egloos.com/pds/200909/23/23/a0001923_4ab9738a25288.png" width="415" border="0"></a> </p><p>3. “New Database”를 오른 마우스 클릭한다.<br>4. “Rename”을 선택하고 호환성 database의 이름을 변경한다.<br>5. 변경한 database의 이름을 오른 마우스로 클릭한 후 “Create New”를 선택 후, “Applicatio Fix”를 클릭하면, 다음과 같이 “Create new Applicatio Fix” 대화창이 나타난다.</p><p align="center"><a href="http://pds15.egloos.com/pds/200909/23/23/a0001923_4ab9738a54097.png"><img title="image" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: block; FLOAT: none; MARGIN-LEFT: auto; BORDER-LEFT: 0px; MARGIN-RIGHT: auto; BORDER-BOTTOM: 0px" height="295" alt="image" src="http://pds17.egloos.com/pds/200909/23/23/a0001923_4ab9738a76379.png" width="330" border="0"></a></p><p>6. 세부 내용을 입력한다.<br>7. Next를 클릭한다.</p><p align="center"><a href="http://pds15.egloos.com/pds/200909/23/23/a0001923_4ab9738aa32c1.png"><img title="image" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="295" alt="image" src="http://pds17.egloos.com/pds/200909/23/23/a0001923_4ab9738addbdf.png" width="330" border="0"></a> </p><p>8. Operating System Modes에서 None을 선택한다.<br>9. Select additional compatibility modes에서 “WinXPSP2VersionLie”를 선택한다.<br>10. Next를 클릭한다.</p><p align="center"><a href="http://pds15.egloos.com/pds/200909/23/23/a0001923_4ab9738b2cfc6.png"><img title="image" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="295" alt="image" src="http://pds15.egloos.com/pds/200909/23/23/a0001923_4ab9738b50251.png" width="330" border="0"></a> </p><p>11. 어플리케이션에 추가적인 수정이 필요한 경우 각각을 선택한다.<br>12. Next를 클릭한다.</p><p align="center"><a href="http://pds15.egloos.com/pds/200909/23/23/a0001923_4ab9738b705fc.png"><img title="image" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: block; FLOAT: none; MARGIN-LEFT: auto; BORDER-LEFT: 0px; MARGIN-RIGHT: auto; BORDER-BOTTOM: 0px" height="302" alt="image" src="http://pds15.egloos.com/pds/200909/23/23/a0001923_4ab9738bc93ed.png" width="337" border="0"></a></p><p>13. 윈도우가 버전 속이기(Version Lie)를 수행할 실행 파일을 구분할 수 있도록 여러가지 조건들을 선택한다.<br>14. Finish를 클릭한다.<br>15. 툴바에서 Save 버튼을 클릭하여 compatibility database를 저장한다(확장자는 .sdb 이다).<br>16. 윈도우는 상당히 많은 프로그램에 대한 다양한 수정사항들을 포함하고 있는 compatibility database와 함께 출시된다. Database/Application 노드를 확장해 보면 그러한 정보를 살펴볼 수 있으며, 하부 노드를 클릭하여 어떤 어플리케이션에 어떠한 수정 사항들이 적용되고 있는지도 살펴볼 수 있다.</p><h5>더 좋은 버전 확인 방법</h5><p>현재 운영 중인 운영체제가 특정 기능을 제공하는지의 여부를 확인하기 위해서 운영체제의 버전 정보를 확인하는 것은 그다지 좋은 방법은 아니다. 그럼에도 불구하고 운영체제가 제공하는 특정 기능의 가용 여부를 확인하는 방법이 운영체제의 버전 정보를 확인하는 방법 외에는 달리 대안이 없다면 다음에 설명할 내용을 주의 깊게 살펴보기 바란다.</p><p>native 어플리케이션의 경우, 항상 새로운 운영체제에서도 정상적으로 어플리케이션이 수행될 수 있도록 작성되어야 한다. 운영체제의 버전이 변경되었다 하더라도 비정상적으로 어플리케이션 동작해서는 안 된다. 아래에 Win32의 GetVersionEx 함수를 호출하는 사용 예를 나타내었다. 이 코드는 주버전(major version)이 5보다 큰지(Windows Viata, Windows Server 2008 R2, Windows 7) 혹은 주버전이 5이고 부버전(minor version)이 1 이상(Windows XP나 Windows Server 2003)인지를 확인한다.</p><p><strong>C++</strong></p><pre class="code"><span style="COLOR: blue">void </span>main()<br>{<br>    OSVERSIONINFO osvi;<br>    BOOL bIsWindowsXPorLater;<br><br>    ZeroMemory(&amp;osvi, <span style="COLOR: blue">sizeof</span>(OSVERSIONINFO));<br>    osvi.dwOSVersionInfoSize = <span style="COLOR: blue">sizeof</span>(OSVERSIONINFO);<br><br>    GetVersionEx(&amp;osvi);<br><br>    bIsWindowsXPorLater = <br>        ( (osvi.dwMajorVersion &gt; 5) ||<br>        ( (osvi.dwMajorVersion == 5) &amp;&amp; (osvi.dwMinorVersion &gt;= 1) ));<br><br>    <span style="COLOR: blue">if</span>(bIsWindowsXPorLater)<br>        printf(<span style="COLOR: #a31515">"The system meets the requirements.\n"</span>);<br>    <span style="COLOR: blue">else </span>printf(<span style="COLOR: #a31515">"The system does not meet the requirements.\n"</span>);<br>}</pre><br><p>다음은 VerifyVersionInfo 함수를 사용하여 최소 운영체제의 버전을 확인하는 코드의 예이다.</p><br><p><strong>C++</strong></p><pre class="code"><span style="COLOR: blue">#include </span><span style="COLOR: #a31515">&lt;windows.h&gt;<br><br></span>BOOL Is_WinXP_SP2_or_Later () <br>{<br>    OSVERSIONINFOEX osvi;<br>    DWORDLONG dwlConditionMask = 0;<br>    <span style="COLOR: blue">int </span>op=VER_GREATER_EQUAL;<br><br>    <span style="COLOR: green">// Initialize the OSVERSIONINFOEX structure.<br><br>    </span>ZeroMemory(&amp;osvi, <span style="COLOR: blue">sizeof</span>(OSVERSIONINFOEX));<br>    osvi.dwOSVersionInfoSize = <span style="COLOR: blue">sizeof</span>(OSVERSIONINFOEX);<br>    osvi.dwMajorVersion = 5;<br>    osvi.dwMinorVersion = 1;<br>    osvi.wServicePackMajor = 2;<br>    osvi.wServicePackMinor = 0;<br><br>    <span style="COLOR: green">// Initialize the condition mask.<br><br>    </span>VER_SET_CONDITION( dwlConditionMask, VER_MAJORVERSION, op );<br>    VER_SET_CONDITION( dwlConditionMask, VER_MINORVERSION, op );<br>    VER_SET_CONDITION( dwlConditionMask, VER_SERVICEPACKMAJOR, op );<br>    VER_SET_CONDITION( dwlConditionMask, VER_SERVICEPACKMINOR, op );<br><br>    <span style="COLOR: green">// Perform the test.<br><br>    </span><span style="COLOR: blue">return </span>VerifyVersionInfo(<br>        &amp;osvi, <br>        VER_MAJORVERSION | VER_MINORVERSION | <br>        VER_SERVICEPACKMAJOR | VER_SERVICEPACKMINOR,<br>        dwlConditionMask);<br>}<br></pre><br><p>.NET Framework 개발자라면 Environment.OSVersion.Version 속성 값을 Version 타입의 객체와 ==, !=, &lt;=, &lt;, &gt;, &gt;= 연산자를 이용하여 비교할 수 있다.</p><br><p><strong>C#</strong></p><pre class="code"><span style="COLOR: green">// This code checks if the OS is at least Windows XP<br></span><span style="COLOR: blue">if </span>(<span style="COLOR: #2b91af">Environment</span>.OSVersion.Version &lt; <span style="COLOR: blue">new </span><span style="COLOR: #2b91af">Version</span>(5, 1))<br>{<br>    <span style="COLOR: #2b91af">MessageBox</span>.Show(<span style="COLOR: #a31515">"Windows XP or later required."</span>,<br>     <span style="COLOR: #a31515">"Incompatible Operating System"</span>, <span style="COLOR: #2b91af">MessageBoxButtons</span>.OK,<br>            <span style="COLOR: #2b91af">MessageBoxIcon</span>.Error);<br>    <span style="COLOR: blue">return</span>;<br>}<br></pre><br><h5>운영체제의 기능 확인</h5><br><p>앞서 언급한 바와 같이 운영체제가 제공하는 기능의 가용여부를 확인하기 위해서 버전정보를 이용하는 것은 그다지 좋은 방법이 아니다. 왜냐하면 운영체제는 배포되는 DLL에 따라서 제공되는 기능이 가감될 수 있기 때문이다. 따라서 운영체제의 플랫폼과 버전 정보를 확인하는 함수인 GetVersionEx 함수를 사용하기 보다는 기능 자체가 지원되는지의 여부를 직접적으로 확인하는 것이 낫다. 예를 들어 Direct2D의 DirectWrite API와 Windows Vista에서 제공되는 Ribbon API를 사용할 계획이라고 하자. 설사 이러한 API를 사용하지 못하는 경우라 하더라도 어플리케이션 자체가 전혀 수행될 수 없다면 곤란하다.</p><br><p>비록 어플리케이션의 기능과 성능에 일부 제약이 있더라도 가능하다면 어플리케이션을 수행할 수 있도록 해주어야 할 것이다. Win32 개발자라면 이를 위해 다음과 같은 기법을 사용할 수 있다.</p><br><p>사용하려는 함수를 구현하고 있는 라이브러리가 어플리케이션의 가상 메모리 주소 공간에 로드되어 있지 않다면 LoadLibrary()를 사용하여 라이브러리를 로드하고, 앞서 로드되어 있는 경우라면(예 Kernel32.dll) GetModuleHandle() 함수를 이용하여 DLL의 핸들 값을 얻는다. 만일 LoadLibrary()나 GetModuleHandle() 함수가 NULL을 반환한다면 오류가 발생한 것이다.</p><br><p>GetProcAddress() 함수를 이용하여 함수 포인터를 획득한다. GetProcAddress()가 NULL을 반환하면 함수가 존재하지 않는 것이다. 만약 이 함수를 통해서 함수 포인터를 받아올 수 있다면 적절한 함수 원형을 가리키는 함수 포인터로 변환을 수행하면 된다. 그런데 몇몇 함수의 경우 함수 자체는 존재하지만, 함수 내부가 구현되지 않은 형태일 수도 있으며, 이 경우 구현되지 않음(not implemented) 오류가 발생할 수도 있으므로 이러한 오류도 반드시 확인해야 한다. 아래에 이러한 기법을 구현한 예를 나타내었다.</p><br><p><strong>C++</strong></p><pre class="code"><span style="COLOR: green">// define function pointer type<br></span><span style="COLOR: blue">typedef </span>BOOL (WINAPI *SetWaitableTimerExProc)(<br>    __in  HANDLE hTimer,<br>    __in  <span style="COLOR: blue">const </span>LARGE_INTEGER *lpDueTime,<br>    __in  LONG lPeriod,<br>    __in  PTIMERAPCROUTINE pfnCompletionRoutine,<br>    __in  LPVOID lpArgToCompletionRoutine,<br>    __in  PREASON_CONTEXT WakeContext,<br>    __in  ULONG TolerableDelay<br>);<br><br>LARGE_INTEGER liDueTime;<br>liDueTime.QuadPart = 0;<br><span style="COLOR: blue">int </span>period = 1000;<br><span style="COLOR: blue">unsigned int </span>tolerance = 1000;<br>HANDLE hTimer = <span style="COLOR: green">// Get timer handle<br><br></span>REASON_CONTEXT reasonContext = {0};<br>reasonContext.Version = 0;<br>reasonContext.Flags = POWER_REQUEST_CONTEXT_SIMPLE_STRING;<br>reasonContext.Reason.SimpleReasonString = L<span style="COLOR: #a31515">"MyTimer"</span>;<br><br><span style="COLOR: green">// Get module handle to a module which is already loaded<br></span>HMODULE hKernel32Module = GetModuleHandle(_T(<span style="COLOR: #a31515">"kernel32.dll"</span>));<br><span style="COLOR: blue">if </span>(hKernel32Module == NULL)<br>    <span style="COLOR: blue">return </span>FALSE;<br><br><span style="COLOR: green">// Get Address of function<br></span>SetWaitableTimerExProc pFnSetWaitableTimerEx =<br>    (SetWaitableTimerExProc) ::GetProcAddress(hKernel32Module,     <br>                                          <span style="COLOR: #a31515">"SetWaitableTimerEx"</span>);<br><br><span style="COLOR: green">// Check if the function exists    <br></span><span style="COLOR: blue">if </span>(pFnSetWaitableTimerEx == NULL)<br>    <span style="COLOR: blue">return </span>FALSE;<br><br><span style="COLOR: green">// Call function<br></span><span style="COLOR: blue">if </span>(!pFnSetWaitableTimerEx(hTimer, &amp;liDueTime, period, NULL, NULL,<br>    &amp;reasonContext, tolerance)<br>    { <span style="COLOR: green">/* handle error */ </span>}<br></pre><a href="http://11011.net/software/vspaste"></a><br><p>이와는 다른 방법으로 DLL 지연 로딩(delayed loading)을 이용한 후, __try…__except 블록 내에서 함수를 호출하는 방법을 사용할 수도 있다.(이에 대해서는 다음 링크를 확인하기 바란다. <a href="http://msdn.microsoft.com/en-us/library/151kt790.aspx">Linker Support for Delay-Loaded DLLs</a></p><br><p>만약 COM API를 사용하는 경우라면 CoCreateInstance와 QueryInterface함수의 반환 값에 대하여 오류 처리를 수행할 수 있으며, .NET framework 어플리케이션에서 P/Invoke를 이용하여 WIN32 API를 사용하는 경우라면 EntryPointNotFoundException과 DllNotFoundException에 대하여 예외 처리를 수행하면 된다.</p><br><p>참고</p><br><ul><li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=24da89e9-b581-47b0-b45e-492dd6da2971&amp;displaylang=en">Microsoft Application Compatibility Toolkit</a></li></ul><br><p>추가 자료</p><br><ul><li>Application compatibility Cookbook: <a href="http://msdn.microsoft.com/en-us/library/bb963893.aspx">http://msdn.microsoft.com/en-us/library/bb963893.aspx</a> <br><li>버전 속이기(Version Lie)와 Managed 어플리케이션: <a href="http://blogs.msdn.com/cjacks/archive/2007/09/10/version-lie-shims-and-managed-code-on-windows-vista.aspx">http://blogs.msdn.com/cjacks/archive/2007/09/10/version-lie-shims-and-managed-code-on-windows-vista.aspx</a></li></ul>			 ]]> 
		</description>
		<category>복잡한컴퓨터이야기</category>

		<comments>http://himskim.egloos.com/1951478#comments</comments>
		<pubDate>Wed, 23 Sep 2009 01:02:03 GMT</pubDate>
		<dc:creator>김명신</dc:creator>
	</item>
	<item>
		<title><![CDATA[ Doloto를 아십니까? ]]> </title>
		<link>http://himskim.egloos.com/1947682</link>
		<guid>http://himskim.egloos.com/1947682</guid>
		<description>
			<![CDATA[ 
  <p>Doloto는 Microsoft Research에서 MSDN DevLab을 통해서 공개한 tool로서 한마디로 말하자면 Download Optimizer 정도로 부를 수 있겠다. 이 툴을 이용하면 복잡한 AJAX web application의 초기 download 시간을 상당히 줄여줄 수 있다. 유일한 요구사항으로는 .Net framework 3.5 정도이다. 마이크로소프트는 Rich user experience를 제공하기 위해서 AJAX를 사용하게 되면 종종 초기에 download 해야 하는 코드의 양이 많아져서 초기 download 시간이 커지는 문제가 생기는데 이러한 문제를 Doloto가 상당부문 경감 시켜줄 수 있다고 한다.</p> <p>다양한 종류의 AJAX application을 여러 network 환경에서 테스트 해본 결과 Doloto를 사용하면 Javascript에 대한 초기 download 양을 40%이상 줄일 수 있다고 하며, 네트워크의 속도에 따라 상이하긴 하겠지만 대략 30~40%정도 빠른 반응 속도를 보여준다고 한다. 아래 차트는 몇몇 사이트들에 대하여 doloto의 적용 전후의 결과를 나타낸 것이다.</p> <p><a href="http://kxacog.blu.livefilestore.com/y1p5SpV9mgif1dVrgEf30CAoLsT8sOjfzoEgjZDkkRhIKxGdcnt81Vb7jVjQMVsGikG7YJQ8OJGdO7gWTyH8GLWoQ/DolotoSavings.jpg"><img title="Doloto download savings" height="344" alt="Doloto download savings" src="http://kxacog.blu.livefilestore.com/y1pDnkdK-DKNOM8cRu3inCQAahPq3rPfLqx2_0S9HKS-zNCwYnviWtd5-ke4TmCX9fXTZLexEMjW9Ppj3A9eQZ2UQ/DolotoSavingsSmall.jpg" width="546" border="0"></a></p> <p>Doloto는 과연 어떻게 동작하는 것일까? Doloto는 standalone client-sde tool이며 마이크로소프트 개발부의 부사장인 S.Somasegar는 다음과 같은 3가지 과정을 수행한다고 한다.</p> <p>1. Doloto profiles your application. Doloto performs profiling by running a local proxy on your machine that intercepts JavaScript files and instruments them to capture timestamps at runtime for every JavaScript function in a browser-independent manner. <p>2. Profiling information is used to calculate code coverage and a clustering strategy. This determines which functions are stubbed out and which are not and groups functions into batches which are downloaded together, called clusters.  <p>3. Doloto rewrites JavaScript code. It then saves it to disk so that you can upload it to the server. The entire process happens on your machine, without needing access to the server. This way, you can profile and optimize the JavaScript of a any third-party site without special access to their servers. When you are satisfied with Doloto’s results, you can deploy the rewritten files to the server. <p>Doloto는 다음 URL을 통해서 download 받을 수 있다. <a href="http://msdn.microsoft.com/en-us/devlabs/ee423534.aspx">Doloto</a> <p>좀 더 자세한 사항은 <a href="http://research.microsoft.com/en-us/projects/doloto">Microsoft Research</a>, MSDN DevLabs의 <a href="http://msdn.microsoft.com/en-us/devlabs/ee423534.aspx">Doloto forums</a>을 확인하기 바란다. S.Somasegar’s가 작성한 doloto에 대한 글은 다음 URL에서 확인해 볼 수 있다. <a href="http://blogs.msdn.com/somasegar/archive/2009/09/04/doloto-on-devlabs.aspx">Somasegar's WebLog : Doloto on DevLabs</a></p>			 ]]> 
		</description>

		<comments>http://himskim.egloos.com/1947682#comments</comments>
		<pubDate>Fri, 11 Sep 2009 06:04:25 GMT</pubDate>
		<dc:creator>김명신</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 저의 Twitter ]]> </title>
		<link>http://himskim.egloos.com/1927925</link>
		<guid>http://himskim.egloos.com/1927925</guid>
		<description>
			<![CDATA[ 
  제 주위의 twitter 하시는 분이 상당히 늘어서 저도 한번 참여 해볼까 합니다.<br><br><a href="http://twitter.com/himskim">http://twitter.com/himskim</a><br><br>			 ]]> 
		</description>
		<category>살다보면</category>

		<comments>http://himskim.egloos.com/1927925#comments</comments>
		<pubDate>Mon, 13 Jul 2009 01:50:15 GMT</pubDate>
		<dc:creator>김명신</dc:creator>
	</item>
	<item>
		<title><![CDATA[ TMAX 윈도 스크린 샷!(오후에 배포한 이미지인듯) 어처구니가 없습니다 2 ]]> </title>
		<link>http://himskim.egloos.com/1923347</link>
		<guid>http://himskim.egloos.com/1923347</guid>
		<description>
			<![CDATA[ 
  <p>티맥스 측은 오전에 배포한 스크린 샷이 실무자의 단순 실수로 해명하고 오후에 새로운 이미지를 배포했다고 하더군요. 찾아보았더니 다음과 같은 스크린 샷이 있음을 확인 할 수 있었습니다. </p><p><a href="http://pds15.egloos.com/pds/200906/30/23/a0001923_4a49c68f6c02f.jpg"><img title="74672_64232_488" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="454" alt="74672_64232_488" src="http://pds13.egloos.com/pds/200906/30/23/a0001923_4a49c690cf9b0.jpg" width="604" border="0"></a> </p><p>위 그림을 보면 Documents and&nbsp;Settings 폴더가 갑자기 오전 배포하였던 그림과 다르게 Users로 바뀌었네요. 우스운 것은 탐색기가 떠 있음에도 불구하고 "작업 관리자"에는 탐색기가 떠 있음을 알리는 바(bar)가 없네요. 그리고 앞서 지적했듯이, 시작 메뉴와 탐색기가 어떻게 저렇게 나타날 수 있는지 모르겠습니다. "시작" 메뉴를 누르면 탐색기 앞으로 메뉴가 나타나고, 그림처럼 탐색기를 수행했다면 "시작" 메뉴는 사라져야 합니다. 논란이 되었던 인증서 부분도 새로운 스크린 샷이 올라 왔습니다. </p><p>&nbsp;<a href="http://pds13.egloos.com/pds/200906/30/23/a0001923_4a49c6922f785.jpg"><img title="74672_64233_4858" style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; DISPLAY: inline; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="454" alt="74672_64233_4858" src="http://pds13.egloos.com/pds/200906/30/23/a0001923_4a49c693d96ad.jpg" width="604" border="0"></a> </p><p>URL 부분이 어떻게 되어 있는지 한번 보십시오. 애처롭기까지 합니다.</p><p>게다가 위에서 지적한 것과 마찬가지로 "작업 관리자에는" 브라우저가 수행되고 있음을 나타내는 바(bar)가 없네요. URL Encoding 된 부분을 한번 decoding 해보려다가 잘 보이지 않아서 포기했습니다. <br><br>여러분은 이 image가 실제 구동되고 있는 tmax 윈도로부터 capture한 스크린 샷이라고 생각하십니까? <br>저만 의구심을 가지는 걸까요?</p>			 ]]> 
		</description>
		<category>복잡한컴퓨터이야기</category>

		<comments>http://himskim.egloos.com/1923347#comments</comments>
		<pubDate>Tue, 30 Jun 2009 07:56:42 GMT</pubDate>
		<dc:creator>김명신</dc:creator>
	</item>
</channel>
</rss>
