<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: oaltena</title>
    <description>The latest articles on DEV Community by oaltena (@oaltena_48).</description>
    <link>https://dev.to/oaltena_48</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F86242%2Fd22bb77f-5e4a-4223-aa78-ea1aa4d5c673.png</url>
      <title>DEV Community: oaltena</title>
      <link>https://dev.to/oaltena_48</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/oaltena_48"/>
    <language>en</language>
    <item>
      <title>I started a Flipboard magazine for devs</title>
      <dc:creator>oaltena</dc:creator>
      <pubDate>Sun, 19 Apr 2020 20:11:50 +0000</pubDate>
      <link>https://dev.to/oaltena_48/i-started-a-flipboard-magazine-for-devs-3d3d</link>
      <guid>https://dev.to/oaltena_48/i-started-a-flipboard-magazine-for-devs-3d3d</guid>
      <description>&lt;p&gt;Enjoy&lt;/p&gt;

&lt;p&gt;&lt;a href="https://flipboard.com/@oliveraltena/allaboutdev-6nkcudtvz?from=share"&gt;https://flipboard.com/@oliveraltena/allaboutdev-6nkcudtvz?from=share&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>HARDENING A VANILLA WORDPRESS INSTALLATION</title>
      <dc:creator>oaltena</dc:creator>
      <pubDate>Thu, 12 Mar 2020 16:08:26 +0000</pubDate>
      <link>https://dev.to/oaltena_48/hardening-a-vanilla-wordpress-installation-4he0</link>
      <guid>https://dev.to/oaltena_48/hardening-a-vanilla-wordpress-installation-4he0</guid>
      <description>&lt;p&gt;Working with WordPress can be real fun. But if you don’t secure your WordPress installation it can also be a pain in the a**. Because everyone can download WordPress, everyone knows which files and setting you use in your WordPress installation, if you don’t change anything at all. At this point, you’re inviting hackers to a free and funny party in your WordPress backend.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Change the admin user
&lt;/h2&gt;

&lt;p&gt;While installing WordPress you have to create your first account, wich automatically becomes your administrator account. Make sure not to stick with the default “admin” username and change it to something else. Every hacker knows, that “admin” is the default username and has only to try hacking your password if you don’t change it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Change your login path
&lt;/h2&gt;

&lt;p&gt;After installing WordPress, you can login at &lt;a href="http://www.yourdomain.de/wp-login.php"&gt;www.yourdomain.de/wp-login.php&lt;/a&gt;. A direct access to your backend with &lt;a href="http://www.yourdomain.de/wp-admin"&gt;www.yourdomain.de/wp-admin&lt;/a&gt; is also possible. In order to make it more difficult to access your backend, you should definitely change these links. A useful help for this is the free WordPress plugin “Rename wp-login.php”, which does just that. Under settings in the WordPress backend you can adjust your login path individually after activating the plugin and thereby disable the old paths.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: xmlrpc.php
&lt;/h2&gt;

&lt;p&gt;XML-RPC (Extensible Markup Language Remote Procedure Call) is an interface between a system (in this case WordPress) and external functions. For example, it takes care of pingbacks and incoming and outgoing messages from other websites.&lt;/p&gt;

&lt;p&gt;Apart from the desired functions, this interface can also be used for bruteforce methods. Attackers can try out a variety of passwords to guess the right one. Instead of denying all access to it, there’s little you can do about it because you simply can’t add any captcha or another security check to it. Just add the following code to your .htaccess file and you’ll be much safer than before.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;Files xmlrpc.php&amp;gt;
 Order Deny,Allow
 Deny from all
 &amp;lt;/Files&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 4: Be up to date
&lt;/h2&gt;

&lt;p&gt;Taking care of your WordPress installation is one thing. But keeping it safe is another. You want to make sure to stay updated on WordPress and know when things change. Some security precautions might not work in a few months or years anymore and you want to change them asap when this happens.&lt;/p&gt;

&lt;p&gt;Written by Lars Joppich (&lt;a href="http://www.lobelano.de"&gt;www.lobelano.de&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;Originally published on  &lt;a href="http://www.thedevpit.com/"&gt;www.thedevpit.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>wordpress</category>
      <category>security</category>
      <category>informationsecurity</category>
    </item>
    <item>
      <title>Write an AI for Yahtzee</title>
      <dc:creator>oaltena</dc:creator>
      <pubDate>Mon, 05 Aug 2019 14:51:17 +0000</pubDate>
      <link>https://dev.to/oaltena_48/write-an-ai-for-yahtzee-334l</link>
      <guid>https://dev.to/oaltena_48/write-an-ai-for-yahtzee-334l</guid>
      <description>&lt;p&gt;Hello everyone!&lt;/p&gt;

&lt;p&gt;I would like to develop an AI for Yahtzee.&lt;br&gt;
I would like to train the AI with my own playing strategy so that I can play against myself at a later time.&lt;br&gt;
How do I approach this project?&lt;br&gt;
What topics do I have to deal with?&lt;br&gt;
What kind of AI is necessary here?&lt;/p&gt;

</description>
      <category>help</category>
      <category>machinelearning</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Explain CQRS (Command and Query Responsibility Segregation)</title>
      <dc:creator>oaltena</dc:creator>
      <pubDate>Thu, 25 Apr 2019 16:12:09 +0000</pubDate>
      <link>https://dev.to/oaltena_48/explain-cqrs-command-and-query-responsibility-segregation-5dl</link>
      <guid>https://dev.to/oaltena_48/explain-cqrs-command-and-query-responsibility-segregation-5dl</guid>
      <description>&lt;p&gt;What is CQRS? How do I use it?&lt;br&gt;
What are the advantages and disadvantages?&lt;/p&gt;

</description>
      <category>cqrs</category>
      <category>architecture</category>
      <category>designpattern</category>
      <category>explainlikeimfive</category>
    </item>
    <item>
      <title>Functional Components in Vue.js</title>
      <dc:creator>oaltena</dc:creator>
      <pubDate>Mon, 12 Nov 2018 13:17:17 +0000</pubDate>
      <link>https://dev.to/oaltena_48/functional-components-in-vuejs-4j7b</link>
      <guid>https://dev.to/oaltena_48/functional-components-in-vuejs-4j7b</guid>
      <description>&lt;p&gt;Although Vue.js is basically very performant, each additional component uses memory resources. Not every component needs its own Vue instance and change detection. The use of functional components can save resources.&lt;/p&gt;

&lt;p&gt;Functional components do not receive a Vue instance at runtime. Rather, such components behave as if they were part of the higher-level component. Functional components are therefore particularly suitable for simple and generic UI components such as buttons, list elements or dropdown controls. A practical example of a functional component is the placeholder for routing views &lt;em&gt;&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;You can create functional components by adding the attribute &lt;em&gt;functional&lt;/em&gt; in the template tag with a template. However, developers often implement functional components with their own render functions.&lt;/p&gt;

&lt;p&gt;A functional component does not have its own instance and therefore no this context. To access properties, event handlers, and other definitions, a functional component is given an object context.&lt;/p&gt;

&lt;p&gt;An exemplary render function is structured as a functional component as follows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;SimpleList&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;functional&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;props&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;items&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;Array&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="nx"&gt;render&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;h&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;context&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;h&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ul&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;props&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;items&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;item&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;h&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;li&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;item&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;The render function gets the object context as second attribute and the access to the array is now not done with this.items, but with context.props.items.&lt;/p&gt;

&lt;p&gt;After importing the component, you can use it as follows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;template&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;SimpleList&lt;/span&gt; &lt;span class="na"&gt;:items=&lt;/span&gt;&lt;span class="s"&gt;"languages"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/template&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;SimpleList&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./SimpleList&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;languages&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;German&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;French&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Italian&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="na"&gt;components&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;SimpleList&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Output: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;German&lt;/li&gt;
&lt;li&gt;French&lt;/li&gt;
&lt;li&gt;Italian&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>vue</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
    <item>
      <title>I made a simple clone of the android game 'Freaking Math' in VueJS</title>
      <dc:creator>oaltena</dc:creator>
      <pubDate>Fri, 09 Nov 2018 14:21:13 +0000</pubDate>
      <link>https://dev.to/oaltena_48/i-made-a-simple-clone-of-the-android-game-freaking-math-in-vuejs-47g2</link>
      <guid>https://dev.to/oaltena_48/i-made-a-simple-clone-of-the-android-game-freaking-math-in-vuejs-47g2</guid>
      <description>&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vJ70wriM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/oaltena"&gt;
        oaltena
      &lt;/a&gt; / &lt;a href="https://github.com/oaltena/vuemath"&gt;
        vuemath
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A clone of the android app "Freaking Math" made with VueJs
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
vuemath&lt;/h1&gt;
&lt;h2&gt;
Screenshot&lt;/h2&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://raw.githubusercontent.com/oaltena/vuemath/master/public/vuemath-screenshot.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SVhYAf1b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/oaltena/vuemath/master/public/vuemath-screenshot.png" alt="alt text" title="App Screenshot"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
Project setup&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;npm install
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;
Compiles and hot-reloads for development&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;npm run serve
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;
Compiles and minifies for production&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;npm run build
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/oaltena/vuemath"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;p&gt;Feel free to contribute.&lt;/p&gt;

</description>
      <category>vue</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
