teleren/devto huggingface dataset:
Why I don't like Jira
Tags: jira, agile, tools, backlog
Published: 2022-06-18 19:48:31

---
title: Why I don't like Jira
published: true
date: 2022-01-22 00:00:00 UTC
tags: jira,agile,tools,backlog
canonical_url: https://jhall.io/archive/2022/01/22/why-i-dont-like-jira/
---

[Yesterday](https://jhall.io/archive/2022/01/21/what-makes-an-agile-tool-good/) I hinted that I’m not a big fan of Jira. In the interest of keeping this short, I won’t go into a long list of Jira failings. Instead I’ll just address the two prongs of the framework I established yesterday:

> Does the tool make useful things easier, and unuseful things harder?

Jira is an incredibly “powerful” tool. It can be configured six ways from Sunday. This makes it a popular choice for teams that have complex project management needs.

But agile teams, [by definition](https://agilemanifesto.org/), should favor “individuals and interactions over processes and tools”, and [strive for](https://agilemanifesto.org/principles.html) simplicity, or “the art of maximizing the amount of work not done.”

Work about work (i.e. issue management) is part of the work that we ought to maximize _not doing_.

So based on the premise that _agile teams_ need lightweight processes, and want to maximize the amount of work not done, is Jira a good tool for this purpose? Let’s look.

## Does Jira make it easy to do useful things?

Not really.

Jira definitely makes it _possible_ to do these things. Jira can do almost anything, if properly configured. But it’s not _easy_ to configure Jira to be lightweight. It probably requires several weeks (or longer) of trial and error, or a highly experienced expert to configure things to be “lightweight”.

But on to the second of my criteria:

## Does Jira make it difficult to do unuseful things?

Again, not really.

The fact that Jira is so configurable means that it really doesn’t offer any enabling constraints by default.

In fact, Jira often encourages a lot of anti-patterns. I recently saw a post boasting that Jira now supports “larger backlogs”! 🤦

Large backlogs are _not_ lightweight, but I’ll save that rant for another day.

In my honest opinion, Jira is responsible for more lost human productivity than any other software ever created. And yes, that’s even when considering Windows Me!

* * *
_If you enjoyed this message, [subscribe](https://jhall.io/daily) to <u>The Daily Commit</u> to get future messages to your inbox._
Editorial-Chart experiment
Tags: codepen
Published: 2022-01-20 14:37:00

<p>This is only an experiment
Source code: <a href="https://github.com/schmidtsonian/calendar-stats" target="_blank">https://github.com/schmidtsonian/calendar-stats</a>
Original design: <a href="https://dribbble.com/shots/2531003-Editorial-Chart" target="_blank">https://dribbble.com/shots/2531003-Editorial-Chart</a></p>

{% codepen https://codepen.io/elynaur/pen/VwMJZRw %}
Just to let you all know.....
Published: 2022-01-20 20:53:44

@Ben @nickytonline and others:


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/drt0dj056xmblh83rg70.png)

Three hours ago I forked Forem, asked GH support to detach fork, they happily did it, and now Im cloning it to my local dev machine.

Starting working on my version of it. Many things in my mind.

Will update this post.......

========

I decided to fork & detach simply because it turned up that Forem team **lies** constantly.

About being open-source, about being inclusive, about .... almost everything.

========

You can track progress [here](https://github.com/labspl/forem)

=======

Our goals:

* change the name,
* change license,
* make Forem ( or whatever name we select ) fully **open-source**,
* create **working** mobile apps ( Android / iOS )
* make code portable,
* improve code quality,
* introduce new features.
* rework/redesign many existing features,
* follow [our standards](https://github.com/labspl/coding-standards),

and much more.
How to edit components in Figma
Tags: figmatips, figma, uxdesign, uidesign
Published: 2022-01-21 00:35:34

---
title: How to edit components in Figma
published: true
date: 2022-01-04 19:55:00 UTC
tags: figmatips,figma,uxdesign,uidesign
canonical_url: 
---

![](https://cdn-images-1.medium.com/max/1024/0*E8sW31i2mp_qYOA3.jpg)

In this quick post, we’ll see how to edit your components in Figma.

### Watch Video Tutorial

{% youtube JpizbChgUrc %}

### Edit Components

If you want to edit a certain component, just go to the root component frame and edit it. Any change you add, Figma will apply that change automatically to all the component’s instances.

### Edit Instance

If you want to edit a component’s instance, you have to go back to the main component and edit it.

- Right-Click on your instance and select **Go to the main component**

![](https://cdn-images-1.medium.com/max/962/0*GRHn-FY2JyXA8NMN.png)

- Now, add your changes to the component.

Next, you have to publish your components changes to the libraries so all the component’s instances will be updated.

### Update components changes

- Go to the components file’s **Assets** panel and hit the **Team Library**  icon.

![](https://cdn-images-1.medium.com/max/241/0*B89GqCeDkO-kl2fO.png)

- Hit **Publish changes** button in the **Libraries modal** to update the changes to the library.

![](https://cdn-images-1.medium.com/max/984/0*ceT3SCXvFV4WZyaz.png)

![](https://cdn-images-1.medium.com/max/900/0*DPdfJj1LrIMtM1NG.png)

That’s everything about editing components in Figma. In the next posts we’ll cover more concerning Figma components.

### Before you go

Feel free to visit our website [**captain-design.com**](https://www.captain-design.com/) where we are sharing generously, ready for commercial use [**Figma and HTML templates**](https://www.captain-design.com/).

You’ll find three things to help you kickstart your next project’s design :

- [**200+ free Figma templates**](https://www.captain-design.com/templates/) **.**
- [**Free Html + Bootstrap 5 templates**](https://www.captain-design.com/templates/tag/html) **.**
- [**Amazing Figma Plugins and UI kits**](https://www.captain-design.com/uikit/) **.**

_Originally published at_ [_https://www.captain-design.com_](https://www.captain-design.com/blog/how-to-edit-components-in-figma/) _on January 4, 2022._
Ethernaut Hacks Level 7: Force
Tags: solidity, ethereum, openzeppelin, smartcontract
Published: 2022-01-21 17:33:17


This is the level 7 of [Ethernaut](https://ethernaut.openzeppelin.com/) game.

## Pre-requisites
- [selfdestruct](https://docs.soliditylang.org/en/v0.6.0/units-and-global-variables.html#contract-related) function in Solidity

## Hack

Given contract:

```solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.6.0;

contract Force {/*

                   MEOW ?
         /\_/\   /
    ____/ o o \
  /~____  =ø= /
 (______)__m_m)

*/}
```

`player` has to somehow make this empty contract's balance grater that 0.

Simple `transfer` or `send` won't work because the `Force` implements neither `receive` nor `fallaback` functions. Calls with any value will revert.

However, the checks can be bypassed by using `selfdestruct` of an intermediate contract - `Payer` which would specify `Force`'s address as beneficiary of it's funds after it's self-destruction.

First off make a soon-to-be-destroyed contract in Remix:

```Solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.6.0;

contract Payer {
    uint public balance = 0;

    function destruct(address payable _to) external payable {
        selfdestruct(_to);
    }

    function deposit() external payable {
        balance += msg.value;
    }
}
```

Send a value of say, `10000000000000 wei` (0.00001 eth) by calling `deposit`, so that `Payer`'s balance increases to same amount.

Get instance address of `Force` in console:

```javascript
contact.address

// Output: <your-instance-address>
```

Call `destruct` of `Payer` with `<your-instance-address>` as parameter. That's destroy `Payer` and send all of it's funds to `Force`. Verify by:

```javascript
await getBalance(contract.address)

// Output: '0.00001'
```

Level cracked!

_Learned something awesome? Consider starring the [github repo](https://github.com/theNvN/ethernaut-openzeppelin-hacks)_ 😄

_and following me on twitter [here](https://twitter.com/heyNvN)_ 🙏
Hide or show Elements/div in HTML Using JavaScript and Css
Tags: javascript, css, sh20raj, tricks
Published: 2022-01-22 10:11:41


- Video Documentation :- https://youtu.be/Ms7EgAJDVx0
- Source :- https://codexdindia.blogspot.com/2022/01/hide-or-show-elements-in-html-using-javascript-and-css.html

---
Steps :-

- For This Firstly create a .hidden class where the css display property is set to `"none"`.

```
<style>
  .hidden{
    display:none;
  }
</style>
```
HTML
- Then Using JavaScript we will `toggle` (add / remove) the hidden class from the element. So that results hiding and showing of the div/any other  element.
- Creating a JavaScript function to hide/show elements.

```
<script>
  function hideunhide(a){
    document.querySelector(a).classList.toggle('hidden');
  }
</script>
```
HTML
- This function takes a parameter (queryselector) and select the element and add or remove hidden from the class list of the element. If hidden is present it will remove and vice-versa.That's the work of toggle.
- See the Demo Below or on CXDI - Tutorials :- https://tutorials.sh20raj.repl.co/hide-or-show-elements-in-html-using-javascript-and-css/.
- Demo Codes :- https://replit.com/@SH20RAJ/Tutorials#hide-or-show-elements-in-html-using-javascript-and-css/index.html or on Codepen :- https://codepen.io/SH20RAJ/pen/vYeVdGj?editors=1010
Share Text Across Near 💻Devices📱 using this website 🔥
Tags: javascript, react, webdev, programming
Published: 2022-01-23 15:25:22

Sharing Text data across near devices has always been a headache.

Some conventional methods to share text data are, Using native cross-platform applications (eg. WhatsApp, WeChat, Telegram, etc.). Or, Using Email Services (Gmail, Yahoo Mail, etc.)

All such conventional methods needs either installation of Native Applications or Bulky Sites.

## Solution?

[**TEMP-SHARE**](https://temp-share.ml), a fast 🚀, reliable 💪 and secure 🛡️ web application.

**TEMP-SHARE** meets all your requirements of sharing text data across near devices-

> Unlimited Text Length 🗒️

> Secure 4-characters alpha-numeric random password 🔑

> Your Custom Password 😎

> Max Data Persistence Life of 10 minutes 🤩

> One Time Read Only 🤫

> Most important, Dark/Light Themes 🌒

## How to use?

> Step. 1

Just visit [temp-share.ml](https://temp-share.ml)

![temp-share home page](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s1ekn2a19q1eb8xj4f4r.png)

> Step. 2

Enter the Text you want to share, and hit **SUBMIT**

> STEP. 3

You'll get a 4-characters alpha-numeric random password 🔑

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

> Step. 4

Open the same website ([temp-share.ml](https://temp-share.ml)) on another device and Paste the **passcode**.

![entered passcode](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/978jhckd7g8zp6sb9od3.png)

> Step. 5

Just hit **GET TEXT**.

![GET TEXT](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e84se614rm07hc50oia6.png)

Here you go, you have the text on your other device.

---

**Note:**

As, we checked **One Time View**, fetching the text again will return an error.

![Error](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ak08bdyqxkyx8hqjkfwe.png)

---

Other than this, You can also set your custom password 🔑

---

## Live ✨

TEMP-SHARE is currently Live at [temp-share.ml](https://temp-share.ml)

---

## Contribution ✨

TEMP-SHARE is **not Open-Souce yet**. But, if you want us to Open the Source, please drop a comment explaining why you are interested.

---

I hope, you guys liked this quick introduction to TEMP-SHARE. If so, then please don't forget to drop a Like ❤️

And also, help me reach **1k Subscribers** 🤩, on my [YouTube channel](https://www.youtube.com/channel/UCCO4jIqmQVFDmVeeaAO5obA).

Happy Coding! 😃💻
Show loading indicator for Lazy Modules in Angular
Tags: angular, javascript, async, webdev
Published: 2022-01-23 17:59:37

In Angular, By default, all modules are loaded as soon as the applications load, irrespective of which modules are immediately necessary and which are not. 

## Why Lazy-loaded Modules
In the case of applications with many routes, these modules would eventually increase initial load time and consequently bad user experience. To prevent large load time we prefer lazy-loaded modules to minimize initial load time as well as bundle size. Every module is of different sizes as well as the network conditions, which will take different times to load. _For a better user experience, showing loader would definitely be a good idea!_

## Loader code


**app.component.html**

```html
<router-outlet>
  <span class="loader" *ngIf="isLoading"></span>
</router-outlet>
```

**app.component.css**

```css
.loader {
  display: inline-block;
  width: 40px;
  height: 40px;
  position: absolute;
  left: 0;
  right: 0;
  margin-left: auto;
  margin-right: auto;
  top: 50%;
  transform: translateY(-50%);
}

.loader:after {
  content: " ";
  display: block;
  width: 100px;
  height: 100px;
  border-radius: 50%;
  border: 5px solid #000;
  border-color: #000 transparent #000 transparent;
  animation: loader 1.2s linear infinite;
}

@keyframes loader {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

```

**app.component.ts**

```javascript
import { Component } from '@angular/core';
import { Router, RouteConfigLoadStart, RouteConfigLoadEnd, RouterEvent } from '@angular/router';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  isLoading: boolean = false

  constructor(router: Router) {

    router.events.subscribe(
      (event: RouterEvent): void => {
        if (event instanceof RouteConfigLoadStart) {
          this.isLoading = true;
        } else if (event instanceof RouteConfigLoadEnd) {
          this.isLoading  = false;
        }
      }
    );
  }
}
```

The actual source code is [here](https://codesandbox.io/s/show-loader-in-lazy-module-in-angular-tb25o). The Loader part is 
`<span class="loader" *ngIf="isLoading"></span>` which has a condition to show and hide based on **isLoading** boolean. The last part is app.component.ts where we have added the following code block:

```javascript
router.events.subscribe(
      (event: RouterEvent): void => {
        if (event instanceof RouteConfigLoadStart) {
          this.isLoading = true;
        } else if (event instanceof RouteConfigLoadEnd) {
          this.isLoading  = false;
        }
      }
    );
```

Here we are subscribed to router events and switching **isLoading** based on **RouteConfigLoadStart** and **RouteConfigLoadStart**. 

Hope this would be useful, see you guys soon 👋.
Why you should write clean code as a JavaScript Developer?
Tags: javascript, node, webdev
Published: 2022-01-23 16:52:38

## Hello Folks 👋
What's up friends, this is **SnowBit** here. I am a young passionate and self-taught developer and have an intention to become a successful developer.

Today, I am here with something important for you as a JavaScript Developer.
 
## Why you should write clean code as a JavaScript Developer


Writing clean code improves the maintainability of the application and make the developer productive. Unfortunately, some developers are unaware of this language feature.

### 🌟 Make Use of Arrow Functions

Arrow functions provide the abridged way of writing JavaScript.

The main benefit of using arrow functions in JavaScript is curly braces, parenthesis, function, and return keywords become completely optional; and that makes your code more clear understanding.

The example below shows a comparison between the single-line arrow function and the regular function.

```js
// single line arrow function
const sum = (a, b) => a + b

// Regular Function
function sum(a, b) {
	return a + b;
}

```

### 🌟 Use Template Literals for String Concatenation

Template literals are determined with backticks

Template literals can contain a placeholder, indicated by a dollar sign and curly braces 

```js
    ${expression}
```
We can define a placeholder in a string to remove all concatenations.

```js
// before
const hello = "Hello"
console.log(hello + " World")

// after
const hello = "Hello"
console.log(`${hello} World`)

```

### 🌟 Spread Syntax

Spread Syntax(...) is another helpful addition to ES6.

It is able to expand literals like arrays into individual elements with a single line of magic code. 🔮

```js
const sum = (a, b, c) => a + b + c
const num = [4, 5, 6]
console.log(`Sum: ${sum(...num)}`)

```

### 🌟 Object Destruction

Object destruction is a useful JS feature to extract properties from objects and bind them to variables.

For example, here we create an object with curly braces and a list of properties.

```js
const me = {
	name: "SnowBit",
	age: 15,
	language: "JavaScript"
}

```

Now let’s extract `name` and `age` property values and assign them to a variable.

```js
const name = me.name
const age = me.age

```

Here, we have to explicitly mention the `name` and `age` property with `me` object using dot(.), and then declare the variables and assign them.

We can simplify this process by using `object destruction` syntax.

```js
const {name, age} = me
console.log(name, age)

```

---

Thank you for reading, have a nice day!
**Your appreciation is my motivation 😊**

- Follow me on Twitter - [@codewithsnowbit](https://twitter.com/codewithsnowbit)
- Subscribe to me on YouTube - [Code With SnowBit](https://www.youtube.com/channel/UCNTKqF1vhFYX_v0ERnUa1RQ?view_as=subscriber&sub_confirmation=1)
PS1toEXE
Tags: powershelll, automation, windows, programming
Published: 2022-01-24 04:54:35


A tool to convert powershell script to exe and make the same execute in other windows machines without opening any script runner.


### :boom: Reposting my old repo to the community

This was built by me several years ago, thought it would be nice to repost this to this new blog.

[:link: Github Repo link](https://github.com/aravindvcyber/PS1toEXE)

#  :dart: PS1toEXE

This PowerShell script lets you "convert" PowerShell scripts into EXE files modified and updated from ps2exe v0.5.0.0 to include support for powershell 5 with full features which is working in Windows 10

# :runner: How to execute this script

Open windows powershell

```ps c:\> .\ps1toexe.ps1 -inputfile inputfilepath.ps1 outputfilepath.exe``` and other necessary switches.

Besides this some of our contributes has built an export module as well `ConvertTo-Exe`, go and explore it which make this better now.

### For more stuff like this follow our blog [:postbox: Dev Post](https://devpost.hashnode.dev).

This repo is free to use and we are ready to refine with your contributions as well, so don't hesitate to raise :white_check_mark: pull request or comment in our blog post below [:link: @PS1toEXE](https://devpost.hashnode.dev/PS1toEXE). And also find our community reacts about PS1toEXE.


Thanks for supporting! 🙏

Would be really great if you like to [:coffee: Buy Me a Coffee](https://www.buymeacoffee.com/AravindVCyber), to help boost my efforts.

<a href="https://www.buymeacoffee.com/AravindVCyber"><img src="https://img.buymeacoffee.com/button-api/?text=Buy me a coffee&emoji=&slug=AravindVCyber&button_colour=BD5FFF&font_colour=ffffff&font_family=Cookie&outline_colour=000000&coffee_colour=FFDD00" /></a>

:repeat: Original post at :link: [Dev Post](https://devpost.hashnode.dev/ps1toexe)
Tmux hotkey for copier templates
Tags: python, linux, tmux
Published: 2022-01-24 15:14:59

---
canonical_url: https://waylonwalker.com/til/tmux-copier-templates/
published: true
tags:
- python
- linux
- tmux
series: til
title: Tmux hotkey for copier templates
---

I have added a hotkey to my copier template setup to quickly access all my templates at any time from tmux.  At any point I can hit `<c-b><c-b>`, thats holding control and hitting `bb`, and I will get a popup list of all of my templates directory names.  Its an fzf list, which means that I can fuzzy search through it for the template I want, or arrow key to the one I want if I am feeling insane.  I even setup it up so that the preview is a list of the files that come with the template in tree view.

``` bash
bind-key c-b popup -E -w 80% -d '#{pane_current_path}' "\
    pipx run copier copy ~/.copier-templates/`ls ~/.copier-templates |\
    fzf --header $(pwd) --preview='tree ~/.copier-templates/{} |\
    lolcat'` . \
    "
```

I've had this on my systems for a few weeks now and I am constantly using it for my [tils](https://waylonwalker.com/til/), [blogs](https://waylonwalker.com/archive), and my .envrc file that goes into all of my projects to make sure that I have a virtual environment installed and running any time I open it.

![this is what it looks like when I open my copier templates popup](https://images.waylonwalker.com/copier-templates-tmux-popup.png)
SwiftUI Custom Style
Tags: swiftui, swift
Published: 2022-01-24 22:22:58

In this post I would like to share my approach to style different views.

Some time ago, I wanted to customize SwiftUI Textfield, but TextFieldStyle API is not exposed to public and looks like this:

```swift
struct MyTextFieldStyle: TextFieldStyle {
    func _body(configuration: TextField<Self._Label>) -> some View {
        VStack(spacing: 0) {
            configuration
            .font(font)
            Rectangle().frame(maxWidth: .infinity, maxHeight: 2)
        }
    }

    let font = Font.system(size: 37, weight: .bold)
}
```

But I think, Apple won't allow to use that, and I came up with new approach.

Firstly, let's create typealias to ViewModifier

```swift
typealias CustomTextFieldStyle = ViewModifier

extension View {
  func customTextFieldStyle<S>(_ style: S) -> some View where S: CustomTextFieldStyle {
    modifier(style)
  }
}

```

Now, all I need is just create struct, that will implement CustomTextFieldStyle.

```swift
struct LargeTextFieldStyle: CustomTextFieldStyle {
  
   func body(content: Content) -> some View {
      VStack(spacing: 2) {
         content
            .font(font)
            .disableAutocorrection(true)
            .autocapitalization(.words)
         Rectangle().foregroundColor(Color.blue).frame(maxWidth: .infinity, maxHeight: 2)
      }
   }
   
   let font: Font = Font.system(size: 26, weight: .bold)
}
```

Also with Swift 5.5 new [feature](https://github.com/apple/swift-evolution/blob/main/proposals/0299-extend-generic-static-member-lookup.md), that allow to extend generics, thus we can extend our CustomTextFieldStyle type and use it even more simpler

```swift
extension CustomTextFieldStyle where Self == LargeTextFieldStyle {
  static var large: LargeTextFieldStyle { LargeTextFieldStyle() }
}
```

You can checkout full code in this [gist](https://gist.github.com/drucelweisse/b76c5000dbf17bd5a0e9c24551f697b2)
How to run rails console on elastic beanstalk rails app
Tags: ebs, elasticbeanstalk, rails, ruby
Published: 2022-01-25 05:45:13

1. Put all you environment variable into `.env` file root of your project directory.
```shell
sudo su - -c "cd /var/app/current; /opt/elasticbeanstalk/bin/get-config --output YAML environment | sed 's/: /=/g' > .env"
```

2. Set environment variable from `.env` file
```shell
export $(grep -v '^#' .env | xargs -d '\n')
```

3. Run your rails console based rails environment(production/staging/test/development etc). 
```shell
RAILS_ENV=production bundle exec rails c
```