<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://baszerr.eu/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>BaSzErr - blog:2016:08:01</title>
        <description></description>
        <link>https://baszerr.eu/</link>
        <lastBuildDate>Mon, 04 May 2026 22:21:01 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>https://baszerr.eu/lib/exe/fetch.php?media=wiki:dokuwiki.svg</url>
            <title>BaSzErr</title>
            <link>https://baszerr.eu/</link>
        </image>
        <item>
            <title>all_you_do_not_need_to_remember</title>
            <link>https://baszerr.eu/doku.php?id=blog:2016:08:01:all_you_do_not_need_to_remember</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;all_you_do_not_need_to_remember&quot;&gt;2016-08-01 - all you do NOT need to remember&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
some time ago i though about characteristics of a good SW… and its design, as a matter of fact. i came to a conclusion, that &lt;strong&gt;good IT project is all about what you do NOT need to remember&lt;/strong&gt;!
&lt;/p&gt;

&lt;p&gt;
it&amp;#039;s quite simple, if you think about it. if you are in a shitty, legacy project, you&amp;#039;ll notice local system experts will have their heads full of “magic constants”, “hidden assumptions” and other “tribal knowledge”, that makes them effective in navigating through piles of historical-code-den. over years ppl can get used to it, and consider it a normal situation (a very dangerous stage of the IT carrier, if you ask me).
&lt;/p&gt;

&lt;p&gt;
on the other hand if the SW is well designed and codded according to the best industry standards, most likely all you&amp;#039;ll need to remember is a basic (top-level) overview of who-does-what. all the remaining elements you&amp;#039;ll be able either to derive from that basic knowledge or find by quickly diving through abstraction layers. it will be easy, since the SW design is obvious and code is self-documented and divided into well-defined parts: subsystems, modules, libraries, services, etc…
&lt;/p&gt;

&lt;p&gt;
since an average developer is said to be able to comprehend well about 50-100&lt;a href=&quot;https://en.wikipedia.org/wiki/Source lines of code&quot; class=&quot;interwiki iw_wp&quot; title=&quot;https://en.wikipedia.org/wiki/Source lines of code&quot;&gt;KLOC&lt;/a&gt;, for all bigger projects you need to be able to reason and find relevant places. if the design is in place and code is clean, you will be able to find anything in no-time. it will just be so obvious! :) in my carrier i had at least few occasions to benefit from that. working in these projects was a pleasure. when combined with good unit-test coverage, you could navigate easily and test your changes rapidly, at the same time. all of these leading to high quality and good productivity.
&lt;/p&gt;

&lt;p&gt;
if you need to know any “yes, but”s – you&amp;#039;re on a wrong track. turn around and rethink. as a good practice try to organize both design and code, in a way that will require you to remember the least things. this way you should come up with something simple that does the job and is maintainable. &lt;a href=&quot;https://en.wikipedia.org/wiki/Occam&#039;s razor&quot; class=&quot;interwiki iw_wp&quot; title=&quot;https://en.wikipedia.org/wiki/Occam&amp;#039;s razor&quot;&gt;Occam&amp;#039;s razor&lt;/a&gt; applied once more! :)
&lt;/p&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 15 Jun 2021 20:09:18 +0000</pubDate>
        </item>
        <item>
            <title>crapware</title>
            <link>https://baszerr.eu/doku.php?id=blog:2016:08:01:crapware</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;crapware&quot;&gt;2016-08-01 - crapware&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
a few random thoughts on currently made SW… with conclusions. but first lets start with different types of problems.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;2016-08-01 - crapware&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;crapware&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-158&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;type_1ain_t_working&quot;&gt;type 1: ain&amp;#039;t working&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
recently i had an issue - my CD drive hung! it stuck on track-seek phase and was unable to respond to anything, including both “open” and “force open” buttons! even servos for moving CD shelf were down. i had to power turn off and on my whole PC to make it work. i had such a scenario twice, in a single day.
&lt;/p&gt;

&lt;p&gt;
some time ago i read about &lt;a href=&quot;https://wampir.mroczna-zaloga.org/archives/1301-co-za-czasy.html&quot; class=&quot;urlextern&quot; title=&quot;https://wampir.mroczna-zaloga.org/archives/1301-co-za-czasy.html&quot; rel=&quot;ugc nofollow&quot;&gt;headphones that hung&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
a friend of mine had a dish-washing machine, that required restart roughly once a day, otherwise it started to beep randomly and display weird characters on LCD.
&lt;/p&gt;

&lt;p&gt;
last but not least, recently i had my regular phone in service, so i bought cheapest dual-SIM phone there was. software there was a disaster. even though it did not hang, it used to stuck and/or suck on regular scenarios. eg. typing in screen-lock password while SMS arrived caused some dunno-what state, that prevented any key from working. even though screen-lock was enabled and needed to check content of the phone, it was enough to call the mobile and suddenly no password was required to unlock it. one cloud say “but it was a cheapest model”, but i say “yeah - but i still payed for it”!
&lt;/p&gt;

&lt;p&gt;
this is all VERY bad, but still – unintended. but even that&amp;#039;s not always the case…
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;type 1: ain&amp;#039;t working&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;type_1ain_t_working&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;159-1469&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;type_2problematic_to_useless&quot;&gt;type 2: problematic... to useless&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
some time ago i bought 2-year e-subscription for a magazine i used to read in paper version. i decided to make use of my e-book reader for that purpose too. unfortunately e-version is delivered in PDF only. ok then – i just bought mid-size tablet to read it (&lt;a href=&quot;https://baszerr.eu/doku.php?id=blog:2016:04:11:restroom_tablet_mount_project&quot; class=&quot;wikilink1&quot; title=&quot;blog:2016:04:11:restroom_tablet_mount_project&quot; data-wiki-id=&quot;blog:2016:04:11:restroom_tablet_mount_project&quot;&gt;and made a special mount for it&lt;/a&gt; ;)). tablet was inexpensive, simple and looked like up to the task. i uploaded all the issues i had to network drive and shared it over wifi to the tablet. it would be perfect if not for automatic updates, that always started w/o question and just after screen-lock was disabled (i.e. the moment i actually wanted to read something!) and usually blocked device for 1-3 minutes, for all the stuff to update and/or install. yes – some SW was auto-installing constantly, even though i always removed it afterward. after some time of annoying surprises and failed rooting attempts i finally decided to cut-off internet access for the device on firewall. now it is usable for reading, though unusable as a web-browser.
&lt;/p&gt;

&lt;p&gt;
another table comes into play. during one of the conferences, as a thank-you for giving a talk, i received tablet. it runs smoothly, HW is nice… but &lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt; is terrible to use. while i, as a geek, may be biased, my non-technical friends confirmed low usability. more over – screen-lock contains moving commercials, that i definitely did not order and do not want. guess what – you cannot disable it. what the hell is that?!
&lt;/p&gt;

&lt;p&gt;
home routers are notoriously poor in security:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://niebezpiecznik.pl/post/routery-d-link-podatne-na-atak-dziura&quot; class=&quot;urlextern&quot; title=&quot;https://niebezpiecznik.pl/post/routery-d-link-podatne-na-atak-dziura&quot; rel=&quot;ugc nofollow&quot;&gt;basic string replacements&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://niebezpiecznik.pl/post/miliony-routerow-tp-linka-d-linka-huawei-i-zte-podatne-na-grozny-atak-ponoc-bo-szczegolow-brak&quot; class=&quot;urlextern&quot; title=&quot;https://niebezpiecznik.pl/post/miliony-routerow-tp-linka-d-linka-huawei-i-zte-podatne-na-grozny-atak-ponoc-bo-szczegolow-brak&quot; rel=&quot;ugc nofollow&quot;&gt;cookie-injection&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://niebezpiecznik.pl/post/dziura-w-routerach-z-firmwarem-zyxel-a-m-in-tp-link&quot; class=&quot;urlextern&quot; title=&quot;https://niebezpiecznik.pl/post/dziura-w-routerach-z-firmwarem-zyxel-a-m-in-tp-link&quot; rel=&quot;ugc nofollow&quot;&gt;&amp;quot;deeply-hidden&amp;quot; critical files&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://niebezpiecznik.pl/post/uwaga-na-te-routery-d-linka-maja-tylna-furtke&quot; class=&quot;urlextern&quot; title=&quot;https://niebezpiecznik.pl/post/uwaga-na-te-routery-d-linka-maja-tylna-furtke&quot; rel=&quot;ugc nofollow&quot;&gt;or just plain backdoors&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
just to name a few… in fact, if you are bored on friday afternoon, and have some home network device near by, you will most likely be able to figure out some trivial hole like path traversal, buffer overflow or magic link to bypass authorization mechanism. if you are lazy and just use your &lt;a href=&quot;http://www.duckduckgo.com&quot; class=&quot;urlextern&quot; title=&quot;http://www.duckduckgo.com&quot; rel=&quot;ugc nofollow&quot;&gt;favorite search engine&lt;/a&gt;, you&amp;#039;ll find plenty of ready-to-use security holes.
&lt;/p&gt;

&lt;p&gt;
phones are usually delivered with predefined factory SW, that has applications you may not want, but still cannot uninstall them. on of the previous phones i had per-installed facebook, which i never use, yet it updated like twice a week, eating up more resources each time (device was low on both RAM and ROM, thus it was noticeable). on current one i have a lot of apps from google, while i do not use majority of their services… not to mention some “run-meter” application, made by god knows how.
&lt;/p&gt;

&lt;p&gt;
what&amp;#039;s common for all of these scenarios? no root means you&amp;#039;re not the owner of the device – you just happen to use it. having closed-source solutions does not allow easy inspections and auditing. this is very bad starting point, which takes us towards next section, which is…
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;type 2: problematic... to useless&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;type_2problematic_to_useless&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1470-4714&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;type_3privacy&quot;&gt;type 3: privacy&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
if you happen to have a smart-TV, you better:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://niebezpiecznik.pl/post/masz-telewizor-samsunga-to-lepiej-uwazaj-na-to-co-mowisz-w-salonie&quot; class=&quot;urlextern&quot; title=&quot;https://niebezpiecznik.pl/post/masz-telewizor-samsunga-to-lepiej-uwazaj-na-to-co-mowisz-w-salonie&quot; rel=&quot;ugc nofollow&quot;&gt;be careful what you see near it&lt;/a&gt; – it is being recorded and sent to the cloud.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://niebezpiecznik.pl/post/telewizory-lg-wyciekaja-takze-nazwy-plikow-z-udzialow-sieciowych&quot; class=&quot;urlextern&quot; title=&quot;https://niebezpiecznik.pl/post/telewizory-lg-wyciekaja-takze-nazwy-plikow-z-udzialow-sieciowych&quot; rel=&quot;ugc nofollow&quot;&gt;be careful what files it has access to&lt;/a&gt; – file names are being sent to producer&amp;#039;s servers.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://niebezpiecznik.pl/post/telewizory-samsunga-moga-cie-podgladac&quot; class=&quot;urlextern&quot; title=&quot;https://niebezpiecznik.pl/post/telewizory-samsunga-moga-cie-podgladac&quot; rel=&quot;ugc nofollow&quot;&gt;whatch out for built-in cameras&lt;/a&gt; – they can be used to watch out…&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
you think this is harmless? no harm done? who would have bothered? ask &lt;a href=&quot;https://en.wikipedia.org/wiki/Edward Snowden&quot; class=&quot;interwiki iw_wp&quot; title=&quot;https://en.wikipedia.org/wiki/Edward Snowden&quot;&gt;Mr. Edward&lt;/a&gt; about his experiences while working for his &lt;a href=&quot;https://en.wikipedia.org/wiki/NSA&quot; class=&quot;interwiki iw_wp&quot; title=&quot;https://en.wikipedia.org/wiki/NSA&quot;&gt;last employer&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
a friend of mine once told me about teleconferencing HW his company bought from on of the Chinese manufacturers. after each video-conference it sent about 20-30MB of data to remove servers, located in china. it was found out by accident, while analyzing outgoing traffic locations. they ended up filtering the traffic out on company firewall.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;type 3: privacy&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;type_3privacy&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;4715-5835&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;diy_or_die&quot;&gt;DIY... or die&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
it may not be so straight forward nowadays to buy a usable device. price might be a factor, but it is definitely not the oracle here. it is even harder to buy a device that is secure.
&lt;/p&gt;

&lt;p&gt;
so what can we do?
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; for many years now each time i get myself a new router, first thing i do is replace its firmware with sth open-source, like &lt;a href=&quot;https://en.wikipedia.org/wiki/OpenWRT&quot; class=&quot;interwiki iw_wp&quot; title=&quot;https://en.wikipedia.org/wiki/OpenWRT&quot;&gt;OpenWRT&lt;/a&gt;. no hidden backdoors, no trivial security holes and full configurability. all for free!&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; while i do not watch TV, if i was to buy a modern TV, i&amp;#039;d disconnect it from all the networks and use some &lt;a href=&quot;https://en.wikipedia.org/wiki/RasPi&quot; class=&quot;interwiki iw_wp&quot; title=&quot;https://en.wikipedia.org/wiki/RasPi&quot;&gt;RasPi&lt;/a&gt;-based&lt;sup&gt;&lt;a href=&quot;#fn__1&quot; id=&quot;fnt__1&quot; class=&quot;fn_top&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt; to make a simple media-center.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; phones and tablets? well – i find rooting more and more appealing. it might be the only way to go soon (just a personal opinion).&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
effectively if you want to have a useful device, you need to put more than your money into it. you now need to invest both time and knowledge. why not go towards a different approach? why not separate HW from SW? HW manufacturers can then focus on making good, well-documented HW, so that SW teams can publish their offer, along side with open-source community. HW is sold, SW is tailored to on-need-basis for each user – looks like everyone should be happy.
&lt;/p&gt;

&lt;p&gt;
if you think about it – this model is used by &lt;a href=&quot;https://en.wikipedia.org/wiki/Android (operating system)&quot; class=&quot;interwiki iw_wp&quot; title=&quot;https://en.wikipedia.org/wiki/Android (operating system)&quot;&gt;android&lt;/a&gt; &lt;abbr title=&quot;Operating System&quot;&gt;OS&lt;/abbr&gt;… with one exception – HW vendors usually make it very difficult to change per-installed SW! most of the time rooting is required.
&lt;/p&gt;

&lt;p&gt;
android recently hit car-market as well. in the down of self-driving cars era, perhaps we&amp;#039;d also go towards a solution, where car is produced by HW manufacturer, but self-driving SW can be obtained from different sources? we&amp;#039;ll see…
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DIY... or die&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;diy_or_die&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;5836-7571&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;voiding_warranty&quot;&gt;voiding warranty&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
changing to custom SW typically (always?) voids warranty. voiding warranty with custom SW always made me wonder – how broken HW design must be, so that SW failure can damage it?! i used to make such simple HW designs when i was a student. now i don&amp;#039;t. if i, as an amateur, can make some protection mechanisms i&amp;#039;d expect professions designers to do better than basic designs. we live in times where simple µC can cost $0.20 in retail store. when you buy phone for $300, would you really bother to pay $300.05, for an extra protection circuit, build into a HW?
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;voiding warranty&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;voiding_warranty&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;7572-8164&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;the_end&quot;&gt;the end&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
it was supposed to be a short entry. sorry you had to read it all – i did not have time to make it short. ;)
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;the end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;the_end&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;8165-&amp;quot;} --&gt;&lt;div class=&quot;footnotes&quot;&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__1&quot; id=&quot;fn__1&quot; class=&quot;fn_bot&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt; 
&lt;div class=&quot;content&quot;&gt;or other similar board, suitable for media center&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 15 Jun 2021 20:09:18 +0000</pubDate>
        </item>
    </channel>
</rss>
