tag:blogger.com,1999:blog-68022911550511371272024-03-14T05:02:06.885+01:00Vedran Rodic's blogvrodichttp://www.blogger.com/profile/13952600307413126205noreply@blogger.comBlogger21125tag:blogger.com,1999:blog-6802291155051137127.post-37136055978053713882018-06-29T16:45:00.000+02:002018-07-02T14:38:07.992+02:00Acer Nitro 5 with nVidia 1050 on Linux (Ubuntu 18.04)Acer Nitro 5 with nVidia 1050 GPU is an interesting beast.<br />
<br />
- HDMI Output is wired to the NVIDIA chip<div>
- Internal display wired to Intel GPU.<br />
<br />
This is different than Optimus where both outputs are driven by the integrated GPU, and is actually more efficient since it doesn't spend system RAM bandwidth for display refresh or for copying the GPU discrete GPU frame-buffer to the internal GPU frame-buffer when rendering using the.<br />
<br />
So it's important that switching between using external monitor and internal laptop panel is handled gracefully.<br />
<br />
Windows driver probably handles this automatically (though it's possible it has to be a special Acer build). It maybe even allows both GPUs to be active at the same time (Intel for internal, nVidia for external display)<br />
<br />
But Linux nVidia driver typically works either in Optimus mode where both internal and external device is driven by Intel GPU or in traditional mode where monitor is only connected to the discrete GPU. Bumblebee project supports a more flexible setup, but is maybe a bit more difficult to configure<br />
<br />
This is a short guide to enable switching between the either using external monitor with nVidia or Internal monitor with Intel GPU somewhat easily on Ubuntu 18.04:<br />
<br />
First install nvidia proprietary driver :<br />
<b> - apt install nvidia-driver-390 nvidia-prime</b><br />
<b>- </b>edit /<b>etc/default/grub</b> so that GRUB_CMDLINE_LINUX_DEFAULT line has <b>nomodeset</b> option eg, GRUB_CMDLINE_LINUX_DEFAULT="quiet splash <b>nomodeset</b>" & run <b>sudo update-grub</b><br />
- restart machine while external HDMI monitor is connected<br />
<b><br /></b>
<br />
<br />
To switch to internal monitor:<br />
-<b> </b>run <b>sudo prime-select intel</b> while on external monitor (or if you don't have the external monitor, Ctrl-Alt-F3 to text console and run <b>sudo prime-select intel)</b><br />
- reboot<br />
<b>- </b>to enable acceleration for intel remove<b> nomodeset </b>from the kernel command line<br />
<br />
To switch back to external monitor:<br />
-<b> </b>run <b>sudo prime-select nvidia</b><br />
- reboot<br />
- make sure there is <b>nomodeset </b>in the kernel command line<br />
<br />
Making a shell script that does<b> nomodeset </b>grub switching and prime-select in a single step should be possible, and a situation where there is no <b>nomodeset</b> but nvidia is configured (GDM is stuck in neverending start loop) can be fixed by manually adding <b>nomodeset </b>in the grub menu<br />
<br />
If you want to try a more flexible setup with Bumblebee, try these links<br />
<br />
<br />
<a href="https://unix.stackexchange.com/questions/321151/do-not-manage-to-activate-hdmi-on-a-laptop-that-has-optimus-bumblebee">https://unix.stackexchange.com/questions/321151/do-not-manage-to-activate-hdmi-on-a-laptop-that-has-optimus-bumblebee</a><br />
<br />
<a href="https://github.com/Bumblebee-Project/Bumblebee/wiki/Multi-monitor-setup">https://github.com/Bumblebee-Project/Bumblebee/wiki/Multi-monitor-setup</a><br />
<br />
<a href="https://wiki.archlinux.org/index.php/bumblebee#Output_wired_to_the_NVIDIA_chip">https://wiki.archlinux.org/index.php/bumblebee#Output_wired_to_the_NVIDIA_chip</a></div>
vrodichttp://www.blogger.com/profile/13952600307413126205noreply@blogger.com1tag:blogger.com,1999:blog-6802291155051137127.post-23998860017309198272017-08-13T06:10:00.001+02:002017-08-13T06:20:31.130+02:00How to have a higher chance of success when restoring a big MySQL databaseRestoring a MySQL database is fast and easy when you just copy files in datadir when the server is shutdown, or if you use Percona xtrabackup.<br />
<br />
But if you for some reason (AWS RDS) only have MySQL protocol available for backup, you usually can have a compressed mysqldump, that is quite slow to restore, not because of the compression or because the decompressed version is a text file that needs to be parsed, but because MySQL is slow to push it through it's disk pipeline, and because it needs to build data indexes while doing a restore.<br />
<br />
I've spent multiple days babysitting the process of restoring a <b>7GB gzip compressed MySQL dump</b> file, and these are results and tips that could help you save some time.<br />
<br />
<br />
So, make sure that:<br />
- you have enough IO available: For restoring a <b>66 GB</b> datadir <b>315.6 GB</b> was written to the drive (as measured with iostat), with a tuned MySQL configuration. For a DB of this size a mechanical drive doesn't cut it, and restore will take multiple days. Use a good SDD.<br />
<br />
- your database TRIGGERS <b>all have BEGIN/END statements</b> (even though you can create them without and even thought the bug was supposed to be fixed https://bugs.mysql.com/bug.php?id=16878), it fails on restore, with all versions of MySQL 5.7/5.6 i tried<br />
<br />
- you start with a <b>really empty</b> database in your datadir - DB I worked with had inconsistent data types on a foreign key, when the dependent table with an inconsistent key already exists MySQL will report a foreign key error (MariaDB will be more informative), but if it doesn't it will happily restore the database<br />
<br />
- your <b>max_allowed_packet</b> conf value is big enough, or you'll get a MySQL server has gone away message from your client while restoring.<br />
<br />
- your <b>innodb_log_file_size </b>is big enough (https://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_log_file_size) - if you have large BLOB values in your DB, restore will fail if the value is lower than 10% of your blob field. This setting is important for quick restore too<br />
<br />
- you have <b>log-bin</b> turned off in order to minimize your chance to run out of drive space and save IO (log-bin=Off doesn't mean that it's disabled just that the log bin files start with Off, the documentation can be confusing here :) What worked for me is having all log-bin lines in the <b>mysqld </b>config section commented out<br />
<br />
<br />
Finally, if you want it to finish quickly, use the fastest SSD you have available, and consider tuning MySQL configuration a bit. I'm also considering using a ramdisk, because it would help both with restore speed and when you need to do some DB transformations. MySQL defaults are not reasonable, especially for <b>innodb_log_file_size, </b><b>max_allowed_packet</b>.<br />
<br />
I used excellent <b>pv </b>for figuring out if the restore process will finish in reasonable time<br />
<br />
pv db_dump.gz |gunzip -c |mysql -uroot database_name<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://1.bp.blogspot.com/-ZfsPWkh-_9g/WY_Q4BumMJI/AAAAAAAAk5U/IEizIvfKfYklaKvWuFgrcLsdiq7py0A_gCLcBGAs/s1600/pvdbrestore.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="14" data-original-width="687" height="8" src="https://1.bp.blogspot.com/-ZfsPWkh-_9g/WY_Q4BumMJI/AAAAAAAAk5U/IEizIvfKfYklaKvWuFgrcLsdiq7py0A_gCLcBGAs/s400/pvdbrestore.png" width="400" /></a></div>
<br />
<b><br /></b>
Here's a full list of my MySQLd configuration variables that worked for me on my dev laptop<br />
<br />
#my dev laptop is low on memory, for prod server you would use a lot more<br />
innodb_buffer_pool_size=512M <br />
innodb_additional_mem_pool_size=256M<br />
innodb_log_buffer_size=256M<br />
innodb_log_file_size=512M<br />
max_allowed_packet=64M<br />
<br />
#for saving disk IO, dont use on prod<br />
innodb_flush_log_at_trx_commit = 2<br />
innodb_flush_method=O_DIRECT_NO_FSYNC<br />
skip-innodb_doublewrite<br />
<br />
<br />
<div>
<br /></div>
<br />vrodichttp://www.blogger.com/profile/13952600307413126205noreply@blogger.com0tag:blogger.com,1999:blog-6802291155051137127.post-55152991641334143002017-07-30T11:56:00.001+02:002017-07-30T12:45:34.849+02:00Some thoughts on (Modern) PHP<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
I have experience in both Java and PHP. Java mostly for traditional desktop apps, embedded UIs and PHP for websites. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Custom PHP frameworks I've built or helped build took into account the way PHP is executed: you are stateless and need to setup everything on every request (runtime is fast to start with FPM and opcode cache). Namespaces based cheap autoloader worked great. We used singletons for getting the configuration and connections to DBs. There was almost no setup code that needed to be run every time other than loading .ini based configuration and connecting to the DB. My webapps responded under 20ms (DB and other services like sphinx included), and I could get it to respond in 1 ms for things where we needed to be quick and didn't have to output HTML with Forms. It was really small and you could read the whole framework code in 1-2 hours. It worked with SQL in a reasonable way. You didn't have to write your SQL for simple CRUD, but for larger things involving joining multiple tables and more complex expressions we wrote native SQL. Caching was done thoughtfully, using APC user cache (SHM with zero copy). It just felt nice. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
I switched jobs recently, and started with Symfony 3. The thing felt like some Java framework, but poorly documented and harder to use than it should be. It had lots and lots of setup code done before handling every request. There's a whole DI framework with it's load of setup code for every component. And you have to do setup even though you don't use the component in that particular request. There are ways of doing setup lazily, but you still waste time to wire that up. Framework overhead can be 30-100ms. Other modern PHP frameworks often have similar overhead. I know that there's PHP-PM, to save some of that work that isn't really $_REQUEST specific, but it doesn't seem to be used much for production. And using Silex (deprecated by Symfony 4?) is really not that different, you still either reuse Symfony components, or rewrite them, but with similar "best practices" that are inspired by Java.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Regarding persistence, Doctrine and it's verbosity feels very ugly to me. I'd much rather use SQL syntax for defining relationships than bunch of PHP with special syntax comments or xml or yaml. And also use real SQL for complex queries. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Everybody is using type hints wherever they can, and it feels as verbose as Java, but without compile time type safety, and you can't really put type information everywhere (class members for example). </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>So you are almost using a type safe language, but can't get performance or compile time benefits, because inevitably, you'll have to use some dynamic typing or other dynamic language features. </b></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Even though PHP runtime has made great progress with 7.x (it's probably the fastest interpreted language, and it's great it has reference counted garbage collection), it feels like language is struggling to find it's identity, with it taking a lot from Java and still coping with ugly legacy ($, having to use $this inside a class function, php.ini, features for supporting templating even though it's rarely used as a templating language in modern frameworks, <a href="https://3v4l.org/mcpi7">https://3v4l.org/mcpi7</a>).</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Learning Python and Flask (as an example) was much more enjoyable than switching from a nimble custom PHP framework to Symfony. Using NodeJS and minimalistic components to build my own framework was also nice. I'd love to try GoLang, Swift or Rust in the backend too.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
And there's the thing that most of the PHP frameworks try too hard to be full stack, when nowdays it's not rare you only do REST APIs on the backend. So there's a lot of infrastructure and assumptions in place for rendering HTML that you really don't need to use and that gets in the way when learning the framework and is wasteful when the code is executing.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
I'd argue you can write fast, simple and maintainable PHP, by using state PHP runtime has setup for you ($_POST, $_GET, $_SERVER etc), namespaces and a namespace based autoloader, trying to use pure functions when you can (using static classes shouldn't be a sin - use it to split your code in sensible parts), and using general good practices for writing readable and maintainable code (avoid long functions, huge classes, too much block nesting, decoupling, naming things in a good way). With some coding conventions you can write a decent and productive framework quickly, but you could do that with a nicer language too, so what's the point?</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
(Thankfully, I'm not using Symfony on my new job, and Yii2 does suffer from some issues too, it at least feels better for now)</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
vrodichttp://www.blogger.com/profile/13952600307413126205noreply@blogger.com1tag:blogger.com,1999:blog-6802291155051137127.post-83915198439190145882016-05-14T15:50:00.001+02:002016-05-14T15:50:47.265+02:00Kabelski internet i oversubscription<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<br />
<span style="background-color: #fff9e7; font-family: "arial" , "helvetica" , sans-serif; font-size: 13px; line-height: normal;"><b>Ovo je post iz 5.11.2014. U međuvremenu sam promjenio kabelskog operatera </b></span><br />
<span style="background-color: #fff9e7; color: #888888; font-family: "arial" , "helvetica" , sans-serif; font-size: 13px; line-height: normal;"><br /></span>
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Ako imate kabelski internet to znači da najvjerovatnije koristite jednu od sljedećih kabelskih tehnologija za prijenos digitalnih podataka:</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">- </span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">DOCSIS</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> 1.0, 1.1, 2.0, 3.0 ili </span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">EuroDOCSIS</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> standardi</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">- PacketCable 1.0, 1.5, 2.0 standardi koji na DOCSIS bazi grade razne usluge poput telefonije i digitalne televizije</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<b id="docs-internal-guid-375ee794-ea72-b6ea-e18e-dfaa02244d97" style="font-weight: normal;"><br /></b></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Frekvencijski pojas svakog kabela podjeljen je na kanale. Širina kanala ovisi o standardu pa tako EuroDOCSIS koristi europsku širinu kanala od </span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">8 MHz</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> , a DOCSIS koristi američku od </span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">6 MHz</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<b style="font-weight: normal;"><br /></b></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><img height="121px;" src="https://lh4.googleusercontent.com/g-I1LU2wZTvaWXHvlTVM6a_xZxmUc_XpOkYC1RpwODFg_6oGPrmSPkTTPuIfGMJ1Ssgrf8oBY6qYj_D3Yu2kexacaHEwIwDBwaI39OY6Dg2Ur6E7K4YhqKg8_iVXdARZNA" style="-webkit-transform: rotate(0rad); border: none; margin-left: auto; margin-right: auto;" width="416px;" /></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><div dir="ltr" style="font-size: medium; line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="color: black; font-family: "arial"; font-size: 11px; vertical-align: baseline; white-space: pre-wrap;">Podjela bandwidtha </span><span style="color: black; font-family: "arial"; font-size: 11px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;">koaksijalnog kabela </span><span style="color: black; font-family: "arial"; font-size: 11px; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="color: #222222; font-family: "arial"; font-size: 11px; vertical-align: baseline; white-space: pre-wrap;">Maksimalni </span><span style="color: #222222; font-family: "arial"; font-size: 11px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;">downstream</span><span style="color: #222222; font-family: "arial"; font-size: 11px; vertical-align: baseline; white-space: pre-wrap;"> bandwidth koaksijalnog kabela je </span><span style="color: #222222; font-family: "arial"; font-size: 11px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;">4864 megabita </span><span style="color: #222222; font-family: "arial"; font-size: 11px; vertical-align: baseline; white-space: pre-wrap;">prema</span><span style="color: #222222; font-family: "arial"; font-size: 11px; vertical-align: baseline; white-space: pre-wrap;"> primjeru niže</span><span style="color: #222222; font-family: "arial"; font-size: 11px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;">)</span></div>
<div dir="ltr" style="font-size: medium; line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt; text-align: start;">
</div>
</td></tr>
</tbody></table>
<br />
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<br /></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Svi spomenuti DOCSIS transportni standardi imaju slične karakteristike oko toga koliku downstream propusnost podržavaju po jednom megahertzu, pa tako DOCSIS podržava </span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">38 megabita</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> po kanalu downloada, a EuroDOCSIS </span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">50 megabita</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> po kanalu downloada.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<b style="font-weight: normal;"><br /></b></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">DOCSIS 1.1</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> je donio bolju standardizaciju i mogućnosti kontroliranja kvalitete usluge (QoS)</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<b style="font-weight: normal;"><br /></b></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">DOCSIS 2.0</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> je donio bolje upload brzine (</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">27 megabita </span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">po kanalu u odnosu na DOCSIS 1.0 </span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">9 megabita </span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">po kanalu)</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<b style="font-weight: normal;"><br /></b></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">DOCSIS 3.0</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> je donio mogućnost da jedan korisnik istovremeno koristi više kanala tako povećavajući bandwidth.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<b style="font-weight: normal;"><br /></b></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">DOCSIS 3.1</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> izdan u Listopadu 2013. je prva veća promjena u standardu jer donosi novu modulaciju 4096 QAM i odustaje od podjele kanala na 6 ili 8 MHz i umjesto toga koristi manje OFDM podkanale i u idealnim uvjetima podržava brzine do </span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">10 gigabita</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> downstream i </span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1 gigabit</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> upstream. Još nije u primjeni.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<b style="font-weight: normal;"><br /></b></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">E sad, sve je to divno i krano, ali zašto je uz takve ogromne brojke moj internet spor?</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<b style="font-weight: normal;"><br /></b></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Koaksijalni kabel je medij koji dijelimo sa drugim korisnicima, za razliku od DSL-a gdje svaki modem ima </span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">vlastitu bakrenu paricu</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> do centrale, kod kabelskih mreža dijelimo medij sa </span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">neodređenim </span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">i samo vašem ISP-u poznatim brojem korisnika. Obično operater nudi i uslugu kabelske televizije te je prostor za vaš internet </span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">sužen sa brojem kanala koji se koriste za TV uslugu</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<b style="font-weight: normal;"><br /></b></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<h2>
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Ajmo vidjeti jedan primjer u praksi na zagrebačkom području, za </span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">downstream</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">:</span></h2>
</div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<b style="font-weight: normal;"><br /></b>
<br />
<div style="text-align: center;">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><img src="http://upload.wikimedia.org/wikipedia/commons/e/e4/Motorola_SBV5121E.jpg" height="200" style="margin-left: auto; margin-right: auto;" width="149" /></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Motorola SBV5121E</td></tr>
</tbody></table>
<br /></div>
</div>
<div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;">
<div style="line-height: 1.15;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Koristi se modem Motorola SBV5121E (DOCSIS 2.0 i niže), što prema specifikaciji [</span><a href="http://www.wiretechsa.com.ar/PDF/equipamientointernet/SBV5121.pdf" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">2</span></a><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">] znači da ima bandwidth za downstream od </span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">88 do 860 MHz sa</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> američkom širinom kanala od </span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">6 MHz</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. Znači 772/6 = </span><span 15px="" arial="" baseline="" color:="" font-family:="" font-size:="" pre-wrap="" vertical-align:="" white-space:="">128 kanala. Operater koji sam analizirao po mom saznanju <b>40 analognih TV</b> kanala i<b> 113 digitalnih</b></span><span style="color: #222222; font-family: "arial"; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">. Recimo da se za ovih<b> </b>113 digitalnih troši 30 6 MHz kanala u kabelu. Što znači da recimo srijedu uvečer, kad se ljudi vrate sa posla i škole, samo <b>5</b></span><span style="color: #222222; font-family: "arial"; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;">8 različitih kućanstava (kanala) </span><span style="color: #222222; font-family: "arial"; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">može istovremeno surfati punom brzinom od </span><span style="color: #222222; font-family: "arial"; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;">38 megabita</span><span style="color: #222222; font-family: "arial"; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">, svaki sljedeći korisnik koji krene surfati smanjuje brzinu ovim ostalima. </span></div>
<div style="line-height: 1.15;">
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; text-align: left;"><tbody>
<tr><td style="text-align: center;"><img height="164" src="https://lh3.googleusercontent.com/mcSfn0S7bBle2gOnounuDtlWavytD5eXO8nmlXufKMiIIrB44ApGB02wHXZNlaO0c-vKFbEgim1o80f-v-rnfsDMVBHxF4tbWQAxrIr0AF7NkBfU4vb8oz19avevVKvm4w" style="border: none; margin-left: auto; margin-right: auto; transform: rotate(0rad);" width="640" /></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Graf latencije (do prvog hop-a) na primjeru Zagrebačkog ISP-a dok korisnik osim za mjerenje ne koristi uslugu.</td></tr>
</tbody></table>
<span style="color: #222222; font-family: "arial"; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><br />
<span style="color: #222222; font-family: "arial"; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span>
<span style="color: #222222; font-family: "arial"; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">Operater kojeg sam analizirao nudi brzine od </span><span style="color: #222222; font-family: "arial"; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;">8 megabita</span><span style="color: #222222; font-family: "arial"; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">, što znači da bi teoretski trebao moći dati traženi bandwidth za (38/8) *58 = 275</span><span style="color: #222222; font-family: "arial"; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"> korisnika</span><span style="color: #222222; font-family: "arial"; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">, no pošto se tu vrijeme provedeno na kanalu po korisniku mora smanjiti kako bi se </span><span style="color: #222222; font-family: "arial"; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;">jedan kanal podjelio na više kućanstava</span><span style="color: #222222; font-family: "arial"; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">, u tim slučajevima, čak i da surfa samo </span><span style="color: #222222; font-family: "arial"; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;">275 kućanstava</span><span style="color: #222222; font-family: "arial"; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">, njihova latencija (</span><span style="color: #222222; font-family: "arial"; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;">ICMP ping</span><span style="color: #222222; font-family: "arial"; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">) sa odličnih </span><span style="color: #222222; font-family: "arial"; font-size: 15px; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;">6-7 ms </span><span style="color: #222222; font-family: "arial"; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">počinje rasti na (worst case, puna utilizacija na 418 korisnika) 4.75*7= 33 ms (molim ispravak ako je računica netočna, uzimam u obzir najmanju veličinu ICMP paketa tj. najmanju moguću diskretnu jedinicu u kojoj je moguće ostvariti komunikaciju). </span></div>
<span style="color: #222222; font-family: "arial"; font-size: 15px; line-height: 1.15; vertical-align: baseline; white-space: pre-wrap;"><br /></span><span style="color: #222222; font-family: "arial";"><span style="font-size: 15.454545021057129px; line-height: 15.681818008422852px; white-space: pre-wrap;">Dodatni problem je što DOCSIS 2.0 i niži ne omogućavaju brzo prebacivanje među kanalima, što znatno otežava dobru iskoristivost frekventnog spektra kabela (možda na drugim kanalima ima značajno više prostora za prijenos podataka). </span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<b style="font-weight: normal;"><br /></b></div>
<div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;">
<div style="line-height: 1.15;">
<span style="color: #222222; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">U svakom slučaju, ako je previše korisnika koji dijele isti resurs (isti </span><span style="color: #222222; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">6 MHz</span><span style="color: #222222; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> kanal, isti kabel) dolazi do drastičnog brzine pristupa pa tako kod ISP-a koji sam analizrao bandwidth pada na </span><span style="color: #222222; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">ispod 1 megabita</span><span style="color: #222222; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, a ping ide i </span><span style="color: #222222; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">iznad 140 ms</span><span style="color: #222222; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, uz </span><span style="color: #222222; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">česti packet loss</span><span style="color: #222222; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. </span></div>
<div style="line-height: 1.15;">
<span style="color: #222222; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<span style="color: #222222; font-family: "arial";"><span style="font-size: 15.454545021057129px; line-height: 15.681818008422852px; white-space: pre-wrap;">Rijetko kada svih korisnici žele istovremeno i na period dulji od nekoliko minuta maksimalni bandwidth, pa je moguće (prema brojkama u primjeru) imati <b>10x </b>više korisnika nego što je ukupnog kapaciteta (npr. 418 korisnika na 8 megabita na 88 kanala nego 4180 korisnika) a da sami korisnici ne primjete probleme u brzini pristupa, ali to uvelike ovisi o načinu korištenja Interneta. </span></span><span style="color: #222222; font-family: "arial"; font-size: 15.454545021057129px; line-height: 15.681818008422852px; white-space: pre-wrap;">Moguće je da će više učenja na daljinu, skidanja igara preko Steam-a i sličnih servisa itd. značajno promjeniti navike korisnika u budućnosti. </span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="clear: left; color: #222222; float: left; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; margin-bottom: 1em; margin-right: 1em; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<b style="font-weight: normal;"><br /></b></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Posao dijeljenja bandwidtha kada je više korisnika od broja slobodnih kanala rade zajedno modem kod korisnika i </span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">CMTS</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> uređaj kod operatera. CMTS radi mnoge slične funkcije koje u DSL sustavima radi DSLAM, ali uzevši u obzir karakteristike dijeljenog koaksijalnog medija. CMTS omogućava da i </span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">do 1000 korisnika dijeli isti 6 MHz kanal</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. Koristi tehniku zvanu <a href="http://en.wikipedia.org/wiki/Statistical_multiplexing">Statistical time division multiplexing</a>. Nisam našao na podatak može li jedan CMTS uređaj stvarno i napuniti svih </span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">128 downstream kanala</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> i još </span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">60 Mhz upstream </span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">bandwidtha</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. </span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Svakako mu za to treba barem 10 gbit ethernet sučelje. </span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<b style="font-weight: normal;"><br /></b></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">ISP može poboljšati infrastrukturu tako da </span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">smanji broj korisnika koji dijele jedan jedini kabel</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">ili poveća broj kanala koji se koriste za DOCSIS </span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">ukoliko medij ima slobodne kanale. </span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span></div>
<div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt;">
<div style="line-height: 1.15;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Također, ISP može početi koristiti digitalnu TV kako bi iskoristio mogućnost digitalne kompresije video i audio zapisa i time smanjio potreban bandwidth po TV kanalu za bar</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> 4 puta</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> (moguće i više sa kompresijom naprednijom od MPEG2), no ovo znači da operater </span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">mora svim korisnicima zamjeniti receivere za TV</span><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, što može biti značajna investicija. </span></div>
<div style="line-height: 1.15;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div style="line-height: 1.15;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Osnovana je i Facebook grupa gdje se korisnici mogu požaliti na svog operatera ili raspravljati o boljim operaterima i tehnlogijama poput recimo FTTH ili VDSL-a. </span></div>
<div style="line-height: 1.15;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div style="line-height: 1.15;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Pridružite nam se na:</span></div>
<span style="background-color: transparent; font-family: "arial"; font-size: 15px; line-height: 17.25px; vertical-align: baseline; white-space: pre-wrap;"><br /></span>
<span style="background-color: transparent; font-family: "arial"; font-size: 15px; line-height: 17.25px; vertical-align: baseline; white-space: pre-wrap;"><a href="https://www.facebook.com/groups/hocuboljiinternet/">https://www.facebook.com/groups/hocuboljiinternet/</a></span><br />
<span style="background-color: transparent; font-family: "arial"; font-size: 15px; line-height: 17.25px; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<b style="font-weight: normal;"><br /></b></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Linkovi:</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<b style="font-weight: normal;"><br /></b></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">[1]</span><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><a href="http://en.wikipedia.org/wiki/DOCSIS">http://en.wikipedia.org/wiki/DOCSIS</a></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">[2] <a href="http://www.wiretechsa.com.ar/PDF/equipamientointernet/SBV5121.pdf">http://www.wiretechsa.com.ar/PDF/equipamientointernet/SBV5121.pdf</a></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">[3] <a href="http://computer.howstuffworks.com/cable-modem.htm">http://computer.howstuffworks.com/cable-modem.htm</a></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">[4] <a href="http://www.lightreading.com/cable-video/docsis/docsis-31-whats-next/d/d-id/708425">http://www.lightreading.com/cable-video/docsis/docsis-31-whats-next/d/d-id/708425</a></span><br />
[5] <a href="http://www.cisco.com/c/dam/en/us/solutions/collateral/service-provider/cable-high-speed-data-hsd-solutions/gateway_to_connected_life_white_paper.pdf">http://www.cisco.com/c/dam/en/us/solutions/collateral/service-provider/cable-high-speed-data-hsd-solutions/gateway_to_connected_life_white_paper.pdf</a></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<br />
<br />
<br />
<br />
<br /></div>
vrodichttp://www.blogger.com/profile/13952600307413126205noreply@blogger.com0tag:blogger.com,1999:blog-6802291155051137127.post-578847693379983402016-05-01T12:54:00.002+02:002016-05-01T13:08:19.724+02:00Smart public transport with small automated, semi-automated or manually driven vehiclesHere's just and idea (feel free to use it in any way):<br />
<br />
Imagine having a network of small (4-6 passengers) vehicles servicing a city for daily transportation needs. Users would enter a desired location and arrival time. The arrival time could be flexible (within an hour, if not then the price could be appropriately higher) and the user would announce any regularity (for example detailing a weekly commute) that could be used for future planning.<br />
<br />
The centralized system would optimize the problem of getting all passengers to their respective locations and suggest departure time and location (preferably within a few minutes of walking distance).<br />
<br />
An interesting open source implementation would use OpenStreetMap data and have simulations and visualizations. A commercial entity could deal with deployments on various locations and provide a stable software as a service around the core open implementation. Autonomous vehicles would provide much more efficient operation of such a network and lower the costs significantly.vrodichttp://www.blogger.com/profile/13952600307413126205noreply@blogger.com0tag:blogger.com,1999:blog-6802291155051137127.post-1083486117122824722014-03-06T11:55:00.000+01:002014-03-06T14:14:00.087+01:00A tale of false alarm by ConfigServer, CPanel and a hosting provider. <br />
I'm responsible for a couple of CPanel/WHM managed dedicated servers.<br />
<br />
We keep them updated, and try to do as little customization as possible outside of what cPanel knows about. We enabled mod_proxy_fcgi and PHP-FPM, so we can use Apache 2.4 MPM Event for our fairly high traffic web site. It's a unfortunate that CPanel doesn't have this configuration available out of the box, but that's for another blog post.<br />
<br />
Today early in the morning we got a message from our lfd daemon (a service installed by a free ConfigServer Security & Firewall CPanel plugin installed by our hosting provider):<br />
<br />
<blockquote class="tr_bq">
The following list of files have FAILED the md5sum comparison test. This means that the file has been changed in some way. This could be a result of an OS update or application upgrade. If the change is unexpected it should be investigated:<br />
/usr/bin/ghostscript: FAILED<br />
/usr/bin/gs: FAILED</blockquote>
<br />
The funny thing is, nothing upgraded any RPM files in this time window, our /var/log/yum.log didn't mention any upgrades to ghostscript package that provides the /usr/bin/gs binary (/usr/bin/ghostscript is a symlink to gs), we have disabled automatic updates that can be initiated by the cpanel upcp --cron sciprt, but the system us regulagrly kept up to date manually with yum update.<br />
<br />
I've reinstalled the package with yum reinstall ghostscript (ghostscript-8.70-19.el6.x86_64 was reinstalled)<br />
<br />
and the binary size and md5sum changed like this:<br />
<br />
before:<br />
size: 19152 bytes<br />
md5sum: c64b5016d94450b476148c31cfef61ff<br />
<br />
after reinstall:<br />
size: 6760 bytes<br />
md5sum: 73db43e258c4b191757b7ba75a883321<br />
<br />
This is what actually happened: Our managed hosting provider had apparently changed our setup to upgrade our system packages automatically (probably with best intentions due to recent gnutls issue). And prelinking seems to be enabled on our system, so when upcp (CPanel automatic upgrade cron script that runs periodically) executed /usr/local/cpanel/scripts/rpmup to upgrade system packages, it also did the prelinking step, adding extra prelinking stuff to our /usr/bin/gs binary.<br />
<br />
Similar issue described here:<br />
<br />
http://linsec.ca/blog/2012/01/23/rpm-v-and-prelinked-binaries/<br />
<br />
<br />vrodichttp://www.blogger.com/profile/13952600307413126205noreply@blogger.com6tag:blogger.com,1999:blog-6802291155051137127.post-5559355247910714822013-08-16T15:49:00.001+02:002013-09-04T15:59:09.814+02:00Dota 2 Wine optimization for Intel GPUsDota 2 for Linux implements it's 3D engine by using a Direct3D to OpenGL translation layer called ToGL. I assume that this layer can be used in different ways, but for Dota 2 it seems to be used in a less than ideal way as documented previously <a href="http://vrodic.blogspot.com/2013/08/dota-2-performance-linuxnative-vs.html">here</a>. In short, Dota for Linux compiles 11000 shaders on startup, compared to just 220 the Wine version does. This causes much higher memory usage (1.2 GB vs 2.6 GB) and start-up time (35 seconds vs 1:15 min).<br />
<div>
<br /></div>
<br />
With Wine we actually do get the source of their Direct3D to OpenGL layer called wined3d, since Wine is open source. It's funny, the stack used to run Windows version of Dota 2 is actually more open.<br />
<br />
Since Dota 2 for Windows when run on Wine actually outperforms native Linux version in some important aspects, and it's framerate is just slightly less, I decided to take a look on improving its performance.<br />
<br />
I've used a tool called apitrace to record a trace of a Dota 2 session with wine so I can analyze the OpenGL calls and look at driver performance warnings (INTEL_DEBUG=perf) with qapitrace.<br />
<br />
I optimized two things:<br />
<br />
<b>1. Reduce the number of vs and ps constants checked</b><br />
<br />
There were many calls to check values of VS (vertex shader) and PS (pixel shader, also called fragment shaders in OpenGL) constants each frame like this:<br />
<br />
532550 glGetUniformLocationARB(programObj = 152, name = "vs_c[4095]") = -1<br />
<br />
This function is called from shader_glsl_init_vs_uniform_locations() in glsl_shader.c in<br />
wined3d.<br />
<br />
It uses GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB, defined to be 4096 in #define MAX_UNIFORMS in Mesa source.<br />
<br />
Dota 2 doesn't need so many uniforms, most checks return -1, and wined3d checks all of values for both VS<br />
and PS uniforms.<br />
<br />
I reduced this number to 256, just enough for Dota 2. This saved thousands of calls per frame.<br />
<br />
<b>2. Use fast clear depth more often</b><br />
<br />
Intel driver complains about not being able to use fast depth clears because of scissor being enabled. Turns out that device_clear_render_targets() in wined3d device.c doesn't really need to do glScissor for Dota 2, it's probably an optimization that maps better to Direct3D driver.<br />
<br />
<br />
A small patch including both optimizations is here:<br />
<a href="https://gist.github.com/vrodic/6437312">https://gist.github.com/vrodic/6437312</a><br />
<br />
This patch is a hack, and glScissor part probably breaks other apps, so this is just for Dota 2. It maybe could be made in a better way so it could be merged in Wine, but I'm not wined3d expert.<br />
<br />
So how faster is it? A solo mid hero on a setup described in the previous blog post used to get <b>41 FPS</b>. Now it gets <b>46-49 FPS</b>. Native version is similar to optimized Wine, but in some situations it gets worse than Wine optimized.<br />
<br />
<b>Ideas for improvement:</b><br />
<b><br /></b>
Dota 2 for Linux needs ~7500 calls per frame. Wine version, even after my optimizations needs 37000 (EDIT: just as I was writing this post, there were some <a href="http://source.winehq.org/git/wine.git/commit/37d1e8b79cfc2c4ca7b947589574179470a06c42">improvements</a>, now its about 22000).<br />
<br />
There is probably a way to optimize this even more, but it's outside of the scope of an afternoon project, like this was. I'd like to keep on digging though.<br />
<div>
<br /></div>
vrodichttp://www.blogger.com/profile/13952600307413126205noreply@blogger.com4tag:blogger.com,1999:blog-6802291155051137127.post-37121148146418348772013-08-14T01:04:00.000+02:002013-09-05T15:35:37.810+02:00Dota 2 performance: Linux/native vs Linux/Wine vs Windows 7 on Intel GPU So how well does the mega popular game Dota 2 work on Linux? I've had some time to make detailed tests on my Intel IvyBridge GPU laptop (Lenovo ThinkPad X230). The graphics settings are the same on all versions.<br />
<div>
<br /></div>
<br />
<b>Dota 2 Windows binary under Wine 1.6</b><br />
Startup: 35 secs (over ntfs3g userspace fs driver that is not that fast)<br />
Mem: 1.0GB<br />
FPS: 37.5 FPS<br />
Power usage LP mode (patched wine): 34W<br />
<br />
<b>Dota 2 Linux native</b><br />
Startup: 1 min 14 secs (native ext4)<br />
Mem: 2.6 GB<br />
FPS: 40 FPS<br />
<br />
<b>Dota 2 Windows native - Windows 7</b><br />
Startup: 25 secs<br />
Mem: 1.2GB (measured by Windows Task manager)<br />
FPS: 80 FPS<br />
Power usage LP mode: 24W<br />
<br />
<b>Test setup:</b><br />
<br />
CPU: Core i5 3320M<br />
<br />
Resolution: 1366x768<br />
<br />
GPU settings (same on all Dota 2 versions): shadows MEDIUM, textures HIGH, render quality: HIGHEST, all other: OFF, vsync: disabled<br />
<br />
GPU settings LP mode (for power measurments above): Shadowd low, effects OFF, textures MED, render quality: LOWEST, fpx_max: 30<br />
<br />
Mesa version: git-8b5b5fe (with rendering regression fix from here: <a href="https://bugs.freedesktop.org/show_bug.cgi?id=67887">https://bugs.freedesktop.org/show_bug.cgi?id=67887</a>)<br />
<br />
Linux distro: Ubuntu 13.10, kernel 3.11 drm-intel-nightly, running LXDE<br />
<br />
FPS Benchmark method:<br />
in "dota 2 beta/dota/cfg/autoexec.cfg"<br />
cl_showfps 2<br />
playdemo <a href="http://mjesec.ffzg.hr/~vrodic/dota/test.dem">test</a><br />
<br />
For FPS measurement number: look at the last 240 frames when the demo is ending<br />
<br />
Memory measuring: RES column with `top`<br />
Startup time measuring: stopwatch until the map is loaded<br />
<br />
<b>Analysis of the apitrace trace file:</b><br />
<b><br /></b>
I've made a trace of Dota 2 with apitrace, revealing possible performance issues.<br />
<br />
Before the first frame of the game is drawn 11038 shaders are compiled. That is most likely why the load time is so slow and memory usage is so high. In addition a lot of the shaders being used seem to be recompiled by the Intel driver when rendering frames.<br />
<br />
There are 162 frames in the trace I've analyzed, 193 shader recompiles, and 643 different shader programs (each program has 1 VS and 1 FS) used.<br />
<br />
In contrast, Wine version of Dota 2 compiles only 220 shaders.<br />
<br />
<b>Performance feedback from the Intel driver:</b><br />
<b><br /></b>glretrace of apitrace prints driver performance warnings. A sample of some that repeat every frame. These include shader recompile warnings.<br />
<br />
<i>575332: glDebugOutputCallback: Medium severity API performance issue 13, Clear color unsupported by fast color clear. Falling back to slow clear.
</i><br />
<i>576094: glDebugOutputCallback: Medium severity API performance issue 14, Failed to fast clear depth due to scissor being enabled. Possible 5% performance win if avoided.
</i><br />
<i>577739: glDebugOutputCallback: Medium severity API performance issue 4, Using a blit copy to avoid stalling on 480b glBufferSubData() to a busy buffer object.
</i><br />
<i>577801: glDebugOutputCallback: Medium severity API performance issue 8, Recompiling vertex shader for program 7901
</i><br />
<i>577801: glDebugOutputCallback: Medium severity API performance issue 9, Didn't find previous compile in the shader cache for debug
</i><br />
<i>577801: glDebugOutputCallback: Medium severity API performance issue 1, Recompiling fragment shader for program 7901
</i><br />
<i>577801: glDebugOutputCallback: Medium severity API performance issue 10, Didn't find previous compile in the shader cache for debug
</i><br />
<i>577801: glDebugOutputCallback: Medium severity API performance issue 3, FS compile took 2.266 ms and stalled the GPU
<span style="font-family: Consolas, Liberation Mono, Courier, monospace;"><span style="font-size: 12px; line-height: 16px;">
</span></span>
</i><br />
<br />
Warnings in sequence in URL below:<br />
<a href="https://gist.github.com/vrodic/6235313">https://gist.github.com/vrodic/6235313</a><br />
<br />
It's interesting that most of this warnings were added by request of Valve back in 2012:<br />
<a href="http://lists.freedesktop.org/archives/mesa-dev/2012-August/025288.html">http://lists.freedesktop.org/archives/mesa-dev/2012-August/025288.html</a><br />
<br />
<br />
<br />
<br />
<b>Conclusion:</b><br />
<br />
If you have a memory constrained machine and want to run under Linux, maybe using Wine is a better choice.<br />
<br />
I hope Valve cares enough about Linux to fix what they can on their side and work with folks from Intel to fix their performance problems.<br />
<br />
You will probably be luckier if you run it on nVidia GPU, since people in general are claiming performance very similar to Windows. Though probably still with slower startup times and higher mem usage.<br />
<br />
<b>Some info on how to compile Mesa 32 bit on 64bit Ubuntu:</b><br />
<b><br /></b>
Unfortunately this doesn't work with old Ubuntu versions, just with 13.10. For old version you must also remove 64 bit versions of the compiler, which was a bit too much of a requirement for me.<br />
<br />
<i>apt-get install gcc-multilib g++-multilib binutils-multiarch libx11-dev:i386 libdrm-dev:i386 </i><br />
<br />
and as configure complains install others<br />
<i><br /></i>
<i>apt-get build-dep mesa -ai386 </i><br />
<br />
wants to install too much and remove some 64 bit stuff I need, and we don't actually need llvm i386 dev stuff for compiling just the Intel driver.<br />
<br />
I use this script to compile just the i965 driver for mesa:<br />
<br />
<i>sh autogen.sh</i><br />
<i>make clean</i><br />
<i>export CFLAGS="-m32 -O3 -mtune=native -march=native -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security"</i><br />
<i>export CXXFLAGS="-m32 -O3 -mtune=native -march=native -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security"</i><br />
<i>export PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig</i><br />
<i>./configure --disable-egl --enable-glx-tls --with-gallium-drivers= --with-dri-drivers=i965 --enable-32-bit</i><br />
<i>make -j4</i><br />
<div>
<br /></div>
vrodichttp://www.blogger.com/profile/13952600307413126205noreply@blogger.com4tag:blogger.com,1999:blog-6802291155051137127.post-43907287316697290882012-05-27T18:44:00.000+02:002019-07-30T11:32:42.257+02:00Samsung Galaxy S2 (ARM Phone) vs Ubuntu PC performance<h2>
Introduction </h2>
(this post has been updated in 2016)<br />
<br />
It seems that many people assume that 1.2 GHz dual core mobile ARM CPU should be almost as fast as a PC CPU running on a similar frequency. They're wrong.<br />
<br />
ARM cores are indeed more power efficient per square mm of surface on a same production process than Intel x86 and AMD64 architecture processors. Most of the efficiency comes from a simpler and more space efficient instruction set, but that advantage typically benefits only front-end of the CPU, which is not the biggest spender of those precious miliwatts. <br />
<br />
The other reasons why modern dual or quad core mobile phones can run on a fraction of power that notebook or desktop (PC) CPUs need:
<br />
<br />
<ul>
<li>less computation units on CPU die (less SIMD, ALU, etc units)</li>
<li>smaller cache than PC CPUs</li>
<li>power gating parts of CPU (but laptop and desktop CPUs also do this for a number of years)</li>
<li><b>significantly slower DRAM interface than PC CPUs, using slower DDR RAM (LPDDR2)</b></li>
</ul>
<div>
RAM speed significantly impacts many parts of phone performance. Executing complex JavaScript, image or video processing, Web page rendering are just some of the tasks that significantly benefit from having more RAM bandwidth. </div>
<div>
<br /></div>
<div>
Your ARM device having significantly less of RAM bandwidth is also a big reason why you will probably avoid developing software on your new shiny ASUS Transformer Prime tablet/laptop (though I would certainly try:) )</div>
<div>
<br /></div>
<h2>
So how much slower is your Android cell phone RAM than your PC RAM?</h2>
<div>
<br /></div>
<div>
Unfortunately, I couldn't find any RAM bench-marking software that would run both on a Linux PC and on a un-rooted android device. There is a nice port of NBench, but NBench is a bigger benchmark and it needs some time before it prints out the one thing we need, the memory index. Also, it doesn't output MB/sec number, which is kind of unfortunate, since it's a really clear metric. </div>
<div>
<br /></div>
<div>
So I found the really simplistic <a href="https://github.com/raas/mbw">mbw</a> (apt-get install mbw), made it even more simple (removed memcpy tests and left only the dumb array assignment part), and made Android NDK version of it.<br />
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<b>RAMbandwidth</b></div>
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://github.com/vrodic/RAMbandwidth/blob/master/app-debug.apk?raw=true">https://github.com/vrodic/RAMbandwidth/blob/master/app-debug.apk?raw=true</a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div>
Source <a href="https://github.com/vrodic/RAMbandwidth">here</a>. Be sure to close any apps before running it on a PC or your phone. Default array size being copied is 20 MB (the app needs 40 MB to perform the test) to better support low memory devices. </div>
<div>
<br /></div>
<div>
Here are some results (20MB array size, 20 repetitions avg, run "mbw -t1 20 -n 20", default settings on RAMbandwidth, on some larger boxes 200MB size was used ):<br />
<b>~12500 MB/sec</b> Intel Core i7-6700, (DDR4 x2 2133 MHz), dedicated GPU<br />
<b>~12300 MB/sec </b>-Intel Core i7-9700 (DDR4 x2 2133 MHz), driving 2560x1440@60Hz display, Ubuntu 19.04, Asrock H310M-STX DeskMini 310<br />
<b>~9000 MB/sec</b> - Intel Core i7-8550U (DDR3 x2 2133 Mhz, Asus UX430UNR)<br />
<b>~9000 MB/sec </b>- Intel Core i7-5600U (DDR3 x2 1600 MHz)<br />
<b>~8200 MB/sec </b>- Asus N56JR (Intel i7-4700HQ, 2x DDR3 1600 Mhz memory)<br />
<b>~6800 MB/sec </b>- Intel Xeon E5-1650 v2 4x DDR3 1600 MHz)<br />
<b>~5400 MB/sec</b> - Intel Xeon X3430, DDR3 memory, under moderate MySQL load( 2009)<br />
<b>~6000 MB/sec </b>- Thinkpad X230 Core i5 3320M (2x DDR3 1600Mhz)<br />
<br />
<b>~3800 MB/sec</b> - Core i3-2310M 2x DDR3 1333Mhz</div>
<div>
<b>~2200 MB/sec</b> - Intel Core 2 E8200, PC 6400 DDR2 RAM, Desktop PC (2008).</div>
<div>
<b>~1100 MB/sec</b> - Intel Core duo L2400, PC 5300 DDR2 RAM on a Thinkpad X60S laptop (2006). </div>
<div>
<br />
and our mobile contenders<br />
<br />
<b>~6000 MB/sec</b> - Xiaomi Pocophone F1 (Snapdragon 845 varies between 5700-7000)<br />
<b>~6000 MB/sec </b>-<b> </b>LG G5 (Snapdragon 820 4 GB LPDDR4 2016, varies between 5800-6500)<br />
<b>~1500 MB/sec </b>- LG G3 (3GB D855 - It varies from 800-1700)<br />
<b>~1200 MB/sec </b>- Raspberry Pi 3<br />
<b>~690 MB/sec</b> - Doogee Valencia2 Y100 Pro<br />
<b>~530 MB/sec</b>- Raspberry Pi 2</div>
<div>
<b>~500 MB/sec </b>- Samsung Galaxy S2 (2011)</div>
<div>
<b>~250 MB/sec</b> - HTC Desire (2010)<br />
<b>~120 MB/sec - Raspberry PI (2012, under X, fbdev 720p it falls to ~90 MB/sec)</b> </div>
<div>
<b>~55 MB/sec</b> - HTC Magic (2009, had to use smaller 10MB array size because of limited RAM available) </div>
<div>
<br /></div>
<div>
<br /></div>
<div>
Samsung Galaxy S2 sometimes reports around 440 MB/sec, and sometimes 550 MB/sec. I guess it depends where kernel allocates the memory, maybe one of the memory banks shares the bus with the GPU, GSM CPU or some other greedy device. </div>
<div>
<br /></div>
<div>
It should be easy to post some test results of your own hardware, so please share. </div>
<div>
<br />
EDIT: Check comments for some more results</div>
<div>
<br /></div>
<br />
<br />vrodichttp://www.blogger.com/profile/13952600307413126205noreply@blogger.com21tag:blogger.com,1999:blog-6802291155051137127.post-86945004422649475302010-08-29T02:24:00.018+02:002010-08-29T14:34:48.602+02:00Budget Surfer 0.0.1<span><span></span></span><span><span>Jučer sam htio istražiti koliko je našeg zajedničkog novca utrošeno na softverske licence za MS Windowse, Office i ostale proizvode više ili manje lako zamjenjive sa FOSS ekvivalentima. Jedine informacije koje sam zasad uspio dobiti su u dokumentu "Poseban dio Državnog proračuna Repulike Hrvatske za 2010. godinu i projekcije za 2011. i 2012." koji se nalazi ovdje http://mfin.hr/hr/drzavni-proracun-2010 .<br /><br /></span></span><div><span><span>Predpostavljam da je i Vizualizacija proračuna od projekta vjetrenjača napravljena iz istog podatkovnog izvora.</span></span></div><div><span><span><br />Kako bih produktivno gubio vrijeme odlučio sam napraviti mali program koji će importirati ovaj Excel u SQL bazu i omogućiti lakše "surfanje", filtriranje itd.<br /><br /></span></span></div><div><span><span>Ako se predpostavi da je softver u stavkama "INFORMATIZACIJA*", u podstavkama "Rashodi za nabavu neproizvedene imovine", onda ukupni iznos iznosi oko 24.5 milijuna kuna.<br /><table style="font-family: 'Times New Roman'; font-size: medium; "><tbody><tr><td><br /></td><td></td></tr><tr><td><a href="http://vedran.bljak.org/budgetsurf/index.php?nameq=&code=41&parent=-1&typecode=1">Informatizacija, Rashodi za nabavu neproizvedene imovine</a></td><td></td></tr><tr><td><br /></td><td></td></tr><tr><td><br /></td><td><br /></td></tr></tbody></table></span></span></div><div><span><span>No zanimljivo, misteriozne podstavke s naslovom "Rashodi za nabavu neproizvedene imovine" (koje nemaju nikad detaljnije podstavke) ne pojavljuju se samo u stavkama "INFORMATIZACIJA*", nego i npr. "RAČUNALNO KOMUNIKACIJSKA INFRASTRUKTURA U VISOKIM UČILIŠTIMA I JAVNIM INSTITUTIMA" od 14 milijuna kn i mnoge druge kategorije što nas dovodi do ukupnih oko 105 milijuna kuna.</span></span><div><span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "></span></div></div><div><span><span><br /></span></span></div><div><span><span><table style="font-family: 'Times New Roman'; font-size: medium; "><tbody><tr><td><a href="http://vedran.bljak.org/budgetsurf/index.php?nameq=&code=41&parent=-1">Rashodi za nabavu neproizvedene imovine</a><br /><br /></td></tr></tbody></table></span></span></div><div><br /></div><div><span><span>Ono za što je predpostaviti da ima neku vrijednost u nabavkama softvera u Informatizaciji su stavke </span></span></div><div><span><span>"</span></span><span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; ">Nematerijalna proizvedena imovina" za koje je predpostaviti da se radi o softveru rađenom po narudžbi, tj koji se proizvodi za potrebe rada države. Ukupni iznos ovoga je oko 74 milijuna kuna.</span></div><div><span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "><br /></span></div><div><span class="Apple-style-span" ><span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-size: medium;"><a href="http://vedran.bljak.org/budgetsurf/index.php?parent=-1&parentfine=&parentmid=&typecode=1&code=426&nameq=&codeq=&orderf=1&orderv=">Softver po narudžbi</a></span></span></div><div><span class="Apple-style-span" ><br /></span></div>vrodichttp://www.blogger.com/profile/13952600307413126205noreply@blogger.com1tag:blogger.com,1999:blog-6802291155051137127.post-54140068761129035132010-08-23T20:54:00.015+02:002010-08-24T22:00:06.150+02:00Moj kupus, ŠBBKBB iliti TODO listaAko niste voljni čitati nadobudne i vjerovatno pretenciozne osobne rantove i brain dumpove slobodno preskočite ovaj post. <div><br /></div><div><br />Pošto izgleda da je danas dan kada dajem otkaz još jednoj u nizu closed source (i closed mind dodao bih) firmi, možda je najbolje da se opustim uz nekoliko naivnih i praktičnih ideja za koje znam kako ih izvesti. Vjerovatno ću šarati od ideja za pojednostavljenje državne birokracije preko ideja za Android aplikacije, do bojnog plana za osvajanje javnog sektora od Linux desktopa u Hrvata.<br /><br />No prvo o tome što mi je činiti u sljedećem razdoblju: Trebam naći poslodavca koji će shvaćati i prihvaćati da su mi briga za obitelj, prijatelje, zajednicu i moje sebične interese (fakultet recimo) na prvom mjestu. Vjerujem da takav već postoji, a ako netko ima ideju ili prijedlog slobodno se javite.<br /><br />Ajmo polako s idejama:<br /><br /><b>Down to earth:</b><br /><br />1. Proširiti postojeću Kostovu inicijativu za Android Market account tako da razvijemo i održavamo nekakav HULK-ov sistem donacija za domaće Free Software Android / Whatever aplikacije.<br /><br />2. Android aplikacija koja skenira barcodove prehrambenih proizvoda i ima offline bazu sa crnom listom Ebrojeva u proizvodu. Samo uzmete proizvod u dućanu u ruke, skenirate mu barcod i dobijete crveno ili zeleno ovisno o tome ima li proizvod štetnih E dodataka (naravno postoji opcija za pregled detalja E brojeva a ako smo online i drugih detalja vezanih uz proizvode). Dodatno bi se ta radnja mogla iskoristiti da se proizvod zabilježi kao kupljen, te tako možemo imati i neki pregled / povijest potrošnje, a i jednostavniji način izbora namirnice kod brojanje kalorija ili neko drugo sofisticiranije praćenje prehrane. Naravno za organski proizvedene proizvode bez bar koda treba smisliti nešto drugo za jednostavno identificiranje (brzi izbor voće, povrće, boja, oblik, last recently used etc)<br /><br /><br /><b>Blue sky:</b><br /><br />Ideje u domeni odnosa države i građana:<br /><br />I. Zdravstvena knjižica:<br /><br />Kako relativno često mijenjam poslove, primjetio sam jednu glupu ostavštinu prošlih vremena: Posebnu zdravstvenu knjižicu koju iz nekog čudnog razloga treba mijenjati svaki put kada se promjeni radni status, a valjda i svaki put kada završite osnovnu, srednju ili fakultet. Ta zdravstvena knjižica ionako sadrži datum isteka koji ne znači baš ništa (jer osiguranje formalno može "isteći" i prije - o tome kako se uopće u socijalnoj državi može dogoditi da nemate osnovno zdravstveno osiguranje malo poslje). Dakle jedino što bi na njoj trebalo biti bitno je broj zdravstvenog osiguranja, odnosno OIB odnosno JMBG odnosno broj osobne izkaznice odnosno broj putovnice. Sve su to u biti ključevi za identifikaciju građana RH, i u teoriji bi bilo dovoljno imati recimo samo osobnu ili putovnicu (sa barcodom ili npr. qr codeom za strojno čitanje tog malog ključa). Status zdravtvenog osiguranja bi se transparentno u pozadini promjenio kada bi dobili prvi posao, dali otkaz, završili fakultet itd itd. Ionako ga uvijek zapravo imamo (neki imaju i bonus dopunsko ako su bez posla ili slično) i jedino što je bitno je da se to na nekog "knjiži" radi poreznih razloga, ali to stvarno ne znači da svaki put moramo mijenjati tu plastiku. Predpostavljam da fino zarađuje na toj plastici, a ako nije u pitanju neka korupcija, opet me fascinira glupost u javnom sektoru (nadam se da je samo glupost, jer tada je valjda lakše popraviti ovo).<br /><br />A drugi problem/pizdarija oko zdravstvenog osiguranja je to što se može dogoditi da ostanete neosigurani jer ste recimo mislili da datum isteka koji piše na zdravstvenoj kartici zapravo znači datum isteka zdravstvenog osiguranja. Ne, to znači jedino i samo to koliko vrijedi taj komad plastike. U idealnom slučaju status zdravstvenog osiguranja bi se računalno provjerio prilikom svakog korištenja neke zdravstvene usluge, i gdje bi se korisnik samo upozorio da njegov status nije jasan (recimo zbog završetka studentskih prava gdje je uobičajeno da zdravstveno osiguranje sa roditelja/fakulteta "prelazi" na zavod za zapošljavanje ili budućeg poslodavca).<br /><br />II. Još malo o zdravstvu:<br /><br />Bilo bi lijepo kada bi laboratoriji za pretrage odnosno specijalisti automatizmom digitalno slali informacije o nalazima liječniku opće prakse, odnosno nadležnom specijalistu. Vjerujte, ovo bi uštedjelo kilometre i kilometre koji ljudi sami prelaze kako bi raznosili nalaze okolo liječnicima. U tom slučaju bi i liječnici mogli nazvati pacijente čim nalazi stignu, a ne da pacijenti moraju raditi upite svako malo. Dakle u računalnom žargonu, "digital event based a ne analog poll bazed event handling". Bilo bi lijepo i da pacijenti građani) imaju token za pristup centralnoj birokraciji gdje mogu sami pogledati svoj zdravstveni karton, rezultate pretraga, plan liječenja, dijetu, prisjetiti se ocjena u školi ili za one za nekom vrstom alzeihmerove bolesti, vidjeti koliko nekretnina imaju, tko su im roditelji, gdje su rođeni, itd itd :) I tako, ima tu puno etičkih i drugih pitanja koje treba razmotriti prije deploymenta. No predpostavljam da ne želimo da ovako nešto jednom za nas radi neki closed source sistem ili nedaj bože Facebook :)<br /><br />U varijanti gdje JMBG ili OIB ili broj osobne ili broj putovnice stvarno postaju ono što jesu, a to su ključevi s kojim se identificira građanin-pojedinac, nije nam više potrebna niti radna knjižica niti pokaz niti Xica, a u idealnom slučaju (kada bi imali taj "token").<br /><br />Od domaćih sustava, možda je upravo sustav iza Xice (ili studomata) baza za ovakvo nešto.<br /><br /><br />III. Stavimo Linux na desktope javnog i državnog sektora.<br /><br />Stvarno, želimo li i danas, uz solidan i uoptrebljiv desktop na linuxu plaćati svake godine milijune za MS licence? Možda možemo otvoriti malu firmu koja bi se bavila supportom i specifičnim potrebama korisnika u državnom sektoru za novce utrošene na MS licence i time bar malo spriječiti odlijev novca odnosno nepovoljan omjer uvoza i izvoza?<br /><br />IV. Pomognimo Marku Rakaru da http://proracun.pollitika.com/2010/korisnici.html ima više informacija, real time informacija, podataka o aktivnim natječajima u javnoj nabavi i slično ili nagovorimo državu/vladu/sabor da ovakave projekte kvalitetno odrađuju Narodne novine tj da ih financira sama država.<br /><br />V. Pripremimo sve ove projekte tako da lako postanu dio nečeg većeg kada uđemo u EU ili se ujedinimo sa USA (kiberkomunist approved). Koristimo postojeća (Free software) riješenja gdje god možemo. Nemojmo se bojati ulagati u globalnu zajedničku infrastrukturu.<br /><br />VI. Podržimo Zajedničko i zadružno stanovanje http://bit.ly/bEbcwK, Reciklirano imanje - Vukomerić http://bit.ly/arRK0U i slične projekte.<br /><br /><div>VII. Nacionalizirajmo ponovo Hrvatske Telekomunikacije ili barem:<br /><br />Definirajmo jasnije javno pravo na DTK. Prisilimo HT na članstvo u CIX-u. Dajmo im dozvolu da postavljaju optiku, stavimo cijenu za najam niti na 100 kn po mjesecu po korisniku kako bi se brže vraćala investicija, ali svakako omogućimo da infrastrukturu od prvog dana mogu koristiti i alternativci. Regulirajmo maksimalne i minimalne cijene. Postavimo u zakon da svaka telefonska parica / veza može prenijeti neki normalni broadband a ne trenutnih 128K kako bi prisilili monopolistu da izgradi lokalnu infrastrukturu (ili stvorimo budžet za ovo dodatnim oporezivanjem operatera sa veliki tržišnim udjelom). Borimo se za simetrični broadband (sa korisnim upload brzinama). Borimo se za low latency broadband. Borimo se za 100megabitne, i gigabitne internet veze. Zadnje tri stavke omogućavaju i vrlo dobar peer to peer cloud - što nam treba za nekakav Diaspora-like social networking). Iskoristimo stvarno podatkovne kapacitete javnih poduzeća. Kad planiramo novu infrastrukturu za nova ili postojeća naselja, predvidimo i prostor sve bitno (da i optički internet pristup), kako nebi nepotrebno prekopavali kvart/naselje svako malo.<br /><br />VIII. Dolazimo na razmjene vještina.<br /><br />IX. Stvorimo računala koja možemo uzgajati kao što uzgajamo biljke i koja si stvaraju energiju sama kao što ih stvaraju biljke i koja imaju mrežu korjenja za povezivanje slično kao što i biljke imaju korijenje (prvi korak, pogledajte <a href="http://bbf.openwetware.org/">http://bbf.openwetware.org/</a>).</div><div><br /></div><div>X. Razno.</div><div><br /></div><div>Diskusija o ovom blog postu nalazi se i na <a href="http://ff.im/pAJvz">Friendfeed-u</a><br /><br /><br /><br /><br /></div></div>vrodichttp://www.blogger.com/profile/13952600307413126205noreply@blogger.com0tag:blogger.com,1999:blog-6802291155051137127.post-65381159104954508832010-07-04T09:49:00.006+02:002010-07-04T10:25:30.583+02:00Making Android development more enjoyableHere's some things Google should look into:<div><br /></div><div><span class="Apple-style-span" style="font-size: large;">0. Include android market in the emulator/test environment</span></div><div><span class="Apple-style-span" style="font-size: large;"><br /></span></div><div><span class="Apple-style-span" style="font-size: medium;">That should be fast and easy to do. </span></div><div><br /></div><div><span class="Apple-style-span" style="font-size: large;">1. Try finding some ways to speed up the compile/test cycle:</span></div><div><span class="Apple-style-span" style="font-size: large;"><br /></span></div><div><span class="Apple-style-span" style="font-size: large;">a) Avoid moving too much </span><span class="Apple-style-span" style="font-size: large; ">stuff</span> <span class="Apple-style-span" style="font-size: large; ">arround</span></div><div><span class="Apple-style-span" style="font-size: medium;">Currently every time an .apk file must be produced (compressed) on the developers machine, containing all the code and application resources. This apk that contains everything is then transferred to the phone or emu. It's then unpacked on the phone and the install procedure is run. It doesn't matter if you just changed one class file, the whole thing is moved around. </span></div><div><span class="Apple-style-span" style="font-size: medium;"><br /></span></div><div><span class="Apple-style-span" style="font-size: medium;">I understand that permissions are managed during the install process, but this could be solved in some other way like trusting the code for that app by default. </span></div><div><span class="Apple-style-span" style="font-size: medium;"><br /></span></div><div><span class="Apple-style-span" style="font-size: medium;"><span class="Apple-style-span" style="font-size: large; ">b) </span></span><span class="Apple-style-span" style="font-size: large; ">Make the test environment run in native code during the development process</span></div><div><span class="Apple-style-span" style="font-size: medium; ">I know that using an emulator was a nice and fast solution for you, but a lot of time and energy is lost on emulating ARM. Davlik runs on x86, and all other code also. Why don't we just make a jailed/chrooted native environment for testing available? I know that this is not a straightforward thing to implement on Windows, and there might be difficulties making this run on Mac OSX, but it's really worth it.</span></div><br /><div><span class="Apple-style-span" style="font-size: medium;"><span class="Apple-style-span" style="font-size: large; "><br /></span></span></div><div><span class="Apple-style-span" style="font-size: medium;"><br /></span></div><div><span class="Apple-style-span" style="font-size: large;">2. Improve the visual layout editor.</span></div><div><span class="Apple-style-span" style="font-size: large;"><br /></span></div><div><span class="Apple-style-span" style="font-size: medium;">There's so many ways this could be improved, but making it faster/more intuitive is the general idea.</span></div><div><span class="Apple-style-span" style="font-size: medium;"><br /></span></div><div><span class="Apple-style-span" style="font-size: medium;">One quick suggestion: Try making it easier to jump to respective code implementations or have an option to generate event handlers etc. code if no code referencing that UI object is found.</span></div><div><span class="Apple-style-span" style="font-size: medium;"><br /></span></div><div><span class="Apple-style-span" style="font-size: medium;">Example of a great code editor/UI designer integration is Borland Delphi. Even really old versions have ease of use that Android developers could only dream of. Android API is more abstract and UIs have relative layouts, but most of the great concepts from Delphi still apply. </span></div><div><span class="Apple-style-span" style="font-size: medium;"><br /></span></div><div><span class="Apple-style-span" style="font-size: medium;">Item 1 b) could also create possibilities for the UI designer tool. </span></div><div><span class="Apple-style-span" style="font-size: medium;"><br /></span></div><div><span class="Apple-style-span" style="font-size: large;"><br /></span></div><div><span class="Apple-style-span" style="font-size: medium;"><br /></span></div><div><span class="Apple-style-span" style="font-size: medium;"><br /></span></div>vrodichttp://www.blogger.com/profile/13952600307413126205noreply@blogger.com2tag:blogger.com,1999:blog-6802291155051137127.post-63435592810292021532010-05-23T23:51:00.013+02:002010-05-30T16:19:23.999+02:00HTC Desire prvi dojmovi<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_UuK1V0ZktBs/S_m33_RVztI/AAAAAAAAApc/TFqMPZ48f2s/s1600/28621_1418262649416_1018138934_31212023_7415099_n.jpg"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 214px; height: 320px;" src="http://4.bp.blogspot.com/_UuK1V0ZktBs/S_m33_RVztI/AAAAAAAAApc/TFqMPZ48f2s/s320/28621_1418262649416_1018138934_31212023_7415099_n.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5474608994550402770" /></a><div><span class="Apple-style-span" style="font-family:georgia;"><b>EDIT:</b></span><span class="Apple-style-span" style=" ;font-family:georgia;"> 26.5.2010: par novih detalja, + vesela informacija da je Samsung I9000 Galaxy S koliko vidim HTC Desire killer. </span></div><div><span class="Apple-style-span" style=" ;font-family:georgia;"><br /></span></div><div><span class="Apple-style-span" style=" ;font-family:georgia;">Kupih na pretplatu u VIP-u. Onu najmanju od 30kn, + 10 kn za radijsku frekvenciju + još</span></div><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;">oko 10 kn za iskorištavanje "besplatnih" minuta + po želji oko 30 kn za 200 MB prometa. Dakle obvezao sam se na trošenje minimalno 50tak kuna mjesečno sljedeće dvije godine.<br /><br /></span></span><b><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;">+ 2400 kn </span></span></b><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;">za sam telefon i nije toliko loš deal.<br /><br />Kad sam kupovao </span></span><b><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;">HTC Desire</span></span></b><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;"> znao sam da nije savršen, da ekran nije najbolje čitljiv na suncu, da uskoro dolaze novi uređaji temeljeni na bržem 4</span></span><b><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;">5 nm Qualcomm Snapdragonu</span></span></b><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;"> (moguće da će biti 1.5 GHz dual core!) i da će vjerovatno HTC kilaviti sa update-om na Android 2.2 za Desire , ali sam znao i da ima trenutno najbrži procesor, najviše memorije i odličnu kvalitetu zvuka, što mi je jako važno.<br /><br />Opasno me zainteresirala </span></span><b><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;">Motorola Milestone (Droid u USA)</span></span></b><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;">, koja ima tipkovnicu, nešto sporoji procesor, ali zato dosta brži GPU. No ona je pala na audio testu na gsmarena.com, što provjeram za svaki mobitel koji uzimam u obzir pošto sam se opekao sa </span></span><b><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;">Nokiom N79</span></span></b><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;"> gdje mi je glazba bila neslušljiva od distorzija. Ta Nokia je bila blizu savršenstva, tj. Nokia E52 bi bila još bliža, ali sam odlučio zamjeniti sada prilično zrelu Symbian platformu sa Android-om koji je ipak njubi...</span></span><div><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;"><br /></span></span></div><div><ul><li><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;"><s>Još nema kvalitetne offline navigacije (Symbian Nokie imaju </s></span><s></s></span><s><b><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;">Garmin XT</span></span></b><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;"> koji je odličan).</span></span></s><span class="Apple-style-span" style=" ;font-family:georgia;"><b> iGo </b> ima aplikaciju </span><span class="Apple-style-span" style="font-family:georgia;"><b>Motonav</b>,(ima i potpuniji <b>My way</b>, ali neznam dali postoji verzija za Androide sa velikom rezolucijom)</span><span class="Apple-style-span" style=" ;font-family:georgia;">, detalji </span><span class="Apple-style-span" style="font-family:georgia;"><a href="http://cafe.mobil.hr/threads/67490-iGO-Motonav-sa-mapama-Hrv-Slo-Srb-Au">ovdje</a></span><span class="Apple-style-span" style=" ;font-family:georgia;">. Navteq karte su bolje od Teleatlas karti izgleda. Garmin XT je još uvijek bolji, lijepše renderira karte i brži je. </span></li></ul><ul><li><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;">Izgleda da je potrebno koristiti nekakav </span></span><b><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;">Task manager</span></span></b><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;"> za ubijanje aplikacija, koje u pravilu nemaju exit ili quit opciju i vole sjediti u backgroundu.</span></span></li></ul><ul><li><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;">Android issue 3708, </span></span><b><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;">Akcelerometar </span></span></b><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;">ne može dojavljivati podatke kada je ekran ugašen, tj. kad je mobitel u sleep mode-u. Ovime aplikacije koje recimo mjere broj koraka postaju skoro pa beskorisne jer puno brže popiju bateriju. Drugi primjer je navodno odlični Smart alarm. A i ja planiram napraviti aplikaciju koja inteligentno koristi akcelerometar u pozadini.</span></span></li></ul><ul><li><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;">Još nisam naletio na dobar </span></span><b><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;">DivX player. <span class="Apple-style-span" style="font-weight: normal;">HTC je nešto obećao u kasnije SW updateu. Ali poznato je da se ne može vjerovati ovakvim obećanjima od proizvođača mobitela.</span></span></span></b></li></ul><ul><li><b><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;">Opera 5 Mini</span></span></b><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;"> je još uvijek brzinom navigacije (back, forward, history) bolja od Android browsera. Komentar dolje spominje i Dolphin, ali to nisam probao. Android stock browser naravno bolje podržava JavaScript i HTML5 od Opere 5 mini. </span></span></li></ul><ul><li><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;"></span></span><b><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;">root-anje </span></span></b><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;">Androida (za stavljanje custom ROM-ova) još <a href="http://forum.xda-developers.com/showthread.php?t=684473">nije stabilno</a> za HTC Desire, neki ljudi uspiju brickati telefone kod flashanja, neki ne (meni osobno ovo nije toliko bitno, iako me živcira što se neke meni nepotrebne HTC aplikacije, </span></span><b><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;">Stocks </span></span></b><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;">recimo, stalno vraćaju u listu aktivnih procesa, iako ih nisam dozvao)</span></span></li></ul><ul><li><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;">Još nema </span></span><b><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;">custom ROM-a</span></span></b><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;"> koji je stabilan, tj implementira sve HW mogućnosti uređaja</span></span></li></ul><ul><li><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;">Hardver je dovoljno različit od Nexus One-a da se na njega ne može staviti Nexus One ROM, što će vjerovatno značiti da će HTC Desire korisnici dobiti </span></span><b><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;">Android 2.2</span></span></b><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;"> kasnije od Nexus One korisnika (nadajmo se da griješim)</span></span></li></ul><ul><li><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;">Aplikacije se po defaultu </span></span><b><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;">ne mogu instalirati na SD karticu</span></span></b><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;">, što ograničava prostor za instalaciju, HTC Desire ima samo 147 MB za instalaciju aplikacija. Ovo riješava </span></span><span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px; "><b><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;">Apps2SD </span></span></b><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;">(treba root), ili Android 2.2, ali oboje je trenutno nedostupno za Desire</span></span></span></li></ul><ul><li><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;">Poneki bug u browseru</span></span></li></ul><ul><li><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;"><b>3D</b> je definitivno sporiji od <b>iPhone-a</b> 3GS, Motorole Droid, a vjerovatno i iPhone-a 3G</span></span></li></ul><ul><li><span class="Apple-style-span" style="font-family:georgia;"><b>FM radio</b> softver je dosta neintuitivan, i zna se skršiti tako da je potreban reboot mobitela da bi se radoi ponovo osposobio, dok uredno nastavi trošiti 100% CPU-a, što je smrt za bateriju</span></li></ul><ul><li><span class="Apple-style-span" style="font-family:georgia;"><b>Aplikacije koje se plaćaju</b> nisu dostupne kod nas? </span></li></ul><div><b><span class="Apple-style-span" style="font-family:georgia;"><br /></span></b></div><div><b><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style=" font-weight: normal; font-family:Georgia, serif;"><div><div><span class="Apple-style-span" style="font-family:georgia;"><b>Aplikacije koje još tražim:</b></span></div><div><span class="Apple-style-span" style="font-family:georgia;"><br /></span></div><div><ul><li><span class="Apple-style-span" style=" ;font-family:georgia;"><b>Music player</b> koji ima file browser i playa po redu iz trenutnog foldera. </span></li></ul><div><span class="Apple-style-span" style="font-family:georgia;"><br /></span></div></div></div></span></span></b></div><div><b><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="font-family:georgia;"> </span></span></b></div><div><b><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-style-span" style="font-family:georgia;">B</span></span><span class="Apple-style-span" style="font-family:georgia;">onus</span></b></div><div><b><span class="Apple-style-span" style="font-family:georgia;"><br /></span></b></div><div><span class="Apple-style-span" style="font-family:georgia;">Aplikacije koje sam instalirao, redom kojim sam ih instalirao (- neke igre):</span></div><div><span class="Apple-style-span" style="font-family:georgia;"><br /></span></div><div><span class="Apple-style-span" style="font-family:georgia;">Google Sky Map, Compass (Snaptic), ConnectBot, ASTRO File manager, Accelerometer Values, Android Sensor Data, Sensor List, Input Benchmark, Ultimate Stopwatch, Spare Parts, PowerTutor, fring (Skype, SIP, odlično), GPS Status, GPS Test, GPS Essentials, SID Player, Robo Defense FREE, Task Manager (Rhythm Software), android-vnc-viewer, Android System Info, NetCounter, Neocore (benchmark za grafiku), NenaMark1 (još jedan GPU bench), Tuner - gStrings, Robotic Guitarist Free, Splash Piano (prilično loš klavir, ali nema bolji), Buddy Runner, Endomondo Sports Tracker, SportPal OS1.5, Hi-Hiker Pro, Pedometer, Cardio Trainer (da, testiram personal GPS enabled aplikacije za trčanje/hodanje/bicikliranje, Cardio Trainer je simpa), Android SPL METER, KeepScreen, Fractoid, 2 Ballz Physics Toz, System Panel App / Task Manager, Free Advanced Task Manger, Spectral Audio Analyzer, FxCamera, PicSay, Ethereal Dialpad (synthezer), Camera Illusion, RTA Audio Analyzer, Barcode Scanner, Shazam, Google Goggles (malo nestabilno), ColorFlashlight Fun Flashlight, Call History (xiaoheng.liu), Mobile Metronome, Paint Joy, Raging Thunder LITE, Open GPS Tracker, WiFi Analyzer, Google Translete, OpenGL Demos, Sipdroid VoIP, Linpack for Android</span></div><div><span class="Apple-style-span" style="font-family:georgia;"><br /></span></div><div><span class="Apple-style-span" style="font-family:georgia;"><br /></span></div><div><span class="Apple-style-span" style="font-family:georgia;">Photo by Goran Zec</span></div></div>vrodichttp://www.blogger.com/profile/13952600307413126205noreply@blogger.com16tag:blogger.com,1999:blog-6802291155051137127.post-24487014311913141062009-11-26T15:28:00.004+01:002010-05-26T16:11:02.762+02:00TwinLab Calcium 1000 sa Vitaminom D SMRDIOvo je otvoreno pismo poslano gosp. Ivanu Tudoru iz firme Agram 89 d.o.o, koja je zastupnik tvrtke TwinLab.<br /><br />Nedavno sam u jednoj ljekarni u Dugom Selu kupio proizvod firme koju zastupate, TwinLab Calcium 1000 sa Vitaminom D.<br /><br />U ljekarni gdje sam kupio proizvod su me uputili na vaš broj 01 3888 555. Vaše kontakt informacije dobio sam jer su me na vas uputili kada sam nazvao 01 6138 000.<br /><br />Računao sam na pomoć u ljekarni oko odabira najboljeg dodatka u prehrani koji sadrži kalcij i Vitamin D i bio mi je preporučen ovaj proizvod.<br /><br />Moj otac je nedavno operiran zbog rane faze adenokarcinoma (odstranjen mu je dio plućnog krila). Nedavno sam naišao na studiju koja govori da kombinacija Vitamina D i kalcija pomaže kod uobičajenih vrsta karcinoma (http://www.ncbi.nlm.nih.gov/pubmed/17556697).<br /><br />Iako ovo istraživanje nije provedeno specifično za adenokarcinom, mislio sam da ne može škoditi ako ocu kupim dodatak u prehrani koji sadrži Vitamin D i kalcij.<br /><br />Otvorio sam novo kupljeni proizvod i nakon što sam uzeo jednu tabletu primjetio sam u popisu sastojaka Titanijum dioksid, koji se u ovom proizvodu vjerovatno koristi zato da bi tablete bile bijele boje. Titanijum dioksid, E171 (http://www.ukfoodguide.net/e171.htm). Na priloženoj internetskoj stranici piše da je TiO2 zabranjen u Njemačkoj i da se može detektirati u limfnim čvorovima i plućnim stanicama nakon ulaska u ljudsko tijelo.<br /><br />Pošto TiO2 nema biološku ulogu u ljudskom tijelu, a spominje se da je iritant i da je potencijalno kancerogen, pitam se zašto se ovakvi proizvodi uopće prodaju, tj. zašto se u proizvod stavlja potencijalno opasan dodatak koji nema nikakvu funkcionalnu ulogu. Mislim da marketing i igranje sa psihologijom nebi nikad smjeli imati prednost nad funkcijom posebno kada se radi o ljudskom zdravlju i kada dodatak koji se stavlja iz marketinških potreba može štetiti.<br /><br />Stranica wikipedije http://en.wikipedia.org/wiki/Titanium_dioxide sadrži ukupno 6 referenci na studije kojim su okarakterizirani negativni učinci na ljudsko zdravlje.<br /><br />Nisam zadovoljan sa ovim proizvodom i neću ga koristiti, a niti moj otac. Proizvod sam platio 173 kn i imam račun iz ljekarne. Nije mi iznimno važno da dobijem natrag novac i nekakvu "zadovoljštinu", nego da se ljudi informiraju. Povrat novca bio bi lijepa gesta sa vaše strane.<br /><br />Možda ću pokrenuti inicijativu o zabrani proizvoda koji sadrže ne funkcionalne, kozmetičke E dodatke a koji imaju uz sebe povezane negativne efekte (E110, E171 itd). Molim zainteresirane da mi se pridruže.<br /><br />Pokrenuo sam raspravu o ovoj temi na adresi:<br /><br />http://ff.im/c2BgG<br /><br />No siguran sam da se o ovome raspravlja i na mnogim drugim mjestima na internetu.vrodichttp://www.blogger.com/profile/13952600307413126205noreply@blogger.com0tag:blogger.com,1999:blog-6802291155051137127.post-76305456897752154752008-11-10T11:15:00.003+01:002008-11-10T11:43:26.068+01:00Stimulacija za korisnike željezničkog prijevozaVeć dulje vrijeme razmišljam o tome kako usluge javnog prijevoza mogu postati popularnije među mlađom, informatički osvještenijom ekipom. Podjelit ću sa vama danas jednu od ideja. <br /><br /><br />WLAN internet na željezničkim kolodvorima, a možda jednom i u vlakovima u pokretu. <br /><br />Evo opisa mogućeg rješenja: Svaki kupac željezničke karte ima pristup internetu u trajanju od 1-2 sata za vrijeme čekanja polaska vlaka na kolodvoru+ za vrijeme vožnje (dok vlak stoji na usputnim stanicama). U ovom slučaju svaki veći kolodvor ili stajalište vlaka ima nekoliko WLAN AP-ova, a softver u pozadini brine se da putnik može upisati broj sa karte kojim će se autorizirati u sustav. Korisnici pokaza i mjesečnih karata imali bi uvijek pravo na pristup, s time da bi se isto tako jednom autorizirali brojem na pokazu/mjesečnoj karti. Moguće prevare sa pokazima rješio bi sustav koji ne dozvoljava istovremeno korištenje na različitim kolodvorima, a uzima u obzir i MAC adrese i ukupno vrijeme korištenja pristupa internetu. <br /><br />Ovime bi se postiglo više različitih stvari:<br /><br />- putnici bi imali motiv doći ranije na vlak, te ranije kupiti kartu, i tako smanjiti gužve u prodaji karata, na ulasku u vlak i slično<br />- privukli bi se mladi zaposleni ljudi kojima se vrijeme stajanja na kolodvoru može pretvoriti u produktivni rad<br />- općenito bi ovakva akcija bila izvrstan marketinški potez za HŽ<br /><br />Mogući partneri HŽ-u u ovakvom projektu bili bi: Optima Telekom, Metronet, Iskon, CARNet, a možda čak i T-Com. <br /><br />Internet pristup za vrijeme vožnje bi imao smisla prvenstveno za vlakove koji voze na duge relacije, a mogao bi se izvesti HDSPA + WLAN kombinacijom, ili možda čak usmjerenim WLAN antenama na željezničkim postajama i prikladnim antenama na početku i kraju vlaka. Ili modulacijom frekvencije/napona elektrificiranih pruga kao što se radi u kućnim mrežama baziranim na strujnim vodovima. No nekako mi se ta zadnja opcija čini najskupljom :)vrodichttp://www.blogger.com/profile/13952600307413126205noreply@blogger.com6tag:blogger.com,1999:blog-6802291155051137127.post-89119449023931345592008-04-05T16:00:00.013+02:002008-04-06T17:10:09.878+02:00Radeon HD 3850 Power consumption/LinuxI had the opportunity to test a Radeon HD 3850 card recently and I've tested my two favorite hardware properties: Performance and power consumption. I won't go into too many details about the performance, it's sufficient to say that Crysis is playable with max details under 1024x768 with a Core 2 E8200 CPU. Of course Crysis won't work under Linux, at least not yet.<br /><br />About the power consumption though:<br /><br />I've recently bought a <a href="http://www.p3international.com/products/special/P4400/P4400-CE.html">Kill-a-watt</a> equivalent for the European market, an Art. Nr. 002580 from <a href="http://www.rev.biz/">REV</a> (description available at the German language page).<br /><br /><div style="text-align: left;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_UuK1V0ZktBs/R_eNTMMF9tI/AAAAAAAAAFE/6E3AmGzqSD4/s1600-h/kaw.jpg"><img style="margin: 0px auto 10px; display: block; cursor: pointer;" src="http://3.bp.blogspot.com/_UuK1V0ZktBs/R_eNTMMF9tI/AAAAAAAAAFE/6E3AmGzqSD4/s320/kaw.jpg" alt="" id="BLOGGER_PHOTO_ID_5185768856769394386" border="0" /></a><br /></div><br />So I've measured the consumption of a complete system. 460W power supply from <a href="http://www.coolermaster.com/products/product.php?act=detail&id=3728">Coolermaster</a>, P35-DS3P rev 2.0 motherboard from Gigabyte, 2 GB of Corsair CL5 RAM, and our subject the Sapphire Radeon HD 3850 Ultimate.<br /><br />When the graphics driver was still not loaded (in the BIOS, during post, in the boot loader, and during the OS load) the machine was using 119 W. When Windows loaded power consumption under idle went down to <span style="font-weight: bold;">81 W</span>. Under Linux idle consumption with the latest fglrx driver was <span style="font-weight: bold;">87 W</span>, so somewhat higher. When I switched the VT to text mode, it went up to arround <span style="font-weight: bold;">119 W</span> again. When the graphics driver under Linux does a LeaveVT to switch to text mode, it usually restores the state of the registers to the one found before the driver is loaded. That leads me to a conclusion that the video BIOS of the card doesn't do anything to save power, and we must wait for the driver to load for the PowerSaving features to be enabled. Regarding the open source "radeon" driver for Xorg, Alex Deucher just recently <a href="http://lists.freedesktop.org/archives/xorg/2008-April/034457.html">added DynamicClocks support</a>, so that should help. I'll test it later and make an update to this post to let you know how it works out.<br /><br />Here are some more values for the system if you're curious.<br /><br />Crysis 1024x768 all details high: <span style="font-weight: bold;">153 W</span><br /><span style="font-weight: bold;">3</span>DMark 2001SE under Linux/Wine, Fill rate test, single texturing: <span style="font-weight: bold;">165-172 W</span> (this is the champion)<br />3DMark 2001SE under Linux/Wine, High poly count: <span style="font-weight: bold;">123-128 W</span><br />glxgears Linux: <span style="font-weight: bold;">140 W</span><br /><br />2x burnP6 (this test just exercises the CPU): <span style="font-weight: bold;">116 W</span><br /><br />As a contrast the Thinkpad X60s that I'm writing this post on uses <span style="font-weight: bold;">38 W</span> under maximum load, <span style="font-weight: bold;">17-19</span> <span style="font-weight: bold;">W</span> when idle, and around <span style="font-weight: bold;">22 W</span> under typical use. Internal LCD panel consumption included in the figure of course. When in low power mode (typically on battery) it uses about <span style="font-weight: bold;">10-11 W</span>. (Panel brightness lowered, wireless turned off).vrodichttp://www.blogger.com/profile/13952600307413126205noreply@blogger.com3tag:blogger.com,1999:blog-6802291155051137127.post-68687864375972619932008-04-05T14:50:00.002+02:002008-04-05T16:08:56.951+02:00Update on tha XAA/EXA sagaIf you're using newer Xorg/mesa/intel driver, you will find that XAA doesn't work anymore. My machine tends to have a hard lockup. XAA probably broke because of the changes in the DRI/DRM 3D part of the driver.<br /><br />Switching back to EXA makes it work, but with the same old performance problems. Still it's possible to make it go faster with a<br /><dl><dt><b>Option "MigrationHeuristic" "greedy" </b></dt></dl>in the "Device" section of your xorg.conf<br /><dl><dd><br /></dd><dd><br /></dd></dl>The mandatory sysprof of Firefox 3 doing business.hr test:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_UuK1V0ZktBs/R_d4h8MF9rI/AAAAAAAAAE0/lHYFNMWYERY/s1600-h/intel-debian-sid-greedy.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_UuK1V0ZktBs/R_d4h8MF9rI/AAAAAAAAAE0/lHYFNMWYERY/s320/intel-debian-sid-greedy.png" alt="" id="BLOGGER_PHOTO_ID_5185746020428281522" border="0" /></a><br /><br />The exa manual page says this about the option:<br /><dl><dt><b>Option "MigrationHeuristic" "</b><i>anystr</i><b>"</b></dt><dd>Chooses an alternate pixmap migration heuristic, for debugging purposes. The default is intended to be the best performing one for general use, though others may help with specific use cases. Available options include "always", "greedy", and "smart". Default: always.</dd></dl>vrodichttp://www.blogger.com/profile/13952600307413126205noreply@blogger.com0tag:blogger.com,1999:blog-6802291155051137127.post-53289349503997356182008-01-17T22:20:00.000+01:002008-01-17T22:58:53.157+01:00UPDATE: Firefox/Mozilla performance under linux/XorgThe addition of the <span style="font-weight: bold;">Option "XAANoOffscreenPixmaps" "true" </span>also helps with the Intel hardware I have. Be sure not to use EXA on the Intel because it also makes things really slow for now. Maybe EXA will be fixed some day on the "intel" driver, but currently it's better not to use it.<br /><br />Here is the profile from the EXA intel current git (Firefox 2), it's slow:<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_UuK1V0ZktBs/R4_O-eLyskI/AAAAAAAAAEM/Y6bcarbclw0/s1600-h/business-exa-intel.png"><img style="cursor: pointer;" src="http://1.bp.blogspot.com/_UuK1V0ZktBs/R4_O-eLyskI/AAAAAAAAAEM/Y6bcarbclw0/s320/business-exa-intel.png" alt="" id="BLOGGER_PHOTO_ID_5156567671012241986" border="0" /></a><br /><br /><br />Additional links:<br /><br /><a href="http://nskunca.pbf.hr/%7Evedran/ffoxperf/business-exa-intel.sysprof.bz2">business-exa-intel.sysprof.bz2</a>vrodichttp://www.blogger.com/profile/13952600307413126205noreply@blogger.com0tag:blogger.com,1999:blog-6802291155051137127.post-18994778924772429062008-01-17T16:46:00.000+01:002008-01-17T23:10:53.188+01:00Firefox/Mozilla performance under linux/XorgToday I've had enough of some sites being slow under Linux and Firefox. The particular site at this occasion was <a href="http://business.hr/">business.hr</a>. The machine in question is a 3.4 GHz Pentium 4 with a Radeon X300, running the open source "ati" driver (this one loads the actual "radeon" driver). The Linux on the machine is a Debian unstable running xorg core ver. 1.4.1~git20080105-1 and ati ver. 6.7.197-1. I've tried running current git Xorg and drivers, but while I was happy to have it compile, it segfaulted (log file attached bellow).<br /><br />The site was just awfully, painfully, slide show like slow when scrolling the page. Latest nightly build of Firefox 3 didn't help. My colleague had a ubuntu 7.10 laptop with intel graphics board that worked like a charm on that page. Fortunately we had another laptop with ubuntu 7.04 with intel that exhibited the same problem as my X300 machine. So I decided upgrading it to 7.10 to see if it will go away. I did that and enabled bling (compiz). The problem went away on the newly upgraded laptop.<br /><br />I figured that enabling compiz on the desktop machine could help. So I've found <a href="http://wiki.debian.org/Compiz">instructions</a>. Compiz didn't work (gtk-window-decorator didn't draw any window decorations). But the business.hr site scrolling got fast! It turns out that the <span style="font-weight: bold;">Option "XAANoOffscreenPixmaps" "true"</span> was the key. I made profiles using sysprof.<br /><br /><div style="text-align: left;">The slow one (Firefox 2):<br /></div><div style="text-align: left;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_UuK1V0ZktBs/R49-seLyseI/AAAAAAAAADc/AxV4TPuuhLw/s1600-h/xaaoffscreenpixmaps.png"><img style="cursor: pointer;" src="http://1.bp.blogspot.com/_UuK1V0ZktBs/R49-seLyseI/AAAAAAAAADc/AxV4TPuuhLw/s320/xaaoffscreenpixmaps.png" alt="" id="BLOGGER_PHOTO_ID_5156479400844374498" border="0" /></a><br /></div><br />The slow one (Firefox 3):<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_UuK1V0ZktBs/R4-W2eLysiI/AAAAAAAAAD8/8WbhClfc3wo/s1600-h/business-ffox3.png"><img style="cursor: pointer;" src="http://1.bp.blogspot.com/_UuK1V0ZktBs/R4-W2eLysiI/AAAAAAAAAD8/8WbhClfc3wo/s320/business-ffox3.png" alt="" id="BLOGGER_PHOTO_ID_5156505960922133026" border="0" /></a><br /><br />The fast one:<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_UuK1V0ZktBs/R49_e-LysfI/AAAAAAAAADk/5XVSZa-0EA8/s1600-h/xaanooffscreenpixmaps.png"><img style="cursor: pointer;" src="http://3.bp.blogspot.com/_UuK1V0ZktBs/R49_e-LysfI/AAAAAAAAADk/5XVSZa-0EA8/s320/xaanooffscreenpixmaps.png" alt="" id="BLOGGER_PHOTO_ID_5156480268427768306" border="0" /></a><br /><br /><br />We spent 81% of the CPU time in X server in the slow case and 40% of the time in the fast case.<br /><br />I wanted to test another scenario with graphics so I found <a href="http://www.kawa.net/works/js/animation/cube-e.html">this site</a> . Even with the naughty XAAOffScreen pixmaps off, it was jerky under Firefox 2, and worked much more smoothly under Windows Firefox 2. So I was delighted to find that Firefox 3 made it smooth under Linux too. Hooray for Linux! Wanting to see if the Firefox 3 was faster still under Windows, I was amused to find that Firefox 3 was jerky there now. Still, under the best case scenario for both systems (ffox 2 on win32, and ffox3 on linux), Windows seemed better CPU usage wise (35% vs 60% CPU usage).<br /><br /><br />There is clearly more room for optimizations, but it seems quite nice now with Firefox 3 and the XAA stuff fixed. In addition to this quirk, with intel driver on the current Xorg git working nice only when EXA is disabled with <span style="font-weight: bold;">Option "AccelMethod" "XAA"</span>, Linux distribution vendors certainly must be careful with how they will tune their Xorg configs and patch their drivers.<br /><br /><br /><span style="font-weight: bold;">UPDATE:</span><br /><br /><span style="font-weight: bold;">Option "AccelMethod" "EXA"</span> also seems to work for the X300, without having to do a <span style="font-weight: bold;">Option "XAANoOffscreenPixmaps" "true", </span><span>which makes sense because XAA and EXA are different acceleration paths. But I'm not sure about the accross the board performance and stability of EXA on the X300. I'll make a new post when I make the tests.</span><br /><br />Here's a snippet of the profile with EXA:<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_UuK1V0ZktBs/R4-SSOLysgI/AAAAAAAAADs/_REHXm_PFDo/s1600-h/exa.png"><img style="cursor: pointer;" src="http://4.bp.blogspot.com/_UuK1V0ZktBs/R4-SSOLysgI/AAAAAAAAADs/_REHXm_PFDo/s320/exa.png" alt="" id="BLOGGER_PHOTO_ID_5156500940105363970" border="0" /></a><br /><br /><br /><span style="font-weight: bold;">UPDATE 2<br /><br /></span>The addition of the <span style="font-weight: bold;">Option "XAANoOffscreenPixmaps" "true" </span>also helps with the intel hardware I have. Be sure not to use EXA on the intel because it also makes things really slow for now. Maybe EXA will be fixed some day, but currently it's better not to use it on intel.<br /><br />Here are additional links and files.<br /><br />sysprof:<br /><span style=";font-family:georgia;font-size:100%;" ><a href="http://nskunca.pbf.hr/%7Evedran/ffoxperf/business-xaaNOoffscreenpixmaps.sysprof.bz2">business-xaaNOoffscreenpixmaps.sysprof.bz2</a></span><span style=";font-family:georgia;font-size:100%;" > </span>(fast)<br /><span style=";font-family:georgia;font-size:100%;" ><a href="http://nskunca.pbf.hr/%7Evedran/ffoxperf/business-xaaoffscreenpixmaps.sysprof.bz2">business-xaaoffscreenpixmaps.sysprof.bz2</a></span> (slow)<br /><a href="http://nskunca.pbf.hr/%7Evedran/ffoxperf/business-ffox3.sysprof.bz2">business-ffox3.sysprof.bz2</a> (slow)<br /><br /><a href="http://nskunca.pbf.hr/%7Evedran/ffoxperf/cube-firefox2.0.bz2">cube-firefox2.0.bz2</a> (slow)<br /><a href="http://nskunca.pbf.hr/%7Evedran/ffoxperf/cube-firefox3.0.bz2">cube-firefox3.0.bz2</a> (fast)<br /><br /><a href="http://nskunca.pbf.hr/%7Evedran/ffoxperf/exaX300.sysprof.bz2">business-exaX300.sysprof.bz2</a> (fast)<br /><br /><br />Crashing Xorg GIT:<br /><a href="http://nskunca.pbf.hr/%7Evedran/ffoxperf/xlog.log">xlog.log</a><br /><br />Bug report on the freedesktop bugzilla:<br /><a href="https://bugs.freedesktop.org/show_bug.cgi?id=12069">https://bugs.freedesktop.org/show_bug.cgi?id=12069</a>vrodichttp://www.blogger.com/profile/13952600307413126205noreply@blogger.com5tag:blogger.com,1999:blog-6802291155051137127.post-2813428878129616402007-11-18T20:51:00.001+01:002008-10-22T22:50:29.329+02:00For fglrx using people having idle overheating problems and eco friendly people...While reading radeonhd dev mailing list I stumbled upon a link to a modified version of radeontool that enables setting power saving registers on new radeon adapters. I've tested it with my Radeon 1950Pro, and sure enough, the card is much cooler when idle (about the same as in Windows).<br /><br />This version changes a couple of settings in the CLKIND power saving registers of which I believe that the "<span style="font-weight: bold;">Auto disable unused pipes' clk"</span> (DYN_SCLK_PWMEN_PIPE in ATI documentation) bit is the most important . When running "./radeontool power low" my glx performance falls from about 12000 FPS to 7000FPS. I've changed the modified radeontool to only enable the 'Auto disable unused pipes clk" power saving bit, and the performance of glxgears came back to 12k FPS level, while retaining a cool device.<br /><br />So I've put the radeontool binary in my /usr/local/sbin, did a <span style="font-weight: bold;">chown root:root radeontool</span>, and chmod +s radeontool, and made gnome to issue "<span style="font-weight: bold;">radeontool power low</span>" command when starting up to workaround the bug in the current fglrx driver.<br /><br />Radeon tool commands:<br /><span style="font-weight: bold;">radeontool power status</span> - show the current status of the power saving registers<br /><span style="font-weight: bold;">radeontool power low</span> - enable power saving<br /><br /><br />I still don't know how to read the temperature sensor data from the card and if anybody knows the relevant registers or other way to access this info, please tell. I used Windows freshly booted after linux and my own fingers to see the temperature differences.<br /><br />Temperature without using radeontool: <span style="font-weight: bold;">50 C</span><br />Temperature after using radeontool: <span style="font-weight: bold;">40-41 C</span><br /><br />Link to the radeon hd mailing list:<br /><a href="http://lists.opensuse.org/radeonhd">http://lists.opensuse.org/radeonhd</a><br /><br />Link to the discussion:<br /><a href="http://lists.opensuse.org/radeonhd/2007-11/msg00069.html">http://lists.opensuse.org/radeonhd/2.../msg00069.html</a><br /><br />Direct link to the original modified radeon tool:<br /><a href="http://www.g2inf.one.pl/%7Eanszom/MBP-ATI">http://www.g2inf.one.pl/~anszom/MBP-ATI</a><a href="http://www.g2inf.one.pl/%7Eanszom/MBP-ATI">/</a><br /><br />My modified version that only turns on disabling of the unused pipes is here <span style="font-weight: bold;">EDIT updated version</span>:<br /><a href="http://bljak.org/%7Evedran/radeontool-1.5-qq-vr3.tar.gz">http://bljak.org/~vedran/radeontool-1.5-qq-vr3.tar.gz</a><br /><br /><br />Old version:<br /><a href="http://nskunca.pbf.hr/%7Evedran/ati/radontool.tar.gz">http://nskunca.pbf.hr/~vedran/ati/radontool.tar.gz</a><br /><br />Relevant documentation from ATI:<br /><a href="http://www.x.org/docs/AMD/RRG-216M56-03oOEM.pdf">http://www.x.org/docs/AMD/RRG-216M56-03oOEM.pdf</a>vrodichttp://www.blogger.com/profile/13952600307413126205noreply@blogger.com18tag:blogger.com,1999:blog-6802291155051137127.post-29507519260431097632007-07-16T13:21:00.000+02:002007-07-16T13:22:13.082+02:00Disappointing Windows STL performance (just reading strings)A friend recently wrote a little test C++ program that counts number of lines in a text file.<br /><br />We tested with a text file that was about 1 GB in size. The computer had 2 GB of RAM, enabling the OS to keep the whole thing in cache.<br /><br />With Windows STL implementation the program run for 40 seconds, even if the cache was hot. Linux version ran for 40 seconds if the cache was cold, and 4 seconds if the cache was hot. He wrote a C version of the program that also took 4 seconds to comlete on Linux. On Windows, C version of the program ran for 10 seconds, still much slower than in Linux.<br /><br />Here is the test source code:<br /><a href="http://bljak.rot13.org/%7Evedran/wctest.cpp">http://bljak.rot13.org/~vedran/wctest.cp<wbr>p</a><br /><br />He later rewrote the C++ version to use a class member function instead of a global function from <string>, and that got it to a speed of 23 seconds. Still, much slower than in Linux.<br /><br />The version of Windows C++ runtime was from Visual Studio 2005.vrodichttp://www.blogger.com/profile/13952600307413126205noreply@blogger.com0