{"id":1448,"date":"2016-05-02T08:05:27","date_gmt":"2016-05-02T06:05:27","guid":{"rendered":"http:\/\/monodes.com\/predaelli\/?p=1448"},"modified":"2016-05-02T08:05:27","modified_gmt":"2016-05-02T06:05:27","slug":"todays-lesson","status":"publish","type":"post","link":"https:\/\/monodes.com\/predaelli\/2016\/05\/02\/todays-lesson\/","title":{"rendered":"Today&#8217;s lesson"},"content":{"rendered":"<p><strong>Never, ever say &#8220;I was never&#8230;&#8221;<\/strong> bacause Murphy&#8217;s law will soon take its toll<\/p>\n<p>Lately I&#8217;ve written I was never stopped working by an upgrade.<br \/>\nWell, actually I wasn&#8217;t stopped but have you ever tried working on a box that keeps swapping and thrashing at your slightest action?<\/p>\n<p><!--more--><\/p>\n<p>I have really tweaked the computer I use at work. It&#8217;s old, and it&#8217;s <strong>overloaded<\/strong>. Or underpowered compared to current plain machines. It wasn&#8217;t It has 1Gb of RAM and I use it for browsing, hosting the blog I use to store issues, registration and almost everything I do for the quality management system of my company. A fairly small blog, almost entirely textual, but this nevertheless means having mysql, apache and php constantly running on the machine. Coupled with LibreOffice which is a fantastic piece of code, but everyone will agree is not one of the lightest software on the earth.<\/p>\n<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1451\" data-permalink=\"https:\/\/monodes.com\/predaelli\/2016\/05\/02\/todays-lesson\/wp-1461770800807-jpeg\/\" data-orig-file=\"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2016\/04\/wp-1461770800807.jpeg?fit=1024%2C389&amp;ssl=1\" data-orig-size=\"1024,389\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"wp-1461770800807.jpeg\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2016\/04\/wp-1461770800807.jpeg?fit=510%2C194&amp;ssl=1\" class=\"aligncenter wp-image-1451 size-large\" src=\"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2016\/04\/wp-1461770800807-510x194.jpeg?resize=510%2C194\" alt=\"wp-1461770800807.jpeg\" width=\"510\" height=\"194\" srcset=\"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2016\/04\/wp-1461770800807.jpeg?resize=510%2C194&amp;ssl=1 510w, https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2016\/04\/wp-1461770800807.jpeg?resize=300%2C114&amp;ssl=1 300w, https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2016\/04\/wp-1461770800807.jpeg?resize=768%2C292&amp;ssl=1 768w, https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2016\/04\/wp-1461770800807.jpeg?w=1024&amp;ssl=1 1024w\" sizes=\"auto, (max-width: 510px) 100vw, 510px\" \/><\/p>\n<p>So I ended up some years ago removing most of the recent software, ending up with no Desktop at all, only IceWm as a window manager which has a resident set size of 6Mb, no file manager running in the background and almost nothing else except WordPress and its requirements Firefox and LibreOffice.<\/p>\n<p>I have been asked to set up a Virtual Private Network to access the inner network of our smallish company so I planned to use my own house network as a testbed as both used NetGear consumer ADSL routers:<\/p>\n<p><code class=\"\" data-line=\"\">sudo apt-get install network-manager-openconnect-gnome network-manager-openconnect network-manager-openvpn-gnome network-manager-openvpn network-manager-pptp network-manager-pptp-gnome<\/code><\/p>\n<p>I basically had to undo all the fine tuning I&#8217;ve been made during the years, upgrade the distribution to Ubuntu Xenial, fight a recalcitrant Login Manager that refuses to work and install something more traditional like lxdm &#8211; the login manager of\u00a0<a href=\"http:\/\/www.lxde.org\/\">Lightweight X11 Desktop Environment<\/a>. I spent some hours of computing downtime as downloading the 1,5Gb of new packages from a 1Mbit line is not made in a coffee break; luckily I got some tests to do on our products &#8211; sands and gravel &#8211; that filled my time during the long download.<\/p>\n<p>All in all I got this aging machine up and running again. It was worth the effort, my admin skills were a but rusty, even if I realized that a &#8220;real&#8221; VPN may be not feasible: I had to cross circles around an &#8220;hostile&#8221; Cisco firewall. Well, actually it&#8217;s not hostile, it happily let all inside traffig go out, but it keeps everything else out and I prefer not to touch it. It may be better to forward SSH to this aging machine and use Putty to forward some ports.<\/p>\n","protected":false},"excerpt":{"rendered":"<p class=\"excerpt\">Never, ever say &#8220;I was never&#8230;&#8221; bacause Murphy&#8217;s law will soon take its toll Lately I&#8217;ve written I was never stopped working by an upgrade. Well, actually I wasn&#8217;t stopped but have you ever tried working on a box that keeps swapping and thrashing at your slightest action?<\/p>\n<p class=\"more-link-p\"><a class=\"more-link\" href=\"https:\/\/monodes.com\/predaelli\/2016\/05\/02\/todays-lesson\/\">Read more &rarr;<\/a><\/p>\n","protected":false},"author":1,"featured_media":1451,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[105,19],"tags":[],"class_list":["post-1448","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-fun","category-mood"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2016\/04\/wp-1461770800807.jpeg?fit=1024%2C389&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6daft-nm","jetpack-related-posts":[{"id":4454,"url":"https:\/\/monodes.com\/predaelli\/2018\/07\/31\/mlweb-machine-learning-on-the-web\/","url_meta":{"origin":1448,"position":0},"title":"MLweb: Machine Learning on the Web","author":"Paolo Redaelli","date":"2018-07-31","format":false,"excerpt":"Javascript libraries and web applications for machine learning and scientific computing including (linear algebra, statistics and optimization). Sorgente: MLweb: Machine Learning on the Web","rel":"","context":"In &quot;Javascript&quot;","block_context":{"text":"Javascript","link":"https:\/\/monodes.com\/predaelli\/category\/javascript\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":643,"url":"https:\/\/monodes.com\/predaelli\/2015\/08\/25\/the-retrogames-machine\/","url_meta":{"origin":1448,"position":1},"title":"the Retrogames Machine","author":"Paolo Redaelli","date":"2015-08-25","format":"link","excerpt":"the Retrogames Machine\u00a0ovvero come farmi perdere nei ricordi.....","rel":"","context":"In &quot;Senza categoria&quot;","block_context":{"text":"Senza categoria","link":"https:\/\/monodes.com\/predaelli\/category\/senza-categoria\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":14747,"url":"https:\/\/monodes.com\/predaelli\/2026\/01\/17\/understanding-the-machine\/","url_meta":{"origin":1448,"position":2},"title":"Understanding the machine","author":"Paolo Redaelli","date":"2026-01-17","format":false,"excerpt":"This \u00abUnderstanding the machine - Write Great Code, Volume 1, 2nd Edition\u00bb looks quite a read for those who really want to know how a computer actually work.","rel":"","context":"In &quot;Legenda&quot;","block_context":{"text":"Legenda","link":"https:\/\/monodes.com\/predaelli\/category\/legenda\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2026\/01\/Write-Great-Code_v12e.webp?fit=477%2C630&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":4380,"url":"https:\/\/monodes.com\/predaelli\/2018\/06\/15\/opennmt-open-source-neural-machine-translation\/","url_meta":{"origin":1448,"position":3},"title":"OpenNMT &#8211; Open-Source Neural Machine Translation","author":"Paolo Redaelli","date":"2018-06-15","format":"link","excerpt":": OpenNMT - Open-Source Neural Machine Translation","rel":"","context":"In &quot;Software Libero&quot;","block_context":{"text":"Software Libero","link":"https:\/\/monodes.com\/predaelli\/category\/software\/software-libero\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":9329,"url":"https:\/\/monodes.com\/predaelli\/2022\/04\/30\/machine-learning-algorithms-cheat-sheet-by-anthony-barrios-accel-ai-medium\/","url_meta":{"origin":1448,"position":4},"title":"Machine Learning Algorithms Cheat Sheet | by Anthony Barrios | Accel.AI | Medium","author":"Paolo Redaelli","date":"2022-04-30","format":false,"excerpt":"Source: Machine Learning Algorithms Cheat Sheet | by Anthony Barrios | Accel.AI | Medium","rel":"","context":"In &quot;Senza categoria&quot;","block_context":{"text":"Senza categoria","link":"https:\/\/monodes.com\/predaelli\/category\/senza-categoria\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":9512,"url":"https:\/\/monodes.com\/predaelli\/2022\/07\/25\/design-patterns-with-python-for-machine-learning-engineers-abstract-factory\/","url_meta":{"origin":1448,"position":5},"title":"Design Patterns with Python for Machine Learning Engineers: Abstract Factory","author":"Paolo Redaelli","date":"2022-07-25","format":false,"excerpt":"Photo by Omar Flores on\u00a0UnsplashLearn how you can structure your code by adopting design\u00a0patternsIntroductionA pattern describes a frequently recurring problem and proposesa possible solution in terms of class\/object organization thatgenerally found to be effective in solving the problem itself.Design Patterns are characterized by four main elements:Name: mnemonic reference that allows\u2026","rel":"","context":"In &quot;Senza categoria&quot;","block_context":{"text":"Senza categoria","link":"https:\/\/monodes.com\/predaelli\/category\/senza-categoria\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts\/1448","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/comments?post=1448"}],"version-history":[{"count":0,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts\/1448\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/media\/1451"}],"wp:attachment":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/media?parent=1448"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/categories?post=1448"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/tags?post=1448"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}