<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Tal Kain]]></title><description><![CDATA[Co-Founder & CEO @ Velocity.
Weird yet efficient]]></description><link>https://www.talkain.com</link><image><url>https://substackcdn.com/image/fetch/$s_!qJYT!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3ad7fc1-13f0-4949-a46e-aa1d24aa1c79_1280x1280.png</url><title>Tal Kain</title><link>https://www.talkain.com</link></image><generator>Substack</generator><lastBuildDate>Mon, 20 Apr 2026 08:58:36 GMT</lastBuildDate><atom:link href="https://www.talkain.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Tal Kain]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[talkain@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[talkain@substack.com]]></itunes:email><itunes:name><![CDATA[Tal Kain]]></itunes:name></itunes:owner><itunes:author><![CDATA[Tal Kain]]></itunes:author><googleplay:owner><![CDATA[talkain@substack.com]]></googleplay:owner><googleplay:email><![CDATA[talkain@substack.com]]></googleplay:email><googleplay:author><![CDATA[Tal Kain]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[IORegistryExplorer on macOS Dark Mode issue fix]]></title><description><![CDATA[IO Registry Explorer is a utility developed by Apple which allows you to watch the I/O Registry on your macOS.]]></description><link>https://www.talkain.com/p/ioregistryexplorer-on-macos-dark-modehtml</link><guid isPermaLink="false">https://www.talkain.com/p/ioregistryexplorer-on-macos-dark-modehtml</guid><dc:creator><![CDATA[Tal Kain]]></dc:creator><pubDate>Fri, 21 Jun 2019 14:37:00 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/ce13f051-930c-434c-b8ff-ea3848a44172_553x482.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>IO Registry Explorer is a utility developed by Apple which allows you to watch the <a href="https://developer.apple.com/library/archive/documentation/DeviceDrivers/Conceptual/IOKitFundamentals/TheRegistry/TheRegistry.html#//apple_ref/doc/uid/TP0000014-TP9">I/O Registry</a> on your macOS.</p><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!iUFA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88b33cb9-b964-40ca-9567-916fad8dd825_553x482.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!iUFA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88b33cb9-b964-40ca-9567-916fad8dd825_553x482.jpeg 424w, https://substackcdn.com/image/fetch/$s_!iUFA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88b33cb9-b964-40ca-9567-916fad8dd825_553x482.jpeg 848w, https://substackcdn.com/image/fetch/$s_!iUFA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88b33cb9-b964-40ca-9567-916fad8dd825_553x482.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!iUFA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88b33cb9-b964-40ca-9567-916fad8dd825_553x482.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!iUFA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88b33cb9-b964-40ca-9567-916fad8dd825_553x482.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/88b33cb9-b964-40ca-9567-916fad8dd825_553x482.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;A sample I/O Registry Explorer window&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A sample I/O Registry Explorer window" title="A sample I/O Registry Explorer window" srcset="https://substackcdn.com/image/fetch/$s_!iUFA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88b33cb9-b964-40ca-9567-916fad8dd825_553x482.jpeg 424w, https://substackcdn.com/image/fetch/$s_!iUFA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88b33cb9-b964-40ca-9567-916fad8dd825_553x482.jpeg 848w, https://substackcdn.com/image/fetch/$s_!iUFA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88b33cb9-b964-40ca-9567-916fad8dd825_553x482.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!iUFA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88b33cb9-b964-40ca-9567-916fad8dd825_553x482.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a><p>(Original:&nbsp;<a href="https://developer.apple.com/library/archive/documentation/DeviceDrivers/Conceptual/IOKitFundamentals/art/registryexplorer.jpg">https://developer.apple.com/library/archive/documentation/DeviceDrivers/Conceptual/IOKitFundamentals/art/registryexplorer.jpg</a>)</p><p>If you are using the IORegistryExplorer on macOS while working with Dark Mode enabled, then you probably noticed the fact that the explorer doesn't fit the new DarkMode, hence the UI might look like that:</p><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!brUS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17247531-6714-4e38-8e18-9591d0a0b574_320x206.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!brUS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17247531-6714-4e38-8e18-9591d0a0b574_320x206.png 424w, https://substackcdn.com/image/fetch/$s_!brUS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17247531-6714-4e38-8e18-9591d0a0b574_320x206.png 848w, https://substackcdn.com/image/fetch/$s_!brUS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17247531-6714-4e38-8e18-9591d0a0b574_320x206.png 1272w, https://substackcdn.com/image/fetch/$s_!brUS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17247531-6714-4e38-8e18-9591d0a0b574_320x206.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!brUS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17247531-6714-4e38-8e18-9591d0a0b574_320x206.png" width="320" height="206" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/17247531-6714-4e38-8e18-9591d0a0b574_320x206.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:206,&quot;width&quot;:320,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!brUS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17247531-6714-4e38-8e18-9591d0a0b574_320x206.png 424w, https://substackcdn.com/image/fetch/$s_!brUS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17247531-6714-4e38-8e18-9591d0a0b574_320x206.png 848w, https://substackcdn.com/image/fetch/$s_!brUS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17247531-6714-4e38-8e18-9591d0a0b574_320x206.png 1272w, https://substackcdn.com/image/fetch/$s_!brUS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17247531-6714-4e38-8e18-9591d0a0b574_320x206.png 1456w" sizes="100vw"></picture><div></div></div></a><p> Which makes it hard to read the content.</p><p>I found <a href="https://www.techjunkie.com/exclude-app-dark-mode-macos-mojave/">this article</a>&nbsp;which shows you how to disable DarkMode for a specific application.</p><p>Running the following commands:</p><blockquote><p>osascript -e 'id of app "IORegistryExplorer"'</p></blockquote><p>defaults write com.apple.IORegistryExplorer NSRequiresAquaSystemAppearance -bool yes</p><p>Solves the issue and make it usable again.</p><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XyQu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd436259d-adc9-404a-a1d3-d0b51476d30d_320x245.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XyQu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd436259d-adc9-404a-a1d3-d0b51476d30d_320x245.png 424w, https://substackcdn.com/image/fetch/$s_!XyQu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd436259d-adc9-404a-a1d3-d0b51476d30d_320x245.png 848w, https://substackcdn.com/image/fetch/$s_!XyQu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd436259d-adc9-404a-a1d3-d0b51476d30d_320x245.png 1272w, https://substackcdn.com/image/fetch/$s_!XyQu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd436259d-adc9-404a-a1d3-d0b51476d30d_320x245.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XyQu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd436259d-adc9-404a-a1d3-d0b51476d30d_320x245.png" width="320" height="245" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d436259d-adc9-404a-a1d3-d0b51476d30d_320x245.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:245,&quot;width&quot;:320,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!XyQu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd436259d-adc9-404a-a1d3-d0b51476d30d_320x245.png 424w, https://substackcdn.com/image/fetch/$s_!XyQu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd436259d-adc9-404a-a1d3-d0b51476d30d_320x245.png 848w, https://substackcdn.com/image/fetch/$s_!XyQu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd436259d-adc9-404a-a1d3-d0b51476d30d_320x245.png 1272w, https://substackcdn.com/image/fetch/$s_!XyQu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd436259d-adc9-404a-a1d3-d0b51476d30d_320x245.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><p> Have fun,</p><p>Tal Kain</p>]]></content:encoded></item><item><title><![CDATA[Standalone IPython using PyInstaller and VirtualEnv]]></title><description><![CDATA[I decided that I want to create a standalone IPython executable that I can distribute.]]></description><link>https://www.talkain.com/p/standalone-ipython-using-pyinstallerhtml</link><guid isPermaLink="false">https://www.talkain.com/p/standalone-ipython-using-pyinstallerhtml</guid><dc:creator><![CDATA[Tal Kain]]></dc:creator><pubDate>Sat, 18 May 2019 14:37:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qJYT!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3ad7fc1-13f0-4949-a46e-aa1d24aa1c79_1280x1280.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I decided that I want to create a standalone IPython executable that I can distribute.</p><p>This executable should be:</p><ul><li><p>Run as a standalone, even if there is no Python installed on the machine</p></li><li><p>Have all required packages even if they aren't installed on the machine</p></li><li><p>Doesn't have extra packages in it (just what needed)</p></li><li><p>Single executable (no shared objects)</p></li></ul><p>In order to achieve this task I used <a href="https://www.pyinstaller.org/">PyInstaller</a>, which according to <a href="https://stackoverflow.com/a/12059644/132847">this StackOverflow post</a>&nbsp;seems like one of the good options to do so.</p><p>I also wanted to make my environment as clean as possible, so I installed <a href="https://virtualenv.pypa.io/">virtualenv</a>:</p><blockquote><p>virtualenv ipython_env/</p></blockquote><p>source ipython_env/bin/activate</p><p>Inside this environment, I ran the following pip command to install PyInstaller and IPython:</p><blockquote><p>pip install pyinstaller</p></blockquote><p>pip install ipython&nbsp;</p><p>Following&nbsp;<a href="https://stackoverflow.com/users/1106189/rgtk">rgtk</a>'s comment: <a href="https://stackoverflow.com/a/31412509/132847">https://stackoverflow.com/a/31412509/132847</a>, I created the following script:</p><blockquote><p>from IPython import embed</p></blockquote><p>embed()</p><p>and called it <strong>ipython.py</strong></p><p><br>From PyInstaller help manual:</p><blockquote><p>&nbsp; -F, --onefile&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Create a one-file bundled executable.</p></blockquote><p> then, I ran:</p><blockquote><p>pyinstaller -F ipython.py</p></blockquote><p>The output of the script generated a (default named) directory called <strong>dist</strong>&nbsp;which the output binary was in.</p><blockquote><p>$ file dist/ipython</p></blockquote><p>dist/ipython: Mach-O 64-bit executable x86_64</p><p>$ otool -L ./dist/ipython</p><p>./dist/ipython:</p><p>/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1)</p><p>/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)</p><p>Running this binary:</p><blockquote><p>$ ./dist/ipython</p></blockquote><p>Python 2.7.16 (default, Apr 12 2019, 15:32:40)</p><p>Type "copyright", "credits" or "license" for more information.</p><p>IPython 5.8.0 -- An enhanced Interactive Python.</p><p>?&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;-&gt; Introduction and overview of IPython's features.</p><p>%quickref -&gt; Quick reference.</p><p>help&nbsp; &nbsp; &nbsp; -&gt; Python's own help system.</p><p>object?&nbsp; &nbsp;-&gt; Details about 'object', use 'object??' for extra details.</p><p>In [1]:</p><p>That's all for today.</p><p>Good luck!</p><p>Tal Kain</p>]]></content:encoded></item><item><title><![CDATA[Compiling lsof for iOS device on Mac OSX]]></title><description><![CDATA[I started making a small research on my jailbroken iOS device and I was wondering which files does a specific process touches while I was using it.]]></description><link>https://www.talkain.com/p/compiling-lsof-for-ios-device-on-mac-osxhtml</link><guid isPermaLink="false">https://www.talkain.com/p/compiling-lsof-for-ios-device-on-mac-osxhtml</guid><dc:creator><![CDATA[Tal Kain]]></dc:creator><pubDate>Tue, 20 Sep 2016 21:00:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qJYT!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3ad7fc1-13f0-4949-a46e-aa1d24aa1c79_1280x1280.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I started making a small research on my jailbroken iOS device and I was wondering which files does a specific process touches while I was using it.</p><p>In order to do so, I wanted to use the famous <a href="https://en.wikipedia.org/wiki/Lsof">lsof</a>, so I downloaded the package from saurik's packages using Cydia, only to find out that the given lsof is not working on my device:</p><p>lsof: PID 40 information error: Cannot allocate memory</p><p>lsof: PID 39 information error: Cannot allocate memory</p><p>lsof: PID 38 information error: Cannot allocate memory</p><p>lsof: PID 37 information error: Cannot allocate memory</p><p>lsof: PID 36 information error: Cannot allocate memory</p><p>lsof: PID 35 information error: Cannot allocate memory</p><p>lsof: PID 33 information error: Cannot allocate memory</p><p>lsof: PID 31 information error: Cannot allocate memory After trying to figure it out, I decided that it would be the best to just try compiling my own lsof and use it on the device (I also liked the challenge :-) )</p><p>So my journey begins with downloading lsof from Apple's site:</p><p><a href="http://opensource.apple.com/tarballs/lsof/lsof-53.tar.gz">http://opensource.apple.com/tarballs/lsof/lsof-53.tar.gz</a></p><p>(tarballs can be found here: <a href="http://opensource.apple.com/tarballs/">http://opensource.apple.com/tarballs/</a> while sources can be found here:&nbsp;<a href="https://opensource.apple.com/source/lsof/">https://opensource.apple.com/source/lsof/</a> )</p><p>$ wget http://opensource.apple.com/tarballs/lsof/lsof-53.tar.gz</p><p>$ tar zvxf lsof-53.tar.gz</p><p>Inside the lsof directory, I ran the configure script:</p><p>$ ./Configure darwin</p><p>I tried several ways to compile the executable for my iPhone, and while doing so I got several errors.</p><p>Using <a href="https://coderwall.com/gpakosz">Gregory Pakosz</a>&nbsp;post from&nbsp;<a href="https://coderwall.com/p/heonhw/compiling-for-ios-outside-of-xcode-with-xcrun">here</a>, running:</p><p>make CC="$(xcrun --sdk iphoneos --find clang) -isysroot $(xcrun --sdk iphoneos --show-sdk-path) -arch armv7 -arch armv7s -arch arm64"</p><p>Gave me a list of errors of missing headers, for example:</p><blockquote><p>In file included from usage.c:39:</p></blockquote><p>In file included from ./lsof.h:195:</p><p>./dlsof.h:56:10: fatal error: 'netinet/tcp_fsm.h' file not found &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</p><p>#include &lt;netinet/tcp_fsm.h&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</p><p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;^ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</p><p>1 error generated.</p><p>make: *** [usage.o] Error 1</p><p>What I did, following&nbsp;<a href="http://stackoverflow.com/a/6719314/132847">this answer</a>&nbsp;was to create my own copy of the SDK headers' folder, adding the missing headers from /usr/include:</p><ul><li><p>netinet/tcp_fsm.h</p></li><li><p>rpc/pmap_prot.h</p></li><li><p>libproc.h</p></li><li><p>sys/proc_info.h</p></li><li><p>sys/kern_control.h</p></li><li><p>net/route.h</p></li></ul><p>I also looked at <a href="https://github.com/emonti/">emonti</a>'s missing_headers folder from <a href="https://github.com/emonti/iOS_app_re_tools/tree/master/missing_headers">here</a>&nbsp;to make sure I am on the right track.</p><p>Trying to build it again gave me the following linking error:</p><blockquote><p>ld: library not found for -lcrt1.3.1.o</p></blockquote><p>clang: error: linker command failed with exit code 1 (use -v to see invocation)</p><p> Then, I found <a href="http://stackoverflow.com/q/15475302/132847">this SO post</a>&nbsp;that used the <strong>-miphoneos-version-min</strong> flag, so I added the flag:</p><p>$ make CC="$(xcrun --sdk iphoneos --find clang) -isysroot /Users/talkain/tmp/sdk -arch armv7 -arch armv7s -arch arm64 -miphoneos-version-min=8.1"</p><p>Which successfully created the executable.</p><p>$ otool -L lsof</p><blockquote><p>lsof (architecture armv7):</p></blockquote><p>&nbsp; &nbsp; &nbsp; &nbsp; /usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0, current version 5.4.0)</p><p>&nbsp; &nbsp; &nbsp; &nbsp; /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.0.0)</p><p>lsof (architecture armv7s):</p><p>&nbsp; &nbsp; &nbsp; &nbsp; /usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0, current version 5.4.0)</p><p>/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.0.0)</p><p>lsof (architecture arm64): &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; /usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0, current version 5.4.0) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.0.0)</p><p>$ file lsof</p><blockquote><p>lsof: Mach-O universal binary with 3 architectures</p></blockquote><p>lsof (for architecture armv7): &nbsp;Mach-O executable arm</p><p>lsof (for architecture armv7s): Mach-O executable arm</p><p>lsof (for architecture arm64): &nbsp;Mach-O 64-bit executable&nbsp;</p><p>Trying to run it on the phone - <strong>SUCCESS!</strong> The binary was successfully compiled on my OSX for the iOS 8.1 which I was using (Note that the bare minimum I managed to compile it with no errors was to iOS 6.0) and I managed to get the output I was looking for.</p><p>That was fun.</p><p>Credits goes to:</p><ul><li><p><a href="https://stackoverflow.com/users/1101404/webie">webie</a> for his Q&amp;A: <a href="http://stackoverflow.com/a/10118021/132847">http://stackoverflow.com/a/10118021/132847</a></p></li><li><p><a href="https://coderwall.com/gpakosz">Gregory Pakosz</a>&nbsp;for his great post:&nbsp;<a href="https://coderwall.com/p/heonhw/compiling-for-ios-outside-of-xcode-with-xcrun">https://coderwall.com/p/heonhw/compiling-for-ios-outside-of-xcode-with-xcrun</a></p></li><li><p><a href="https://stackoverflow.com/users/1365821/crdave">CRDave</a> for his answer: http://stackoverflow.com/a/21422550/132847</p></li><li><p><a href="http://stackoverflow.com/a/6719314/132847">http://stackoverflow.com/a/6719314/132847</a></p></li><li><p><a href="https://github.com/emonti/iOS_app_re_tools/tree/master/missing_headers">https://github.com/emonti/iOS_app_re_tools/tree/master/missing_headers</a></p></li><li><p><a href="https://stackoverflow.com/users/2148464/hanetv">HaneTV</a>&nbsp;for&nbsp;<a href="http://stackoverflow.com/q/15475302/132847">http://stackoverflow.com/q/15475302/132847</a></p></li></ul><p> Till next time,</p><p> Tal Kain</p>]]></content:encoded></item><item><title><![CDATA[Upgrading all the brew cask packages in one command]]></title><description><![CDATA[Here is a nice (and simple) way to upgrade all your Homebrew cask packages at a single command.]]></description><link>https://www.talkain.com/p/upgrading-all-brew-cask-packages-in-onehtml</link><guid isPermaLink="false">https://www.talkain.com/p/upgrading-all-brew-cask-packages-in-onehtml</guid><dc:creator><![CDATA[Tal Kain]]></dc:creator><pubDate>Sat, 05 Dec 2015 18:30:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qJYT!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3ad7fc1-13f0-4949-a46e-aa1d24aa1c79_1280x1280.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Here is a nice (and simple) way to upgrade all your&nbsp;<a href="http://brew.sh/">Homebrew</a>&nbsp;cask packages at a single command.</p><p>All credits goes to&nbsp;<a href="https://github.com/Yann-R">Yann-R</a>&nbsp;that wrote <a href="https://github.com/caskroom/homebrew-cask/issues/13256#issuecomment-150041888">here</a>&nbsp;the following command:</p><blockquote><pre><code>brew cask install `brew cask list`</code></pre></blockquote><p>Works perfectly.</p><p>Note that you can also run this command using the <strong>-f</strong> flag (force) to force installation.</p><p>- Tal Kain</p>]]></content:encoded></item><item><title><![CDATA[ipython && tmux - saving history to a file]]></title><description><![CDATA[Hey, I had an ipython console open inside a tmux split window and I needed to save the history to a file.]]></description><link>https://www.talkain.com/p/ipython-tmux-saving-history-to-filehtml</link><guid isPermaLink="false">https://www.talkain.com/p/ipython-tmux-saving-history-to-filehtml</guid><dc:creator><![CDATA[Tal Kain]]></dc:creator><pubDate>Wed, 16 Sep 2015 03:00:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qJYT!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3ad7fc1-13f0-4949-a46e-aa1d24aa1c79_1280x1280.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey,</p><p>I had an ipython console open inside a tmux split window and I needed to save the history to a file.</p><p>Since I can't copy &amp; paste the data from the screen (I was in the middle of a session, so the next time I would configure it correctly using&nbsp;<a href="http://unix.stackexchange.com/questions/26548/write-all-tmux-scrollback-to-a-file">this</a>).</p><p>So I found a quicker way,&nbsp;<a href="http://stackoverflow.com/users/1271595/roberto-z">Roberto Z</a>&nbsp;wrote in his <a href="http://stackoverflow.com/a/9720341/132847">comment</a>&nbsp;that in order to save the session's history you can use <strong>readline</strong>&nbsp;package:</p><blockquote><p>import readline</p></blockquote><p>readline.write_history_file('/home/user/current_history')</p><p> This works like a charm in Ubuntu.</p><p> - Tal Kain</p>]]></content:encoded></item><item><title><![CDATA[Linux: iptables: Removing a collection of iptables rules at once]]></title><description><![CDATA[Here is a small trick for removing several iptables rules at once,]]></description><link>https://www.talkain.com/p/linux-iptables-removing-collection-ofhtml</link><guid isPermaLink="false">https://www.talkain.com/p/linux-iptables-removing-collection-ofhtml</guid><dc:creator><![CDATA[Tal Kain]]></dc:creator><pubDate>Wed, 09 Sep 2015 03:00:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qJYT!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3ad7fc1-13f0-4949-a46e-aa1d24aa1c79_1280x1280.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Here is a small trick for removing several iptables rules at once,</p><p>Let's assume we would like to add some rules:</p><blockquote><p>iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE</p></blockquote><p> I can use the comment match and add a comment to this line:</p><blockquote><p>iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE <strong>-m comment --comment "SOME_COMMENT"</strong></p></blockquote><p>Now, cleaning all the relevant rules in a simple command would be:</p><blockquote><p># iptables-save | grep -v SOME_COMMENT | iptables-restore</p></blockquote><p>&nbsp;Probably not the best way to do it, but it's simple and fast.</p><p>Have fun,</p><p>-Tal Kain</p>]]></content:encoded></item><item><title><![CDATA[Installing NVIDIA CUDA on an Amazon Web Services (AWS) machine (Ubuntu 14.04)]]></title><description><![CDATA[Disclaimer: I wrote this post several months ago and did not publish it for unknown reason, I assume that the information below is still relevant and correct.]]></description><link>https://www.talkain.com/p/installing-nvidia-cuda-on-amazon-webhtml</link><guid isPermaLink="false">https://www.talkain.com/p/installing-nvidia-cuda-on-amazon-webhtml</guid><dc:creator><![CDATA[Tal Kain]]></dc:creator><pubDate>Wed, 02 Sep 2015 18:18:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qJYT!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3ad7fc1-13f0-4949-a46e-aa1d24aa1c79_1280x1280.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Disclaimer: I wrote this post several months ago and did not publish it for unknown reason, I assume that the information below is still relevant and correct.</p><p>While trying to install the machine, I started my research by reading&nbsp;<strong>Traun Leyden</strong>'s&nbsp;great blog&nbsp;post:&nbsp;<a href="http://tleyden.github.io/blog/2014/10/25/cuda-6-dot-5-on-aws-gpu-instance-running-ubuntu-14-dot-04/">http://tleyden.github.io/blog/2014/10/25/cuda-6-dot-5-on-aws-gpu-instance-running-ubuntu-14-dot-04/</a>&nbsp;(you should too)</p><p>Amazon offers two types of machines that includes GPUs (<a href="https://aws.amazon.com/ec2/instance-types/#g2">https://aws.amazon.com/ec2/instance-types/#g2</a>)</p><blockquote><p>High-performance NVIDIA GPUs, each with 1,536 CUDA cores and 4GB of video memory</p></blockquote><p> While writing this post, I used the&nbsp;<strong>g2.2xlarge&nbsp;</strong>machine, but you can also use the 8xlarge.</p><p>This will be quick and simple:</p><p>1. Make sure you are fully up-to-date</p><blockquote><p>sudo apt-get update &amp;&amp; sudo apt-get upgrade &amp;&amp; sudo apt-get dist-upgrade</p></blockquote><p> &nbsp;When prompted, choose the "install maintainer package...."</p><p>2. Reboot the machine (so it will load the new kernel)</p><p>3. Install the kernel's header files</p><blockquote><p>sudo apt-get install -y linux-image-extra-virtual linux-headers-`uname -r`</p></blockquote><p> 3. Configure the xorg-edgers PPA</p><blockquote><p>sudo add-apt-repository ppa:xorg-edgers/ppa</p></blockquote><p>sudo apt-get update 4. Install the NVIDIA's CUDA repository package</p><blockquote><p>OUTPUT_PATH=/tmp/cuda.deb</p></blockquote><p>wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_7.0-28_amd64.deb -O ${OUTPUT_PATH}</p><p>dpkg -i ${OUTPUT_PATH}</p><p>&nbsp;5. Update the package manager and install CUDA</p><blockquote><p>sudo apt-get update</p></blockquote><p>sudo apt-get install cuda</p><p> 6. Make sure everything is installed as expected:</p><blockquote><p>sudo nvidia-smi -a</p></blockquote><p>7. You can also compile and run a sample to make sure everything is ready:</p><blockquote><p>cd /usr/local/cuda/samples/1_Utilities/deviceQuery</p></blockquote><p>make</p><p>./deviceQuery</p><p>That's all!</p><p>- Tal Kain</p>]]></content:encoded></item><item><title><![CDATA[Ubuntu Linux: cannot find modules.dep.bin]]></title><description><![CDATA[While trying to load some kernel modules in one of my projects, I encounter the following errors:]]></description><link>https://www.talkain.com/p/ubuntu-linux-cannot-find-modulesdepbinhtml</link><guid isPermaLink="false">https://www.talkain.com/p/ubuntu-linux-cannot-find-modulesdepbinhtml</guid><dc:creator><![CDATA[Tal Kain]]></dc:creator><pubDate>Sat, 21 Mar 2015 10:27:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qJYT!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3ad7fc1-13f0-4949-a46e-aa1d24aa1c79_1280x1280.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>While trying to load some kernel modules in one of my projects, I encounter the following errors:</p><blockquote><p>root@ubuntu:~# modprobe carl9170</p></blockquote><p>modprobe: ERROR: ../libkmod/libkmod.c:556 kmod_search_moddep() could not open moddep file '/lib/modules/3.10.17/modules.dep.bin'</p><p>and the following error:</p><blockquote><p>modprobe: ERROR: ../libkmod/libkmod-index.c:821 index_mm_open() magic check fail: d00dfeed instead of b007f457</p></blockquote><p>To solve this issue, run <strong>depmod</strong></p><p># depmod</p><p>From <a href="http://manpages.ubuntu.com/manpages/dapper/man8/depmod.8.html">http://manpages.ubuntu.com/manpages/dapper/man8/depmod.8.html</a>:</p><blockquote><p>"depmod creates a list of module dependencies, by reading each module</p></blockquote><p>under <a href="file:///lib/modules/">/lib/modules/</a>version and determining what symbols it exports, and</p><p>what symbols it needs. By default this list is written to modules.dep</p><p>in the same directory. If filenames are given on the command line,</p><p>only those modules are examined (which is rarely useful, unless all</p><p>modules are listed)."</p><p>After running depmod, everything should work as expected.</p><p>- Tal Kain</p>]]></content:encoded></item><item><title><![CDATA[Ubuntu: schroot cannot bind the home directory]]></title><description><![CDATA[Hey everyone,]]></description><link>https://www.talkain.com/p/ubuntu-schroot-cannot-bind-homehtml</link><guid isPermaLink="false">https://www.talkain.com/p/ubuntu-schroot-cannot-bind-homehtml</guid><dc:creator><![CDATA[Tal Kain]]></dc:creator><pubDate>Fri, 06 Feb 2015 08:26:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qJYT!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3ad7fc1-13f0-4949-a46e-aa1d24aa1c79_1280x1280.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<pre><code>Hey everyone,</code></pre><pre><code></code></pre><pre><code>Several weeks ago I had to compile gdb and strace to a target device that runs on ARM (EBI).&nbsp;</code></pre><pre><code>This time, instead of cross compile it, I decided to use my favorite way - schroot environment.</code></pre><pre><code></code></pre><pre><code></code></pre><pre><code>I had the pleasure of using schroot on my old system - an Ubuntu 12.04 desktop, and this was the first time I needed to use it on my current Ubuntu 14.04 system.</code></pre><pre><code></code></pre><pre><code></code></pre><pre><code>The problem started after creating the schroot environment and trying to use it.</code></pre><pre><code></code></pre><pre><code>As you will see in the following lines, I tried getting into the environment and got an error:</code></pre><pre><code></code></pre><blockquote><p>root@ubuntu:/home/talkain# schroot -c ubuntu-armel -u talkain</p></blockquote><p>W: line 11 [ubuntu-i386] union-type: Configuration key name &#8216;union-type&#8217; is not a permitted name.</p><p>W: line 11 [ubuntu-armel] union-type: Configuration key name &#8216;union-type&#8217; is not a permitted name.</p><p><strong>W: Failed to change to directory &#8216;/home/talkain&#8217;: No such file or directoryI: The directory does not exist inside the chroot. Use the --directory option to run the command in a different directory.</strong>W: Falling back to directory &#8216;/&#8217;</p><p>(ubuntu-armel)talkain@ubuntu:/$</p><pre><code></code></pre><pre><code>This was weird, since the directory exist, I had permissions to this directory (this is my home directory) and this was a fresh installation of this environment.</code></pre><pre><code></code></pre><pre><code>After digging a little bit, I found an excellent start point here:</code></pre><pre><code>https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=675189</code></pre><pre><code></code></pre><pre><code>So I looked at the schroot's config file:</code></pre><pre><code></code></pre><pre><code>/etc/schroot/chroot.d/sbuild-ubuntu-armel:

[ubuntu-armel]
description=ubuntu-armel
groups=sbuild,root
root-groups=sbuild,root
# Uncomment these lines to allow members of these groups to access
# the -source chroots directly (useful for automated updates, etc).
#source-root-users=sbuild,root
#source-root-groups=sbuild,root
type=file
profile=sbuild
union-type=overlayfs
file=/var/lib/schroot/tarballs/ubuntu-armel.tgz
So in order to solve this error, I changed the schroot configuration file's parameter called "profile" from sbuild to default as follows:

profile=sbuild
to

profile=default
and now I can get into the schroot environment with no issues.
</code></pre><pre><code></code></pre><pre><code></code></pre><pre><code>Hope this helps,</code></pre><pre><code>- Tal Kain</code></pre>]]></content:encoded></item><item><title><![CDATA[Ubuntu: Installing a missing ath3k firmware]]></title><description><![CDATA[While trying to prepare a new Ubuntu box to use a new card based on the Atheros chipset, I encounter the following error:]]></description><link>https://www.talkain.com/p/ubuntu-installing-missing-ath3k-firmwarehtml</link><guid isPermaLink="false">https://www.talkain.com/p/ubuntu-installing-missing-ath3k-firmwarehtml</guid><dc:creator><![CDATA[Tal Kain]]></dc:creator><pubDate>Thu, 22 Jan 2015 08:09:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qJYT!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3ad7fc1-13f0-4949-a46e-aa1d24aa1c79_1280x1280.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>While trying to prepare a new Ubuntu box to use a new card based on the Atheros chipset, I encounter the following error:</p><blockquote><p><strong>Bluetooth: Firmware file "ath3k-1.fw" not found</strong></p></blockquote><p>According to&nbsp;<a href="http://wireless.kernel.org/en/users/Drivers/ath3k">http://wireless.kernel.org/en/users/Drivers/ath3k</a>:</p><blockquote><p>ath3k is the Linux Bluetooth driver for Atheros AR3011/AR3012 Bluetooth chipsets.</p></blockquote><p> I saw this blog post: <a href="http://hexwave.blogspot.com/2011/04/debian-6-with-atheros-3011-ath3k-usb.html">http://hexwave.blogspot.com/2011/04/debian-6-with-atheros-3011-ath3k-usb.html</a></p><p>So I decided to try installing the package <strong>linux-firmware</strong> which contains the relevant file (I used&nbsp;<a href="http://manpages.ubuntu.com/manpages/trusty/man1/dlocate.1.html">dlocate</a>&nbsp;to</p><blockquote><p>$ dlocate linux-firmware | grep -i ath3</p></blockquote><p>linux-firmware: /lib/firmware/ath3k-1.fw or you can find it by searching for ath3k:</p><blockquote><p>$ dlocate ath3k-1.fw</p></blockquote><p>linux-firmware: /lib/firmware/ath3k-1.fw I just ran:</p><blockquote><p># apt-get install linux-firmware</p></blockquote><p>and it fixed it by installing the missing firmware file.</p><p>Good luck!</p><p>Tal Kain</p>]]></content:encoded></item><item><title><![CDATA[Ubuntu && Python: Solving "ImportError: No module named OpenSSL"]]></title><description><![CDATA[In order to easily solve the following Python import error on Ubuntu systems:]]></description><link>https://www.talkain.com/p/ubuntu-python-solving-importerror-nohtml</link><guid isPermaLink="false">https://www.talkain.com/p/ubuntu-python-solving-importerror-nohtml</guid><dc:creator><![CDATA[Tal Kain]]></dc:creator><pubDate>Mon, 29 Sep 2014 19:41:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qJYT!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3ad7fc1-13f0-4949-a46e-aa1d24aa1c79_1280x1280.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In order to easily solve the following Python import error on Ubuntu systems:</p><blockquote><p>ImportError: No module named OpenSSL</p></blockquote><p>You can install the relevant package using the following command:</p><blockquote><p>$ sudo apt-get install&nbsp;python-openssl</p></blockquote><p> &nbsp;The other option would be to install the OpenSSL paackage using Python's <a href="http://en.wikipedia.org/wiki/Pip_(package_manager)">pip</a>:</p><blockquote><p>$ sudo pip install pyOpenSSL</p></blockquote><p>Good luck!</p><p>- Tal Kain</p>]]></content:encoded></item><item><title><![CDATA[Ubuntu and Gnome: Moving the Close, Maximize and Minimize buttons to the right corner.]]></title><description><![CDATA[A quick tip:]]></description><link>https://www.talkain.com/p/ubuntu-and-gnome-moving-close-maximizehtml</link><guid isPermaLink="false">https://www.talkain.com/p/ubuntu-and-gnome-moving-close-maximizehtml</guid><dc:creator><![CDATA[Tal Kain]]></dc:creator><pubDate>Sat, 27 Sep 2014 19:28:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qJYT!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3ad7fc1-13f0-4949-a46e-aa1d24aa1c79_1280x1280.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A quick tip:</p><p>One of the first things that I do after setting a new Ubuntu system is changing the location of the Close &amp;&amp; Minimize &amp;&amp; Maximize buttons to be on the right side of the window.</p><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Wts7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71865eeb-1100-4780-b79b-8cfa63a54209_90x29.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Wts7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71865eeb-1100-4780-b79b-8cfa63a54209_90x29.png 424w, https://substackcdn.com/image/fetch/$s_!Wts7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71865eeb-1100-4780-b79b-8cfa63a54209_90x29.png 848w, https://substackcdn.com/image/fetch/$s_!Wts7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71865eeb-1100-4780-b79b-8cfa63a54209_90x29.png 1272w, https://substackcdn.com/image/fetch/$s_!Wts7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71865eeb-1100-4780-b79b-8cfa63a54209_90x29.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Wts7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71865eeb-1100-4780-b79b-8cfa63a54209_90x29.png" width="400" height="128" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/71865eeb-1100-4780-b79b-8cfa63a54209_90x29.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:128,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Wts7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71865eeb-1100-4780-b79b-8cfa63a54209_90x29.png 424w, https://substackcdn.com/image/fetch/$s_!Wts7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71865eeb-1100-4780-b79b-8cfa63a54209_90x29.png 848w, https://substackcdn.com/image/fetch/$s_!Wts7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71865eeb-1100-4780-b79b-8cfa63a54209_90x29.png 1272w, https://substackcdn.com/image/fetch/$s_!Wts7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71865eeb-1100-4780-b79b-8cfa63a54209_90x29.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a><p>There are several ways to achieve this, but the simplest way is using the command line, running the following command:</p><blockquote><p>gsettings set org.gnome.desktop.wm.preferences button-layout ":minimize,maximize,close"</p></blockquote><p> (The colon should be on the left side of the string)</p><p>-Tal</p>]]></content:encoded></item><item><title><![CDATA[Ubuntu: Fixing issues with apt-get after installing Steam client]]></title><description><![CDATA[After installing the latest Steam client (http://store.steampowered.com/) on my Ubuntu 14.04 using the Ubuntu Software Center, I decided to install another package using the package manager.]]></description><link>https://www.talkain.com/p/ubuntu-fixing-issues-with-apt-get-afterhtml</link><guid isPermaLink="false">https://www.talkain.com/p/ubuntu-fixing-issues-with-apt-get-afterhtml</guid><dc:creator><![CDATA[Tal Kain]]></dc:creator><pubDate>Tue, 08 Jul 2014 20:00:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qJYT!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3ad7fc1-13f0-4949-a46e-aa1d24aa1c79_1280x1280.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>After installing the latest Steam client (<a href="http://store.steampowered.com/">http://store.steampowered.com/</a>) on my Ubuntu 14.04 using the Ubuntu Software Center, I decided to install another package using the package manager.</p><p>As a first step I ran <strong>apt-get update</strong>, which (you guessed correctly) failed fetching several index files:</p><blockquote><p>Err https://private-ppa.launchpad.net precise/main amd64 Packages &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</p></blockquote><p>&nbsp; HttpError401</p><p>Err https://private-ppa.launchpad.net precise/main i386 Packages &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</p><p>&nbsp; HttpError401</p><p>Ign https://private-ppa.launchpad.net precise/main Translation-en_US &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</p><p>Ign http://security.ubuntu.com trusty-security/main Translation-en_US &nbsp; &nbsp;</p><p>.....</p><blockquote><p>...&nbsp;</p></blockquote><blockquote><p>W: Failed to fetch https://private-ppa.launchpad.net/commercial-ppa-uploaders/steam/ubuntu/dists/precise/main/binary-amd64/Packages &nbsp;HttpError401</p></blockquote><p>W: Failed to fetch https://private-ppa.launchpad.net/commercial-ppa-uploaders/steam/ubuntu/dists/precise/main/binary-i386/Packages &nbsp;HttpError401</p><p>E: Some index files failed to download. They have been ignored, or old ones used instead.</p><p> Searching for a possible reason led me to <a href="https://launchpad.net/~xeranas">Art&#363;ras Norkus (xeranas)</a>'s&nbsp;answer:&nbsp;<a href="https://bugs.launchpad.net/ubuntu/+source/software-center/+bug/1130945/comments/4">https://bugs.launchpad.net/ubuntu/+source/software-center/+bug/1130945/comments/4</a></p><p> It seems that my <strong>/etc/apt/auth.conf</strong> pointed to an incorrect username (a user that was used to merge between 2 different accounts that I had), changing the username to my current username fixed the problem and I was able to update the index files with no errors/warnings.</p><p> That's all,</p><p> Tal Kain</p>]]></content:encoded></item><item><title><![CDATA[Running virt-manager from its master branch (1.0.1) on Ubuntu 14.04]]></title><description><![CDATA[Hey all,]]></description><link>https://www.talkain.com/p/running-virt-manager-from-its-masterhtml</link><guid isPermaLink="false">https://www.talkain.com/p/running-virt-manager-from-its-masterhtml</guid><dc:creator><![CDATA[Tal Kain]]></dc:creator><pubDate>Mon, 07 Jul 2014 20:24:00 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/bada00df-a9c7-47b6-ba7b-0e1e68f135c5_843x674.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey all,</p><p>After upgrading my system from Ubuntu 12.04 to Ubuntu 14.04 I decided to check whether the latest package of <strong>virt-manager</strong>&nbsp;(&nbsp;<a href="http://virt-manager.org/">http://virt-manager.org/</a> )&nbsp;comes with the feature that I needed the most - snapshots.</p><p>Unfortunately, The current Ubuntu 14.04's version of virt-manager is still based on the 0.9 branch,</p><p>So I decided to clone the latest version from the project's git repository (&nbsp;<a href="https://git.fedorahosted.org/git/virt-manager.git">https://git.fedorahosted.org/git/virt-manager.git</a> ) and try it out.</p><p>While doing so, I had several issues which I will list here so you won't have to waste your time doing the same research.</p><p><strong>Summary for busy people</strong></p><p>There are several packages that you will need to install:</p><blockquote><p>$ sudo apt-get install gir1.2-libvirt-glib-1.0 python-ipaddr libosinfo-bin libosinfo-1.0-dev libgtk-3-dev gir1.2-gtk-vnc-2.0 python-spice-client-gtk gir1.2-spice-client-gtk-3.0</p></blockquote><p> This should fix all the following issues.</p><p><strong>End of summary for busy people</strong></p><p>After the git-clone's process was over, I read the README and INSTALL files, which told me that I should just run the virt-manager script <strong>./virt-manager</strong>&nbsp;from the root directory. This was the result:</p><blockquote><p>$:~/work/virt-manager$ ./virt-manager</p></blockquote><p>ERROR:root:Could not find any typelib for LibvirtGLib</p><p>Traceback (most recent call last):</p><p>&nbsp; File "./virt-manager", line 30, in &lt;module&gt;</p><p>&nbsp; &nbsp; from gi.repository import LibvirtGLib</p><p><strong>ImportError: cannot import name LibvirtGLib</strong></p><p>According to <a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=736547">https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=736547</a> you should install <strong>gir1.2-libvirt-glib-1.0</strong>:</p><blockquote><p>sudo apt-get install gir1.2-libvirt-glib-1.0</p></blockquote><p>Running the virt-manager again will produce:</p><blockquote><p>Traceback (most recent call last):</p></blockquote><p>&nbsp; File "./virt-manager", line 32, in &lt;module&gt;</p><p>&nbsp; &nbsp; from virtinst import util as util</p><p>&nbsp; File "/home/tal/work/virt-manager/virtinst/__init__.py", line 40, in &lt;module&gt;</p><p>&nbsp; &nbsp; from virtinst.interface import Interface, InterfaceProtocol</p><p>&nbsp; File "/home/tal/work/virt-manager/virtinst/interface.py", line 26, in &lt;module&gt;</p><p>&nbsp; &nbsp; import ipaddr</p><p><strong>ImportError: No module named ipaddr</strong></p><p>Searching for the python package using apt-cache:</p><blockquote><p>apt-cache search ipaddr</p></blockquote><p>Revealed the python-ipaddr package:</p><blockquote><p>sudo apt-get install python-ipaddr</p></blockquote><p>Moving forward and running again:</p><blockquote><p>ERROR:root:Could not find any typelib for Libosinfo</p></blockquote><p>Traceback (most recent call last):</p><p>&nbsp; File "./virt-manager", line 32, in &lt;module&gt;</p><p>&nbsp; &nbsp; from virtinst import util as util</p><p>&nbsp; File "/home/tal/work/virt-manager/virtinst/__init__.py", line 70, in &lt;module&gt;</p><p>&nbsp; &nbsp; from virtinst.distroinstaller import DistroInstaller</p><p>&nbsp; File "/home/tal/work/virt-manager/virtinst/distroinstaller.py", line 32, in &lt;module&gt;</p><p>&nbsp; &nbsp; from virtinst import urlfetcher</p><p>&nbsp; File "/home/tal/work/virt-manager/virtinst/urlfetcher.py", line 35, in &lt;module&gt;</p><p>&nbsp; &nbsp; from virtinst import osdict</p><p>&nbsp; File "/home/tal/work/virt-manager/virtinst/osdict.py", line 25, in &lt;module&gt;</p><p>&nbsp; &nbsp; from gi.repository import Libosinfo as libosinfo</p><p><strong>ImportError: cannot import name Libosinfo</strong></p><p>This was solved by installing libosinfo-1.0-dev and libosinfo-bin:</p><blockquote><p>sudo apt-get install libosinfo-bin libosinfo-1.0-dev</p></blockquote><p>This time the application successfully ran, but pressing the "Open" button generates the following error:</p><blockquote><p>Error launching details: cannot import name GtkVnc</p></blockquote><p>Traceback (most recent call last):</p><p>&nbsp; File "/home/tal/work/virt-manager/virtManager/engine.py", line 753, in _show_vm_helper</p><p>&nbsp; &nbsp; details = self._get_details_dialog(uri, vm.get_connkey())</p><p>&nbsp; File "/home/tal/work/virt-manager/virtManager/engine.py", line 731, in _get_details_dialog</p><p>&nbsp; &nbsp; obj = vmmDetails(conn.get_vm(connkey))</p><p>&nbsp; File "/home/tal/work/virt-manager/virtManager/details.py", line 495, in __init__</p><p>&nbsp; &nbsp; from virtManager.console import vmmConsolePages</p><p>&nbsp; File "/home/tal/work/virt-manager/virtManager/console.py", line 26, in &lt;module&gt;</p><p>&nbsp; &nbsp; from gi.repository import GtkVnc</p><p><strong>ImportError: cannot import name GtkVnc</strong></p><p>After reading <a href="https://www.redhat.com/archives/virt-tools-list/2014-March/msg00128.html">https://www.redhat.com/archives/virt-tools-list/2014-March/msg00128.html</a> and <a href="https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1188846.html">https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1188846.html</a>:</p><blockquote><p>sudo apt-get install libgtk-3-dev gir1.2-gtk-vnc-2.0</p></blockquote><p>Which led to the next issue:</p><blockquote><p>Error launching details: cannot import name SpiceClientGtk</p></blockquote><p>Traceback (most recent call last):</p><p>&nbsp; File "/home/tal/work/virt-manager/virtManager/engine.py", line 753, in _show_vm_helper</p><p>&nbsp; &nbsp; details = self._get_details_dialog(uri, vm.get_connkey())</p><p>&nbsp; File "/home/tal/work/virt-manager/virtManager/engine.py", line 731, in _get_details_dialog</p><p>&nbsp; &nbsp; obj = vmmDetails(conn.get_vm(connkey))</p><p>&nbsp; File "/home/tal/work/virt-manager/virtManager/details.py", line 495, in __init__</p><p>&nbsp; &nbsp; from virtManager.console import vmmConsolePages</p><p>&nbsp; File "/home/tal/work/virt-manager/virtManager/console.py", line 27, in &lt;module&gt;</p><p>&nbsp; &nbsp; from gi.repository import SpiceClientGtk</p><p><strong>ImportError: cannot import name SpiceClientGtk</strong></p><p>Now, I ran the following command:</p><blockquote><p>sudo apt-get install python-spice-client-gtk gir1.2-spice-client-gtk-3.0</p></blockquote><p>Finally! Now you should be able to easily run your new virt-manager.</p><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CRRV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5ac8d2-e9d7-44f6-b0bd-68dd1c020933_843x674.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CRRV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5ac8d2-e9d7-44f6-b0bd-68dd1c020933_843x674.png 424w, https://substackcdn.com/image/fetch/$s_!CRRV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5ac8d2-e9d7-44f6-b0bd-68dd1c020933_843x674.png 848w, https://substackcdn.com/image/fetch/$s_!CRRV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5ac8d2-e9d7-44f6-b0bd-68dd1c020933_843x674.png 1272w, https://substackcdn.com/image/fetch/$s_!CRRV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5ac8d2-e9d7-44f6-b0bd-68dd1c020933_843x674.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CRRV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5ac8d2-e9d7-44f6-b0bd-68dd1c020933_843x674.png" width="400" height="318" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ab5ac8d2-e9d7-44f6-b0bd-68dd1c020933_843x674.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:318,&quot;width&quot;:400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CRRV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5ac8d2-e9d7-44f6-b0bd-68dd1c020933_843x674.png 424w, https://substackcdn.com/image/fetch/$s_!CRRV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5ac8d2-e9d7-44f6-b0bd-68dd1c020933_843x674.png 848w, https://substackcdn.com/image/fetch/$s_!CRRV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5ac8d2-e9d7-44f6-b0bd-68dd1c020933_843x674.png 1272w, https://substackcdn.com/image/fetch/$s_!CRRV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab5ac8d2-e9d7-44f6-b0bd-68dd1c020933_843x674.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><p>NOTE: This post was written based on the master branch with a specific commit (aa823b5b58d689e2a69a9822fd462a1333d8d415) since the current state had a small issue creating new machines<strong> </strong>(I sent a patch&nbsp;<a href="https://www.redhat.com/archives/virt-tools-list/2014-July/msg00051.html">https://www.redhat.com/archives/virt-tools-list/2014-July/msg00051.html</a>).</p><p>Have fun!</p><p>Tal Kain</p>]]></content:encoded></item><item><title><![CDATA[BinDiff error: "Can't start disassembler. Please set correct path in the main settings first"]]></title><description><![CDATA[After installing BinDiff and running the application for the first time on my Windows 7 x64 machine, I tried comparing two different binaries but got an error in the middle of the process:]]></description><link>https://www.talkain.com/p/bindiff-error-cant-start-disassemblerhtml</link><guid isPermaLink="false">https://www.talkain.com/p/bindiff-error-cant-start-disassemblerhtml</guid><dc:creator><![CDATA[Tal Kain]]></dc:creator><pubDate>Sat, 26 Apr 2014 08:23:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qJYT!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3ad7fc1-13f0-4949-a46e-aa1d24aa1c79_1280x1280.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>After installing&nbsp;<a href="http://www.zynamics.com/bindiff.html">BinDiff</a>&nbsp;and running the application for the first time on my Windows 7 x64 machine, I tried comparing two different binaries but got an error in the middle of the process:</p><blockquote><p>Can't start disassembler. Please set correct path in the main settings first</p></blockquote><p>The solution for this error is very simple:</p><p>While installing BinDiff, the installation process asks for the installation path of IDA. The default path (on x64 machine) would be C:\Program Files (x86)\IDA\. <strong>This is not always correct.</strong></p><p>At my case the installation was at C:\Program Files (x86)\IDA 6.3\.</p><p>Moving the path inside BinDiff will not be sufficient since part of BinDiff's files are still on the old directory.</p><p>Easiest way to fix it (or by doing it in advance): Uninstall BinDiff and install it while pointing to the correct IDA's path.</p><p>-Tal</p>]]></content:encoded></item><item><title><![CDATA[Python PIP Error: Unable to find vcvarsall.bat]]></title><description><![CDATA[While trying to install the Python's PIL package on my Windows 7 machine using pip I came across this error:]]></description><link>https://www.talkain.com/p/python-pip-error-unable-to-findhtml</link><guid isPermaLink="false">https://www.talkain.com/p/python-pip-error-unable-to-findhtml</guid><dc:creator><![CDATA[Tal Kain]]></dc:creator><pubDate>Sat, 26 Apr 2014 08:17:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qJYT!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd3ad7fc1-13f0-4949-a46e-aa1d24aa1c79_1280x1280.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>While trying to install the Python's&nbsp;<a href="https://pypi.python.org/pypi/PIL">PIL</a>&nbsp;package on my Windows 7 machine using&nbsp;<a href="https://pypi.python.org/pypi/pip">pip</a>&nbsp;I came across this error:</p><blockquote><p>Error: Unable to find vcvarsall.bat</p></blockquote><p>Although I had Visual Studio 2010 installed, and made sure the batch file exists and the batch file creates the compilation environment correctly, I still got this error.</p><p>Googling the issue brought this <a href="http://stackoverflow.com/questions/2817869/error-unable-to-find-vcvarsall-bat">question</a>&nbsp;with this specific&nbsp;<a href="http://stackoverflow.com/a/10558328/132847">solution</a>.</p><p>The short answer (credits to&nbsp;<a href="http://stackoverflow.com/users/105643/fmuecke">fmuecke</a>) is to point the environment variable&nbsp;<strong>VS90COMNTOOLS</strong> to the value of &nbsp;<strong>VS100COMNTOOLS</strong>.</p><blockquote><p>SET VS90COMNTOOLS=%VS100COMNTOOLS%</p></blockquote><p>This solved the issue.</p><p>-Tal</p>]]></content:encoded></item><item><title><![CDATA[Saving space on an SSD hard drive using Sysinternal’s Junction]]></title><description><![CDATA[Not so long ago I decided to buy myself a new computer (since my old one could handle the pressure), I bought myself two hard drives:]]></description><link>https://www.talkain.com/p/saving-space-on-ssd-hard-drive-usinghtml</link><guid isPermaLink="false">https://www.talkain.com/p/saving-space-on-ssd-hard-drive-usinghtml</guid><dc:creator><![CDATA[Tal Kain]]></dc:creator><pubDate>Sun, 04 Mar 2012 10:18:00 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/69637c36-ac4f-47fb-b33f-bb248cc4f049_529x36.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Not so long ago I decided to buy myself a new computer (since my old one could handle the pressure), I bought myself two hard drives:</p><ol><li><p>OCZ Vertex2 60GB</p></li><li><p>Western Digital Caviar Blue (1TB)</p></li></ol><p>The SSD for the operating system and the Caviar Blue for all my data.</p><p>I installed my Windows 7 Ultimate edition (with no SP1), Visual Studio, Office and updated them all using Windows Update.</p><p>After doing so, I was amazed to find out that I had only 20GB left on my SSD drive &#8211; bummer&#8230;</p><p>In order to find out what is taking me so much space I used WinDirStat (<a href="http://windirstat.info/">http://windirstat.info</a>) and find out that my C:\WINDOWS\Installer folder took almost 6GB of my expensive SSD space!</p><p>After searching the web for a while I found out about Mark Russinovich&#8217;s tool called "Junction"</p><p>From his site (<a href="http://technet.microsoft.com/en-us/sysinternals/bb896768">http://technet.microsoft.com/en-us/sysinternals/bb896768</a>):</p><blockquote><p>Windows 2000 and higher supports directory symbolic links, where a directory serves as a symbolic link to another directory on the computer. For example, if the directory D:\SYMLINK specified C:\WINNT\SYSTEM32 as its target, then an application accessing D:\SYMLINK\DRIVERS would in reality be accessing C:\WINNT\SYSTEM32\DRIVERS. Directory symbolic links are known as NTFS junctions in Windows. Unfortunately, Windows comes with no tools for creating junctions&#8212;you have to purchase the Win2K Resource Kit, which comes with the linkd program for creating junctions. I therefore decided to write my own junction-creating tool: Junction.Junction not only allows you to create NTFS junctions, it allows you to see if files or directories are actually reparse points. Reparse points are the mechanism on which NTFS junctions are based, and they are used by Windows&#8217; Remote Storage Service (RSS), as well as volume mount points.</p></blockquote><p>So I have downloaded Junction, created a folder (with the correct credentials of course) on my other hard drive and pointed C:\WINDOWS\Installer to the new folder... success! Everything is working as expected (Windows Update) and I just cleared 6GB from my SSD hard drive&#8230;</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pQTI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36926cbe-2b2b-4bc0-8d21-3b745cbf36f5_529x36.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pQTI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36926cbe-2b2b-4bc0-8d21-3b745cbf36f5_529x36.png 424w, https://substackcdn.com/image/fetch/$s_!pQTI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36926cbe-2b2b-4bc0-8d21-3b745cbf36f5_529x36.png 848w, https://substackcdn.com/image/fetch/$s_!pQTI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36926cbe-2b2b-4bc0-8d21-3b745cbf36f5_529x36.png 1272w, https://substackcdn.com/image/fetch/$s_!pQTI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36926cbe-2b2b-4bc0-8d21-3b745cbf36f5_529x36.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pQTI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36926cbe-2b2b-4bc0-8d21-3b745cbf36f5_529x36.png" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/36926cbe-2b2b-4bc0-8d21-3b745cbf36f5_529x36.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!pQTI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36926cbe-2b2b-4bc0-8d21-3b745cbf36f5_529x36.png 424w, https://substackcdn.com/image/fetch/$s_!pQTI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36926cbe-2b2b-4bc0-8d21-3b745cbf36f5_529x36.png 848w, https://substackcdn.com/image/fetch/$s_!pQTI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36926cbe-2b2b-4bc0-8d21-3b745cbf36f5_529x36.png 1272w, https://substackcdn.com/image/fetch/$s_!pQTI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36926cbe-2b2b-4bc0-8d21-3b745cbf36f5_529x36.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p> You can download Junction from here: <a href="http://technet.microsoft.com/en-us/sysinternals/bb896768">http://technet.microsoft.com/en-us/sysinternals/bb896768</a></p><p>(Using instructions can be found under the download page)</p><p>-Tal</p>]]></content:encoded></item></channel></rss>