<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:tt="http://teletype.in/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Vadim Frolov</title><generator>teletype.in</generator><description><![CDATA[Vadim Frolov]]></description><link>https://teletype.in/@fralik?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=fralik</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/fralik?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/fralik?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Tue, 26 May 2026 10:11:02 GMT</pubDate><lastBuildDate>Tue, 26 May 2026 10:11:02 GMT</lastBuildDate><item><guid isPermaLink="true">https://teletype.in/@fralik/plot-over-video-in-matlab</guid><link>https://teletype.in/@fralik/plot-over-video-in-matlab?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=fralik</link><comments>https://teletype.in/@fralik/plot-over-video-in-matlab?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=fralik#comments</comments><dc:creator>fralik</dc:creator><title>Plot over video in Matlab</title><pubDate>Fri, 08 Apr 2022 14:40:50 GMT</pubDate><description><![CDATA[Imagine you want to plot something on top of a video/images in Matlab and save it back to video. One example will be a video tracking app. You do the tracking and want to save the full video results for later presentation. If you Google for it, then the most likely the answer will be to use `hold`:]]></description><content:encoded><![CDATA[
  <p id="2AUF">Imagine you want to plot something on top of a video/images in Matlab and save it back to video. One example will be a video tracking app. You do the tracking and want to save the full video results for later presentation. If you Google for it, then the most likely the answer will be to use &#x60;hold&#x60;:</p>
  <p id="Zj3Y">&#x60;&#x60;&#x60;<br />I = imread(&#x27;cameraman.tif&#x27;);<br />figure, imshow(I, [])<br />hold on;<br />plot(118, 61, &#x27;or&#x27;, &#x27;markersize&#x27;, 35, &#x27;markerfacecolor&#x27;, &#x27;r&#x27;);<br />&#x60;&#x60;&#x60;</p>
  <p id="j17f">Looks good you think. Go ahead and make it in a loop to create video. If you do and you have at least a 5 minutes video, then you&#x27;d just freed your afternoon. This is about how long it will take.</p>
  <p id="4xhA">### For the inpatient<br />The summary of this post is the reference to one of Matlab&#x27;s functions. [insertShape](https://se.mathworks.com/help/vision/ref/insertshape.html) available from R2014a. Have a look. Below I just explain why you should really use &#x60;insertShape&#x60;.</p>
  <p id="nLpb">### Moving on<br />Let&#x27;s measure the time of Matlab&#x27;s code for a fun. I have a test video, which is 1920x1090 MPEG-4 H264 video. Let&#x27;s make a new one with a constant circle.<br />&#x60;&#x60;&#x60;<br />source = VideoReader(&#x27;test.mp4&#x27;);<br />dst = VideoWriter(&#x27;test-naive&#x27;, &#x27;MPEG-4&#x27;);<br />dst.FrameRate = source.FrameRate;</p>
  <p id="mIer">open(dst)</p>
  <p id="lpn1">fprintf(&#x27;Started on %s\n&#x27;, datestr(now));<br />tic;<br />try<br />    while hasFrame(source)<br />        vidFrame = readFrame(source);<br />        imshow(vidFrame);<br />        hold on;<br />        plot(100, 100, &#x27;or&#x27;, &#x27;MarkerSize&#x27;, 50, &#x27;MarkerFaceColor&#x27;, &#x27;r&#x27;);<br />        hold off;<br />        <br />        writeVideo(dst, getframe(gcf));<br />    end<br />catch ME<br />    % no error handling, just display the exception<br />    ME<br />end<br />elapsedTime = toc;<br />fprintf(&#x27;Finished on %s\n&#x27;, datestr(now));<br />fprintf(&#x27;Tic/toc measure is %f sec\n&#x27;, elapsedTime);</p>
  <p id="Jmym">clear readerObj;<br />close(dst);<br />&#x60;&#x60;&#x60;</p>
  <p id="sSDj">And the results are<br />&#x60;&#x60;&#x60;<br />Started on 16-Apr-2018 19:42:17<br />Warning: Image is too big to fit on screen; displaying at 67% <br />&gt; In images.internal.initSize (line 71)<br />  In imshow (line 336)<br />  In videoNaive (line 18) <br />Finished on 16-Apr-2018 19:51:31<br />Tic/toc measure is 554.421488 sec<br />&#x60;&#x60;&#x60;<br />*I will get to the warning later.*<br />Almost 10 minutes! OK. Not much for a free afternoon, but perhaps still quite some time for such a tiny job. I run that test on Windows 10 x64 machine with both integrated and dedicated graphics card (used simultaneously) and in Matlab R2018a. Not that the specs matter that much as I did tests on different machines and the results were similar.</p>
  <p id="nMQi">To illustrate how fast can it be, let&#x27;s use Python to do the same thing. I won&#x27;t go into details about setting your Python environment up. You will need working openCV and numPy in order to run the example code.</p>
  <p id="1D0x">&#x60;&#x60;&#x60;<br />## Visualize tracker<br />import numpy as np<br />import cv2<br />import os<br />from datetime import datetime</p>
  <p id="FE93">rawVideo = &#x27;test.mp4&#x27;<br />outVideo = &#x27;test_python.avi&#x27;<br />markerSize = 9<br />frameCounter = -1</p>
  <p id="qw1i">cap = cv2.VideoCapture(rawVideo)<br />fourcc = cv2.VideoWriter_fourcc(*&#x27;X264&#x27;)<br />out = cv2.VideoWriter(outVideo, fourcc, 25.0, (1920,1080))</p>
  <p id="KQIA">if not cap.isOpened():<br />    print(&#x27;Cap is not opened&#x27;)</p>
  <p id="iLsb">print(&quot;Started at {0}&quot;.format(datetime.now().time()))</p>
  <p id="uB5Z">while (cap.isOpened()):<br />    ret, frame = cap.read()<br />    frameCounter += 1<br />    if ret == False:<br />        break</p>
  <p id="A7PU">    x = int(100)<br />    y = int(100)<br />    cv2.circle(frame, (x, y), markerSize, (0, 0, 240), -1)</p>
  <p id="xhKn">    out.write(frame)</p>
  <p id="se3N"><br />print(&quot;Ended at {0}&quot;.format(datetime.now().time()))<br />cap.release()<br />out.release()<br />cv2.destroyAllWindows()<br />print(&#x27;done&#x27;)<br />&#x60;&#x60;&#x60;</p>
  <p id="2osi">And the output is<br />&#x60;&#x60;&#x60;<br />Started at 20:20.12.771219<br />Ended at 20:21:43.550657<br />&#x60;&#x60;&#x60;<br />**WHAT?!** One and a half minute it is!</p>
  <p id="BHbq">By observing the code you can see the obvious difference: Python doesn&#x27;t display the image to user, whereas Matlab displays the image, plots on top, grabs the frame from what has been displayed, writes the frame. Of course it is inefficient. Matlab&#x27;s Computer Vision Systems Toolbox has a function to deal with such situations. It&#x27;s named [insertShape](https://se.mathworks.com/help/vision/ref/insertshape.html) and it first appeared in R2014a. </p>
  <p id="ZudU">Let&#x27;s see how it looks with that function.<br />&#x60;&#x60;&#x60;<br />source = VideoReader(&#x27;test.mp4&#x27;);<br />dst = VideoWriter(&#x27;test-insertShape&#x27;, &#x27;MPEG-4&#x27;);<br />dst.FrameRate = source.FrameRate;</p>
  <p id="4ByA">open(dst)<br />curAxes = axes;<br />hold on;<br />set(curAxes, &#x27;nextplot&#x27;, &#x27;replacechildren&#x27;);</p>
  <p id="5Lp1">fprintf(&#x27;Started on %s\n&#x27;, datestr(now));<br />tic;<br />try<br />    while hasFrame(source)<br />        vidFrame = readFrame(source);<br />        vidFrame = insertShape(vidFrame, &#x27;FilledCircle&#x27;, [100 100 50], &#x27;Color&#x27;, &#x27;red&#x27;, &#x27;Opacity&#x27;, 1);<br />        writeVideo(dst, vidFrame);<br />    end<br />catch ME<br />    % no error handling, just display the exception<br />    ME<br />end<br />elapsedTime = toc;<br />fprintf(&#x27;Finished on %s\n&#x27;, datestr(now));<br />fprintf(&#x27;Tic/toc measure is %f sec\n&#x27;, elapsedTime);</p>
  <p id="5UfG">clear readerObj;<br />close(dst);<br />&#x60;&#x60;&#x60;</p>
  <p id="9PHs">And the results are</p>
  <p id="rZMK">&#x60;&#x60;&#x60;<br />Started on 16-Apr-2018 20:33:14<br />Finished on 16-Apr-2018 20:36:12<br />Tic/toc measure is 177.690809 sec<br />&#x60;&#x60;&#x60;</p>
  <p id="SK9b">That&#x27;s the way to go! 3 minutes, which is still longer than Python version, but obviously much better than the original *hold on* version.</p>
  <p id="t4Ul">*Bonus*.<br />Remember that warning from the first version of Matlab&#x27;s code? If you watch the video, you will see that it is not your original 1920x1080. In my case, it is 1454x814 with space around the frame (the regular Matlab image saving artifacts). However, code with &#x60;insertShape&#x60; produced a video as we would expect it to do.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@fralik/fixing-easygui-toolbox</guid><link>https://teletype.in/@fralik/fixing-easygui-toolbox?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=fralik</link><comments>https://teletype.in/@fralik/fixing-easygui-toolbox?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=fralik#comments</comments><dc:creator>fralik</dc:creator><title>Fixing EasyGUI toolbox</title><pubDate>Mon, 28 Dec 2020 08:37:09 GMT</pubDate><media:content medium="image" url="https://teletype.in/files/a9/ce/a9cee339-996c-44e8-a45b-c618d8e93d70.png"></media:content><description><![CDATA[<img src="https://teletype.in/files/55/00/55009431-3b37-46e7-91ff-9b6f1dc53919.gif"></img>Recently I came across a Matlab toolbox [EasyGUI](https://se.mathworks.com/matlabcentral/fileexchange/22936-easygui). Following its name, It supposes to ease the development of GUI apps in Matlab. A typical use case is very familiar: you need a convenient way for a user to enter a numeric value and for your program to get it as a variable. You know how it goes: you make a label, then an edit box, then you write a callback to get the value or to act upon value change. You can go further and add a slider, connect slider with your edit box. You end up with a lot of boilerplate code. Then you might need another user-entered value, so you will need to repeat all the steps from above. And on it goes.]]></description><content:encoded><![CDATA[
  <p>Recently I came across a Matlab toolbox [EasyGUI](<a href="https://se.mathworks.com/matlabcentral/fileexchange/22936-easygui" target="_blank">https://se.mathworks.com/matlabcentral/fileexchange/22936-easygui</a>). Following its name, It supposes to ease the development of GUI apps in Matlab. A typical use case is very familiar: you need a convenient way for a user to enter a numeric value and for your program to get it as a variable. You know how it goes: you make a label, then an edit box, then you write a callback to get the value or to act upon value change. You can go further and add a slider, connect slider with your edit box. You end up with a lot of boilerplate code. Then you might need another user-entered value, so you will need to repeat all the steps from above. And on it goes.</p>
  <p>EasyGUI handles all the boilerplate for you. You want a value, you get the value.</p>
  <p>EasyGUI is a classic abandonware. It has been written in pre R2014b era (it&#x27;s first version dates back to 2009). R2018a is the current Matlab release as of the time of writing. EasyGUI has no maintenance support, but seems like people still try to use it since it had been MATLAB Central [pick of the week](<a href="https://blogs.mathworks.com/pick/2009/03/06/gui-layout-part-5/" target="_blank">https://blogs.mathworks.com/pick/2009/03/06/gui-layout-part-5/</a>). If you read EasyGUI&#x27;s latest comments on File Exchange, you will see people say EasyGUI does not work. When I first tried it, I had exactly the same problem as others: I followed the example, fixed some string case errors and ended up with a figure without any controls. Or at least without any visible controls. I could just move on to another toolbox, but at the same time I was tempted to figure out what was wrong with it. And I wanted to use EasyGUI in a small program I had to write anyway. </p>
  <p>EasyGUI uses an undocumented control [uiflowcontainer](<a href="https://undocumentedmatlab.com/blog/matlab-layout-managers-uicontainer-and-relatives" target="_blank">https://undocumentedmatlab.com/blog/matlab-layout-managers-uicontainer-and-relatives</a>) under the hood. When you create, say a slider, several controls are created. Important stuff: <code>uiflowcontainer</code> is used as a container, the rest of widgets are created as it&#x27;s children. <code>Uiflowcontainer</code> by itself a child of some other container. EasyGUI uses classes, events, interfaces, custom position class and it might be hard to figure out what happens where. On top of it comes good encapsulation. Internal variables are marked as private and you can&#x27;t inspect them from outside (unless you modify the code, of course).</p>
  <p>The confusing no widgets situation happens when people follow an example and use autogui widget. Autogui creates a layout and maintains position of all of its children. Here is the layout hierarchy from the source code of autogui:</p>
  <pre>UiHandle
  UiMainContainer [uiflowcontainer] - contains guiarea &amp; plotarea
     UiPlotArea [uipanel]
     UiGuiArea [uipanel]
         UiGuiPanelGroup [uiflowcontainer]
            UiCurrentGuiPanel [uiflowcontainer]</pre>
  <p><code>UiGuiPanelGroup</code> can have multiple children whereas the currently active panel is referenced through <code>UiCurrentGuiPanel</code>. When all these panels are created, there are no widgets assigned to them. EasyGUI resizes <code>UiGuiArea</code>/<code>UiGuiPanelGroup</code> to be 1x1 pixel. When a new widget is added to <code>UiCurrentGuiPanel</code>, it is expanded to accommodate the new widget. Let&#x27;s have a look at it&#x27;s size at different stages. Here is the code in R2017b:</p>
  <pre>&gt;&gt; mg = gui.autogui;
&gt;&gt; fprintf(&#x27;UiGuiPanelGroup before any widgets\n\tPosition: [%u %u %u %u], HeightLimits: [%u %u]\n&#x27;, get(mg.UiGuiPanelGroup, &#x27;Position&#x27;), get(mg.UiGuiPanelGroup, &#x27;HeightLimits&#x27;));
UiGuiPanelGroup before any widgets
    Position: [1 1 556 416]
&gt;&gt; mass = gui.slider(&#x27;mass&#x27;, [10 20], mg);
&gt;&gt; fprintf(&#x27;UiGuiPanelGroup after adding one widget\n\tPosition: [%u %u %u %u]\n&#x27;, get(mg.UiGuiPanelGroup, &#x27;Position&#x27;));
UiGuiPanelGroup after adding one widget
    Position: [1 1 556 416]</pre>
  <p>And the same code in 2014a:</p>
  <pre>&gt;&gt; mg = gui.autogui;
&gt;&gt; fprintf(&#x27;UiGuiPanelGroup before any widgets\n\tPosition: [%u %u %u %u]\n&#x27;, get(mg.UiGuiPanelGroup, &#x27;Position&#x27;));
 UiGuiPanelGroup after adding one widget
    Position: [1 1 201 0]
&gt;&gt; mass = gui.slider(&#x27;mass&#x27;, [10 20], mg);
&gt;&gt; fprintf(&#x27;UiGuiPanelGroup after adding one widget\n\tPosition: [%u %u %u %u]\n&#x27;, get(mg.UiGuiPanelGroup, &#x27;Position&#x27;));
UiGuiPanelGroup after adding one widget
    Position: [1 1 201 56]</pre>
  <p>Now, you see that in R2017b height is big right from the beginning. Height is adjusted dynamically in R2014a. I think it works correctly in R2014b because of figure visibility set to off (and some internal Matlab processing of invisible figures). If one adds a single fprintf, that accesses <code>UiGuiPanelGroup</code> position inside the constructor of gui.autogui, then the whole thing stops working! Here it is:</p>
  <pre>&gt;&gt; mg = gui.autogui;
Position of UiGuiPanelGroup right after creation: [1 1 556 416]</pre>
  <p>So the problem is that panel is too tall, widgets are placed outside the main figure. Hence they are invisible to user.</p>
  <p>Without going any much deeper into it, there are several ways to change the above behaviour:</p>
  <ol>
    <li>Make <code>UiGuiPanelGroup</code> height appropriate right from the beginning and change it only if the main container&#x27;s height is changed.</li>
    <li>Dynamically change <code>UiGuiPanelGroup</code> whenever <code>UiGuiArea</code> is changed.</li>
    <li>Do not do any size management, introduce a dependency from a different layout library. For example, one can use [GUI Layout Toolbox](<a href="https://se.mathworks.com/matlabcentral/fileexchange/47982-gui-layout-toolbox" target="_blank">https://se.mathworks.com/matlabcentral/fileexchange/47982-gui-layout-toolbox</a>). However, some size management can still be needed.</li>
    <li>Use normalized units instead of pixels. This will ensure that children are updated when parent is resized.</li>
  </ol>
  <p>As I wanted a quick fix I decided to go with 2. The code available on [GitHub](<a href="https://github.com/kavli-ntnu/EasyGUI" target="_blank">https://github.com/kavli-ntnu/EasyGUI</a>) and [File Exchange](<a href="http://se.mathworks.com/matlabcentral/fileexchange/66728-easygui" target="_blank">http://se.mathworks.com/matlabcentral/fileexchange/66728-easygui</a>). Note that I didn&#x27;t improve the overall structure of the toolbox by modern standards. There is no packaging, tests, and good documentation.</p>
  <p><strong>Bonus</strong></p>
  <p>Label widget allows to control top and bottom margin. However, top/bottom margins seems to be swapped. This is fixed as well.</p>
  <p><strong>Bonus 2</strong></p>
  <p>Widgets appear to be clipped at the bottom. This is the consequence of internal size management. I fixed it as well.</p>
  <p>I think that the library still needs a good code refactoring. Just have a look at this nice bug in the original version happening when user changes widget&#x27;s label location multiple times in a row.</p>
  <figure class="m_original">
    <img src="https://teletype.in/files/55/00/55009431-3b37-46e7-91ff-9b6f1dc53919.gif" width="764" />
  </figure>
  <p>If anyone interested in contributing, you know where the source code is. The license is EasyGUI&#x27;s original license, which resembles MIT to me. However, as people do say in such cases - this is not a legal advise, consult your lawyer if needed.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@fralik/2333.html</guid><link>https://teletype.in/@fralik/2333.html?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=fralik</link><comments>https://teletype.in/@fralik/2333.html?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=fralik#comments</comments><dc:creator>fralik</dc:creator><title>http://vadimfrolov.blogspot.com/</title><pubDate>Sun, 25 Feb 2007 12:28:26 GMT</pubDate><description><![CDATA[http://vadimfrolov.blogspot.com/]]></description><content:encoded><![CDATA[
  <p><a href="http://vadimfrolov.blogspot.com/" target="_blank">http://vadimfrolov.blogspot.com/</a></p>
  <p>now I will post there. Hope it is the last change of the posting place.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@fralik/2092.html</guid><link>https://teletype.in/@fralik/2092.html?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=fralik</link><comments>https://teletype.in/@fralik/2092.html?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=fralik#comments</comments><dc:creator>fralik</dc:creator><title>After Poker.</title><pubDate>Wed, 24 Jan 2007 21:20:26 GMT</pubDate><description><![CDATA[<img src="https://imgprx.livejournal.net/b7d4e8b59e5334584b0ce5716e1458d32291d768/bnp1qGX_KnblV5w7vrrAQu7ovDa0OJ4J0hsHVGe8NDomlnRi95Septo0beGaPt-s35wNBnp2WvqB4t2U6MrQsUoDOvzKLsw6qoQhq0RSPm8"></img>]]></description><content:encoded><![CDATA[
  <figure>
    <img src="https://imgprx.livejournal.net/b7d4e8b59e5334584b0ce5716e1458d32291d768/bnp1qGX_KnblV5w7vrrAQu7ovDa0OJ4J0hsHVGe8NDomlnRi95Septo0beGaPt-s35wNBnp2WvqB4t2U6MrQsUoDOvzKLsw6qoQhq0RSPm8" />
  </figure>
  <figure>
    <img src="https://imgprx.livejournal.net/ff613d9ed40af5a2c35c93c91f7bd90f227b0d92/bnp1qGX_KnblV5w7vrrAQsejqmJwcPXBnCdNi91SSjIuTQB5_de54oB_PX8oIZWjT78atPhXcjKYaEiL8q6HwKhig2QocJcdZK24Af2CuXs" />
  </figure>
  <figure>
    <img src="https://imgprx.livejournal.net/6b3a16626abdad03a123a9cbc1693ee29c9845df/bnp1qGX_KnblV5w7vrrAQiLsBGOvkXkwfev8v5YoD7ghCmbOG2fVt1PqbSLnMesOfbhO55KyKf1Xu4MqkYk6LKq6ghDNdmjqlbr_btvCF24" />
  </figure>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@fralik/1826.html</guid><link>https://teletype.in/@fralik/1826.html?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=fralik</link><comments>https://teletype.in/@fralik/1826.html?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=fralik#comments</comments><dc:creator>fralik</dc:creator><title>Here comes the Poker II</title><pubDate>Wed, 24 Jan 2007 21:12:58 GMT</pubDate><description><![CDATA[<img src="https://imgprx.livejournal.net/b7d00a526828c68f1989dab6a94feebcbc872938/SxZTEL4P9-4qCVwPpxPjy51vzPTIQQAOrQl3kQ3IOTG3q-lWiqghxoXvFWRcHKDLjfyyCy4mJj7Ldnx8Zo1RJMpPrKsAUsbok56AjiVAVmo"></img>]]></description><content:encoded><![CDATA[
  <figure>
    <img src="https://imgprx.livejournal.net/b7d00a526828c68f1989dab6a94feebcbc872938/SxZTEL4P9-4qCVwPpxPjy51vzPTIQQAOrQl3kQ3IOTG3q-lWiqghxoXvFWRcHKDLjfyyCy4mJj7Ldnx8Zo1RJMpPrKsAUsbok56AjiVAVmo" />
  </figure>
  <figure>
    <img src="https://imgprx.livejournal.net/9e9308caea301ed275a0e8a4d38a620cae3574ba/SxZTEL4P9-4qCVwPpxPjyyY4SPrX5CMbcIZFwjw6YoHC-V1_0rZUN7XM49N8hZcHgpLx77LSCZgeyAABJT7NX6RsyTHMNgQ5rBgUhq7IPws" />
  </figure>
  <figure>
    <img src="https://imgprx.livejournal.net/3b160674251de0301cfe074b1528ec283ed444bf/SxZTEL4P9-4qCVwPpxPjy4IfGEmnxZiDmiCdFUtQLe9Mx3VE89SUoK4OWHGsiMpUCXD-PEW1neUxMgW6FBQry1SFz5YWK0JVjpOefh0t9kY" />
  </figure>
  <figure>
    <img src="https://imgprx.livejournal.net/6c9dc1c18bc5b1c4c65175c7e958bbdcb3454e6e/SxZTEL4P9-4qCVwPpxPjyx3DU9u87CIf7HjVuqojBf1UD08TxHHZyQ3fD_d4nEyv9n4iBWWoqSf1k1Ajuv0FAiQVYMvwmcbjjU8h2GAfNHE" />
  </figure>
  <figure>
    <img src="https://imgprx.livejournal.net/56e623fc29a84433c62b9e4495c5f497c00d1024/SxZTEL4P9-4qCVwPpxPjywE1lmuz-6PeuaGJj8AERz8EwTHafPWK6B7Axg1Hbc5Cujmn7QfVQyJnzfyQxhJrfwOFP1bwU1ngYvpqS_OY6Cc" />
  </figure>
  <figure>
    <img src="https://imgprx.livejournal.net/629f72ee7ab6181a6436889d06734fd54915eb77/SxZTEL4P9-4qCVwPpxPjywE1lmuz-6PeuaGJj8AERz8EwTHafPWK6B7Axg1Hbc5CF398EHUaElCT2X4-q5X1WS09VjlRqM8It_oU_dSjp08" />
  </figure>
  <figure>
    <img src="https://imgprx.livejournal.net/f20fa68e6261e61f353259ce8e93652b3e92e956/SxZTEL4P9-4qCVwPpxPjy5kUXroEL62m8DND5izduHl-I-NBmqXZHACpNEavxaAKa_gzCD6OfQK4EIQlSuGocmpyQPKq7zkiSqpIqQKrI5w" />
  </figure>
  <figure>
    <img src="https://imgprx.livejournal.net/6994596152fe8b73362f75b0c3fe44c0d8ffe8a0/SxZTEL4P9-4qCVwPpxPjyyGW8NmNUT6WIR_KG5QtktUxeEMhzAe28YA3xgNrgEzKjqUzjx4gB6Beszck3bObbZhDvLUaLmvl2fSkXXaBBB8" />
  </figure>
  <figure>
    <img src="https://imgprx.livejournal.net/36a54b96d7dec7d359d9ed8dbf161eaa0deb2c91/SxZTEL4P9-4qCVwPpxPjyyMBK_AU7yDMYcNmufjVddEhYX4Cjf31OLSaHkH7Nt-LZkyrN7vpFVGv4R0mYAsI1PAxhbcPXz7yCt0wcWeEvNE" />
  </figure>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@fralik/1630.html</guid><link>https://teletype.in/@fralik/1630.html?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=fralik</link><comments>https://teletype.in/@fralik/1630.html?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=fralik#comments</comments><dc:creator>fralik</dc:creator><title>Here comes the Poker</title><pubDate>Wed, 24 Jan 2007 20:59:22 GMT</pubDate><description><![CDATA[<img src="https://imgprx.livejournal.net/77a4e140316abeeba18dc3ee6997c228304d65cc/9hnzEN9cQwctizmiXCPuqLDZ787tDhck90lmrdr3Nyq_lkRDwB1yTxPx73mK-pM30iOQFlLVvdk0k__A0K0rtbTYlfeL9b_BGT1ctD6r180"></img>Gunter in the Uni]]></description><content:encoded><![CDATA[
  <p>Gunter in the Uni</p>
  <figure>
    <img src="https://imgprx.livejournal.net/77a4e140316abeeba18dc3ee6997c228304d65cc/9hnzEN9cQwctizmiXCPuqLDZ787tDhck90lmrdr3Nyq_lkRDwB1yTxPx73mK-pM30iOQFlLVvdk0k__A0K0rtbTYlfeL9b_BGT1ctD6r180" />
  </figure>
  <p>Here comes the Poker</p>
  <figure>
    <img src="https://imgprx.livejournal.net/1b3646184d9aaa2e1f3f8ff393f1e5d0f2d5275f/9hnzEN9cQwctizmiXCPuqBqxydqNETr7dGBUcfGmYwGMhmxRuFP8el5ieCDg0fGBxuGMrThBEVliS3OlXFi0w5RIhK9emwnE__sYnDIF2zQ" />
  </figure>
  <figure>
    <img src="https://imgprx.livejournal.net/ec4112231dd80c16503a990b1e8e375a34acd819/9hnzEN9cQwctizmiXCPuqAEaAKoyLdk6VKqOiY8GrW70PWH0FmFqJiq1o1HsKq5RM9BxXthm2YQ6lHjjkVUoGqJpUvMu0gP0xSDRJp7B1Io" />
  </figure>
  <figure>
    <img src="https://imgprx.livejournal.net/22ff0add8252644135af80c7ae068ea55e067192/9hnzEN9cQwctizmiXCPuqLa4PbWb-GD10VU2380Gr3VoLeg7Xxsa6HyWEFW0QbkaHuNj8ERtLYGtIQBu1hMhLViwrF6DkHijYQ0SSoTDP14" />
  </figure>
  <figure>
    <img src="https://imgprx.livejournal.net/83c13c999ddae0d92fe47962d6648e4ada608fb7/9hnzEN9cQwctizmiXCPuqNIwqe4cbHM1smFIsi3Sw7Ck1DeLz5EIdm26_ISZhgaztOZR9i0wLPnL7udtsjGZQcA17O1mggz48bBNjgqfSl8" />
  </figure>
  <figure>
    <img src="https://imgprx.livejournal.net/9f7fcf13e5b3b9fea37bfb32cb1c6fe64db2d409/9hnzEN9cQwctizmiXCPuqESmP0HPrcLDw9Mbs3hwRAI7FCClmJbvJ_xtLgD4f_FPImWUUNG5rSL2fsADIjYi_gG_uetIh-5KSJcX3yPV3ao" />
  </figure>
  <p>to be continued...</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@fralik/1455.html</guid><link>https://teletype.in/@fralik/1455.html?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=fralik</link><comments>https://teletype.in/@fralik/1455.html?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=fralik#comments</comments><dc:creator>fralik</dc:creator><title>ночь</title><pubDate>Thu, 18 Jan 2007 21:02:14 GMT</pubDate><description><![CDATA[<img src="https://imgprx.livejournal.net/170e270dd269e92bbee9cce9e55032b368cd5067/miczUXtFBe64bqNbsvZX0m1SnFuLp-wi0Ui6Qm0rT-UwOjEqsvIR7N5vs6dB4ya3oCsR-3YLKwmwPmuQRVPIyURXxT1L0pwvPLgdtLA75y0"></img>Пока вокруг бушует ураган немного побаловался с ночной съемкой. Это около дома.
Тихо и спокойно в 10 часов вечера.]]></description><content:encoded><![CDATA[
  <p>Пока вокруг бушует ураган немного побаловался с ночной съемкой. Это около дома.<br />Тихо и спокойно в 10 часов вечера.</p>
  <figure>
    <img src="https://imgprx.livejournal.net/170e270dd269e92bbee9cce9e55032b368cd5067/miczUXtFBe64bqNbsvZX0m1SnFuLp-wi0Ui6Qm0rT-UwOjEqsvIR7N5vs6dB4ya3oCsR-3YLKwmwPmuQRVPIyURXxT1L0pwvPLgdtLA75y0" />
  </figure>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@fralik/1248.html</guid><link>https://teletype.in/@fralik/1248.html?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=fralik</link><comments>https://teletype.in/@fralik/1248.html?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=fralik#comments</comments><dc:creator>fralik</dc:creator><title>18 Января</title><pubDate>Thu, 18 Jan 2007 19:17:33 GMT</pubDate><description><![CDATA[<img src="https://imgprx.livejournal.net/36289626178d01665431fd17a8e0e37c1ad63176/N1_EayQp2176Iab2YwV-YI9_L-fpNHNno64Im6NzrujcHsuy5ySKBnw9hNCqAfwvl4q3ZFNhlgQEGdC-9w7EnndnwzvyJRbhDlP6qAll-Tk"></img>Просто небольшая прогулка к метро...]]></description><content:encoded><![CDATA[
  <p>Просто небольшая прогулка к метро...</p>
  <figure>
    <img src="https://imgprx.livejournal.net/36289626178d01665431fd17a8e0e37c1ad63176/N1_EayQp2176Iab2YwV-YI9_L-fpNHNno64Im6NzrujcHsuy5ySKBnw9hNCqAfwvl4q3ZFNhlgQEGdC-9w7EnndnwzvyJRbhDlP6qAll-Tk" />
  </figure>
  <figure>
    <img src="https://imgprx.livejournal.net/5d0d95666fbc9113ecc4c6619b51a1fff55fc0cd/N1_EayQp2176Iab2YwV-YPLlp0e9_W1V255-72s_6xwu6EJdMd9cA_1dfWQqnVxeDy82Vd4OI5A86WZCEW83L6nFRm3tPQT_WDIZBWCFQww" />
  </figure>
  <figure>
    <img src="https://imgprx.livejournal.net/3a8420c008cbd4237b771fdd25ebbcf57fcf74d1/N1_EayQp2176Iab2YwV-YA-kRkDBatvmB79_tfX4wqdCGwvI_CgsG7qhO1rjlFJs4feu9k7JOOmYRqVqaJCFmU8hSRSHEt1tyGqv9LhZiQM" />
  </figure>
  <figure>
    <img src="https://imgprx.livejournal.net/59a841355d904e49e562d98130ffb5385f8fd610/N1_EayQp2176Iab2YwV-YJ_pbao8hGui0FZHWnirUn4UJHYhIbuNwLDzC9Cn4BuHEPbX-HIFoknrLwmnZfwd_9TJZzXhLV87HnfLB3yYEJQ" />
  </figure>
  <figure>
    <img src="https://imgprx.livejournal.net/cfa3a2080501f4b813d2beda4bbc6415d683d5ef/N1_EayQp2176Iab2YwV-YHV67rrflJhEWMvjfDjNd8GSpmzguwby0HFd0skFOoZ2BkGRIIEanEPaMlyC2SOUHFZZDL63HT3M7c2BS_TxjNE" />
  </figure>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@fralik/781.html</guid><link>https://teletype.in/@fralik/781.html?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=fralik</link><comments>https://teletype.in/@fralik/781.html?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=fralik#comments</comments><dc:creator>fralik</dc:creator><title>13 января</title><pubDate>Thu, 18 Jan 2007 19:10:54 GMT</pubDate><description><![CDATA[<img src="https://imgprx.livejournal.net/b213245dca83bf512adebca65ba5408fd45b64f5/yAtJys2_uq5fDfSlE51sAdzTYYcUN8hqYwWc5A3snwpOVZ9KmMTOkfXRQAONukyhcqfkTXtAVrBbtiQ4fkjm21O6mimA1-pQNSZkXvaUcYs"></img>центральная площадь Мариенплатц]]></description><content:encoded><![CDATA[
  <figure>
    <img src="https://imgprx.livejournal.net/b213245dca83bf512adebca65ba5408fd45b64f5/yAtJys2_uq5fDfSlE51sAdzTYYcUN8hqYwWc5A3snwpOVZ9KmMTOkfXRQAONukyhcqfkTXtAVrBbtiQ4fkjm21O6mimA1-pQNSZkXvaUcYs" />
  </figure>
  <p>центральная площадь Мариенплатц</p>
  <figure>
    <img src="https://imgprx.livejournal.net/0cafd9aafbdb25c59dbed3e18bda55337520f301/yAtJys2_uq5fDfSlE51sAeHGkuGkeKyHaT0FG9tdLOQS9MUJnjrdReNgdnpPFQ5BfkGbOHj05xIiPfO1T0QD2R6LyJqiFou3FNYwWdAQgHE" />
  </figure>
  <p>Там же.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@fralik/384.html</guid><link>https://teletype.in/@fralik/384.html?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=fralik</link><comments>https://teletype.in/@fralik/384.html?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=fralik#comments</comments><dc:creator>fralik</dc:creator><title>первый нах!</title><pubDate>Thu, 18 Jan 2007 18:47:47 GMT</pubDate><description><![CDATA[Вообщем ничего менять не буду. Буду некоторые фотки из Германии выкладывать, потому как кривые сервисы типа photofile задолбали, а прямых я не знаю.]]></description><content:encoded><![CDATA[
  <p>Вообщем ничего менять не буду. Буду некоторые фотки из Германии выкладывать, потому как кривые сервисы типа photofile задолбали, а прямых я не знаю.</p>
  <p>Mit herzlichem Gruß ;)</p>

]]></content:encoded></item></channel></rss>