teleren/devto huggingface dataset:
I’m a Liberal Arts Grad, and I am a Software Engineer at Microsoft, ask me anything!
Tags: ama
Published: 2017-11-29 18:51:15

---
title: I’m a Liberal Arts Grad, and I am a Software Engineer at Microsoft, ask me anything!
published: true
description: I made my own major in Human Computer Interaction and I'm now a Software Engineer at Microsoft.
tags: ama 
cover_image: https://thepracticaldev.s3.amazonaws.com/i/zfdf8ayknbxek76s4zpn.jpg
---

I’m a Software Engineer at Microsoft. I work on an incubation team that works to build experiences using software and hardware prototypes to define the next generation of Windows Devices and experiences. Previously at Microsoft, I was in a rotational program for college new hires where I got to try out two other roles. First, I was a Service Engineer working on two factor authentication with a focus on accessibility and usability. Second, I was a User Researcher for XBOX User Research on the Platform team. I went to a liberal arts college called Goucher College where I made my own major in Human Computer Interaction.
 
I believe that having a liberal arts degree has helped me in the technology sector, and hope that soon companies realize the power of a liberal arts degree.
You never know how someone will use your app
Tags: opensource
Published: 2017-11-29 18:15:14

---
title: You never know how someone will use your app
published: true
description: The thing about writing an app is that you don't know how it's going to be used. Your happy paths are not necessarily someone else's happy paths.
tags: open-source
---

I recently ported my WeatherTab extension, which I originally wrote for Chrome, to Firefox. Almost immediately, I got a three-star review and an issue on the project’s GitHub, both complaining of the same thing: it doesn’t work when you have geolocation turned off.


Of course a weather app isn’t going to work if it can’t determine where you are. But there are other ways of determining location: two that come to mind are 1) by IP, and 2) manually entering the city, state/province, country, zip code, etc. (Yahoo’s geodata API is pretty good with text searches, too.) So yeah, now that I think about it, it’s perfectly reasonable to expect a weather app to not require geolocation.

----

The browser Vivaldi has this feature that I really like: it can change the window color based on the main color of the website. It uses the theme-color meta tag, same as Chrome for Android. (If there is no meta tag, then it either pulls a color from the favicon or from the website itself.)

Since I first learned about this little feature, I included it in my WordPress theme Cover and its rewrite, Cover2. In the themes’ options, you can pick the color of the site header; this same color is used in the meta tag. Due to the nature of how the color picker works, I’m outputting the color in HSL, like this:

```
<meta name="theme-color" content="hsl(<?php echo $hue; ?>, 75%, 50%)">
```

Since Firefox Quantum entered beta, I’ve been using it as my default browser. (I’ve been a long-time Chrome user, having jumped ship from Firefox when it started to get bloated. Now that Chrome itself is on the bloated side, I’ve returned once again.) I discovered this extension, called VivaldiFox, which replicates the Vivaldi’s theme-color functionality.

At least, it’s supposed to. It does, for the most part, but while VivaldiFox works with RGB and hexidecimal colors, apparently I’m the first person to use HSL, because I discovered that it doesn’t like that.

But both these examples, having happened in just the past week or so, can serve as good reminders. We know ourselves; we know the paths we’d take with our own apps. But we don’t know others, and we don’t know how someone else will use what we’ve written. But this is also why I love open source: if there is communication, it can foster collaboration and improvement.

----

_This was originally published on [eichefam.net](https://eichefam.net/2017/11/29/you-never-know-how-someone-will-use-your-app/)._
Неймспейсы и организация сервисов бизнес-логики в Symfony
Tags: php, webdev, symfony, service
Published: 2018-02-05 14:25:45

---
title: "Неймспейсы и организация сервисов бизнес-логики в Symfony"
published: true
tags:  php, webdev, symfony, service
canonical_url: http://phpprofi.ru/blogs/post/83
---

Я хочу поговорить о пространствах имен для служб в Symfony, специфичное для Symfony3.

![](http://phpprofi.ru//resources/img/blogs/1df7465c-9180-4302-8df7-23fb93852854.jpeg)

Это захватывающие времена, Symfony 4 уже на подходе — выходит 30-го ноября — так что в этот пост может стать неактуальным в ближайшее время! Тем не менее, концепт всё тот же, так что давайте взглянем на него!

----
Читать далее: http://phpprofi.ru/blogs/post/83

----
En: https://medium.com/@joeymasip/namespaces-and-organizing-business-logic-services-in-symfony-d80452adc4f7
IoT and the mesh!
Published: 2017-11-29 14:25:22

---
title: IoT and the mesh!
published: true
description: 
tags: 
---

I find it very surprising that a lot of technology professionals don't know about IoT mesh. A while back sitting in a board room of executives, I was talking to them about how they should implement IoT networks.

**What are IoT mesh networks?** 

When the word "mesh" came out, it was new to everyone! 

Given the nature of how complex, unshaped IoT, not-so-interoperable IoT is for now - I thought it would be worth out to highlight the importance of IoT mesh networks and  how they communicate. 

First of all, Industrial IoT is a lot more about hardware optimization. Hence, adding Gateway modules to each and every location to collect data from sensor nodes just isn't feasible. Further, the solution has to last with minimal maintenance as well. This is where two devices that can talk without needing a central authority can help us.

Without a mesh network, you would always have to have multiple IoT gateways. With mesh networks, you can create an array of 800+ sensors that can directly communicate with each other, pass data to each other and smartly route it to the IoT gateway located at any place within the mesh network. 
 
**But, how do they route it? How do they move data through the IoT sensor network?** 

Let's consider the case of BLE mesh for now.

Well, they have their own methods of routing data. Some popular ways to route data through an IoT sensor array are: 
- Broadcast it to every node, let them broadcast it again, and so on
- Route it smartly, keep a record of whether you had this data packet. If not then re-broadcast
- Route it smartly, but with power optimization. Here your IoT nodes will catch data broadcast it and will go to sleep 
- Probabilistic routing throughout network, will rely on hit and miss within the network
- Deterministic routing based upon the size of sub mesh within these mesh networks

The above list is just the surface of what can be done with mesh networks and how to route data through it. Here's a much more detailed implementation of [IoT mesh network routing algorithms](https://www.simform.com/iot-ble-mesh-networks-design-algorithms). 

Although, this is very concise, but, I will be posting more in my future series on BLE mesh networks soon. Feel free to reach out to me if you have any questions.
Be careful with cache
Tags: softwaredevelopment
Published: 2019-10-02 07:55:26

---
title: Be careful with cache
published: true
tags: software development
canonical_url: 
---

There’s a well known saying that goes like this: There are only two hard things in Computer Science: cache invalidation and naming things\*. This is a post about the first one.

Today I experienced a cache invalidation issue where I was presented with cached instead of fresh data which was different. This prevented me from fixing an issue which only my colleague discovered and for a minute we were confused with what was happening.

This just remembered me to be careful next time when I’m thinking about caching things. It’s extremely important that you know when to invalidate cache. If you don’t determine that moment correctly you are about to put a nasty bug in your product and frustrate your users.

\* [https://martinfowler.com/bliki/TwoHardThings.html](https://martinfowler.com/bliki/TwoHardThings.html)
sortpom-maven-plugin vs tidy-maven-plugin
Tags: java, maven, discuss
Published: 2017-11-29 13:11:59

---
title: sortpom-maven-plugin vs tidy-maven-plugin

published: true

description: 

tags: java,maven, discuss
---

Hi folks, 

i have been asking me what the pro and cons from that two maven plugins are. 

Can anybody help me.

P.S.:
I asked this question on stackoverflow but some gurus(Kayaman, Makoto, luk2302, chrylis, Jim Garrison) from there blocks it. I'm not so strict and ask no questions anymore on stackoverflow where everything is forbidden if you dont have some points, so blame on you gurus.
Why it is Imperative to Opt Sketch To HTML Conversion
Published: 2017-11-29 12:59:17

---
title: "Why it is Imperative to Opt Sketch To HTML Conversion"
published: true
---

It is predominant to make your website appealing enough with all the necessary features into it. This is the only way you can lead your niche and can sustain in this competitive world. Sketch to HTML conversion is an effective way to boost your business and make your website stand ahead of the crowd. 

The beautiful HTML markups created from this conversion process helps enhance the overall appearance of the design. There is so much that Sketch offers with immense features including-

**Advanced text-** text rendering to allow designers text with accuracy.

**Built-in grids-** customizable grid system which works in sync with all the devices.

**Vectors-** scalability that saves your time to make any amendment plus exceptional zoom feature to update images with precision.

**iOS mirroring-** preview in no time how your design will look on iOS platform embedded devices.

Let’s check the below advantages that you can get from an effective Sketch to HTML process-

**◘ Fast upload**
For an effective conversion process, minimum files are used and it makes it easy for the complex designs to load faster in case of any change or preview in the browser.

**◘ Code packs**
While performing a rigid conversion, few layers are translated into images that results into low image files as compared to pixel to pixel format. There should not be any duplicate values when you are working with Font files. 

**◘ Widgets**
Widgets are an important aspect to add interactivity into your design, like adding a chat option, selling products, placing map into a website. The best part is that they are easy to use. 

**◘ Hover effects**
With pretty hover effects, you can make your website slicker. Few of them are Blur, Grayscale, Fade In, Fade Out and many more.


Sketch is a static format like Photoshop that needs to be turned into fully functional-design. This is the reason businesses are opting for [Sketch to HTML](http://www.sparxitsolutions.com/sketch-to-html.shtml) process to get your website into an appealing design which is compatible with all the major browsers. The resultant website is capable of delivering the desired goals in the specified time.

tags: Sketch to HTML, HTML Conversion
Speed up Jenkins with npm build
Tags: jenkins, speedup, ci
Published: 2017-11-29 11:24:37

---
title: Speed up Jenkins with npm build
published: true
description: 
tags: jenkins, speedup, ci
---


Our team have many projects delivered by Jenkins. Every component need to be assembled by webpack which write in React.js or Vue.js.

Each build will spend 5 or 10 minutes to finish, and most time spend on `npm install`. But we all know that if `package.json` were not change, `node_modules` directory should not change as well.

So that we checksum `package.json` with MD5, and package whole `node_modules` directory as cache. If the hash string does not changed, which implied nothing changed, just unpack cached `node_modules` directory and then execute `npm install`, all things done.

Here is a simple example

```bash
PKG_SUM=$(md5sum package.json | cut -d\  -f 1)
NPM_TARBALL=node_modules-${PKG_SUM}.tgz
NPM_TARBALL_MD5SUM=${NPM_TARBALL}.md5sum
NPM_TARBALL_CACHE=${HOME}/.cache/npmtarball
S3_NPM_TARBALL=s3://deployment/npmtarball

[[ ! -e $NPM_TARBALL_CACHE ]] && mkdir -p $NPM_TARBALL_CACHE

function downloadNpmTarball(){
    pushd $NPM_TARBALL_CACHE
        if [ ! -f ${NPM_TARBALL} ];then
            s3cmd get ${S3_NPM_TARBALL}/${NPM_TARBALL} ${NPM_TARBALL}
            s3cmd get ${S3_NPM_TARBALL}/${NPM_TARBALL_MD5SUM} ${NPM_TARBALL_MD5SUM}
            md5sum -c ${NPM_TARBALL_MD5SUM} || rm -f ${NPM_TARBALL} ${NPM_TARBALL_MD5SUM}
        fi
    popd
}

function checkNpmMod() {
    downloadNpmTarball
    TARBALL=${NPM_TARBALL_CACHE}/${NPM_TARBALL}
    [[ -f $TARBALL ]] && tar xzf $TARBALL
}

function uploadNpmMod() {
    TARBALL=${NPM_TARBALL_CACHE}/${NPM_TARBALL}
    if [ ! -f  ${TARBALL} ];then
        if [ -d node_modules ];then
             tar zcf ${TARBALL} node_modules || return 1
        fi
        pushd $NPM_TARBALL_CACHE
             md5sum $NPM_TARBALL > ${NPM_TARBALL_MD5SUM}
             s3cmd put $NPM_TARBALL $S3_NPM_TARBALL/$NPM_TARBALL
             s3cmd put $NPM_TARBALL_MD5SUM $S3_NPM_TARBALL/$NPM_TARBALL_MD5SUM
        popd
    fi
}
checkNpmMod
npm install
uploadNpmMod
```
Mining the Wayback Machine for Useful articles
Tags: archives, opensource, webeconomy
Published: 2017-11-29 10:38:54

---
title: Mining the Wayback Machine for Useful articles
published: true
description: an old article on the web archives picks my interest 
tags: #archives #open_source #web_economy   
---

So being a fan of the now extant Programmer's Stone blog I went digging for the addenda of the original papers from 1997-1999 period of the Reciprocality group. I found the article of Leon Brooks on usefulness.
There's an interesting bit on 'prophecy':
  "If your children don't have any self control by the time they're old enough to go web-surfing by themselves, use all the time you have left to instil it!"
The rest is history, many people claim the Millenials are the result of just such careless attitude to teaching/mentoring/parenting that is needed for self-control to develop.

http://reciprocality.wikia.com/wiki/MiningUsefulness

It is funny how at the time both the capitalist side reacted to open source negatively and so did the cultural critics from the left!
Intermediate to senior dev resume
Tags: career, discuss
Published: 2017-11-29 04:20:53

---
title: "Intermediate to senior dev resume"
published: true
description: I've seen a lot of examples of junior dev one page resumes, but haven't come across a senior dev resume. I've seen senior engineer CV's though, and they tend to be long. Does anyone have some good senior or intermediate dev resume that they've come across?
tags: #career, discuss
---

I've seen a lot of examples of junior dev one page resumes, but haven't come across a senior dev resume. I've seen senior engineer CV's though, and they tend to be long. Does anyone have some good senior or intermediate dev resume that they've come across?
What do these icons (emoji) mean?
Tags: devto, question, meta
Published: 2017-11-29 01:08:24

---
title: What do these icons (emoji) mean?
published: true
description: 
tags: #dev.to #question #meta
---

Definitely, heart icon means that I love this article, and that's positive response.

I don't know, however, meaning of other three icons, thinking face, raised hand and unicorn.


Thinking face is positive or negative?
Raised hand means that I have a question? (If so, you should write a comment.)

What does a Unicorn mean ?????????????

Help me, please.

# postscript

Sorry, I found similar articles...

- https://dev.to/_bigblind/how-do-you-use-each-of-the-emoji-reactions-on-devto

- https://dev.to/val_baca/what-do-the-heartthinkingpraiseunicorn-buttons-mean-to-you

But why unicorn???
How to test React Components using decorators
Published: 2017-11-28 21:23:34

---
title: How to test React Components using decorators
published: true
description: What are some existing patterns that engineers have used to test react components that have 1 or more class decorators on them?
tags: 
---
What are some existing patterns that engineers have used to test react components that have 1 or more class decorators on them?
short-circuits && clean code
Tags: discuss, practices, cleancode
Published: 2017-11-28 20:25:09

---
title: short-circuits && clean code
published: true
description: 
tags: discuss, practices, cleancode
---

```javascript
variable && newVariable = getStuff()

variable === anotherOne && (() => {
    //do stuff
})()

variable 
&& anotherOne
&& thisStuffIsTrue()
&& (() => {
    //wtf
})()
```

Are [short-circuits](https://en.wikipedia.org/wiki/Short-circuit_evaluation) considered to be clean code/best practice? I've seen them used in JS recently and despite the code is shorter it is much less readable in my opinion. Same goes with ternary operator overuse.
Чего всё ещё не хватает в PHP: generics
Tags: php, webdev, generics
Published: 2018-02-04 19:37:51

---
title: "Чего всё ещё не хватает в PHP: generics"
published: true
tags: php, webdev, generics
canonical_url: http://phpprofi.ru/blogs/post/82
---

РНР 7.2 не за горами, и эта версия принесёт нам такие изменения в типах, как возможность [указать тип `object`](https://wiki.php.net/rfc/object-typehint) в сигнатуре методов, или как [расширение типа параметра](https://wiki.php.net/rfc/parameter-no-type-variance).  
Они подтверждают желание сообщества PHP укрепить систему типов в PHP и улучшить безопасность типов.

В Libcast(видео-хостинг), мы ценим эти изменения, которые позволяют пологаться на IDE, которая отображает ошибки типов при вводе кода и проверяет типы во время компиляции, тем самым **уменьшая время, необходимое для поиска и исправления ошибки**.  
Дженерики(Generics) - это фича, которая, как мы надеемся, скоро появятся в PHP и позволит создавать универсальные контейнеры указанного типа.

----
Читать далее: http://phpprofi.ru/blogs/post/82

----
https://medium.com/tech-insights-from-libcast-labs/php-still-missing-bits-generics-f2487cf8ea9e
JavaScript Class Improvements
Tags: javascript, code
Published: 2017-11-28 16:42:14

---
title: JavaScript Class Improvements
published: true
description: ES Proposal for class fields
cover_image: https://thepracticaldev.s3.amazonaws.com/i/e8itlh30s36yqdnb568p.jpg
tags: javascript, code
---

_[Cover image by Christiaan Colen on Flickr](https://www.flickr.com/photos/christiaancolen/)_

As you may noticed, JavaScript got real classes with it's ES2015 update, but many people still want better support for classical OOP. The way to define instance fields is rather cumbersome and there is no way to make a field private.

All this will change with this new proposal: [Class Fields](https://github.com/tc39/proposal-class-fields)

## Why

Defining classes is rather simple in JavaScript.

```javascript
class A {}
```

But giving the instance of that class fields is a bit strange.

```javascript
class A {
  constructor() {
    this.field = 123;
  }
}

const a = new A();

console.log(a.field);
```

Also, this field is now public, so everyone can access and modify it.

The current convention for this is to prepend a field with `_` to mark it as private, but this is more of a hack than a solution.

## How

This new proposal allows to define real fields without the help of the constructor.

```javascript
class A {
  field = 123;
}

const a = new A();

console.log(a.field);
```

The fields can even access each other.

```javascript
class A {
  x = 10;
  y = 10 + this.x;
}

const a = new A();

console.log(a.y); 
```
This works, because the whole class _desugars_ to something like this.

```javascript
var A = function A() {
  this.x = 10;
  this.y = 10 + this.x;
};
```

Also, this feature can be used to define methods, that always have the right `this`.

```javascript
class A {
  x = 10;
  m = () => console.log(this.x);
}

const a = new A();

const callback = a.m;

setTimeout(callback, 100); // 10
```

This _desugars_ to something like this:

```javascript
var A = function A() {
  var _this = this;
  this.x = 10;
  this.m = function () {
    return console.log(_this.x);
  };
};
```

There is even the idea to allow private fields:

```javascript
class A {
  #a = 10;
  m = () => this.#a;
}

const a = new A();

console.log(a.a);

console.log(a.m());
```

Sadly this doesn't seem to be implemented, not even in [Babel](https://babeljs.io/).

## Conclusion

More and more classical OOP features find its way into JavaScript. While I'm not the biggest fan of OOP in general and found the prototype based approach more flexible, I think this will make JavaScript more accessible for developers coming from those classical OOP languages.
Explain how Angular 1 works like I'm 5
Tags: angular1, javascript, discuss, explainlikeimfive
Published: 2017-11-28 16:20:33

---
title: Explain how Angular 1 works like I'm 5
published: true
description: 
tags: Angular 1, javascript, discuss, explainlikeimfive
---


Quick background: most of my career has mainly focused on back-end / server side / api / distributed systems. As far as those skills I'm solid. But now I find myself working more and more with front-end tech; specifically Angular and React.

Angular 1.x (and likely 2+) confuses me, explain like I am 5 please.
How close to the data you like to have your business logic operations?
Tags: discuss, design, business, logic
Published: 2017-11-28 14:26:35

---
title: How close to the data you like to have your business logic operations?
published: true
description: 
tags: discuss,design,business,logic
---
I was discussing with a friend of mine about code design in business web apps, when we got to the topic of logic tier (or business logic), there was this big gap between our preferences on where to implement it: 

- He liked controllers, and kept his logic there. Thus using the database as storage only. 

- But me, on the other hand, I've been coding the logic in stored procedures for as long as I can relate, so my controllers have been mostly thin.


My question is, is this a good practice? Are stored procedures an old thingy that just keeps giving us trouble?

I personally think that having logic in code is nice for testing, but when it comes to production data, it might have some performance issues.


Thoughts?