teleren/devto huggingface dataset:
LAMP on docker-compose app -> to a Kubernetes SAAS
Tags: lamp, kubernetes, scrum, projectmanagement
Published: 2021-04-25 23:52:09

Hello, community!
The CYSU remote Scrum application is up and running - but a SAAS for students and kids who nowadays have to work from home in locally distributed projects is what I thought might be a great chance and win-win-win... situation.
A) the kids get a solution that explains how communication actually works
B) they can learn how to do Scrum in a remote team
C) learn how to write and how to read requirements (starting from standards for describing the context, the goals, the customer's needs and the team-mates desires and how we meet these needs and address their desires...)
D) decouple their living-place from the places in the world where the jobs are created (today)

For some insights about my work: https://cutt.ly/VideoWalkthroughPO
... starting with an intro about the technologies I used to build the app - and showing how the fundamental scrum-process looks like (from a Product Owner's perspective) when using the CYBR-SUITE (CYSU) remote Scrum application.
... I am giving some hints, how we can then use the communication & collaboration data for adding machine-learning capabilities ... will be one of my next projects...

Just drop me a line if you want to participate!
A new cryptocurrency
Tags: blockchain, cryptocurrency, coding, team
Published: 2021-04-25 23:29:35

Hello my name is Trey Davis,

I see everything that is going on recently and in America we have only 21M people (that are known) who invest in cryptocurrency. I have done a ton of research, read many books, and have learned a lot about the economy. I would like to be a part of a team and create a new cryptocurrency that has not been done yet. If I am wrong and it has been done but is not popular please just let me know and I will become involved with it instead. 



Some quick features of this cryptocurrency that I have not seen but would like to see exist:

1) A max. supply of 200B, 20 decimals. (example. 200,000,000,000.00000000000000000000), this will be important for micropayments. 

2) whenever a wallet becomes inactive they will self destructed and the amount lost will be recirculated into the network via nodes, mining, and/or staking. 

3) miners/nodes will be able to verify transactions based on the fees. for example youll be able to edit what our node prefers to verify based on fee. if youd like to only verify transactions with a fee of <1 then itll be as easy as typing that in. if you only want to verify transactions of 2< that will also be easy. or if as a gift to the network you want to scrape fees of 0 you can do that as well.

4) adaptive blocksizes. just like how the verifying transaction fees are editable, youll also be able to edit the block sizes. so instead of it being 1MB or so you can adjust yours to be able to accept anything between 1MB & 20MB. sending a bit of data first to see if the nodes can agree on an amount and then sending the block with whatever is agreed on. if it is incompatible and can not come to an agreement then it will go to the default 1MB

5) a simple built in messaging system to make it simple to communicate with the purchaser and the buyer utilizing the network already. 

I am excited to hear your thoughts and if youre intrested in making becoming a team to make this happen, we can dive into the nitty gritty together.
The best interviewers are well prepared (100 Bytes Of Wisdom: Day 45)
Tags: career, journey, advice
Published: 2021-04-25 23:12:53

---
title: The best interviewers are well prepared (100 Bytes Of Wisdom: Day 45)
published: true
description: Bytes of Wisdom is a new project by Sam Jarman that brings together snippets of advice for software engineers
tags: career, journey, advice
//cover_image: https://direct_url_to_image.jpp
---

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


The first bit of advice I have for conducting interviews is prepare, prepare, prepare. So what do I mean by this? Well, I think we’ve probably all been the recipient of a poorly prepared interviewer. They skim your CV in the meeting itself, the conversation doesn’t really flow or go very deep, and the impression the candidate gets is pretty poor. Remember, these candidates have spent a few hours on your company already, preparing a CV/Résumé, writing a cover letter, prepping for an interview, etc, so how much disrespect have you shown them by not doing some prep? A lot.

Thirty minutes is all it takes, and it revolves around what they present. Their CV/Résumé, cover letter, portfolio (GitHub, Blog, etc). Go through all of these, find tidbits that interest you, prepare a list of leading questions to learn more about these things. Examples: “You mention here you scaled the platform at company X from 1,000 to 1,000,000 users? What sort of bottlenecks did you find and fix? Because here we found….” or “I see here you launched an app to the app store, tell me what you did for marketing and launch week?” This is the time where you can really find out from the candidate if they have the skills or experience you’re after for the role.


Heads up: As with any terse bit of advice, there will be exceptions of course, and subtleties and nuance that can't possibly be captured in a Byte of Wisdom. This has been what I've experienced, I'd love to hear yours in the comments too!

You can catch up with all the other bytes at http://bytesofwisdom.com/
Warning: session_start(): Session data file is not created by your uid in 
Published: 2021-04-25 23:04:57

PHP requires a session file to be owned by the user running PHP.

Then just run chown -R www-data:www-data /var/www/storage/session/ to own session folder and files by your PHP user (www-data:www-data are your PHP user and group separated by :).

```
sudo chown -R www-data:www-data /var/lib/php/session
or
sudo chown -R apache:apache /var/lib/php/session

```
How to buy low market altcoins (a.k.a shitcoins)
Tags: tutorial, crypto, shitcoins, binance
Published: 2021-04-25 22:47:59

With the recent boom of Bitcoin and other cryptos, a lot of new different markets have appeared. 

From my perspective, there are three types of investors.
- Mainstream: Invest in BITCOIN, ETH, ADA, DOGE, etc
- Altcoiners: Buy altcoins that are not well known, but not totally random. For example ENJ, Casper, etc.
- Full Degens: Buy altcoins with 1 month or less, highly volatile but with huge changes of achieving a x100. Those are the guys who invested in Safemoon and I'm gonna teach you how to be one.

This coins are tokens that work on the Binance Smart Change (run on BNB for gas). The exchange where you want to buy this tokens is called PANCAKE SWAP.

# This is a gentle guide to configure and buy on PancakeSwap

- Install MetaMask extension in your browser
- Accept Privacy Notes and Terms of Use
- Create password of at least 8 characters and hit create!
- Copy and save safely the 12 words that are shown and you’ll have your wallet created
- Configure your Binance Smart Chain network
       * Click on the top right corner “Ethereum Mainnet” and go to “Custom RPC”

Fill in the following network details:
Network Name: “Binance Smart Chain”
New RPC URL: “https://bsc-dataseed.binance.org/"
Chain ID: “56”
Symbol: “BNB”
Block Explorer URL: “https://bscscan.com"
Hit “Save” after you filled in all the details

Now, you can send BNB bought on any mainstream exchange (for example Binance) and send it here via the BEP20 network.

Here is an example of how to buy a coin. Personally, I bought a token named $KILIMANJARO. You can check it out here: https://kilimanjaro.finance/

## Buying $KILIMANJARO

Be sure you have funds on your wallet and also BNB to gas every transaction, if you don’t we advice to withdraw from binance or other exchange that supports BSC

- Go to https://v1exchange.pancakeswap.finance/#/swap?outputCurrency=0x865d0c78d08bd6e5f0db6bcbf36d3f8eb4ad48f8
- Select your preferred currency on the “From” field and click on “Select a currency” on the “To” field
Once there paste the $KILIMANJARO token id

* You may have to set a high slippage (6-7%) when $KILIMANJARO is launching due to high demand, be aware of that!

- Enter amounts, swap and you’re good to go!

Welcome to this awesome community!
7 Reasons Why You Need To Learn Javascript
Tags: webdev, javascript, codenewbie, beginners
Published: 2021-04-25 21:18:54

According to Wikipedia, there are at least 700 programming languages that exist. As developers, we know you have your fair share to pick when working on a particular project. 

However, very few modern programming languages are as important in recent development as Javascript. 

Here is a brief list of 7 reasons you need to learn Javascript:  

1. Javascript is Sticky

Today, Javascript is the primary leader in web development, So If you need to produce any client-side code. It won't be long before you run into a need for Javascript.

2. Beginner Friendly

There is no real surprise that Javascript is a first choice language for many newbies after discovering the vast amounts of resources and content for new developers to get started programming.

3. Full Stack 

The Evolution of Javascript has provided a full stack path baked right into the language after the development of NodeJS. NodeJS is a Javascript runtime that empowers Javascript developers with a way of developing server-side code, outside of a browser with a language that you already know and have experience using.

4. Popular 

According to Stack Overflow, Javascript has reigned supreme as the most commonly used programming language for the 8th year in the row. This will probably be the case as the demand for more innovative user interfaces continues from consumers. 

5. Versatility

In addition to being a staple on the front end and back end of the stack with NodeJS. Javascript libraries and frameworks like React Native for mobile development and Electron for desktop have allowed Javascript to go cross-platform. 

6. Great Ecosystem and community

Javascript has a wonderful ecosystem of great developers producing tools and packages to make the developer experience awesome. The Javascript community is filled with lots of developers to connect with and share about the landscape of Javascript.

7. Great Job Market

The demand for Javascript developers continues to be one of the highest of all languages with Javascript being a big part of many tech stacks for industry-leading employers. 

### Let's Chat About Javascript

I code primarily in Javascript for my projects because of the versatility and the Javascript ecosystem. If you enjoyed this post feel free to leave a comment about your thoughts and experiences with learning to write Javascript code. 

Happy Coding,
Terry Threatt
A simple zero shot classification app
Tags: streamlit, python, poetry, machinelearning
Published: 2021-04-25 22:26:57

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

Created an app to to zero shot classification using huggingface 🤗 library.

In this app, I created a simple [streamlit](https://streamlit.io/) app to try out the [zero-shot-classification](https://discuss.huggingface.co/t/new-pipeline-for-zero-shot-text-classification/681) pipeline provided by HuggingFace. 

**Please take a look at the code here**

https://github.com/ygivenx/zero-shot-classifier-app

**Or try it yourself by running**

Make sure your docker memory is set to over 6GB. 
`docker pull ygivenx/zero-shot-app`
`docker run -it -p 8501:8501 ygivenx/zero-shot-app`
Create temporary nil pointers with ease - Go
Published: 2021-04-25 22:18:25

Often times we have to temporarily create a nil pointer of a specific type which we aren't going to reuse in our code. In such cases as these, it might be cumbersome to write a nil pointer declaration for every type that you wish to use. Fear not, go has you covered! You can very easily create temporary nil pointers using the method I've described below. This can be used in situations where creating an instance of a type is not desirable, such as when you're working with database drivers and just want to execute a query based on the table schema represented by a certain type.

![carbon](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fzua9zoj9sidgw84uat2.png)
Setting Default Parameters for Your Functions
Tags: javascript, devops, tutorial, beginners
Published: 2021-04-25 22:14:57

 In order to help us create more flexible functions, ES6 introduces default parameters for functions.
* Ex:
```
const increment = (number, value = 1) =>  number + value;
```
```
console.log(increment(5)); will display 6
console.log(increment(5, 2)); will display 7
```
 As you can see in the example above,  we added a default parameter so that it will add 1 to number if value is not specified.
Writing Arrow Functions with Parameters
Tags: javascript, devops, tutorial, beginners
Published: 2021-04-25 22:06:48

* Just like a regular function, you can pass arguments into an arrow function.
```
const double = (item) => item * 2;
double(4);
double(4) would return the value 8.
```
* It is possible to pass more than one argument into an arrow function.
```
const myConcat = (arr1, arr2) => arr1.concat(arr2);
```
```
console.log(myConcat([1, 2, 3,], [4, 5])); will display [1, 2, 3, 4, 5]
```
* Note:Java string concat() method concatenates multiple strings. This method appends the specified string at the end of the given string and returns the combined string. We can use concat() method to join more than one strings.
ES6: Use Arrow Functions to Write Concise Anonymous Functions
Tags: javascript, devops, beginners, tutorial
Published: 2021-04-25 21:57:35

In JavaScript, we often don't need to name our functions, especially when passing a function as an argument to another function. Instead, we create inline functions. We don't need to name these functions because we do not reuse them anywhere else.

* To achieve this, we often use the following syntax:
```
var magic = function() {
  return new Date();
};
```
ES6 provides us with the syntactic sugar to not have to write anonymous functions this way. Instead, you can use arrow function syntax, When there is no function body, and only a return value, arrow function syntax allows you to omit the keyword return as well as the brackets surrounding the code. This helps just to make smaller functions into one-line statements:
```
const magic = () => new Date();

console.log(magic()); will display 
Sun Apr 25 2021 17:56:27 GMT-0400 (Eastern Daylight Time)
```
At least from the date I'm writing this code.
Declaring a Read-Only Variable with the const Keyword
Tags: javascript, devops, tutorial, beginners
Published: 2021-04-25 21:53:05

* The keyword let is not the only way to declare variables. In ES6, you can also declare variables using the const keyword.
Variables declared using const are read-only. They are a constant value, which means that once a variable is assigned with const, it cannot be reassigned.
* Ex:
```
const FAV_SYSTEM = "PS5";
FAV_SYSTEM = "Xbox";
```
* The console will display an error due to reassigning the value of FAV_PET.
As you can see, trying to reassign a variable declared with const will throw an error. You should always name variables you don't want to reassign using the const keyword. This actually does help when you accidentally reassign a variable that is meant to stay constant. A good way when naming constants is to use all uppercase letters, with words separated by an underscore.
* Note: Use uppercase variable identifiers for immutable values and lowercase or camelCase for mutable values (objects and arrays).
Vue Who?
Tags: vue, javascript, html, codepen
Published: 2021-04-25 21:51:32

Vue.js is a progressive framework for building user interfaces. It is essentially reusable components of code that have their own HTML, CSS, and JavaScript which define, style, and print each individual component. Vue.js enables coders to build custom and reusable bits of code which makes the code cleaner, easier to debug and edit when needed. 

I used Vue.js to improve the code of my online resume on [codepen](https://codepen.io/DigitalDump/pen/QWGLXxY?editors=1010). This has made the resume easier to edit when needed. For example, I can change the photo much faster through the JavaScript window instead of having to search for the specific image in a long and messy HTML code. Additionally, it is easy to duplicate the Vue.js component in case I want to repeat the same format later in my resume. 

Check out this video to see how I implemented Vue.js into my resume project: [Better code with Vue.js](https://youtu.be/y_8_rtMfL4c)
picoCTF 2021 -Mod 26 writeup-
Tags: security, ctf, showdev, linux
Published: 2021-04-25 21:03:13



# Description
Cryptography can be easy, do you know what ROT13 is?

cvpbPGS{arkg_gvzr_V'yy_gel_2_ebhaqf_bs_ebg13_hyLicInt}

# Solution

<!--ROT13とは、文字情報の暗号化方法の一種で、アルファベットの文字列をすべて13ずつずれた別の文字に変換する手法のことである。
ROT13は、全部で26文字あるアルファベットの文字をちょうど半分ずつずらすことによって、文字列の意味を保ったまま文章を判読できないようにされている。 ROT13によって変換された文字列をもう一度ROT13にかければ、文字列は元の状態に戻るようになっている。 ROT13はきわめて単純な変換方式であり、暗号化技術としては意味をなすものではない。 ただし人間は一見して意味を判読することはできなくなる。 このため、ROT13はクイズの答えなどの「ネタばらし」を公表するような場合に用いられる。-->

ROT13 is a method of encrypting textual information, in which all the letters of the alphabet are shifted by 13. 
In ROT13, the 26 letters of the alphabet are shifted by exactly half to make the text unreadable while preserving the meaning of the string. If the string converted by ROT13 is run through ROT13 again, the string will return to its original state. 

<!--ではnkfコマンドを使って，ワンライナーで解いてみせよう．-->

Let's use the nkf command to solve the problem in one-liner.

```Shell
$ echo "cvpbPGS{arkg_gvzr_V'yy_gel_2_ebhaqf_bs_ebg13_hyLicInt}" | nkf -r
```
<!--これで下記のフラグが得られる．-->
This gives us the following flags.

```
picoCTF{next_time_I'll_try_2_rounds_of_rot13_ulYvpVag}
```

nkf stands for "Network Kanji Filter," and is a command for converting character codes and newline codes, which can be a problem when exchanging text data between different operating systems, such as Linux and Windows [1].
<!--「nkf」は「Network Kanji Filter」の略で、LinuxとWindowsなど、異なるOS間でテキストデータを交換する際に問題となる文字コードと改行コードを変換するためのコマンドです。-->

The option "-r" means the decryption process by ROT13, which can be decoded by ROT13 just by adding it to nkf.


# Conclusion
In this article, I solved the cipher of ROT13 by nkf. In fact, if you want to determine ROT13 without any hint from the problem text, you can check it with a frequency analysis[2]. Here is the reference.
<!--この記事ではnkfによってROT13の暗号を解きました．実際問題文によるヒントなしでROT13と判断するには，頻度攻撃で確認すると良いです．いかが参考文献です．-->

### Reference 

[1] "nkf(1) - Linux man page",https://linux.die.net/man/1/nkf

[2] Andress, Jason. The basics of information security: understanding the fundamentals of InfoSec in theory and practice. Syngress, 2014.
Learning Through Overuse
Published: 2021-04-25 21:00:50

Sometimes it's hard to know how often and in what situations it's best to use any particular technology. How many integration tests do I need? When can I not write them, when can I do without them? When is it better to use vanilla JS and CSS, and when to get into all that post- and preprocessor stuff?

In these cases, it helps me to bring the situation to the point of overuse. I don't know how many integration tests I need? For the next two weeks, I write _only_ integration tests. In all cases, no matter what the internet says. Period. I don't know when enough vanilla JS and CSS will suffice? I'm building a page _only_ with bare JS and CSS.

This approach gives quick feedback in the form of pain in places where the technology definitely doesn't fit. Oops, integration tests slow down and prevent quick refactoring of the module - I'd rather have unit tests here. Oops, with vanilla JS it's painful to keep track of form state - I'd rather have something reactive and product-ready.
Use Recursion to Create a Range of Numbers
Tags: javascript, tutorial, beginners, devops
Published: 2021-04-25 21:00:38

Here I provide you another opportunity to create a recursive function to solve a problem.
* We have defined a function named rangeOfNumbers with two parameters. The function should return an array of integers which begins with a number represented by the startNum parameter and ends with a number represented by the endNum parameter. The starting number will always be less than or equal to the ending number. Your function must use recursion by calling itself and not use loops of any kind. It should also work for cases where both startNum and endNum are the same.
```
function rangeOfNumbers(startNum, endNum) {
  if (endNum == startNum) {
    return [endNum];
  } else {
    let arrayNum = rangeOfNumbers(startNum, endNum - 1)
    arrayNum.push(endNum);
    return arrayNum;
  }
}
```
```
console.log(rangeOfNumbers(1, 5)); will display [1, 2, 3, 4, 5]
```
Using Recursion to Create a Countdown
Tags: devops, tutorial, beginners, javascript
Published: 2021-04-25 20:52:21

As mentioned in the previous challenge, there will be a base case. The base case tells the recursive function when it no longer needs to call itself. It is a simple case where the return value is already known. There will also be a recursive call which executes the original function with different arguments. If the function is written correctly, eventually the base case will be reached.
* We have defined a function called countdown with one parameter (n). The function should use recursion to return an array containing the integers n through 1 based on the n parameter. If the function is called with a number less than 1, the function should return an empty array. For example, calling this function with n = 5 should return the array [5, 4, 3, 2, 1]. Your function must use recursion by calling itself and must not use loops of any kind.
* Solution:
```
function countdown(n) {
  if (n < 1) {
    return [];
  } else {
    var countdownArray = countdown(n - 1);
    console.log(countdownArray)
    countdownArray.unshift(n);
    return countdownArray;
}
}
```
```
console.log(countdown(10)); will display [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
```
Custom React Hook - useObjectState
Tags: react, hook, javascript, webdev
Published: 2021-04-25 20:49:45

A custom hook that make things easier with object state.

```javascript
function useObjectState(defaultValue = {},defaultFieldValue = null) {
  const [obj, setObj] = useState(defaultValue);
  const update = (key, value) => {
    setObj({ ...obj, [key]: value });
  };
  const get = (key, defaultValue=null) => {
    if(!key)return obj;
    return obj[key] ?? defaultValue ?? defaultFieldValue;
  };
  return [get, update, setObj];
}
```

Example:
```javascript
function SomeForm({defaultData}){
    const [get,update]=useObjectState(defaultData, '');

    return <form>
            <input value={get('name','John Doe')} onChange={(e)=>update('name',e.target.value)} />
            <input value={get('address')} onChange={(e)=>update('address',e.target.value)} />
            ...
        </form>
}

```

Thank you all! Please feel free to leave any comments.