teleren/devto huggingface dataset:
Elasticlunr.js で日本語と英語が混在した文書の検索に対応する
Tags: elastirlunr, javascript, gatsby
Published: 2019-04-27 14:31:19

---
title: Elasticlunr.js で日本語と英語が混在した文書の検索に対応する
published: true
description: 日本語と英語が混在した文書を Elasticlunr.js で検索できるようにするためには weixsong/lunr-languages にパッチをあてる必要がありましたという話です
tags: elastirlunr, JavaScript, GatsbyJS
---

## tl; dr

Elasticlunr.jsで英語以外の言語に対応するためには[`weixsong/lunr-languages`](https://github.com/weixsong/lunr-languages/blob/master/lunr.jp.js)を使う必要がありますが、このライブラリは2019/04/27現在、日本語+他の言語の組み合わせ（複数言語からなる文書の検索）に対応できていません。正確には、サポートしていると書いてありますがこの組み合わせでは動きません。

`weixsong/lunr-languages` にパッチ的な[PR](https://github.com/weixsong/lunr-languages/pull/1)を出しているので、同じ現象で困っている方がいらっしゃいましたらご確認ください。

## 背景

高速な全文検索を行うための軽量なJavaScriptライブラリとして [Elasticlunr.js](http://elasticlunr.com/) があります。こちらは標準では英語のみに対応しているため、日本語に対応するためには一手間必要です。これは軽量さを売りにしているライブラリとして正しいやり方でしょうし、やり方も公式ドキュメントやブログ記事に丁寧に書かれています。

> デフォルトでは、英語での検索しか出来ない。
> 多言語対応プラグインを組み込めば、日本語で検索できる様になる。
> lunrの多言語対応プラグインをElasticlunr向けにフォークした物を使用する。
> [weixsong/lunr-languages](https://github.com/weixsong/lunr-languages/blob/master/lunr.jp.js)
> ※ lunr-languagesリポジトリは２つあるので注意。
> `MihaiValentin/lunr-languages`はlunr用であり、Elasticlunrで使用するとエラーが発生する。
> `weixsong/lunr-languages`を使用する必要がある。
> 
> &mdash; [【JSの全文検索エンジン】elasticlunr.jsを触ってみた～インストールからパイプライン、日本語対応など～ ](https://qiita.com/well/items/410aac718e531c6aee17#%E6%97%A5%E6%9C%AC%E8%AA%9E%E5%AF%BE%E5%BF%9C%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6) by [@well](https://qiita.com/well)


ですが、日本語に加えて英語など他国の言語にも対応する場合（これは、例えば検索クエリを `東京スカパラダイスオーケストラ MONSTER ROCK` などとして、日本語と英語が混在する文書に対して検索を行う場合のことを指します）については、`weixsong/lunr-languages`の実装が不十分でありが対応できていませんでした。


> elasticlunrというJSの全文検索ライブラリを今触ってるんだけど、多言語対応辛そう<br>lunr(elasticlunrのベースとなったライブラリ）の多言語対応プラグイン使ってねとなっているが、elasticlunrとlunrのIFが噛み合ってなくて言語によっては動かないという
> &mdash; うぇる ([@well_itskill](https://twitter.com/well_itskill)) [2019年1月22日](https://twitter.com/well_itskill/status/1087568216522510339?ref_src=twsrc%5Etfw)

例えば、`weixsong/lunr-languages` のサンプルコードではロシア語と英語の両方に対応する例が挙げられていますが、このどちらかを日本語に変えると動かなくってしまいます。

これはfork元の`MihaiValentin/lunr-languages`では実装されている、[日本語の文書のトークンを正規化する機能(trimmerと呼ばれます)](https://github.com/MihaiValentin/lunr-languages/blob/1d636b70adea2cfdbae659b520b1a34ea34439a5/lunr.ja.js#L169)が`weixsong/lunr-languages`では未実装であるためです。よくよく見てみると`weixsong/lunr-languages` は5年前に更新が止まっているようなリポジトリであり、このようなことが起こっても何らおかしくはないのですが。

余談ですが、私が Elasticlunr.js を使うことになったのは [Gatsby.js](https://www.gatsbyjs.org/docs/adding-search/#use-an-open-source-search-engine) が検索に対応するためのプラグインとして[gatsby-contrib/gatsby-plugin-elasticlunr-search](https://github.com/gatsby-contrib/gatsby-plugin-elasticlunr-search)を提供しているためです。こちらをforkして内部で `weixsong/lunr-languages` を噛ませることで複数言語に対応させています。私の周りでGatsby.js自体を使っている人はよく見かけるので、同じ悩みを抱えている人がいたりいなかったりするかもしれないと思ってこの記事を書きました。

> ![https://pbs.twimg.com/media/D2HyrDbVAAAYBM1.jpg](https://pbs.twimg.com/media/D2HyrDbVAAAYBM1.jpg)

> &mdash; Mark Dalgleish ([@markdalgleish](https://twitter.com/markdalgleish)) [2019年3月20日](https://twitter.com/markdalgleish/status/1108433814647300097?ref_src=twsrc%5Etfw)
A new single command for installing Intercity 
Tags: development, intercity, installer, dokku
Published: 2019-04-27 14:25:58

---
title: A new single command for installing Intercity 
published: true
tags: Development,Intercity,Installer,Dokku
canonical_url: https://www.michielsikkes.com/updated-installing-intercity-web-ui-for-dokkku-to-a-single-command/
---

It just got extremely easy to install Intercity - the web UI for managing Docker applications, plugins, and application deployments. After the excellent initiative and support by [Ariejan de Vroom](https://github.com/ariejan) and [Jeroen van Baarsen](https://github.com/jvanbaarsen) from last November 2018, [the big PR](https://github.com/intercity/intercity-next/pull/265) is finally, merged in! 🥳

The new way of installing and updating Intercity is as easy as running the following commands and following the setup procedure:

<!--kg-card-begin: code-->
```
$ wget https://raw.githubusercontent.com/intercity/intercity-next/master/scripts/bootstrap.sh
$ sudo bash bootstrap.sh
```
<!--kg-card-end: code-->

Running the `bootstrap.sh` script will make sure Docker and Docker Compose are installed on your server. It will also ask you some setup questions and the configuration settings file. Finally, it will download and start the required servies to run Intercity, like an nginx-proxy with LetsEncrypt, PostgreSQL, and Redis.

In theory, running `bootstrap.sh` will also allow you to upgrade to the latest version of Intercity as we'll be publishing new releases of Intercity to the officially supported image on Docker Hub: [https://hub.docker.com/r/intercity/intercity\_next](https://hub.docker.com/r/intercity/intercity_next). Every time the image gets updated, you can run `bootstrap.sh` to have Docker Compose pull it down and restart your services.

Upgrading from the old way of installing Intercity is fairly easy, but you do need to make some file migrations of the PostgreSQL database files. An automated upgrade path or documentation for this will be ready as soon as I've tested this with my personal already running Intercity deployments.
CosmosDb in The Real World : Azure Global Bootcamp 2019 (Glasgow)
Tags: net, azure, data, cosmosdb
Published: 2019-04-27 14:04:35

---
title: CosmosDb in The Real World : Azure Global Bootcamp 2019 (Glasgow)
published: true
tags: .net, Azure,data, Cosmosdb
series: cosmosdb
canonical_url: https://craignicol.wordpress.com/2019/04/27/cosmosdb-in-the-real-world-azure-global-bootcamp-2019-glasgow/
---

Thank you to those who came to my talk today about CosmosDb. I hope you found it useful.

If you’d like to review the slides, you’ll find the presentation online here :

[![](https://craignicol.files.wordpress.com/2019/04/image.png?w=748)](https://gitpitch.com/craignicol/cosmosdb-presentation/agb-2019#/%EF%BB%BF)<figcaption>CosmosDb In The Real World – GitPitch</figcaption>

If you have any further questions please ask below and I’ll do my best to answer.
Pytabby: a tabbed menu system for console-based Python programs
Tags: python, github, pypi
Published: 2019-04-27 13:17:20

---
title: Pytabby: a tabbed menu system for console-based Python programs
published: true
description: I made a thing. I'm sharing the thing.
tags: python, github, pypi
cover_image: https://thepracticaldev.s3.amazonaws.com/i/pwiikoqsag2905hwhqr1.jpg
---
I made a thing. I’m sharing the thing.

[pytabby on GitHub](https://github.com/Prooffreader/pytabby)

[pytabby on PyPI](https://pypi.org/project/pytabby/)

[pytabby on ReadTheDocs](https://pytabby.readthedocs.io/en/latest/)

For 99% of its life the repo had a boring name (tabbedconsolemenus), but the day I did the initial release, I threw caution to the wind and named it pytabby.

Basically, it’s a utility that allows you to define a console-based menu system to control your program flow.

I, being wierd, like console-based programs, as opposed to command-line with args, or GUIs, or whatever. (On Windows, which I admit I use less and less in favor of Linux, mostly thanks to my new System76 Oryx Pro laptop, it’s easy to create a context menu to launch all kinds of Python scripts using the ugly but serviceable ContextEdit utility, and it’s nice to have everything under one umbrella, so I can select a folder and recursively remove empty folders, find duplicate files, resize image files, etc., all with one wrapper.).

Now on Github and PyPI (the Python package organizer) there are several tiers of contributors: commercial organizations like Google that contribute huge open-source projects like Tensorflow, volunteer organizations that contribute huge open-source projects like scikit-learn, godlike individuals like Kenneth Reitz who do most of the heavy lifting for ubiquitous projects like request and Pipenv… and then a few other tiers. I’m definitely a few places further down that list.

I think my journey here is typical of many developers. I had a thing I used (one single .py script I used to make a menu system and control other python programs), and I thought, (a) this could  be more robust, (b) perhaps others could user this, and (c) it would be good to get some real experience with many of the elements of open-source toolset, including Pipenv (which I ended up not using, for a reason that turned out not apply, but by then I was locked into virtualenvwrapper, for the moment anyway), continuous integration with Travis, Appveyor, tox, pytest (which I’d used before but never for a self-contained project like this), linting (which I’d used before, but not assiduously), coverage, codacy code quality and security checking, ReStructured Text and Sphinx and readthedocs. And, of course, setup.py, and putting my source code in a src/ folder so it’s out of your path and has to be locally, editably pip installed. I have a feeling I have a future blog post in me describing this ecosystem. Oh, and badges. (“Badges? We don’t need no stinkin’ badges.” But they are nice.)

So it was a great learning journey. I think my final product is okay. I doubt it will be very popular, but it’s the journey that counts, right?

Oh, and given the name, how could I not make a picture to accompany it?
Hello World
Tags: python, code, joke
Published: 2019-04-27 12:40:33

---
title: Hello World
published: true
description: code
tags: python, code, joke
---

print ("Hello Community!")
greet = ("I'm happy to meet you all! ")
print (greet * 1337)
my_heart = input ("Do you like my greet? y/n ")

if my_heart == ("y"):
  print ("Thank You! :D")
elif my_heart == ("n"):
  print ("-,-") 
else: 
  exit
Holy shit NW.js is so easy
Tags: nwjs, xpda, desktop, tutorial
Published: 2019-04-27 12:38:03

Okay, so like.... you ready for this. Don't blink


1\. Make an HTML5 file, it can even just be an empty file, called `index.html`
2\. Make a `package.json`, you only need these 3 lines:
```js
{
  "name": "my-first-desktop-app",
  "main": "index.html",
  "scripts": { "start": "nw" }
}
```
3\. `npm install --save-dev --save-exact nw@sdk && npm start`

That's it. You just made a desktop app. :tada: :confetti_ball: :sparkles:

Seriously, that was it. 2 files, 3 lines of code, and like 1-ish? maybe that's two commands? I don't know, it's freaking easy though.

Time yourself, see if you can do it in under 60 seconds. Post your times below. Always speedrun your hello worlds.

* * *

Oh, and you can also just do any Node stuff from the DOM directly. And the `nw` api is pretty easy-peasy.

```html
<!DOCTYPE html>
<html>
  <head>
    <title>My first desktop app</title>
  </head>
  <body>
    <script>
      const fs = require('fs');
      console.log(fs.readdirSync('.'));
      nw.Window.get().showDevTools();
    </script>
  </body>
</html>
```

* * *

The Node and Chromium version it comes with is always the latest. Gets updated within 24 hours of a new release of either. So, you probably don't need Babel.

* * *

*"But the filesize is gigantic?"*

I gotchu homie

* [Reducing App Distribution Size in NW.js](https://dev.to/thejaredwilcurt/reducing-app-distribution-size-in-nwjs-3d5f)

* * *

*Any other downsides I should know about?*

Why you gotta be so negative, can't you just be happy for me

* [XPDA: Cross-Platform Desktop Apps](https://xpda.net) - Pros/Cons of XPDA tools

* * *

For a more in-depth and beginner friendly tutorial on NW.js:

* https://gitlab.com/TheJaredWilcurt/battery-app-workshop
R Language : Connect to Redis Database
Tags: rdatascience, datascience, rlanguage, nosql
Published: 2019-04-27 12:02:29

---
title: R Language : Connect to Redis Database
published: true
description: Learn how to Connect to Redis Database in R language. 
tags: #rdatascience #datascience #rlanguage #nosql
---

Let's learn how to connect Redis database with R. There are some databases like *Redis* that are often used for specific set of data for example say gaming servers, ranking, temperature monitor etc. R has few open source and few premium packages that allows you to connect with the Redis database. 

So here I am taking a look at the Redux package in R that allows you to connect with the redis database. There are few other Redis specific packages too that helps with connection. 

You can check the video instruction here. [R Language : Connect to Redis Database](https://www.youtube.com/watch?v=RqPiiXGxOAo).

**Step 1. Install the Drivers**

There are multiple drivers for the connection with the redit database. However let's stick to the one which is actively developed. Here [redux driver](https://cran.r-project.org/web/packages/redux/) is useful for connecting to redis database. 

You can install the package by following code in the R shell. 

    install.packages("redux")

After that you can get installed redux library. 

**Step 2. Create Connection** 

Now that you have installed the library you can create the hireredis object establish the connection with the server. 

    r <- redux::hiredis()

Here , you will notice that by default it will connect to the redis on (127.0.0.1) and port 6379. 

You can execute `redis$PING()`

Now from here you can use the redis_api to connect with multiple redis commands. 



**Step 3. Explore the specific queries**

Now that you have learned how to connect redis with the R and managed to execute some basic commands. From here you have to explore further for the additional queries. 

You may want to read more about the queries from the Rdocumentation for [Redux](https://github.com/richfitz/redux). 


**Additional references:**

1. You can also learn [how to Connect R language to MySQL database](https://dev.to/maheshkay/r-language--connect-to-mysql-database-51ji).
2. Learn how to [connect to SQLite from R Language](https://dev.to/maheshkay/r-language--connect-to-sqlite-database-1adf). 
3. Learn how to [connect to CouchDB from R Language](https://dev.to/maheshkay/r-language--connect-to-couchdb-database--3nag)
4. Learn how to [connect R language to MongoDB database](https://dev.to/maheshkay/r-language--connect-to-mongodb-database-3841).
Using Git on iOS (the free way)
Tags: ios, git, linux
Published: 2019-04-27 08:29:35

---
title: Using Git on iOS (the free way)
published: true
description: some apps to use git on iOS
tags: #iOS #git #linux
---

# Using Git on iOS

*I mention two apps- I have no affiliation...just sharing something*

I recently discovered fairly new iOS app called [iShell](https://itunes.apple.com/ca/app/ishell/id1455946930?mt=8). In short it's Alpine Linux. I was excited to see this and I couldn't help myself from tinkering with it. It comes with a package manager (apk). I was able to install bash (google it) and change how the prompt looks and etc. Not *everything* that you would expect is in there and some things probably just don’t work (because apps have limited access to  device hardware etc).

I was also curious about getting git to work. Short answer: yes, it works. The printed output for some things like `git log` is a bit wonky but it does work. I haven't tried yet but it'd probably be better on iPad with the bigger screen. The version that installed with the package manager is 2.20.1.

(Edit: manually adding the less pager made the output from git that uses a pager to be normal)

### Okay but is it really useable for git??

Git works, but what about editing files? iShell comes with Vim and I also installed nano and set that as the editor for git. But what about using other iOS apps as an editor?

Yesterday I discovered that iShell shows up in the iOS Files app as a source. Everything on the system is accessible and the home folder `~/` is `/root` when you're browsing the structure. Now the interesting part is that, as you may know, those files are accessible by apps that utilize the iOS Files document picker. 

So, for example, with an editor app like [Kodex](https://itunes.apple.com/ca/app/kodex/id1038574481?mt=8) you can access files stored in iShell. Make edits. Then you do all your normal git commands in iShell. 

On iPad, iShell supports split screen so you could have an editor on one half and iShell on the other, or slide over. You know: touch touch tap tap git. 

I have not tested this thoroughly but I believe everything should work correctly. Both iShell and Kodex are free and so this is a free way to use git and remote repos on iOS. 

Edit: heres a screenshot on ipad
![git on ios](https://thepracticaldev.s3.amazonaws.com/i/ejxzog4s81or0ocz67sd.png)
Using React Hooks to simplify Apollo Client
Tags: react, apollo, hooks
Published: 2019-04-27 10:55:47

---
title: Using React Hooks to simplify Apollo Client
published: true
description: 
tags: react,apollo,hooks
---

I've been enjoying using apollo over the past few months, but one of my biggest pain points was dealing with graphql SDL scattered about the application, tiny queries just for local state, and writing a fair amount of boilerplate to get anything done. 

For example, if you want to utilize bits and pieces of your local state for your components, you need to write something like this:

```jsx
const GET_TOKEN = gql`
  {
    token @client
  }
`;

export default () => {
  const { data } = useQuery(GET_TOKEN);
  return <p>{data.token}</p>
}
```

That's a lot of boilerplate for what is just reading state. 

What I've been using more recently, is moving *all* of the boilerplate into a hook. 

```js
// useToken.js
const GET_TOKEN = gql`
  {
    token @client
  }
`;
export default () => {
  const { data } = useQuery(GET_TOKEN);
  return data.token;
}
```

Now, when I want to read the token from the cache, all I have to do is call the hook.

```jsx
// Token.jsx
export default () => {
  const token = useToken();
  return <p>{token}</p>
}
```

This isn't limited to just queries, and to certainly isn't limited to a single query/mutation per hook. Consider wanting to manage to state of a drawer in your app. You need to know if it's open or closed, and you want to be able to toggle that state.


```js
// useDrawer.js
export const GET_DRAWER_OPEN = gql`
  {
    drawerOpen @client
  }
`;

export const TOGGLE_DRAWER_OPEN = gql`
  mutation ToggleDrawerOpen {
    toggleDrawerOpen @client
  }
`;

export default () => {
  const { data } = useQuery(GET_DRAWER_OPEN);

  return {
    drawerOpen: data.drawerOpen,
    toggleDrawerOpen: useMutation(TOGGLE_DRAWER_OPEN)
  }
}

```

You can also use these hooks in other hooks! Imagine a scenario where you need to get a user based on the current token. We already have a hook for the token, now all we need is a hook for the user.

```jsx
// useCurrentUser.js
const GET_CURRENT_USER = gql`
  query GetCurrentUser($token: String) {
    currentUser(token: $token) {
      id
      username
      avatar
      email
    }
  }
`;

export default () => {
  const token = useToken();
  return useQuery(GET_CURRENT_USER, {
    variables: {
      token
    }
  });
}
```

Now, whenever you want the current user, you just use the `useCurrentUser` hook and you've got everything you need!

Using this method, I've consolidated all of the graphql SDL and logic into a hook that can be called within any functional component. In addition, the graphql SDL can be exported from the hook for use outside of your components.





I'm using [apollo-react-hooks](https://github.com/trojanowski/react-apollo-hooks) for the `useQuery` and `useMutation` hooks.
Music & Coding: let's take a survey
Tags: discuss, productivity, beginners, music
Published: 2019-04-27 10:35:02

---
title: Music & Coding: let's take a survey
published: true
description: What is the preferred music listened to by programmers when they code?
tags: discuss, productivity, beginners, music
cover_image: https://thepracticaldev.s3.amazonaws.com/i/75vhj2fii1sf6evssvnq.jpg
---

Saturday morning brings simple questions, but not simple answers.
What kind of music do you listen to when coding?

Personally, i choose a music without singing, which honestly distracts me quite a lot. What about you, DEV community?

![Your favourite music genre when coding](https://media.giphy.com/media/AwSUwrvQLqMdW/giphy.gif)
So **let's take a survey**: comment with your preferred genre or "love" someother's one: that would count as a vote.

*Note: silence is also an answer.*

---

*This article was written while listening to* [La Casa Elettrica #01](https://soundcloud.com/lucagrandicelli/sets/la-casa-elettrica-01).{% soundcloud https://soundcloud.com/lucagrandicelli/sets/la-casa-elettrica-01 %}

*Cover image by* [Artem RHADS ChebokhaPRO](https://www.artstation.com/rhads)
ソーシャルレンディングとは
Tags: ソーシャルレンディング
Published: 2019-04-27 10:29:06

---
title: ソーシャルレンディングとは
published: true
description: ソーシャルレンディングについて
tags: ソーシャルレンディング
---

ソーシャルレンディングはインターネットを利用して特定の事業などに対してお金を出したり、あるいは自分が出資を募るというような形ができる比較的簡単に利用することが可能な金融サービスになっています。ダイレクトなような形に見えるのですが基本的にはソーシャルレンディング会社というところを通して行うということになりますので直接金融であるのかと言うとそうではないということが多いです。金融ですから、基本的にはお金を出す側に様々な選択をする権利というものがあるわけですから必ずこの案件に投資しなければならないというようなことになるわけではないです。良い事業があれば積極的に投資をして利益を出して行こうとするという姿勢自体は問題はないです。ただしその事業に関して細い様々な計画書というのが読めるというわけではありませんし、一応はソーシャルレンディング会社が審査をして通ったものが案件として出ているという形にはなりますが、投資というのは大原則として自己責任ではあるわけですから、損をするということも当然存在しているわけです。場合によっては全てを失うということもあるでしょう。ソーシャルレンディングに限ったリスクというわけではないですが、どうしても損をするということは覚悟しておく必要性がある部分になります。この手のリスクを考える時にそろそろどうしてお金を出資してもらいたいと考えている人達は比較的高い利率を払ってソーシャルレンディングのような形でお金を募っているのかという理由から考えるとリスクの高さがそれなりに理解できるようになります。超低金利のこの時代に銀行からお金を借りるというような形を取らずにソーシャルレンディングという形でお金を募っているということは銀行からお金が借りられないから利用しているということになります。だからといってよろしくない案件しかないのかと言うとそうではなく、銀行としては受けることができないような案件であるとしても決して成功率は低くないというような事業計画というのはあったりします。そういうものを狙っていくことによって、ソーシャルレンディングというのは投資として成功する可能性が出てくるわけです。ですが、宝石のような案件もあれば石のような価値のない案件もあったりするわけでその辺りを見分けることができないというのであればどうしてもリスクが高くなることでしょう。投資のリスクはソーシャルレンディングに限ることなく、損をする可能性であるわけです。
[ソーシャルレンディングとは](https://social-lending.online/qanda/kiken-kaisya-minukikata/)何かについて、各投資家が真剣に勉強する必要があります。
Here we go!
Tags: microblog
Published: 2019-04-27 10:25:08

---
title: Here we go!
published: true
description: My first ever published blog post!
tags: micro-blog
---

# I have conquered it!

"Conquered what?", you'll be asking. I've attempted to start micro blogging over 2 years. For some reason, I still haven't been able to press publish on any of the countless drafts!

I struggled to decide on what the first post should be about. Does it have to be an explainer of the blog, or just go straight into it; what if it doesn't read well, what if it doesn't sound cohesive? All valid questions.

As you read this, whether it reads well or not, whether it's cohesive or not. It doesn't matter, because, I have finally been able to press PUBLISH! (Or submit in this case)

![Celebration](https://media.giphy.com/media/t3DDmrHb2jSQE/giphy.gif)
Video courses to improve your web development skills
Tags: laravel, vue, javascript, react
Published: 2019-04-27 09:58:41

---
title: Video courses to improve your web development skills
published: true
description: 
tags: Laravel, Vue.js, JavaScript, React.js
---

Hey there I've created a new website where any one can  learn web development for free. I'd love to hear your thoughts & feedback on it.

Courses include Laravel, Vue.js, JavaScript, React.js, Angular.js, Node.js, Python and PHP. Let me know what you think? 👍

https://codevideos.co/
Hi I'm Jeffrey, Ask Me Anything
Tags: angular, frontend, ama, design
Published: 2019-04-27 09:26:35

---
title: Hi I'm Jeffrey, Ask Me Anything
published: true
description: Ask me Anything
tags: angular, frontend, ama, design
---

My name is Jeffrey and I’m an frontend developer working at a digital signature solution.

My daily job is frontend related; working in Angular, React and some vanilla Javascript. Backend I'm working in PHP and .NET C# these days.

Next to my daily job I work on an open source project called [xLayers](https://xlayers.app). With this project we are trying to bridge the gap between designers and developer. This project is developed with Angular and we are looking for contributions from the community. 

My knowledge is mainly around frontend(mostly angular related) and cloud related things. You can ask my anything around these topics, checkout [my personal blog](https://jefiozie.github.io) or just say 👋🏻 "Hi"