teleren/devto huggingface dataset:
🚀 My first game using Ruby 2D
Tags: ruby2d, ruby, myfirstgame
Published: 2020-07-24 16:39:53

---
title: 🚀 My first game using Ruby 2D
published: true
description: 
tags: ruby2d, ruby, myfirstgame
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/ql1yvrdaznmii5jptvvj.png
---

Last week I discovered [Ruby 2D](http://www.ruby2d.com/) in a blog here in [dev.to](https://dev.to) and I have decided to try it.

Today, here is my first game using this library - **Fifi Breaks Blocks**. My version of a very, very famous and old school 2D game.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/ql1yvrdaznmii5jptvvj.png)

Take a look in the code: https://github.com/SofiaSousa/fifi-breaks-blocks :)

# Bonus

During the implementation, I realized that `ruby2d build` wasn't able to handle other `require` or `require_relative` statement than the `require 'ruby2d'` in the main file. 

So, I had the idea to create a [Rake](https://github.com/ruby/rake) task to generate a new file with all code from the required files and build the app executable from that.

You can check the **build task** in the [Rakefile](https://github.com/SofiaSousa/fifi-breaks-blocks/blob/master/Rakefile).

Hope you enjoy it!
Own the Internet, a hackathon for decentralized apps
Tags: hackathon
Published: 2020-07-24 16:33:13

Sia and Namebase are partnering with Gitcoin for a brand new hackathon to Own the Internet 

Own the Internet is a hackathon that enables developers to build the next generation of decentralized applications. We invite everyone - regardless of whether you are a beginner or a web3 expert - to join us on this journey and build truly open source and censorship-resistant apps on Skynet and Handshake.

The hackathon starts July 29th, so sign up now over on Gitcoin

https://gitcoin.co/hackathon/own-the-internet/onboard
Ask Octopus -  How do I migrate tenants from one target to another?
Tags: octopus, devops, api, tutorial
Published: 2020-07-24 16:18:01

---
title: Ask Octopus -  How do I migrate tenants from one target to another?
published: true
description: Learn how to use tenant tags and the Octopus API to migrate tenants from one target to another.
tags: octopus,devops,api,tutorial
series: Ask Octopus
---

What happens when you have a lot of tenants associated with a target that you need to decommission and replace? That's the question in this week's Ask Octopus. [The answer](https://help.octopus.com/t/migrating-tenants-to-a-new-octopus-deploy-target/24510/3) includes tenant tags and using API requests to avoid manual work.

{% youtube timiE9ji5K8 %}

Do you have a question about how to use Octopus? Email advice@octopus.com and someone from our team will get you an answer. You might even see it in a future episode.

Join our community slack at https://octopus.com/slack
Pure CSS messages which fade in and out
Tags: css, animation
Published: 2020-07-24 16:13:29

---
title: Pure CSS messages which fade in and out
published: true
description: Write-up of pure CSS messages which can fade in and out.
tags: css, animation
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/96q48esy55o0gy5hhup2.jpg
---

I'm not sure about you, but I'm a terrible user of [Stack Overflow](https://stackoverflow.com/). What I mean is, I skim-read the question, flick down to the accepted answer, half scan it, then peek at the next one, if I don't find it satisfying. I'll often choose a lower rated answer because it makes sense to me.

Last week, I was rebuilding a simple message system where a series of strings fade in and out over time. This was nothing smart - the messages weren't being dynamically updated or appearing in different forms on different pages. So rather than looking at how it was currently done and replicating it, I figured I'd build it as a CSS animation.

I found a Stack Overflow answer which was close, but only worked if there was exactly two answers. So I built my own and it works, with the following limitations:

- You've got to know how many messages there are in advance
- If there's a different number of messages on a different page, well, you'll need a new chunk of CSS, buddy

I then spent some time refactoring it so the SCSS would generate out the code based on variables, rather than the hard-coded approach I'd taken on the site I built it for. Except I couldn't find the original Stack Overflow ticket. So I guess I'll just leave it here and hope it's useful to someone?


Let's say we're showing three different messages. Here's what happens to message number one:

![Part 1](https://dev-to-uploads.s3.amazonaws.com/i/e4vda98xn8gj1eztqklk.png)

Message number two uses exactly the same animation, but it's delayed by the same length as it takes message number 1 to play:

![Part 2](https://dev-to-uploads.s3.amazonaws.com/i/e5a4qo8p6x2cijxf97ef.png)

Message number 3 is delayed for twice as long:

![Part 3](https://dev-to-uploads.s3.amazonaws.com/i/k0yzf9dxozgjf9j4xsrt.png)

{% codepen https://codepen.io/ross-angus/pen/mdVazbj %}

I'm indebted to [Nick Watton](https://dev.to/nickwatton) for helping me figure out the animation timings. He is the Henry David Thoreau of web devs, in that he works in a shed.
The easiest way to verify files integrity on Windows
Tags: sysadmin, powershell, infosec, cybersecurity
Published: 2020-10-29 16:30:33

---
title: The easiest way to verify files integrity on Windows
published: true
date: 2020-07-24 16:12:06 UTC
tags: sysadmin,powershell,infosec,cybersecurity
canonical_url: 
---

[![](https://cdn-images-1.medium.com/max/2600/1*yeFM73ybaKRt8ttHU2tW8w.jpeg)](https://medium.com/certifried-it/the-easiest-way-to-verify-files-integrity-on-windows-a14ee628cbd8?source=rss-bf1ef9317cf6------2)

Easily check and verify files and apps haven’t been compromised using MD5 and SHA checksum with this simple command-line utility.

[Continue reading on CertiFried IT »](https://medium.com/certifried-it/the-easiest-way-to-verify-files-integrity-on-windows-a14ee628cbd8?source=rss-bf1ef9317cf6------2)
Covariance VS Correlation
Tags: datascience, machinelearning, beginners, statistics
Published: 2020-07-24 16:09:06

#Covariance:

1. Defines 3 types of relationships: Positive Trend, Negative Trend, and No Relationship
2. Covariance cannot tell whether the slope of the line representing the mentioned relationship between variables, is steep or not, instead, it will only express whether the slope is positive or negative.
3. Covariance can change even when the relationship does not, because covariance values are dependent on the scale and that also makes them difficult to interpret.

#Correlation:

1. Correlation shows the strength of the relationship between variables 
2. Correlation is standardized covariance. It does not depend on the scale of the data.
3. The more data we have, the more confidence we can have in the value of correlation that we obtain with the best fit line/plane


Thanks for reading! Happy learning!
If you'd like to support my writing, you can do that here:
https://www.buymeacoffee.com/shauryalalwani
Habit Tracker API: Project Setup
Published: 2020-07-24 13:53:46

Onto incomplete project number...mmh... seems like i lost count. Today i'll setup the skeleton of an Api project i intend to work on that adds, retrieves and deletes habits. I'll be using Node.js and Express. Let's get started.

Run `npm init` in the project folder, accept all defaults. That creates a package.json file

Install express `npm install express`

Create an app.js file and include express 
```javascript
const express = require('express');
```
Create an instance of express
```javascript
const app = express();
```
Set up the port
```javascript
const port = 4000;
```
Create a router
```javascript
const router = express.Router():
```
Handle some routes and chain a get/post function.
```javascript
router.route('/habits')
  .get((req, res) => {
    //Some random code to test with
    const response = 'My api';
    return res.json(response);
  })
  .post();
```
Use our router
```javascript
app.use('/habittracker', router);
```

Set up the server to listen for requests
```javascript
app.listen(port, () => {
  console.log(`listening on Port ${port}`);
});
```
Installl nodemon : `npm install nodemon`. Nodemon watches our files for changes and restarts our server. Update the scripts in the package.json with:
```javascript
"start": " nodemon node app.js",
```
This allows us to use `npm start` to start the server.

Let's start the server, head over to postman and send a get request
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/fzrvsv77hf7lze3sar1u.png)

It's working!

There we have it, over to procrastination.

_Another day down: Day 8!_
Resilience in Action SRE Podcast #4
Tags: devops, devrel, techtalks, sre
Published: 2020-07-24 15:54:26

{% spotify spotify:episode:7yqyHmbA0IYMbbwxFEpH7U?si=9-ixI5nkT9errvLRUdS96A %}
Resilience in Action is a podcast about all things resilience, from SRE to software engineering, to how it affects our personal lives, and more. Resilience in Action is hosted by Blameless Staff SRE Amy Tobey. Amy has been an SRE and DevOps practitioner since before those names existed. She cares deeply about her community of SREs and wants to take what she’s learned over the 20+ years of her career to help others. 

In our fourth episode, Amy chats with Craig Sebenik, SRE at Aurora and co-author of “[What is SRE?](https://www.oreilly.com/library/view/what-is-sre/9781492054429/#:~:text=Book%20Description,sites%20continuously%20introduce%20new%20features.)” and “[Salt Essentials](https://www.oreilly.com/library/view/salt-essentials/9781491914427/).” He has a degree from Le Cordon Bleu (Sydney, Australia), a Master's in Italian Cuisine (Apcius in Florene, Italy), and a Master's in Gastronomy (University of Rheims, France). His greatest passion is teaching what he has learned from
adventures in SRE and cooking.

See the full transcript of their conversation on [Failure is Inevitable](https://www.blameless.com/blog/resilience-in-action-episode-4).
Multiple api calls even for single saga action?
Tags: react, saga, api
Published: 2020-07-24 15:49:20

I was facing this issue in my React app and I could not find the exact reason in internet. There were many hacks and solutions for the same symptom, but nothing worked for me. Finally i solved it by correcting a mistake in code. So thought of posting it here.

I had an action which fetches a data via api call. There were other actions also defined inside same saga file. And this saga was used in multiple containers. Whenever i navigate between these containers, and call any action from this saga, there were multiple api calls triggered. But saga was called only once.

Problem:
While injecting the saga, I was using different key names inside different containers for the same saga. Saga was supposed to automatically ignore the duplicate actions. But since the key was different, it considered all the calls as unique.

Solution:
I used same key for this saga in all the containers where this was injected. So simple.

It was totally my mistake to use different keys. But i found same question in forums and github issues. So may be this would help someone to solve the issue or rule out this reason for the symptom. 

Thank you.
mac/iOSのCalendarでGoogleアカウント経由で取り込まれた誕生日を消す方法
Tags: mac, ios, calendar
Published: 2020-07-24 15:46:04

---
title: mac/iOSのCalendarでGoogleアカウント経由で取り込まれた誕生日を消す方法
published: true
description: 
tags: mac,iOS,calendar
//cover_image: https://direct_url_to_image.jpg
---

私のiClouldの連絡先には基本的に家族しか入れてなくて、もう一つ外のレベルでお付き合している人たちでさらに誕生日を気にしておきたい人物はGoogle Contactsに入れるようにしています。しかし、例えば前の職場のチームメンバーや元カノなどの誕生日をいつまでもカレンダー上に表示させておいても、もはや有用ではありません。というわけで、消し方を調べました。

## 結論

2020-07-25 現在の私の環境では、Google経由の誕生日カレンダーデータは、macのアカウント管理レベルで再同期しないと削除状態の更新がされませんでした。と言うわけで、以下にGoogleアカウントの再同期を含め、手順を示します。

## 手順

1. mac カレンダーアプリを開き、どの年でも良いので1月を表示します。Monthビューが見やすいでしょう。
2. 月を移動していき、消したい誕生日を確認します。
3. Google Contacts を開き、消したい誕生日の連絡先を開き、誕生日をNote/備考欄に書き写し、誕生日フィールド自体は X ボタンで取り除きます。
4. macのアカウント管理において、Googleアカウント連携自体を削除します
5. macのアカウント管理において、Googleアカウントを再連携します。連携項目 (メール、連絡先、カレンダー、ノート) は適宜選んでください。
6. macでカレンダーアプリを開き、キーボードのCommand+Rを押して、Googleアカウント経由のカレンダーデータが同期されるのを待ちます。

以上。
เส้นทางบันทึก...01_Week_2/14 
Published: 2020-07-24 15:42:56

---
title: เส้นทางบันทึก...01_Week_2/14 
published: true
description: 
tags: 
---


สวัสดีครับ สำหรับสัปดาห์นี้ก็เข้าสัปดาห์ที่ 2 แล้วน่ะครับสำหรับเส้นทางการเพิ่มกล้ามหน้าท้องแบบวิธีที่ 1 นั่นก็คือแบบการหาข้อมูลด้วยตนเองซึ่งก็เหลือระยะเวลาฝึกอีก 12 สัปดาห์ครับ โดยหลังจากเสร็จสิ้นการฝึกผมจะสรุปผลที่ได้จากการที่ฝึกกล้ามหน้าท้องแบบแรกนี้ครับว่า การฝึกกล้ามหน้าท้องแบบข้อมูลด้วยตนเองผมพบเจออุปสรรคอะไรและมีวิธีการแก้ไขอย่างไร หลังจากนั้นผมก็จะทดลองฝึกกล้ามหน้าท้องแบบที่ 2 คือแบบที่มีผู้ฝึกสอนอย่างเป็นขั้นเป็นตอน และหลังจากนั้นผมก็จะสรุปในตอนท้ายอีกครั้งหนึ่งครับว่า ทั้ง 2 วิธีนี้มีข้อดีและข้อเสียต่างกันอย่างไร
 
  ช่วงต้นสัปดาห์ที่ผ่านมาผมไม่ได้ฝึกตามตารางแต่ผมสามารถกลับมาฝึกตามตารางได้ในช่วงปลายสัปดาห์ ในเรื่องของอาหารผมยังไม่สามารถเลี่ยงอาหารพวกไขมันและน้ำตาลได้ทั้งหมด ผมทำได้เพียงแค่ลดปริมาณของไขมันและน้ำตาลลงเพียงเล็กน้อย ในส่วนของปริมาณโปรตีนที่กินเข้าไปในแต่ละวัน ผมกินโปรตีนน้อยกว่าเกณฑ์ที่กำหนดในแต่ละวันครับ

**สิ่งที่ได้เรียนรู้** : ผมต้องฝึกสร้างตารางเวลาอาหารล่วงหน้าพร้อมทั้งคำนวณปริมาณโปรตีนให้ถึงเกณฑ์ในแต่ละวันครับ  

ขอบคุณมากครับสำหรับการติดตามครับ เจอใหม่ครั้งหน้าครับ ขอบคุณมากครับ...
Microsoft Learn Student Ambassadors Explained
Tags: msftstudentpartner, mspkenya
Published: 2020-07-24 15:31:15

Are you passionate about Tech communities? Better yet, are you on campus and would like to grow your skills as you interact with other students and develop skills for your future career? Well, Microsoft Learn Student Ambassadors is the community to be a part of. 

Microsoft Learn Student Ambassadors is a global group of campus leaders eager to help fellow students build tech communities and develop technical and career skills for the future. In our country Kenya, our community is currently active in 20 institutions of Higher learning with a team of 47 Microsoft Learn Student Ambassadors spread out in the various institutions. 

Microsoft Learn Student Ambassadors are actively involved in helping their peers not only in building their coding skills and sharing content of technologies their passionate about but also facilitating student hackathons and imagine cup teams. 

They also get a chance to grow their skills using learning resources offered to them on Microsoft Learn, linked in learning, access to tools and resources like Azure credits and opportunities to learn directly from Microsoft experts. In addition to this they also get the chance to build on their soft skills like communication, leadership and teamwork. 

To be a part of this amazing community, one must be 16yrs and older and currently enrolled in an institution of higher learning, Applications are open all year round and onboarding is done once per quarter. 

Visit the Microsoft Learn student Ambassadors to apply.https://studentambassadors.microsoft.com/en-us?amp=1 

 Also Join the Microsoft Learn Student Ambassadors community Kenya on meetup:https://www.meetup.com/Microsoft-Student-Partners-Kenya
A Me() function for JavaScript and Google Apps Script
Tags: googleappsscript, javascript
Published: 2020-07-24 15:20:24

Quite a while back I wrote about a `Me` function for C#. I used to have an equivalent in JavaScript ES3. It used the now-deprecated `arguments` vector, which had to be passed in on the call:
```javascript
function Me(a) {
    return a.callee.toString().split(" ")[1].split("(")[0].trim();
}

// example usage. 
function foo() {
  Logger.log("[%s] We are in function %s", Me(arguments), Me(arguments));
}
```
I recently discovered a way that works for more recent JavaScripts including Google Apps Script. I expect it is not the most performant and should not be used in a Production environment. It's proving very helpful in Development.

The code below is TypeScript. Remove the `: string` and the exclamation mark after `stack` and you should have working JavaScript.
```typescript
function Me() : string {
    const e = new Error();
    const frame = e.stack!.split("\n")[2];
    const functionName = frame.split(" ")[5];
    return functionName;
}
```
The function can be used for logging and who knows what else:
```
function foo() {
  Logger.log("[%s] We are in function %s", Me(), Me());
}
```
Live Vulnerability spotting in VSCode
Tags: security, vscode, javascript, devsecops
Published: 2020-07-24 14:39:16

After my [Codeland talk](https://dev.to/brianverm/live-exploiting-your-open-source-dependencies-with-brian-vermeer-3g) a bunch of people asked me if I know any good tool for spotting vulnerabilities in packages you depends on.

I want to highlight one tool over here. It is an open-source, community-driven extension for VSCode called Vuln Cost.

![Vuln Cost in action](https://snyk.io/wp-content/uploads/vulncost-600.gif)

Looks cool right?!

## What does it do?
This extension looks at the packages you are using while you are coding. It checks if these packages have vulnerabilities and displays this inline.

To have all the information available we are using the information from Snyk. To connect to that API you need to have a Snyk account. We made it possible that a FREE account is already enough to get all the information. 

It currently works for:

- Node packages in JavaScript en TypeScript files
- popular CDN's in HTML files
- Node packages in your package.json

## Community-driven
As mentioned, this extension is a community-driven initiative. Feel free to open an issue, or even better create a pull request! We love your contributions to make the world a little bit safer!

## Links
[VSCode marketplace](https://marketplace.visualstudio.com/items?itemName=snyk-security.vscode-vuln-cost&ssr=false#review-details)
[Github repo](https://github.com/snyk/vulncost/issues)
[Information about Vuln Cost](https://snyk.io/security-scanner-vuln-cost/)
Javascript Array tricks to improve your development skill
Tags: javascript, tutorial, codewithghazi
Published: 2020-07-24 14:36:17

Hi All, today I will share some of the Javascript Array tricks which will improve your development skills. In our daily life, we use arrays a lot in javascript application to store data which is very easy to handle in terms of all crud operations related to data we can handle easily in an array. But there are some tasks which take time to do with a javascript array.

We will look into some scenarios which are easy to do but some times we spend a lot of time completing those tasks. These javascript array tricks will help you work with different scenarios related to javascript arrays.

* Shuffle Array 
* Unique Value
* Sort Javascript array of objects by property
* Array to comma separated string
* Select a single element from an array

[Check all codes here](https://codewithghazi.com/javascript-array-tricks-to-improve-your-development-skill/)
Some tips to write clean code - My Opinion
Tags: javascript, codequality, codewithghazi
Published: 2020-07-24 14:32:24

I want to share my opinions on how to write clean code. As we all know that. 

*It is easy to write code that computer can understand but it is tough to write code that humans can understand*

{% instagram CDBkwasnHs8 %}

Like and follow me on Social Media and follow my blogs for new updates.

Website: https://codewithghazi.com
Instagram: https://www.instagram.com/codewithghazi/
Twitter: https://twitter.com/codewithghazi
The Second Cohort of #BUILDFORSDG Challenge 2020 is out!
Tags: uncategorized
Published: 2020-07-28 03:35:41

---
title: The Second Cohort of #BUILDFORSDG Challenge 2020 is out!
published: true
date: 2020-07-24 14:28:19 UTC
tags: Uncategorized
canonical_url: https://fossnaija.com/andela-facebook-buildforsdg2020/?utm_source=rss&utm_medium=rss&utm_campaign=andela-facebook-buildforsdg2020
---

The  **#BuildforSDG Challenge 2020**  is a partnership between  **Facebook Developer Circles**  and  **Andela**  where [African developer ](https://fossnaija.com/foss-development-for-developing-countries/)are given the opportunity to; 

- Innovate the next big[ technology](https://fossnaija.com/internet-strengthening-coding-communities-e-societies-nigeria/) solution/product out of Africa
- Access an entrepreneurial starter kit to launch your tech solution
- Further advance you[r knowledge and skills developer knowledge](https://fossnaija.com/challenges-open-source-software-deployment-nigeria/) and learn something new.
- Access mentors/facilitators who would show you the ropes to building a functional tech solution/product.

In this Cohort, the focus would be shifting from building projects related to SDGs and focusing on industry-led projects. 

With a goal to engage 7.5k developers, 2,565k developer so far has contributed to building projects that could impact their communities through the First Cohort of the #BuildforSDG challenge.

Applicants participating in Cohort 2 will focus on industry-led projects that would give them real-world experience working on high-value, high-impact projects, improve their market-readiness and possibly kick-start an entrepreneurial journey through their projects.

![](https://i1.wp.com/fossnaija.com/wp-content/uploads/2020/07/andela-buildforsdg-banner.png?resize=665%2C282&ssl=1)<figcaption>Programme stages.</figcaption>

Here’s your chance to build tech products/solutions in any top-industry of your choice a functional from scratch and get mentored by experienced facilitators and mentors across all of Africa.

**If you are interested you can learn more about the programme and apply** [**here**](bit.ly/buildforsdgCohort2) **.**

You can also share with family and friends who you think must be a part of this program.

## **FACEBOOK Developer Circles**

Developer Circles from Facebook is a program designed to create locally organized communities for developers. These communities are meant to educate and provide a forum for discussion and knowledge sharing around topics that are top-of-mind for developers in a particular market.

## **Andela** 

Andela invests in Africa’s most talented software engineers to help companies solve the technical talent shortage and build high-performing distributed engineering teams. In addition, Andela has tested and proven to learn science principles relating to small learner groups, transparent output tracking, and robust support communities to up-skill developers across Africa.

**Happy Linux’NG!**

The post [The Second Cohort of #BUILDFORSDG Challenge 2020 is out!](https://fossnaija.com/andela-facebook-buildforsdg2020/) appeared first on [Foss Naija](https://fossnaija.com).