teleren/devto huggingface dataset:
AI in the Field of Audio Communications
Tags: noisecancellation, noisecancellingapps, krisp, ai
Published: 2019-05-06 10:39:16

---
title: AI in the Field of Audio Communications
published: true
description: Noise cancelling app powered by Deep Neural Networks
tags: noise cancellation, noise cancelling apps, Krisp, AI
---

An interesting find of a noise cancelling app called <a href="https://krisp.ai/">Krisp</a> which is backed up by DNN.

AI is taking a new turn in the field of audio communications. This AI powered new noise cancelling app mutes background noise in real time calls with low latency. The DNN is trained to remove background noise from the human voice allowing the person to continue the call noiselessly without any interruptions.

The app is an additional layer between the laptop's physical microphone&speaker and the conferencing app that is used for the call. It works with any conferencing app which allows you to choose the microphone and speaker. 

The way it works is simple: If you choose it as a microphone it adds a virtual microphone that receives audio from the real microphone. Then the audio is processed, the noise is removed and the audio is transmitted to the conferencing app. This is the function called "Speak" allowing you to speak without noise. 

If you choose Krisp as a speaker, it will add a virtual speaker that will receive the audio from the conferencing app, process it to remove noise and then transmit it to the physical speaker. This will allow you to listen to other call participants without noise, while they don't even have the app installed. 

The audio processing is done locally on the device, so no audio is stored anywhere or sent to the servers. 

The app has gained quite the popularity ever since its launch in October of 2018. It was featured on <a href="https://techcrunch.com/2018/12/10/krisp-reduces-noise-on-calls-using-machine-learning-and-its-coming-to-windows-soon/">TechCrunch</a>, <a href="https://www.producthunt.com/posts/krisp">Product Hunt</a>, <a href="https://news.ycombinator.com/item?id=18460726">HackerNews</a>, <a href="https://devblogs.nvidia.com/nvidia-real-time-noise-suppression-deep-learning/">Nvidia</a>  and more. 
Many people have tested it and gave their opinion that this app will work perfectly for all the remote workers, freelancers and digital nomads out there. 

The app has a new unique perspective on the remote world and is a new productive way to take your remote conferencing to the next level. With the growing number of windows and <a href="https://krisp.ai/blog/productivity-apps-mac-2019/">mac productivity apps</a>, Krisp can make it into the list and add a more professional experience to those working remotely. 

To be short and concise - you can now remove background noise without having to mute yourself or others during calls. All you do is switch on this app and that's it. 
It's curious as to where is this idea going to expand and how much further can AI take us in the field of audio communications.
IMHO considered harmful
Tags: discuss, blogging
Published: 2019-05-06 09:39:22

---
title: IMHO considered harmful
published: true
description: IMHO is wrong, want to know why?
tags: discussion, blogging
---


People like to share their opinions. They do it in the comments, articles, in their speech, even the text you are reading now is an opinion of the one who wrote the post. It is alright to have an opinion, to think about reality, map the teritory of surrounding world and stuff in it then sharing your map with others. Expressing your thoughts to others and getting their mind on some topic is a valuable element of societal development and aids us all.

# Onion of opinon, crying up for help

Although, shielding yourself and your opinion from the possible criticism and serious consideration by other people is not alright. Quite frequently I see people start their posts or comments with IMHO disclaimer followed by actual material they want to share with the world. This is wrong on many levels.

![IMHO](https://thepracticaldev.s3.amazonaws.com/i/p4qosm2520mai52flbrd.png)

# Humility considered harmful

IMHO serves as training wheels of idea, saying to the world - don't judge me, it is just an opinion and may be wrong. It discourages people from getting into discussion and taking the opinion seriously. Why even start expressing the thought if you are not certain that you can protect and/or adjust it if someone points at some warts of your theory? 

Being unsure of some things in your worldview is normal as far as you point at the explicitly and explain the uncertainty you have about them. Such explanation may be a foundation of fruitful conversation and aspire people to get their mind on an issue. IMHO is different, it is a kind of discussion-stopper that does not pose any questions to ask being only a stop sign. It does not explain anything, it simply shows that person is reassuring to avoid an attack on their ideas and building a safehouse of  (rather helpless) humility.

It is a way of lazy thinking that leads to slippery ice of [subjectivist fallacy](https://en.wikipedia.org/wiki/Relativist_fallacy). If this is *only* your opinion and not an idea you want to show to be true, you can just hop through the steps required to make it credible, you can claim that truth in this context is relative because we speak about *opinions* and not *facts* and deflect any criticisim with a shiny shield of **relativism**. It is a magic wand of ignorance that should not be used by any measures. Some subjectives are better than the others and there is a measure to it which is disbanded by this four letter abbreviation. Some ideas are better than the others and giving every idea a participation prize we don't get closer to the truth and practicality. We harm them.

# Baby, don't do no harm

Stand for your ideas, be brave to mistake and correct your hypothesis until you reach a level of certainty that makes an idea good. But please, don't shell up with being humble as this does not help you to get closer to the truth.

P.S. This is my opinion, but I don't regard it as humble and ready to discuss it.
Thoughts on legacy code, diversity and inclusion
Tags: programming, code, inclusion, discuss
Published: 2019-05-06 09:01:45

---
title: Thoughts on legacy code, diversity and inclusion
published: true
description: TLDR; If you're still dropping snarky commentaries about PHP on Twitter, just grow up already.
tags: programming, code, inclusion, discuss
cover_image: https://heidislab.ams3.cdn.digitaloceanspaces.com/legacy.jpeg
---

TLDR; If you're still dropping snarky commentaries about PHP on Twitter, just grow up already.

As some of you may know, I've recently started a new job as Technical Writer at DigitalOcean. One of my first assignments was writing a [tutorial about phpMyAdmin](https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-phpmyadmin-with-nginx-on-an-ubuntu-18-04-server).

I thought a lot about legacy code / legacy applications while I was writing that tutorial. 

<blockquote class="twitter-tweet"><p lang="en" dir="ltr">It&#39;s not always fun to work with legacy code, but it&#39;s a great opportunity to exercise *empathy*. Read the code without judgement, think about the time and context that code was written, and how it is serving people today, exactly how it is.</p>&mdash; Erika Heidi (@erikaheidi) <a href="https://twitter.com/erikaheidi/status/1115884427324940289?ref_src=twsrc%5Etfw">April 10, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


Most web developers from my time had used phpMyAdmin in the past. Yes; it is a software well known because of security issues. But it has served well many people, and it still has pertinent use cases for small businesses and whenever it is necessary to expose database information (read-only, hopefully) for third parties who won't have the expertise to use software like MySQL Workbench, but still would like to peak at the data they own. 

As we mature as an industry and as professionals within it, we realize more and more the need for diversity and inclusion in all spheres, even code. Inclusive code might not be the most beautiful, the most sophisticated, or the fastest. Inclusive code is code that most developers, if not all, can use and customize to their needs. It's accessible, **cheap**, multi-purpose. It doesn't invalidate high-standards software, but it offers a *way in* and fuels a whole section of the industry that wouldn't be there otherwise. 

This is also valid in the context of programming languages, and how there's still people out there acting as gatekeepers, in an attempt to marginalize whole sections of our bigger developer community. 

Instead of condemning the usage of software like phpMyAdmin and criticizing the developers who wrote that code, you'll be way more helpful to your community by sharing practical advice on what to do in order to improve security and usability of such applications. Naturally, it is important to educate people on the risks involved and show alternatives, but you can't close your eyes to the fact that people will keep using it anyways, whether you think it's good software or bad software.
Weekly Links – 5/6
Tags: links, uncategorized, appconfiguration, azure
Published: 2019-05-06 10:20:22

---
title: Weekly Links – 5/6
published: true
tags: Links,Uncategorized,app configuration,azure
canonical_url: 
---

So I’ve decided to start doing something new, Like any good dev, I spend a lot of time on the internet, so as I’m working on various projects I’ve decided I’m going to post a bunch of useful links out here that I find as i’m going through my travels. Hopefully you find them helpful too.

### Technical Links:

- Azure App Configuration Mangement – [https://channel9.msdn.com/Shows/Azure-Friday/Getting-started-with-Azure-App-Configuration](https://channel9.msdn.com/Shows/Azure-Friday/Getting-started-with-Azure-App-Configuration)
- Blazor – Preview – [https://devblogs.microsoft.com/aspnet/blazor-now-in-official-preview/](https://devblogs.microsoft.com/aspnet/blazor-now-in-official-preview/)
- Getting started with Solr – [http://lucene.apache.org/solr/guide/7\_7/solr-tutorial.html](http://lucene.apache.org/solr/guide/7_7/solr-tutorial.html)
- Visual Studio 2019 – [https://channel9.msdn.com/Shows/Visual-Studio-Toolbox/Visual-Studio-2019](https://channel9.msdn.com/Shows/Visual-Studio-Toolbox/Visual-Studio-2019)

### Developer Life:

- What kind of leader are you? Multiplier or Diminisher – [https://www.influencive.com/kind-leader-multipliers-liz-wiseman-greg-mckeown-book-summary/](https://www.influencive.com/kind-leader-multipliers-liz-wiseman-greg-mckeown-book-summary/)
- Form habits by making the right things easy – [https://dev.to/easyaspython/form-habits-by-making-the-right-thing-easiest-p75](https://dev.to/easyaspython/form-habits-by-making-the-right-thing-easiest-p75)
- Challenges of stepping into a new project – [https://dev.to/claudiobernasconi/challenges-stepping-into-a-new-project-1b8a](https://dev.to/claudiobernasconi/challenges-stepping-into-a-new-project-1b8a)
Custom Directives in slim.js
Tags: webcomponents, slimjs, javascript, frontend
Published: 2019-05-06 08:36:56

---
title: Custom Directives in slim.js
published: true
description: Using the powerful customDirective function to create visual effects
tags: web-components, slim.js, javascript, front-end
---

I will demonstrate how to apply a visual effect (typewriter as an example) using custom directives in slim.js.

For those aren't familiar with slim.js - It is a web-component authoring library with zero dependencies, fast, lightweight (3K) that enables developers to create custom elements with the declarative approach (similar to how Angular handles templates).

Demo of the effect [here](https://codepen.io/eavichay/pen/MdWROq)

First, lets define some component with a basic template:
```javascript
Slim.tag('my-tag',
`<p effect:typewriter>This is a sample text</p>`
class extends Slim {
});
```

If you have noticed the `effect:typewriter` attribute, it is still not defined as a custom directive, and will have no effect on the page.
Attributes with namespaces a VALID html markup and they can be leveraged in order to avoid conflicts with native future attributes.

Now let's define the effect directive
```javascript
Slim.customDirective(
    (attribute) => attribute.localName === 'effect:typewriter',
    (source, target, attribute, match) => {
        // capture initial text
        const text = target.innerText;
        // parse delay from attribute or default to 50ms
        let delay = parseInt(attribute.nodeValue || '50');
        let i = 0;
        const interval = setInterval(() => {
          target.innerText = text.slice(0, i++); // set inner text
          if (i > text.length) {
            clearInterval(interval);
          }
        }, delay);
    }
);
```
In the HTML Markup we can now add
```html
<my-tag></my-tag>
```

And viola, typewriter effect anywhere we want.

For more information regarding slim.js you can see the online docs [here](http://slimjs.com)
DatoRSS - RSS Search Engine
Tags: react, discuss, javascript, showdev
Published: 2019-05-06 08:32:03

---
title: DatoRSS - RSS Search Engine
published: true
description: small application developed in ReactJS that uses the API provided by Feedi
tags: #react #discuss #javascript #showdev
---

I just implemented a small ReactJS application in that uses the API provided by my latest open source project called 'Feedi' 

www.datorss.com

<a href="https://ibb.co/YB3hcZR"><img src="https://i.ibb.co/0ycrCtD/Screenshot-2020-04-15-at-15-23-38.png" alt="Screenshot-2020-04-15-at-15-23-38" border="0"></a>



{% github davidesantangelo/datorss %}
Get Up to 10% off on All Design Services!
Published: 2019-05-06 08:27:27

Get Up to 10% off on All Design Services!

Hello! I would like to know if you are looking for design services for your business. Amazing7 Studios provides the best designing services like, logo design services, website design services, graphic design, illustration, product design and more. With its team of skilled professionals, the company can give your business its turning point, making it capable of achieving new milestones and success.

Key Features
    • The company has expert developers and designers who are well-versed in their work and are serving clients since years, helping small and large scale industries in their tremendous growth. 
    • Unlike most of the companies that provide poor quality logos at unrealistic cheap prices, our company believes in 100% authenticity. 
    • Maintain standard of services is something you may have never seen before. 

I know various questions are coming in your mind like:
What is the price of logo design services?
We carry standard designers or not? or anything else
You are free to test our trust flow on google and in between of our clients (Reviews) and then decide.

Get 10% off on All Designs Services. To know more, click here below or contact us.

Email: contact@amazing7.com
No. 800-867-3168
Website: https://www.amazing7.com/
Learning through everyday situations
Tags: dailywriting
Published: 2019-05-07 04:55:40

---
title: Learning through everyday situations
published: true
tags: daily-writing
canonical_url: https://marcusblankenship.com/learning-through-silly-situations/
---

Long-time friend, Sam, wrote me an important lesson he realized when thinking sbout how I look for coffee.

**Sam wrote:**

> _One big danger I see in the approach is to scan like this, you have to:_
> 
> _1) be a real expert for coffee and_
> 
> _2) know very exactly what you want._
> 
> _This can be good – but also very bad._
> 
> _By knowing exactly what you want, you probably look for what you are used to, what you already know, and what is like yourself._
> 
> _There might be situations where this is valuable and exactly what you want. But especially in hiring, I wonder if this strong focus on looking for what you already know limits your chances for candidates that are different than you, would have a different approach and would be a huge benefit to the project/company in ways you couldn’t imagine (we don’t know what we don’t know.)_

This is another important lesson about hiring – thank you for sharing it, Sam!!

In fact, we could dive deep into this one, but I’m going to go meta instead.

**This is another example of a realization we find as we analyze one situation, then consider how it might apply to another.**

I find it’s especially powerful when the initial situation is silly or has no consequences.  I think that lowers our defenses.

This might be why it’s often easier to come up with ideas for other people’s problems – we aren’t emotionally attached to them.

You can use this exercise with your team to discuss hiring, and you might be surprised by what you find.

### Even more meta

Hmm… would more “everyday situations” which you could use to analyze your work would be helpful?

If you liked this sort of thing, rather than direct “You should always do these five things” articles, would you let me know?

Actually, please let me know either way.  ![🙂](https://s.w.org/images/core/emoji/11.2.0/72x72/1f642.png)

Have a great week.

Take care,

Marcus

**[[SPONSOR] Ship faster because you know more… not because your team’s rushing.](https://www.gitprime.com/managers/?utm_source=marcus-blankenship-newsletter&utm_medium=email&utm_campaign=feb-march-2019)**

The post [Learning through everyday situations](https://marcusblankenship.com/learning-through-silly-situations/) appeared first on [Marcus Blankenship](https://marcusblankenship.com).
Dokunulabilen Hologram Teknolojisi
Tags: bilimveteknoloji, technology
Published: 2019-11-02 16:48:50

---
title: Dokunulabilen Hologram Teknolojisi
published: true
tags: bilim-ve-teknoloji,technology
canonical_url: 
---

{% youtube 96fpHVMVtxE %}

Hologramlara dokunabilme ve onlarla etkileşime girebilme hayali birçok defa bilim kurgu konusu olmuştur. Japonya’da bir laboratuvar bu hayali gerçek anlamda gerçekleştirdi.

_Star Trek_’teki dokunma hissi yaratmak için kuvvet alanlarını kullanan kurgusal holo-güvertenin aksine [Digital Nature Group](http://digitalnature.slis.tsukuba.ac.jp/2015/06/fairy-lights-in-femtoseconds/)’taki Japon araştırmacılar farklı bir metot olan femtosaniye lazerleri kullandılar.

Bu tip bir lazer kaynaklı plazma 3B görüntü, daha önce de havai plazma 3B grafiklerinin gösteriminde kullanılmıştı ama ilk defa insanla temasında zarar vermeyen bir mekanizma ortaya çıkarıldı.

Görüntünün dokunulabilir güvenlikte olması ise lazer patlamalarının süresinin daha düşük femtosaniyelere ve nanosaniyelere indirgenmek yerine daha yüksek çözünürlükte femtosaniyelere indirgenmesiyle başarılmakta.

Araştırma ekibinin [tanıtım videosunda](https://www.youtube.com/watch?v=96fpHVMVtxE&feature=youtu.be) voksellerden (lazer odağı havayı iyonize ettiğinde plazma tarafından emilen ışık noktaları) oluşan hologramlara güvenle dokunan bir parmak görülüyor. Hologramlarda kalp, yıldız ve hatta peri şekli bile vardı. Tüm görüntüler temelde iki boyutlu görüntülerin üç boyutlu temsilleriydi ama daha gelişmiş bir görüntülemeyle bu teknolojinin nerelere kadar gidebileceğini hayal etmek zor değil.

Bu mekanizma şu anda gerçek bir holo-güverte aracı olarak kullanımdan uzak olsa da araştırma ekibine göre dokunulabilir nesneler ve karakterlerle tamamlanınca havai holografik arayüzler için kullanılabilir.

Araştırma ekibinin femtosaniye lazer bazlı hacimsel görüntülemeleri Ağustos ayında düzenlenecek olan [Siggraph 2015](http://s2015.siggraph.org/attendees/exhibition) fuarında tanıtılacak.

_Sizin de yazımıza eklemek istediğiniz bir şeyler varsa yorumlarınızı paylaşabilirsiniz._

**Kaynak:** [Mashable](http://mashable.com/2015/07/02/holograms-you-can-touch/?utm_campaign=Mash-Prod-RSS-Feedburner-Tech-Partial&utm_cid=Mash-Prod-RSS-Feedburner-Tech-Partial&utm_medium=feed&utm_source=rss)
One Design Pattern Per Day (Day 1); Also first post
Tags: practice, designpatterns
Published: 2019-05-06 06:15:52

---
title: One Design Pattern Per Day (Day 1); Also first post
published: true
description: 
tags: #practice #designpatterns 
---
## For the why?
Well design patterns are not really a strong point of mine and naturally to get better we have to do. It will not be perfect so your criticism is welcome.

## Problem for the day?
In recent times I got the chance to watch another developer work. The developer was writing an application that talks to a particular API. The API had recently undergone revisions and upper-management wanted the application to be able to talk to both versions depending on the deployment configuration.

## How did the developer solve the problem?
The developer used the `if` control structure under each route in the application to execute the appropriate code for three versions of the API.

## Perceived issues with approach?
1. Very long and bloated functions
2. Hard to understand code
3. Too many levels of abstraction under each route

## My thoughts?
From my point of view, the problem involves selecting an API version and from that creating the appropriate API instance. Seems like it could fall under class instantiation and object creation.

## How I may have done it (the instantiation at least)?
1. Create an interface that defines the API
2. Have any version implement it
3. Create a factory to create the appropriate instance given a version

So erm, the code would look like the following (there may be errors, don't care):

### The interface:
```java
  public interface API
  {
    public void doSomething();
    public void doOneMoreThing();
  }
```

### The API instances:
```java
  public class ApiV1 implements API
  {
    public void doSomething()
    {
      // doing something
    }

    public void doOneMoreThing()
    {
      // doing one more thing
    }
  }

  public class ApiV2 implements API
  {
    public void doSomething()
    {
      // doing something but slightly differently
    }

    public void doOneMoreThing()
    {
      // doing one more thing but slightly differently
    }
  }
```

### The factory:
```java
  public class APIFactory
  {
    private Map<String, API> apiMap =  Map.ofEntries(entry("v1", ApiV1),
                                                     entry("v2", ApiV2));

    public API getApiIstance (string version)
    {
      if (!this.apiMap.containsKey(version)) {
        throw new IllegalArgumentException("Passed API version does not exist.");
      }
      return this.apiMap.get(version)();
    }
  }
```

### Usage:
```java
  // assuming there is a config somewhere
  API apiv1 = APIFactory().getApiInstance(config.apiVersion);
```

### Conclusion:
So erm, yeah. Not perfect but perhaps a step in the right direction.
While Loop vs Do While Loop
Tags: csharp, tutorial, beginners
Published: 2019-06-18 15:17:13

---
title: While Loop vs Do While Loop
series: C# for Beginners
published: true
tags: csharp,tutorial,beginners
cover_image: https://wellsb.com/csharp/wp-content/uploads/sites/2/2019/03/beginners-while-dowhile-featured-min.png
---

This tutorial will explain the difference between a While loop and a Do While loop in C#. You will learn when to use each type of iterative statement by working through practical examples. In previous tutorials, you have learned about for loops and foreach loops. These loops are useful when you need to make a known number of iterations, either based on a counter or based on the number of elements...

[Source](https://wellsb.com/csharp/beginners/while-loop-vs-do-while-loop/)