forked from Atomidata/Brainacle
/
dejan-noveski.html
704 lines (562 loc) · 38.3 KB
/
dejan-noveski.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
<!DOCTYPE html>
<html lang="en">
<head>
<title>Brainacle - Articles by Dejan Noveski</title>
<meta charset="utf-8" />
<link rel="stylesheet" href=".././theme/css/main.css" type="text/css" />
<link href=".././" type="application/atom+xml" rel="alternate" title="Brainacle ATOM Feed" />
<!--[if IE]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
<!--[if lte IE 7]>
<link rel="stylesheet" type="text/css" media="all" href=".././css/ie.css"/>
<script src=".././js/IE8.js" type="text/javascript"></script><![endif]-->
<!--[if lt IE 7]>
<link rel="stylesheet" type="text/css" media="all" href=".././css/ie6.css"/><![endif]-->
</head>
<body id="index" class="home">
<a href="#index" id="goto-top">TOP</a>
<a href="#extras" id="goto-bottom">Links/Blogroll</a>
<a href="https://github.com/dekomote/Brainacle">
<img style="position: absolute; top: 0; right: 0; border: 0;" src="http://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" alt="Fork me on GitHub" />
</a>
<header id="banner" class="body">
<h1><a href="../."><img src=".././theme/images/brainacle_logo.png" alt="Brainacle "/></a></h1>
<nav><ul>
<li><a href="../.">Home</a></li>
<li><a href=".././pages/pages/about.html">About</a></li>
<li ><a href=".././category/Coding.html">Coding</a></li>
<li ><a href=".././category/Miscellaneous.html">Miscellaneous</a></li>
<li ><a href=".././category/Sys.html">Sys</a></li>
<li><a href=".././archives.html">Archives</a></li>
</ul></nav>
</header><!-- /#banner -->
<aside id="featured" class="body"><article>
<h1 class="entry-title"><a href=".././calculating-image-entropy-with-python-how-and-why.html">Calculating image entropy with Python, How and Why?</a></h1>
<footer class="post-info">
<abbr class="published" title="2010-10-04T12:20:00">
Mon 04 October 2010
</abbr>
<address class="vcard author">
By <a class="url fn" href="#">Dejan Noveski</a>
</address>
<p>In <a href=".././category/Coding.html">Coding</a>. </p>
<p>tags: <a href=".././tag/development.html">development</a> <a href=".././tag/entropy.html">entropy</a> <a href=".././tag/image.html">image</a> <a href=".././tag/pil.html">pil</a> <a href=".././tag/python.html">python</a> </p>
</p>
</footer><!-- /.post-info -->
<div class="section" id="the-why">
<h2>The Why?</h2>
<p>Lets say you are developing a video portal, kinda like youtube/vimeo
and you want to have an automated way of making thumbnails. Since
video manipulation in python is a bit tricky, you might as well make
the thumbnails with <strong>ffmpeg</strong> every [n] seconds. You need 10 thumbnails
for each video, and you want those thumbnails to show parts of it.</p>
<p>If you leave it random, you might end up having thumbnails that show
a black scene or some scene that barely shows anything. Using the
image
entropy, you can sort out the thumbnails based on the <a class="reference external" href="http://www.astro.cornell.edu/research/projects/compression/entropy.html">"business"</a> of
the scene they depict. The technique can be implemented as follows:</p>
<ol class="arabic simple">
<li>Generate n>[thumbnails_needed] thumbnails</li>
<li>Calculate the image entropy for each of them</li>
<li>Sort them by their entropy</li>
<li>Use the first [thumbnails_needed] thumbnails</li>
</ol>
</div>
<div class="section" id="the-how">
<h2>The How?</h2>
<p><strong>Entropy</strong> H of a sampled signal of length N samples is calculated:</p>
<div class="highlight"><pre>H(X) = -1 * sum_1_to_N ( p_i log( p_i ) )
</pre></div>
<p>p_i is the probability of the i-th sample of the signal and can be calculated:</p>
<div class="highlight"><pre>p_i = Histogram(sample)[i]/Length(Histogram(sample))
</pre></div>
<p>All we need to do is to get the histogram list and we can calculate
the entropy.</p>
<p>On a first sight, this sounds like a complex mathematical problem. And
it is, but we will make a little shortcut. We will use the <a class="reference external" href="http://www.pythonware.com/products/pil/">Python
imaging library</a> or <strong>PIL</strong>. This package is de facto standard package for
image manipulation in Python. It is one of the first packages I
install when preparing my development environment (before making
virtualenvs). PIL provides a method for calculating the histogram of
the image and solves most of our problems. The function for
calculating the entropy looks like this:</p>
<div class="highlight"><pre><span class="kn">import</span> <span class="nn">Image</span>
<span class="kn">import</span> <span class="nn">math</span>
<span class="k">def</span> <span class="nf">image_entropy</span><span class="p">(</span><span class="n">img</span><span class="p">):</span>
<span class="sd">"""calculate the entropy of an image"""</span>
<span class="n">histogram</span> <span class="o">=</span> <span class="n">img</span><span class="o">.</span><span class="n">histogram</span><span class="p">()</span>
<span class="n">histogram_length</span> <span class="o">=</span> <span class="nb">sum</span><span class="p">(</span><span class="n">histogram</span><span class="p">)</span>
<span class="n">samples_probability</span> <span class="o">=</span> <span class="p">[</span><span class="nb">float</span><span class="p">(</span><span class="n">h</span><span class="p">)</span> <span class="o">/</span> <span class="n">histogram_length</span> <span class="k">for</span> <span class="n">h</span> <span class="ow">in</span> <span class="n">histogram</span><span class="p">]</span>
<span class="k">return</span> <span class="o">-</span><span class="nb">sum</span><span class="p">([</span><span class="n">p</span> <span class="o">*</span> <span class="n">math</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">samples_probability</span> <span class="k">if</span> <span class="n">p</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">])</span>
<span class="n">img</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s">'headshot.jpg'</span><span class="p">)</span>
<span class="k">print</span> <span class="n">image_entropy</span><span class="p">(</span><span class="n">img</span><span class="p">)</span>
</pre></div>
<p>As you can see, PIL’s method for calculating the histogram really
simplifies things and makes the functions seem slim and simple. All
its left is iterating through set of thumbnails, calculating the
entropy and sorting them.</p>
<p>Remember: <strong>Bigger entropy means more
noise/liveliness/color/business.*</strong> You will usually need the thumbnails
with greater entropy.</p>
</div>
</article></aside><!-- /#featured -->
<section id="content" class="body">
<h1>Other articles</h1>
<hr />
<ol id="posts-list" class="hfeed">
<li><article class="hentry">
<header>
<h1><a href=".././generate960py.html" rel="bookmark" title="Permalink to Generate960.py">Generate960.py</a></h1>
</header>
<div class="entry-content">
<footer class="post-info">
<abbr class="published" title="2011-01-15T12:06:00">
Sat 15 January 2011
</abbr>
<address class="vcard author">
By <a class="url fn" href="#">Dejan Noveski</a>
</address>
<p> In <a href=".././category/Coding.html">Coding</a></p>
<p>tags: <a href=".././tag/python.html">python</a> <a href=".././tag/960gs.html">960gs</a> <a href=".././tag/grids.html">grids</a> <a href=".././tag/design.html">design</a> </p>
</p>
<p></p>
</footer><!-- /.post-info -->
<p>Command line utility script for generating custom <a class="reference external" href="http://960.gs">960gs</a> grids (css). It can generate grids will custom width, column number and gutter width. Outputs to file or stdout.</p>
<div class="section" id="usage">
<h2>Usage</h2>
<div class="highlight"><pre>python generate960.py
</pre></div>
</div>
<div class="section" id="optional-arguments">
<h2>Optional Arguments</h2>
<blockquote>
<table class="docutils option-list" frame="void" rules="none">
<col class="option" />
<col class="description" />
<tbody valign="top">
<tr><td class="option-group">
<kbd><span class="option">-h</span>, <span class="option">--help</span></kbd></td>
<td>show help message and exit</td></tr>
<tr><td class="option-group" colspan="2">
<kbd><span class="option">-w <var>WIDTH</var></span>, <span class="option">--width <var>WIDTH</var></span></kbd></td>
</tr>
<tr><td> </td><td>Content width in px. Defaults to ...</td></tr></tbody></table></blockquote></div>
<a class="readmore" href=".././generate960py.html">read more</a>
</div><!-- /.entry-content -->
</article></li>
<li><article class="hentry">
<header>
<h1><a href=".././how-to-easily-enable-r600g-gallium3d-in-ubuntu-and-ubuntu-derivatives-for-radeon.html" rel="bookmark" title="Permalink to How to easily enable r600g Gallium3D in Ubuntu and Ubuntu derivatives for radeon">How to easily enable r600g Gallium3D in Ubuntu and Ubuntu derivatives for radeon</a></h1>
</header>
<div class="entry-content">
<footer class="post-info">
<abbr class="published" title="2011-01-05T01:47:00">
Wed 05 January 2011
</abbr>
<address class="vcard author">
By <a class="url fn" href="#">Dejan Noveski</a>
</address>
<p> In <a href=".././category/Miscellaneous.html">Miscellaneous</a></p>
<p>tags: <a href=".././tag/linux.html">linux</a> <a href=".././tag/ati.html">ati</a> <a href=".././tag/drivers.html">drivers</a> </p>
</p>
<p></p>
</footer><!-- /.post-info -->
<p>Gallium3D is a software library for 3D graphics device drivers developed by VMware. It's the next big thing in linux graphic drivers world. At the moment, it drives the old (sub r300) ATI graphic cards
and it is in a very active development for NVidia and newer ATI(AMD ...</p>
<a class="readmore" href=".././how-to-easily-enable-r600g-gallium3d-in-ubuntu-and-ubuntu-derivatives-for-radeon.html">read more</a>
</div><!-- /.entry-content -->
</article></li>
<li><article class="hentry">
<header>
<h1><a href=".././how-to-use-django-uni-form-with-twitter-bootstrap-css.html" rel="bookmark" title="Permalink to How to use Django Uni-form with Twitter Bootstrap CSS">How to use Django Uni-form with Twitter Bootstrap CSS</a></h1>
</header>
<div class="entry-content">
<footer class="post-info">
<abbr class="published" title="2012-02-13T20:58:00">
Mon 13 February 2012
</abbr>
<address class="vcard author">
By <a class="url fn" href="#">Dejan Noveski</a>
</address>
<p> In <a href=".././category/Coding.html">Coding</a></p>
<p>tags: <a href=".././tag/python.html">python</a> <a href=".././tag/plugin.html">plugin</a> <a href=".././tag/vim.html">vim</a> <a href=".././tag/coding.html">coding</a> <a href=".././tag/twitter.html">twitter</a> <a href=".././tag/bootstrap.html">bootstrap</a> <a href=".././tag/uniform.html">uniform</a> </p>
</p>
<p></p>
</footer><!-- /.post-info -->
<p>I'm sure, most of you, know what <a class="reference external" href="https://github.com/pydanny/django-uni-form">django-uni-form</a> is... For those that don't, django-uni-form is a
very cool django app that makes form management/styling/layouting a breeze. You can do pretty much anything to a form with it: Split it in formsets, add
HTML between every element ...</p>
<a class="readmore" href=".././how-to-use-django-uni-form-with-twitter-bootstrap-css.html">read more</a>
</div><!-- /.entry-content -->
</article></li>
<li><article class="hentry">
<header>
<h1><a href=".././how-to-use-multiple-wmd-editors-on-a-same-page.html" rel="bookmark" title="Permalink to HOW-TO: Use multiple WMD editors on a same page">HOW-TO: Use multiple WMD editors on a same page</a></h1>
</header>
<div class="entry-content">
<footer class="post-info">
<abbr class="published" title="2011-10-27T15:30:00">
Thu 27 October 2011
</abbr>
<address class="vcard author">
By <a class="url fn" href="#">Dejan Noveski</a>
</address>
<p> In <a href=".././category/Coding.html">Coding</a></p>
<p>tags: <a href=".././tag/wmd.html">wmd</a> <a href=".././tag/markdown.html">markdown</a> <a href=".././tag/javascript.html">javascript</a> <a href=".././tag/how-to.html">how-to</a> <a href=".././tag/coding.html">coding</a> </p>
</p>
<p></p>
</footer><!-- /.post-info -->
<p><a class="reference external" href="http://code.google.com/p/wmd/">WMD</a> editor resembles Stackoverflow's Markdown editor and it's probably one of
the best WYSIWYG editors that work with Markdown as input. Because of that, it's widely used in
Stackoverflow clones (i.e. <a class="reference external" href="http://http://www.osqa.net/">OSQA</a>). It's easy to install and use (just tie it to a
textarea), it ...</p>
<a class="readmore" href=".././how-to-use-multiple-wmd-editors-on-a-same-page.html">read more</a>
</div><!-- /.entry-content -->
</article></li>
<li><article class="hentry">
<header>
<h1><a href=".././how-to-write-vim-plugins-with-python.html" rel="bookmark" title="Permalink to How to write vim plugins with python">How to write vim plugins with python</a></h1>
</header>
<div class="entry-content">
<footer class="post-info">
<abbr class="published" title="2011-02-03T14:58:00">
Thu 03 February 2011
</abbr>
<address class="vcard author">
By <a class="url fn" href="#">Dejan Noveski</a>
</address>
<p> In <a href=".././category/Coding.html">Coding</a></p>
<p>tags: <a href=".././tag/python.html">python</a> <a href=".././tag/plugin.html">plugin</a> <a href=".././tag/vim.html">vim</a> <a href=".././tag/coding.html">coding</a> </p>
</p>
<p></p>
</footer><!-- /.post-info -->
<p>I'm not going to dive into how good or extendible Vim is. If you are reading this
article, you probably know that. The thing that makes Vim so good, is the
scripting environment behind it called VimL. Using this scripting language,
you can write any functionality/plugin you need ...</p>
<a class="readmore" href=".././how-to-write-vim-plugins-with-python.html">read more</a>
</div><!-- /.entry-content -->
</article></li>
<li><article class="hentry">
<header>
<h1><a href=".././install-proprietary-ati-108-drivers-on-ubuntu-lucid-linux-mint.html" rel="bookmark" title="Permalink to Install Proprietary ATI 10.8 drivers on Ubuntu Lucid / Linux Mint">Install Proprietary ATI 10.8 drivers on Ubuntu Lucid / Linux Mint</a></h1>
</header>
<div class="entry-content">
<footer class="post-info">
<abbr class="published" title="2010-09-09T20:55:00">
Thu 09 September 2010
</abbr>
<address class="vcard author">
By <a class="url fn" href="#">Dejan Noveski</a>
</address>
<p> In <a href=".././category/Miscellaneous.html">Miscellaneous</a></p>
<p>tags: <a href=".././tag/linux.html">linux</a> <a href=".././tag/ati.html">ati</a> <a href=".././tag/drivers.html">drivers</a> </p>
</p>
<p></p>
</footer><!-- /.post-info -->
<p>I will digress a bit from the theme of the blog, but seeing a lot of
people having issues with installing the ATI drivers on Ubuntu, I
decided to put my thoughts and experience with it here.</p>
<p>I have experimented with the drivers quite a bit. I own Sapphire
Radeon ...</p>
<a class="readmore" href=".././install-proprietary-ati-108-drivers-on-ubuntu-lucid-linux-mint.html">read more</a>
</div><!-- /.entry-content -->
</article></li>
<li><article class="hentry">
<header>
<h1><a href=".././jqcarousel-three-d.html" rel="bookmark" title="Permalink to JqCarousel Three-D">JqCarousel Three-D</a></h1>
</header>
<div class="entry-content">
<footer class="post-info">
<abbr class="published" title="2010-01-27T19:59:00">
Wed 27 January 2010
</abbr>
<address class="vcard author">
By <a class="url fn" href="#">Dejan Noveski</a>
</address>
<p> In <a href=".././category/Coding.html">Coding</a></p>
<p>tags: <a href=".././tag/javascript.html">javascript</a> <a href=".././tag/jquery.html">jquery</a> <a href=".././tag/plugin.html">plugin</a> <a href=".././tag/ui.html">ui</a> </p>
</p>
<p></p>
</footer><!-- /.post-info -->
<p>This plugin was coded to prove a point. We saw another similar plugin like this,
but it was only for sale with obfuscated code, so I decided to write it and opensource it.
It doesn't have the limited functionality and the custom implementation of the paid ones,
it is ...</p>
<a class="readmore" href=".././jqcarousel-three-d.html">read more</a>
</div><!-- /.entry-content -->
</article></li>
<li><article class="hentry">
<header>
<h1><a href=".././kde-vs-gnome-a-subjective-view.html" rel="bookmark" title="Permalink to KDE vs. Gnome - A Subjective View">KDE vs. Gnome - A Subjective View</a></h1>
</header>
<div class="entry-content">
<footer class="post-info">
<abbr class="published" title="2011-10-29T21:03:00">
Sat 29 October 2011
</abbr>
<address class="vcard author">
By <a class="url fn" href="#">Dejan Noveski</a>
</address>
<p> In <a href=".././category/Miscellaneous.html">Miscellaneous</a></p>
<p>tags: <a href=".././tag/kde.html">kde</a> <a href=".././tag/gnome.html">gnome</a> <a href=".././tag/lxde.html">lxde</a> <a href=".././tag/xfce.html">xfce</a> <a href=".././tag/desktop.html">desktop</a> <a href=".././tag/linux.html">linux</a> <a href=".././tag/miscellaneous.html">miscellaneous</a> </p>
</p>
<p></p>
</footer><!-- /.post-info -->
<p>Past year, a lot has changed with the desktop environments for Linux. Gnome going 3,
Ubuntu going Unity, people going nuts about that. I've been experimenting with all of them trying to
find the one that will serve me good and will evolve at a slower pace. I, being ...</p>
<a class="readmore" href=".././kde-vs-gnome-a-subjective-view.html">read more</a>
</div><!-- /.entry-content -->
</article></li>
<li><article class="hentry">
<header>
<h1><a href=".././kde-vs-gnome-a-subjective-view-update.html" rel="bookmark" title="Permalink to KDE vs. Gnome - A Subjective View : UPDATE">KDE vs. Gnome - A Subjective View : UPDATE</a></h1>
</header>
<div class="entry-content">
<footer class="post-info">
<abbr class="published" title="2012-04-12T00:03:00">
Thu 12 April 2012
</abbr>
<address class="vcard author">
By <a class="url fn" href="#">Dejan Noveski</a>
</address>
<p> In <a href=".././category/Miscellaneous.html">Miscellaneous</a></p>
<p>tags: <a href=".././tag/kde.html">kde</a> <a href=".././tag/gnome.html">gnome</a> <a href=".././tag/desktop.html">desktop</a> <a href=".././tag/linux.html">linux</a> <a href=".././tag/miscellaneous.html">miscellaneous</a> </p>
</p>
<p></p>
</footer><!-- /.post-info -->
<p>Few months ago, I <a class="reference external" href="../static/kde-vs-gnome-a-subjective-view.html">wrote an article</a> on my view on the KDE vs. Gnome - Pros, Cons, stuff that irritates me and stuff
that's good. At that time, I was still a Gnome user. But after a lot of frustrations with the Gnome desktop,
I switched to KDE and ...</p>
<a class="readmore" href=".././kde-vs-gnome-a-subjective-view-update.html">read more</a>
</div><!-- /.entry-content -->
</article></li>
<li><article class="hentry">
<header>
<h1><a href=".././livescape-jquery-live-landscape.html" rel="bookmark" title="Permalink to Livescape jQuery Live Landscape">Livescape jQuery Live Landscape</a></h1>
</header>
<div class="entry-content">
<footer class="post-info">
<abbr class="published" title="2009-12-15T19:56:00">
Tue 15 December 2009
</abbr>
<address class="vcard author">
By <a class="url fn" href="#">Dejan Noveski</a>
</address>
<p> In <a href=".././category/Coding.html">Coding</a></p>
<p>tags: <a href=".././tag/javascript.html">javascript</a> <a href=".././tag/jquery.html">jquery</a> <a href=".././tag/plugin.html">plugin</a> <a href=".././tag/code.html">code</a> <a href=".././tag/ui.html">ui</a> </p>
</p>
<p></p>
</footer><!-- /.post-info -->
<p>The idea behind this plugin is to have some kind of landscape container that
will contain objects moving inside of it e.g. sky with the clouds moving.
The plugin is built simple, has simple implementation, it is very easy to
use, yet very flexible. You only need the landscape ...</p>
<a class="readmore" href=".././livescape-jquery-live-landscape.html">read more</a>
</div><!-- /.entry-content -->
</article></li>
<li><article class="hentry">
<header>
<h1><a href=".././multiseating-with-kde-and-xbmc-like-a-boss.html" rel="bookmark" title="Permalink to Multiseating with KDE and XBMC Like a boss">Multiseating with KDE and XBMC Like a boss</a></h1>
</header>
<div class="entry-content">
<footer class="post-info">
<abbr class="published" title="2012-05-27T21:03:00">
Sun 27 May 2012
</abbr>
<address class="vcard author">
By <a class="url fn" href="#">Dejan Noveski</a>
</address>
<p> In <a href=".././category/Miscellaneous.html">Miscellaneous</a></p>
<p>tags: <a href=".././tag/kde.html">kde</a> <a href=".././tag/xbmc.html">xbmc</a> <a href=".././tag/desktop.html">desktop</a> <a href=".././tag/linux.html">linux</a> <a href=".././tag/miscellaneous.html">miscellaneous</a> <a href=".././tag/multiseat.html">multiseat</a> <a href=".././tag/xorg.html">xorg</a> </p>
</p>
<p></p>
</footer><!-- /.post-info -->
<div class="section" id="id1">
<h2><a class="reference external" href="http://brainacle.com/multiseating-with-kde-and-xbmc-like-a-boss-update.html">UPDATED with udev, modular configuration and less headache here.</a></h2>
<p>Linux multi-seat setup is a setup where multiple users can use the same PC simultaneously.
You have a monitor and input devices for each of those users, and a separate X session for all.
It's a PITA to set up ...</p></div>
<a class="readmore" href=".././multiseating-with-kde-and-xbmc-like-a-boss.html">read more</a>
</div><!-- /.entry-content -->
</article></li>
<li><article class="hentry">
<header>
<h1><a href=".././nautilus-minus-extension.html" rel="bookmark" title="Permalink to Nautilus-minus extension">Nautilus-minus extension</a></h1>
</header>
<div class="entry-content">
<footer class="post-info">
<abbr class="published" title="2011-02-14T19:01:00">
Mon 14 February 2011
</abbr>
<address class="vcard author">
By <a class="url fn" href="#">Dejan Noveski</a>
</address>
<p> In <a href=".././category/Coding.html">Coding</a></p>
<p>tags: <a href=".././tag/linux.html">linux</a> <a href=".././tag/coding.html">coding</a> <a href=".././tag/python.html">python</a> <a href=".././tag/gnome.html">gnome</a> <a href=".././tag/nautilus.html">nautilus</a> </p>
</p>
<p></p>
</footer><!-- /.post-info -->
<p><strong>nautilus-min.us</strong> is an <em>extension</em> for nautilus that makes uploading images
and galleries to <a class="reference external" href="http://min.us">http://min.us</a> easier for the user. It adds an item in the
context menu, so when you select one or more images, you click "Upload to min.us",
wait for a moment, and your default ...</p>
<a class="readmore" href=".././nautilus-minus-extension.html">read more</a>
</div><!-- /.entry-content -->
</article></li>
<li><article class="hentry">
<header>
<h1><a href=".././new-years-python-meme-2012.html" rel="bookmark" title="Permalink to New Year's Python Meme 2012">New Year's Python Meme 2012</a></h1>
</header>
<div class="entry-content">
<footer class="post-info">
<abbr class="published" title="2011-12-28T14:01:00">
Wed 28 December 2011
</abbr>
<address class="vcard author">
By <a class="url fn" href="#">Dejan Noveski</a>
</address>
<p> In <a href=".././category/Coding.html">Coding</a></p>
<p>tags: <a href=".././tag/linux.html">linux</a> <a href=".././tag/coding.html">coding</a> <a href=".././tag/python.html">python</a> <a href=".././tag/meme.html">meme</a> </p>
</p>
<p></p>
</footer><!-- /.post-info -->
<p>Following Tarek Ziade's <a class="reference external" href="http://tarekziade.wordpress.com/2011/12/20/new-years-python-meme-2/">#2012pythonmeme</a>:</p>
<div class="section" id="whats-the-coolest-python-application-framework-or-library-you-have-discovered-in-2011">
<h2>1. What’s the coolest Python application, framework or library you have discovered in 2011?</h2>
<blockquote>
<ul class="simple">
<li><strong>gunicorn</strong> - We are on our way to change every apache installation to gunicorn. Proved to be just as good and quite possibly, better.</li>
<li><strong>haystack</strong> - I've built quite a few ...</li></ul></blockquote></div>
<a class="readmore" href=".././new-years-python-meme-2012.html">read more</a>
</div><!-- /.entry-content -->
</article></li>
<li><article class="hentry">
<header>
<h1><a href=".././pyfacedetect.html" rel="bookmark" title="Permalink to PyFaceDetect">PyFaceDetect</a></h1>
</header>
<div class="entry-content">
<footer class="post-info">
<abbr class="published" title="2010-12-28T18:00:00">
Tue 28 December 2010
</abbr>
<address class="vcard author">
By <a class="url fn" href="#">Dejan Noveski</a>
</address>
<p> In <a href=".././category/Coding.html">Coding</a></p>
<p>tags: <a href=".././tag/python.html">python</a> <a href=".././tag/opencv.html">opencv</a> <a href=".././tag/face-detection.html">face-detection</a> </p>
</p>
<p></p>
</footer><!-- /.post-info -->
<p>PyFaceDetect is a thin wrapper around <a class="reference external" href="http://opencv.willowgarage.com">OpenCV</a> for detection and marking faces in images.</p>
<p>The module can be used as an API or in console for testing purposes. For usage and options:</p>
<div class="highlight"><pre>python pyfacedetect.py -h
</pre></div>
<div class="section" id="sample-input">
<h2>Sample input</h2>
<img alt="http://i.imgur.com/5Lq4O.jpg" src="http://i.imgur.com/5Lq4O.jpg" />
</div>
<div class="section" id="sample-output">
<h2>Sample output</h2>
<img alt="http://i.imgur.com/56aTg.jpg" src="http://i.imgur.com/56aTg.jpg" />
<p>The module consists of 2 classes:</p>
<blockquote>
<p>OcvDetector that wraps OpenCV ...</p></blockquote></div>
<a class="readmore" href=".././pyfacedetect.html">read more</a>
</div><!-- /.entry-content -->
</article></li>
<li><article class="hentry">
<header>
<h1><a href=".././updated-multiseating-with-kde-and-xbmc-like-a-boss.html" rel="bookmark" title="Permalink to UPDATED: Multiseating with KDE and XBMC Like a boss">UPDATED: Multiseating with KDE and XBMC Like a boss</a></h1>
</header>
<div class="entry-content">
<footer class="post-info">
<abbr class="published" title="2012-10-30T23:03:00">
Tue 30 October 2012
</abbr>
<address class="vcard author">
By <a class="url fn" href="#">Dejan Noveski</a>
</address>
<p> In <a href=".././category/Miscellaneous.html">Miscellaneous</a></p>
<p>tags: <a href=".././tag/kde.html">kde</a> <a href=".././tag/xbmc.html">xbmc</a> <a href=".././tag/desktop.html">desktop</a> <a href=".././tag/linux.html">linux</a> <a href=".././tag/miscellaneous.html">miscellaneous</a> <a href=".././tag/multiseat.html">multiseat</a> <a href=".././tag/xorg.html">xorg</a> </p>
</p>
<p></p>
</footer><!-- /.post-info -->
<p>A while ago, I wrote a how-to concerning a multiseat setup with xbmc and KDE. Since then, I've done a lot of tweaks to
the system, optimized the configurations, made them more modular and DE independent. Also, UDEV RULES!</p>
<p>Make sure to read the old article <a class="reference external" href="http://brainacle.com/multiseating-with-kde-and-xbmc-like-a-boss.html">here</a></p>
<p>You can ...</p>
<a class="readmore" href=".././updated-multiseating-with-kde-and-xbmc-like-a-boss.html">read more</a>
</div><!-- /.entry-content -->
</article></li>
<li><article class="hentry">
<header>
<h1><a href=".././w3cvalidatevim.html" rel="bookmark" title="Permalink to W3cValidate.vim">W3cValidate.vim</a></h1>
</header>
<div class="entry-content">
<footer class="post-info">
<abbr class="published" title="2011-01-23T00:55:00">
Sun 23 January 2011
</abbr>
<address class="vcard author">
By <a class="url fn" href="#">Dejan Noveski</a>
</address>
<p> In <a href=".././category/Coding.html">Coding</a></p>
<p>tags: <a href=".././tag/vim.html">vim</a> <a href=".././tag/plugin.html">plugin</a> <a href=".././tag/coding.html">coding</a> </p>
</p>
<p></p>
</footer><!-- /.post-info -->
<p>W3cValidate.vim is a plugin that enables buffer/url validation using the <a class="reference external" href="http://validator.w3.org">W3 Validator</a> API.</p>
<div class="section" id="usage">
<h2>Usage</h2>
<p>Copy w3cvalidate.vim file inside plugin directory, source it or restart Vim. Use</p>
<blockquote>
<p>:W3cValidate to validate the current buffer</p>
<p>:W3cValidate "[url_here]" to validate a hosted page</p>
<p>:W3cValidateDT "[doctype]" to validate the buffer using the ...</p></blockquote></div>
<a class="readmore" href=".././w3cvalidatevim.html">read more</a>
</div><!-- /.entry-content -->
</article></li>
</ol><!-- /#posts-list -->
</section><!-- /#content -->
<section id="extras" class="body">
<div class="blogroll">
<h2>blogroll</h2>
<ul>
<li><a href="http://atomidata.com/">Atomidata</a></li>
<li><a href="http://pressedweb.com/">Pressed Web</a></li>
<li><a href="http://flyeyedesign.com">Flyeye Design</a></li>
<li><a href="/archives.html">Archives</a></li>
</ul>
</div><!-- /.blogroll -->
<div class="social">
<h2>social</h2>
<ul>
<li><a href=".././" rel="alternate">atom feed</a></li>
<li><a href="http://twitter.com/dekomote">@dekomote</a></li>
<li><a href="http://twitter.com/itarpeyo">@ItarPeyo</a></li>
<li><a href="https://bitbucket.org/vvangelovski/">Vasil's Bitbucket</a></li>
<li><a href="https://bitbucket.org/dekomote/">Dejan's Bitbucket</a></li>
<li><a href="https://github.com/dekomote">Dejan's Github</a></li>
<li><a href="https://github.com/vvangelovski">Vasil's Github</a></li>
<li><a href="mailto:info@atomidata.com">Mail Us</a></li>
</ul>
</div><!-- /.social -->
</section><!-- /#extras -->
<footer id="contentinfo" class="body">
<address id="about" class="vcard body">
© Brainacle 2011 | Proudly powered by <a href="http://alexis.notmyidea.org/pelican/">Pelican</a>.
</address><!-- /#about -->
</footer><!-- /#contentinfo -->
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-26853324-1");
pageTracker._trackPageview();
} catch(err) {}</script>
</body>
</html>