teleren/devto huggingface dataset:
Weeknotes #3
Published: 2019-03-03 23:41:17

---
title: Weeknotes #3
published: true
tags: 
canonical_url: 
---

Over the Weekend I spent quite a bit of time on a side project that could turn into a really interesting service. It’s a tool that’s useful for deploying and testing CSS design systems. Puppeteer + Docker + Node + Typescript + Mongo Stitch. Super exciting.

## Monday

Played with my boys in the morning, enjoyed the sun and watched a small avalanche on the mountain nearby.

I’ve been writing docs, and came up with 12 Factors for Enterprise-Level Front-End Code Quality

1. Linting
2. TypeScript
3. Unit Testing
4. E2E or Integration Testing
5. Git, PRs and Code reviews
6. Continuous Integration
7. Multiple Environments
8. Dependency Mgmt. & Security Auditing
9. Visual Regression Testing
10. Error Monitoring
11. Performance Monitoring
12. Documentation

## Tuesday

Hey someone [started on a new version of Fractal](https://github.com/frctl/fractalite)! It even has a Vue demo. 😍

I built a new project boilerplate for design system projects using [Parcel](https://parceljs.org/) for compilation, [XO](https://github.com/xojs/xo) for Linting, even somehow managed to get [TypeScript Support](https://github.com/xojs/eslint-config-xo-typescript) working.

## Wednesday

Created a project generator script for design systems with different boilerplate options for folder structure and CSS preprocessors. [https://github.com/sirtimbly/systematic-ui-scripts](https://github.com/sirtimbly/systematic-ui-scripts)

Rebuilt a Nuxt 1.4 site in Nuxt 2.4. Figured out how to get ESLint working with that setup, and typescript again. What a pain. I never realized how easy TSLint was.

## Thursday

Posted a new project on my portfolio. [Designing a Perfect-fit Soluton for a Niche Industry](https://www.behance.net/gallery/76934425/Complex-Industry-Management-Application-Design)

## Friday

Re-discovered [Astrum](http://astrum.nodividestudio.com/) for design systems. Light weight design systems running on JS in the browser. No build step or dev server. Interesting.

Order some [Darn Tough Socks](https://darntough.com/) they last a long time and when they do wear out you can get free replacements from the company.
I achieved 3D collision detection
Tags: gamedev
Published: 2019-03-02 17:15:24

---
title: I achieved 3D collision detection
published: true
description: I achieved server-side determined 3D collision detection.
tags: gamedev
canonical_url: https://webdva.github.io/i-achieved-3d-collision-detection/
---

I was able to easily and quickly implement this functionality in part due to the experience and technology I acquired during this whole multiplayer game endeavor. I won't be detailing how I implemented collisions in three dimensions, so this won't be a very technically informative entry.

The 3D collision detection subsystem uses axis aligned bounding boxes (AABB). Rotations are not accounted for.

![3D collision detection 1](https://thepracticaldev.s3.amazonaws.com/i/bbezpk5a89jf4on5520f.gif "The game server reports hits that occur.")

What's happening in the above screenshot is that, as a projectile sphere collides with the player avatar, the server reports that a hit has occurred.

Here is another instance which somewhat demonstrates the accuracy of the hit detection:

![3D collision detection 2](https://thepracticaldev.s3.amazonaws.com/i/duj6l472h1fejmtsjsbe.gif "Another instance of the new 3D collision detection feature.")

But there are some issues that must be considered:

* A hitbox shares the same position and movement translation as its assigned parent game object, but it does not rotate at all.
* A hitbox's size and dimensions are invariant. As such, as the hitbox does not rotate but its parent game object does, the invariant size and dimensions of the hitbox can cause an issue with the accuracy of collisions.
* A hitbox is a box whereas the projectiles are currently spheres, another accuracy issue.
* 3D model creation and thus accurately determining the appropriate size for hitboxes on the game server is problematic.

Nonetheless, this new system element currently functions as an asset that will be used to achieve essential effects.
3 Embarrassing Stories From My Software Development Career
Tags: career, personalnews, motivation
Published: 2019-03-02 16:36:13

---
title: 3 Embarrassing Stories From My Software Development Career
published: true
description: My show's been too serious lately - let's take a break to have some fun at my expense ;)
tags: #career #personalnews #motivation
---

With all the challenges in the software industry with languages, frameworks, and processes...

It's easy to forget we're human.

I've been sharing some serious _level 301 agile nerdgasm_ content lately, so I made this episode to just have some fun. 🤗

Here are three stories of times I did something embarrassing in my software development career.

Do you have some fun or embarrassing stories to share about yourself, or other people who made innocent mistakes that make work fun?

Visit my site to watch the full video (or listen as a podcast):

# [📺 Watch or 🎧 Listen](https://jaymeedwards.com/2019/03/01/3-embarrassing-stories-from-my-software-development-career/)

Skip to stories in the video:

[00:17](https://www.youtube.com/watch?v=0pLC2cNNVtM&t=17s) The Story Of The Disappearing Debugger
[05:42](https://www.youtube.com/watch?v=0pLC2cNNVtM&t=342s) The Story Of The Light-Headed Developer
[08:37](https://www.youtube.com/watch?v=0pLC2cNNVtM&t=517s) The Story Of The Scented Consultant<hr />

[🔔 Subscribe for over 100 videos on healthy software development](https://YouTube.com/c/JaymeEdwardsmedia?sub_confirmation=1)
Community owners, stop being stupid!
Tags: community, laravel, php, symfony
Published: 2020-03-10 12:26:48

---
title: Community owners, stop being stupid!
published: true
date: 2019-03-02 16:34:26 UTC
tags: community,laravel,php,symfony
canonical_url: 
---

How problematic is it that an influential person starts talking stupid things and people start taking it as law?

I recently read an article that talked about a comparison of Fabien Potencier’s benchmarks (creator of Symfony) and Taylor Otwell (creator of Laravel). You can check the article:

[Is Taylor Otwell Right About Fabien’s Statement on Symfony’s Benchmark?](https://medium.com/@shahroznawaz/symfony-laravel-benchmark-c4721d0582f)

Reading this article, I thought, how a PHP community is disunited, compared with other communities (mainly like the frontend) and that is due to the fault of the owners themselves.

It’s incredible how as only in our area we see specialized communities in just one area, like it would be strange a screw fan club organized by cabinetmakers. On the one hand, this is very cool because it promotes the evolution of a specific area, but this becomes a big problem when these areas begin to compete with each other and forget the purpose, which is to make the language more accessible for everyone.

### Is Benchmark really the priority?

If Benchmark really were the priority, we would be talking about frameworks written in C in this article.

Surely benchmark can influence our choices, but I believe for a majority of developers, it is not the priority. There are thousands of other factors influencing choice, for example: Learning curve, labor market, agility, design patterns, documentation, design, community, among other things. Why do not we just talk about these points? Or do not they talk about these points?

> The environment where the application is running influences more in the benchmark than the own technology.

#### “But there is a market in which they fight”

I agree, no matter how miraculously they leave stupidity aside and do things together, you still have comparisons, because they are different products. But if they really need to fight in the market and the benchmark is their top priority, why are not they competing with Code Igniter?

Basically, when that happens, everything community always says “Technologies are a means and not an end,” they ignore and try to prove that their grass is greener than the other. The worst of it all is when your followers start adopting it as truth, and things look more or less like this:

> Your framework should provide for language evolution, not the other way round.

So [Taylor Otwell](https://medium.com/u/d694c31ce941) and [Fabien Potencier](https://medium.com/u/4ecc86a54ac5) (and other community owners), stop the stupid fight and promote more things for the communities, so that we will have more people using their tools and consequently evolving them.

**Twitter** : [_https://twitter.com/omarkdev_](https://twitter.com/omarkdev)   
**_Github:_** [_https://github.com/omarkdev_](https://github.com/omarkdev)

* * *
Is UX Design just design?
Tags: ux, design, discuss, webdev
Published: 2019-03-02 16:08:51

---
title: Is UX Design just design?
published: true
description: What makes UX Design stand out isn’t that it is a process, neither that we’re designing for people. so what is UX Design?
tags: #ux #design #discuss #webdev
cover_image: https://cdn-images-1.medium.com/max/800/1*B-KQiqREvEhebUeWkodhzg.png
---

When I first discovered UX Design as a process, I was amazed and and fascinated for a lot of reasons.

What I want to talk about here is the two reasons I was fascinated about UX Design:

* Breaking down making products into a process which is a series of steps toward the final product
* Including the user every time which makes it a UX Design

## UX Design is just design

When breaking down the problem into small problems like strategy, information architecture, interaction design and so on, what we did really is try to solve a problem the right way and that’s what design is for. So why should we call it UX Design?

## UX Design isn’t just design

We all know that we’re designing for people not ourselves, that doesn’t mean we obey orders but we solve their problems through our expertise and using our own process.

What makes UX Design stand out isn’t that it is a process, neither that we’re designing for people. It’s that we start our process with empathizing with people and including them in our process as many times as possible and in a way that won’t hurt solving the problem. And that requires a lot of expertise in solving problems and understanding humans which makes it a bit different of the regular definition of design.

#### Now if we all embrace that we should empathize and build products that will impact users, UX Design won’t be a thing anymore, it would be just design and that’s how it should be.
Learning the framework is good, learning the language is better
Tags: frameworks, beginners
Published: 2019-03-02 14:12:27

---
title: Learning the framework is good, learning the language is better 
published: true
description: 
tags: frameworks, beginners 
---
![thinking](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcTR--h54Kd-dvs8IYZujpPVN4BI5hfcM27ApoO6cled1fvIpWr8)

*A framework is a collection of programs that do something useful and which you can use to develop your own applications.* - Julian Solorzano 
[See here](https://www.quora.com/What-is-the-difference-between-a-programming-language-and-a-framework)

Some popularly known frameworks include, but aren't limited to: Bootstrap, Foundation, Angular, VueJs, Django, Laravel, Ruby on Rails. 

The React developers might be wondering what's going on here :smile:. React happens to be a library, but we can lump libraries together with frameworks because of their similarities. 

Frameworks provide tools and structures that make development of softwares and applications faster. These tools range from floating buttons of front-end frameworks to ORMs(Object Relational Mappers) of server side frameworks. The structures could be MVC, MVVM or the likes. 

The essence of frameworks is to cut down on development time. This helps developers meet project deadlines. Also frameworks bring uniformity to team development. Each member understand the development patterns to a great extent. 

However, the gains of frameworks can easily be lost when the user knows little about the underlying language(s) used for that framework. Beginners fall into this trap, because they want to keep up with the new technologies. 

What this results to is that you have people using a framework without knowing why or what's behind it. If something breaks, they're unable to fix it. Making significant modifications becomes difficult or impossible. For the ones who try, they'll spend a lot of time on Google or Stackoverflow looking for answers to basic stuff. 

My advice to beginners out there and constant learners like me, is to take ample time to learn core programming languages before jumping into frameworks associated with them. 

**Don't be intimidated. Keep learning.**
Divitis and classitis
Tags: frontend, html, webdev
Published: 2019-03-02 14:11:45


---
title: Divitis and classitis
published: true
description: The abuse/misuse of divs and classes in HTML
tags: frontend,html,webdev
cover_image: https://thepracticaldev.s3.amazonaws.com/i/hqu7dftvmc821d5at38g.jpg
---

Is this a post about diseases?-you might be wondering. Absolutely. I want to talk about the disease of using divs and classes in our HTML when they are not required or the best option. Let's roll up our sleeves.

# Divitis
Most of the websites out there do abuse of divs in the markup. Go to one of your favourites and inspect the HTML. I'm pretty sure you can easily find something like this:

```html
<div id="posts">
    <ul>
        <li>My first post!<li>
        <li>I'm committed to write more...</li>
        <li>Quite a few more</li>
    </ul>
</div>
```

Which is targeted in CSS:

```css
div#posts > ul { background-color:#000; }
```

However there is no real need to wrap the list with a div, since we can assign the id to the list:


```html
<ul id="posts">
    <li>My first post!<li>
    <li>I'm committed to write more...</li>
    <li>Quite a few more</li>
</ul>
```
And style it even easier than before:

```css
ul#posts { background-color:#000; }
```
I can go further. How many times we have seen something like the following?

```html
<div class="small-text">
    This is an awesome post about how maniac I am when it comes to semantic markup
</div>
```
When the correct markup would be:

```html
<p class="small-text">
    This is an awesome post about how maniac I am when it comes to semantic markup
</p>
```

These are just two examples of div tags misuse, which makes your code larger and more difficult to read and maintain. 


# Classitis
This is something that didn't happen as often 10 years ago. It stands for the abuse of classes in the HTML where we can use ids instead. Have a look at the example below:


```html
<nav class="top-nav">...</nav>
...
<nav class="bottom-nav">...</nav>

```
Sounds familiar? I bet it does. Probably most of you would use that approach to target those elements in css and javascript. But hold on a second, is there a better way? 

According to w3schools.com:
 >The HTML class attribute is used to define equal styles for elements with the same class name.

Whereas:
>The id attribute specifies a unique id for an HTML element (the value must be unique within the HTML document).

So if the element is unique why don't we use the id?

```html
<nav id="top-nav">...</nav>
...
<nav id="bottom-nav">...</nav>
```
I'm not saying that using the class is wrong, but I do think the id gives the markup a better semantics. We can also save some hassle in Javascript while targeting an element:

```javascript
var topNav = document.getElementsByClassName('top-nav')[0];

```

vs

```javascript
var topNav = document.getElementById('top-nav');
```

We might not be saving dozens of lines, but it looks cleaner and makes the right use of the HTML elements.


I hope you liked my first post and found it useful! Would love to see your comments!
Functional programming basics part 3: Currying
Tags: javascript, functional, programming
Published: 2019-03-02 13:47:45

---
title: Functional programming basics part 3: Currying
published: true
description: Part three of a series where I explain functional programming how I currently understand it. 
tags: JavaScript, Functional, programming, fp 
cover_image: https://thepracticaldev.s3.amazonaws.com/i/g9hqgm91q2ns03v7q7i9.jpg
---

### So what is this thing people are calling currying?  

Currying is `simply` the action of converting a function that take multiple arguments into one that can support the ability to return a new function if the argument it got is not the last one. 

If it is the last argument, it will execute.


Let's say I have a simple function: 

```javascript
const add = (x, y) => x + y;

``` 

If I try to call it with only one argument, it fails...  

```javascript
const add = (x, y) => x + y;

add(1) // undefined 
// (x is now 1 but y is undefined, so 1 + undefined = undefined)

``` 

Fortunately, modern JavaScript give us the ability to curry very easily via arrow functions.

Here is the same function curried: 

```javascript
const add = x => y => x + y;

add(1) // function add() 
/* (this newly returned function as encapsulated 
the value of 1 and will look like this --> y => 1 + y ) */

``` 

The nice thing about this is that now, we can call it with only one argument witch will return a new function that will expect one last argument `y`.

We could alternatively put that new returned function in a variable and start using it: 

```javascript
const add = x => y => x + y;

const add1 = add(1);


console.log(add1(1)) // 2
``` 

Hope that helps you understand what currying is :)
IBM WebSphere 9 Installation
Tags: ibm, was, websphere, free
Published: 2019-03-02 12:48:04

---
title: IBM WebSphere 9 Installation
published: true
description: 
tags: IBM, was, websphere, free
---

*IBM WebSphere Application Server for Developers* can be used for free. The installation process is simple after you find the correct URLs to donwload this specific version.

First you need to install the "Installation Manager":
http://www-01.ibm.com/support/docview.wss?uid=swg27025142

After that, go to: File > Preferences, Repositories panel, and add the URL
https://www.ibm.com/software/repositorymanager/V9WASILAN
Free Decentralised code snippet manager
Tags: codesnippets, decentralised, secure
Published: 2019-03-02 09:19:38

---
title: Free Decentralised code snippet manager
published: true
description: 

tags: code_snippets, decentralised, secure
---
![decs app](https://thepracticaldev.s3.amazonaws.com/i/zompgb13i7al8w817pzz.png)

We write reusable code all the time, but how many of us keep it neatly organised, so next time when we want to reuse, it is quickly available at our disposal? 

We all crawl the web in search of code, but how many times have we painfully repeated steps to land on that same piece of code again? 

More often than not we always go hunting for our snippets in the deep code woods, spending an enormous amount of our developer time in reinventing the wheel. 

How do we get better at handling this reinvention? The solution to productivity is straightforward. 

**Keep tracking and Keep it organised**

![DECS is secure](https://thepracticaldev.s3.amazonaws.com/i/zqxp7wdhe9gxqwppqonp.png)

[DECS](https://app.decs.xyz/) the Decentralised and Encrypted Code Snippets manager is built on the above basics and it is more than just a searchable coding diary. It's super Secure, and it's Free!

Why not check it out and have a go and see if your productivity as a programmer improves using DECS? 

Happy coding!

![DECS screenshot](https://cdn-images-1.medium.com/max/1600/1*S1vFamNVDg2C5eZEzXDQlw.png)
Real cost of your new library
Tags: architecture
Published: 2019-03-02 11:50:13

Creating application nowadays consists mostly of implementation. We are using tools. But are those tools, albeit open-sourced, really free?

When starting a new project, be it a simple micro service or a large foundation for a platform, you stand before one question. What frameworks, libraries and tools to use. Sure, you know the requirements, have your well-tried favorites and are eager to use them once more.

But every once and then, there goes a thought. *Perhaps I should switch to something else. Maybe instead of Express, I will use Hapi or Koa*. While those are safe choices (given their reputation and market presence), you might be tempted to try an underdog of the API framework race. Something with less than 100 stars on GitHub, maintained by a guy from Someplace. It has everything you need, public API is written with you in mind, docs are clear and vast. Why not?

And here comes the cost of this solution.

You read the documentation, create some concepts and demos, expand it further and after sometime you got a working application. Backed by a framework known to you and roughly a hundred other people. And it's fine – it works good, it's testable and stable. But then your project goes out. Colleagues are joining, to help you develop it further.

And they don't know what is going on.

They have never seen this library. Public methods aren't that clear to them as they are to you. So, what now? This is a mature prototype, which costed you some time, so refactoring it won't do. They will have to learn it. You can help them, provide training, documentation, own knowledge. But still, this will take a couple of days.

Was that learning beneficial?

It terms of sheer knowledge – yes. It's always better to know something than to not know. They might have learned more about the language itself. And they learned a new tool. But in the long run – was it really? They have grasped a library no one else uses now, so this isn't really market value. It is not used on other projects in the company, so no company-wide value as well. And, since this is one time usage, this knowledge probably won't stay there for long.

Another problem is recruiting for the project. You require something most people don't know. So you take the best and train them, besides the normal on-boarding. This also costs money.

Okay, so how to introduce new technology without this problem? It's really quite simple – **discuss it with your teammates at first**. Even if this is a greenfield project and you've been given total control. Actually, especially then. Because real cost of an application isn't just development. It's development and maintenance, with the latter, quite often, being the costly one.

Bottom line of this is – choose a stack you will be able to hand over with as little overhead as possible. Never assume that you will be working on a project from start to finish. You might get reassigned, leave, in need of help, whatever, the options are endless.
Using Grammarly in Opera Browser
Tags: productivity, showdev, tutorial
Published: 2019-03-02 11:07:07

---
title: Using Grammarly in Opera Browser
published: true
description: How to install and use the Chrome Grammarly extension in Opera Browser
tags: productivity, showdev, tutorial
cover_image: https://i.imgur.com/JvYdU1x.jpg
---

First, you need to add the [Install Chrome Extentions](https://addons.opera.com/en-gb/extensions/details/install-chrome-extensions/) plugin for Opera.

![Install Chrome Extentions](https://i.imgur.com/kA83m9d.png)

Next, go to the Chrome Web Store and find the [Grammarly extension](https://chrome.google.com/webstore/search/grammerly). This is where the "Install Chrome Extensions" plugin kicks in and allows you to directly install the Grammarly plugin from the Chrome Web Store. After you click install, you will be taken to the Opera extensions screen and you need to finalize the process by accepting the permissions and clicking Install.

And that's it! next time you post on Dev.to, you can make use of Grammarly to write and review your post. Simply click the small Grammarly icon in the bottom right-hand corner of the text area in your next new post.

![Imgur](https://i.imgur.com/3mbjowL.png)