teleren/devto huggingface dataset:
Download links for Microsoft Windows Services for UNIX 3.5 and SUA
Tags: windows, compiler
Published: 2019-10-04 22:07:01

---
title: Download links for Microsoft Windows Services for UNIX 3.5 and SUA
published: true
date: 2019-10-04 21:54:16 UTC
tags: windows,compiler
canonical_url: https://ofdigitalwater.postach.io/post/links-to-windows-sfu-and-sua
---

Should you want to use [Microsoft Windows Services for UNIX](https://en.wikipedia.org/wiki/Windows_Services_for_UNIX) (SFU) within Windows XP or Windows Server 2003, you need SFU 3.5, which you will currently (October 2019) find either [in the Internet Archive](https://archive.org/download/cdrom-services-unix-3.5-microsoft-2004) as an ISO image or [at Microsoft](https://www.microsoft.com/en-us/download/details.aspx?id=20983) as setup executables.

**Addendum**:

The [Subsystem for UNIX-Based Applications](https://en.wikipedia.org/wiki/Windows_Services_for_UNIX#Legacy) (SUA), which works with Windows 7, is also available [at Microsoft](https://www.microsoft.com/en-us/download/details.aspx?id=2391), as well as [SUA for Windows Vista](https://www.microsoft.com/en-us/download/details.aspx?id=23754).
Using Betterer To Track NgRx Upgrade
Tags: productivity, typescript, ngrx, angular
Published: 2019-10-04 21:46:20


A few weeks ago I came across this tweet from [@phenomnominal](https://twitter.com/phenomnominal?s=17) where he was introducing a tool called BETTERER. I immediately thought about using this to track my team's progress in converting our NgRx code to use the greatly improved Action creators. 

{% twitter 1175755374793592832%}

## Creating the rule

I finally got round to trying it out and with the help of the  [TSQuery Playground](https://tsquery-playground.firebaseapp.com) - lovingly crafted by [Uri Shaked]( https://github.com/urish), I was able to write the following TSQuery check. 

```typescript
const { tsqueryBetterer } = require('@betterer/tsquery');

module.exports = {
    'NgRx: Action Creators:': tsqueryBetterer(
        './tsconfig.json',
        'HeritageClause > ExpressionWithTypeArguments > Identifier[name=Action]'
    ),
};
```

Running *betterer* gave the following output (greatly shortened...)

```typescript
  137 | export class SelectSimulation implements Action {
      |
  139 |     readonly type = SELECT_SIMULATION;
  140 | 
  141 |     constructor(public payload: SimulationId) {}
☀️  betterer  info 💬   - 1 thing got checked.
☀️  betterer  warn ⚠️   - 1 thing stayed the same. 😐
Done in 9.48s.
```
The number of matches gets recorded in a *better.results* snapshot file. If you then update the Action declaration to use the createAction syntax you will reduce the number of matches. Running *betterer* again will then give the following output. 

```typescript
☀️  betterer  info 💬   - 1 thing got checked.
☀️  betterer  good ❤️   - 1 thing got better! 😍
Done in 9.61s.
```

## Preventing Old Style Code

Now comes the really useful part. Once agreed with the rest of the team, we can add Betterer to our lint stage. If someone then adds an action using the old syntax the number of matches will go up and we can fail the task accordingly. 

```typescript
  betterer  info 💬   - 1 thing got checked.
☀️  betterer  baad 💀   - 1 thing got worse. 😔
☀️  betterer  baad 💀   - "NgRx: Action Creators:" got worse
error Command failed with exit code 1.
```
It's then clear to see which of your checks failed making it easy to go and update your code as required. If you really need to get something out you can always just reset the snapshot results file.

## Tracking Progress

The cherry on the cake. I can now search our Github repos for "*NgRx: Action Creators*" and get an accurate and up to date snapshot on our progress. No longer is it a vague guess as to what is left because we have concrete figures!

Thank you so much to [@phenomnominal](https://twitter.com/phenomnominal?s=17) for sharing this tool with us!

{% github https://github.com/phenomnomnominal/betterer %}
Why do beginner hate Java so much
Tags: java, javascript
Published: 2019-10-04 21:34:40

I'm getting to the point where I can start being considered an old guy. My primary language is Java. The more I engage with the community, the more I find dislike and frustration with Java. To me, it was my first serious language and I found it great as it told me everything I wanted to know about the new APIs and third-party libraries. It also didn't devastate my global environment by installing third-party libraries as would Node or Python. It's all a binary that you add to a classpath instead of installing it to the OS.

Working with JavaScript and Python I'm mostly frustrated by 
* magic string configurations
* not knowing what is being passed into and returned by APIS
* and not being able to trust third-party libraries  

I'm curious
* What frustrates you most about Java?
* What frustrates you most about learning Java?
* What is your perception about Java?

I'm really starting to think that it just needs an image overhaul on how you learn it and approach? I ask my self, would could I create to show its versatility and effectiveness as a backend language.
Entering the World of Coding
Tags: coding, beginers, selfteachig
Published: 2019-10-04 21:32:55

Entering the World of Coding

So I can say that I have officially completed my first week of coding school and from what I have been told, since I have written my first code, I can officially call myself a CODER. Yay! So, a week ago, my vision of what this whole experience was going to be like was more like a college setting. I had my binder with my notebook and pens all ready to go and I was going to take as much notes as possible to memorize the terms the teacher would be explaining to the class. Well, I can say that I had my notebook out the first day and quickly realized I wouldn't be using it like I thought I would. Being the daughter of a man who graduated high school in the 80’s and worked his way up in the IT world to become very successful and with a mother who followed right in his footsteps that I would have this IT stuff in the bag right? I mean, they have been ingraining computer this and computer that into my head since I was born. Wrong. I walked in here just as lost as anyone else. This line of study I would say is 85% self teaching and you will hear that a lot as you move forward. Of course, you learn from the videos you watch and the research you do and cant forget about Google, I hear he will be my best friend! The other 15% is for when you are just simply stuck and cant figure it out. Then its okay to reach out. I must say, at first it frightened me a bit. I have always found myself as being more hands on or I suppose I have never been shy to ask for help. Demonstration has always worked good for me which really didn’t make me an expert in self teaching. As the days have gone by, I find myself wanting to just raise my hand and ask for the explanation I need so I can have an instant answer. But no, I have been challenging myself and trying my best to find answers all on my own. Even if that means its one hour later and now my browser has 10 more tabs of things I MUST go back and look more into. What you can learn in this field is endless and there is so much knowledge to obtain. The thing I was sure of before taking this journey was that I would need to practice self-discipline. For the times that I feel stuck or that I am way behind. For the times that I think, what am I getting myself into? Can I do this? That self discipline will help to get through those rough patches as challenging as it will seem. So, a wrap up on my first week entering into the world of coding is something that I have to accept that I will need to constantly be challenging myself to keep up and let alone teach myself if I want to make it far but in the end it is so worth it.
A REAL day in the life: software engineer
Tags: career, codenewbie, webdev
Published: 2019-10-04 21:17:13

What do software engineers do? (Day to day on the job)

With all of the unrealistic "day in the life of a software engineer" videos popping up on YouTube (the ones where they're always playing ping pong, eating free food, and apparently doing little to no work), what do software engineers actually do on a daily basis?

I've worked in both big and small companies in Silicon Valley as a software engineer / web dev. I made a video breaking down my exact day to day, based on similarities I've seen in the different roles I've worked in.

Please consider subscribing by clicking here if you found this information useful!
[YouTube - Matt Upham](https://www.youtube.com/mattupham?
sub_confirmation=1)
{% youtube Ci-SgP2tfLU %}
[What do Software Engineers do?](https://youtu.be/Ci-SgP2tfLU)

Are you currently learning to code? If so, what have been your biggest challenges? What are some of your misconceptions about being a software developer?

Are you a current software developer? What specialty are you in, and what does your day to day look like?

If you found this video useful, please consider subscribing to my YouTube Channel! I talk about software & tech, life in Silicon Valley, and self-improvement!

**Subscribe Here**
[YouTube - Matt Upham](https://www.youtube.com/mattupham?sub_confirmation=1)

Join our growing [Discord](https://discord.gg/9RGdMcF) community! 

Thanks for reading!
Android WorkManager
Published: 2020-06-27 13:24:13

---
title: Android WorkManager
published: true
date: 2019-10-04 20:44:51 UTC
tags: 
canonical_url: https://medium.com/series/android-workmanager-86997879d29b
---

### Intro

- Android memory model
- Android battery optimizations
- Current background processing solutions
- Where is WorkManager placed in the background work schema

More details [here](https://dev.to/magdamiu/workout-your-tasks-with-workmanager-intro-pca-temp-slug-2242387)

### Main Components

- Worker
- WorkRequest
- Constraints
- Input/Output Data
- WorkManager

More details [here](https://dev.to/magdamiu/workout-your-tasks-with-workmanager-basics-466d-temp-slug-82140)

### Advanced Topics

- Android memory model
- Android battery optimizations
- Current background processing solutions
- Where is WorkManager placed in the background work schema
- WorkManager components: Worker, WorkRequest and WorkManager
- Constraints
- Input/Output Data

More details [here](https://dev.to/magdamiu/workout-your-tasks-with-workmanager-advanced-topics-3257-temp-slug-5701145)
Get server statistics using 🚀StatsLite: 
Tags: ruby, monitoring, rails, devops
Published: 2019-10-04 20:36:36

---
title: Get server statistics using 🚀StatsLite: 
published: true

description: Simple to use and install server statistics tool

tags: ruby, monitoring, rails, devops
---

# StatsLite

[Here is the link to the tool](https://github.com/sebyx07/stats-lite)

Simple way to get server information as json. Easy to extend with a `config.rb` file.
Embeddable in Rails

### Standalone usage

Requirements ruby, min version 2


```shell_script
sudo apt-get install -y ruby build-essential ruby-dev
```

Usage standalone, you might need to run some commands as __sudo__.


```shell_script
gem install stats_lite --no-ri --no-rdoc
stats-lite
curl http://localhost:9111
```

Add to startup, crontab


```shell_script
crontab -e
# then add
@reboot /usr/local/bin/stats-lite
```

![demo](https://raw.githubusercontent.com/sebyx07/stats-lite/master/docs/example.png)

create a `config.rb` then `stats-lite`

```ruby 
# example config.rb
# basic usage

StatsLite.configure do |s|
  s.password "1234" # password protection
  s.port 9111 # listening port
end
```

```shell_script
# now it's protected by passowrd
curl http://localhost:9111?password=1234 
```

### Rails usage

`gem "stats_lite"`

```ruby
# routes.rb
mount StatsLite::App => "/server-stats" 
```

### Advanced configuration

```ruby

StatsLite.configure do |s, h|
  s.password ENV["STATS_LITE_PASS"] # defaults to nil, unprotected
  s.port ENV["STATS_LITE_PORT"] # defaults to 9111

  s.data -> (data) do # add more data
    data[:ruby_current_time] = Time.now # simple value
    data[:linux_time] = h.command("date") # bash command, supports {cache: true, expires_in: 60} 

    data[:slow_command] = h.fetch :slow_command, -> {
      sleep 1
      "slow command"
    }, expires_in: 5 # cached ruby value
  end

  s.app do |sinatra| # extend the app, add multiple routes, which are protected by the password
    sinatra.get("/another_route") do
      content_type :json

      { cpus: h.command("nproc", { cache: true }) }.to_json
    end
  end
end
```
Some awesome beginner-friendly projects for #HacktoberFest
Tags: hacktoberfest, beginners
Published: 2019-10-04 19:30:40

Recently came across this awesome repository, and in the spirit of #hacktoberfest, I thought I'd share this with the rest of the DEV community. 

https://github.com/MunGell/awesome-for-beginners

As an aside, it would be awesome if we could include [dev.to](https://github.com/thepracticaldev/dev.to) on this list.

Happy hacking!
Day 3/100 - The basics of types in TypeScript
Tags: typescript, javascript, 100daysofcode
Published: 2019-10-04 17:28:18

On the third day of 100daysofcode challenge, learned the basics of types in TypeScript. 

#### What are types?
Types in TypeScript are just a simple way to describe the properties and function of a value.

For example: 
```
const name = "Abhay Nikam"
```
The variable `name` is of type string which has different properties and function. 

```
// Example of some properties for type string value
name.charAt();
name.indexOf();
```

#### Types are of two categories:
1. Primitive Types: number, boolean, void, undefined, string, symbol, null.
2. Object Types: functions, arrays, classes, objects.

> NOTE: I haven't yet studied all types in details. Will be learning
> that in the next few days.

#### Why do we care about types?

There is a simple answer to this question. We care about types because types give the required information to the TypeScript compiler to analyze the value and throw an error if something is not as per type defined.

Types also help the other developers in the team to understand what properties and function value might have.

#### Where to use types?

EVERYWHERE!!  


Happy Friday. Happy Coding.
Jobs in Linux
Tags: linux, vim
Published: 2019-10-04 19:23:24

---
title: Jobs in Linux
published: true
description: Learn how to run multiple programs in a single terminal
tags: linux, vim
---

I've recently switched to VIM as my full-time editor.  I now have, more or less, two tools I use: the terminal, and the web browser.

One trick I've found essential to using VIM full-time is being able to pause it, run a bash command, then jump back into VIM.  

Here's a concrete example:

1. I create a new file in VIM
2. I realize I named the file `file.css` when I meant to name is `file.scss`
3. I jump out of VIM, into a shell, and run `mv file.css file.scss`

This leads into the topic of this article: how can we run multiple processes in one shell?

## Jobs in Linux

This ends up being quite simple:

- To pause the current program (for example, `vim`): `Ctrl+Z`
- To list all paused programs: `jobs`
- To jump back into a paused program: `fg <job_number>` (or just `fg` if you have only one job)
- To run a paused program in the background: `bg <job_number>`

Hope you found this tip useful!

---

If you're interested in Linux, VIM, Django, Python, React/RN and just tech in general, follow me on dev.to or on [Twitter @connorbode](https://twitter.com/connorbode)! 

You can also find me on the web at [matix.io](https://matix.io).
Brief Understanding on Laravel Observers
Tags: laravel, laravel6, laravelcodesnippet
Published: 2020-01-02 18:50:55

---
title: Brief Understanding on Laravel Observers
published: true
date: 2019-10-04 18:51:50 UTC
tags: Laravel,Laravel 6,Laravel Code Snippet
canonical_url: https://codebriefly.com/brief-understanding-on-laravel-observers/
---

 ![Laravel Observers](https://codebriefly.com/wp-content/uploads/2019/10/brief-understanding-on-laravel-observers.jpg)

In this article, we will discuss “Laravel Observers”. Laravel provides us to implement the Observer pattern to fire some predefined events, which can be listened to hook into when various actions are performed on a model. No dought, it’s a great feature of the Laravel. Observer Class, methods receive the model as their only argument. […]

The post [Brief Understanding on Laravel Observers](https://codebriefly.com/brief-understanding-on-laravel-observers/) appeared first on [Code Briefly](https://codebriefly.com).
Looking for angel investors?
Tags: angel, investor, saas, startup
Published: 2019-10-04 18:29:05

---
title: Looking for angel investors?
published: true
description: List your startup on First Money to find angel investors
tags: angel, investor, saas, startup
---

Hi Everyone, 

In my day job, I've been around VCs for the past 4 years. I think it's too easy to get stuck in the perspective of a startup looking for funding and all the difficulties therein. The reality is, finding high-quality investments is hard for them too. 

So, I decided to put together a free microsite focused on matching companies with investors. I'd love to have your startup on there if you're looking to find investors or have any feedback!

https://firstmoney.tech/

Thanks, 

Andrew
Asynchronous setInterval
Tags: javascript, async, setinterval
Published: 2019-10-02 19:02:33

I recently wanted to kick of a (potentially) long running query against a database, and continue to fire it off 30 seconds after it finished.

Sounds like an easy case of setInterval, but I had my doubts about whether it would work with async (spoiler: it doesn't):


```javascript
setInterval(async () => {
  console.log('start');
  const promise = new Promise((resolve) => {
    setTimeout(resolve('all done'), 3000);
  });
  await promise;
  console.log('end');
}, 1000);
```

Not surprising, but disappointingly, it pops out a number of starts before the first end.

And because I might want to do this again one day, decided to write up how I got around it:

```javascript
const asyncIntervals = [];

const runAsyncInterval = async (cb, interval, intervalIndex) => {
  await cb();
  if (asyncIntervals[intervalIndex]) {
    setTimeout(() => runAsyncInterval(cb, interval, intervalIndex), interval);
  }
};
  
const setAsyncInterval = (cb, interval) => {
  if (cb && typeof cb === "function") {
    const intervalIndex = asyncIntervals.length;
    asyncIntervals.push(true);
    runAsyncInterval(cb, interval, intervalIndex);
    return intervalIndex;
  } else {
    throw new Error('Callback must be a function');
  }
};

const clearAsyncInterval = (intervalIndex) => {
  if (asyncIntervals[intervalIndex]) {
    asyncIntervals[intervalIndex] = false;
  }
};
```

Then its just a matter of:

```javascript
setAsyncInterval(async () => {
  console.log('start');
  const promise = new Promise((resolve) => {
    setTimeout(resolve('all done'), 3000);
  });
  await promise;
  console.log('end');
}, 1000);
```

And if you are tired of it:

```javascript
clearAsyncInterval(0) // or whatever the return was from setAsyncInterval
```

Anyways... if you ever find yourself wanting to set an interval that waits for an async function to finish its awaits (as opposed to running as soon as the async function returns its promise), now you know.
Moving Ulfberht to UA1 Labs and Renaming It To FireDI
Tags: php, showdev
Published: 2019-10-04 19:17:42

---
title: Moving Ulfberht to UA1 Labs and Renaming It To FireDI
published: true
date: 2019-10-04 17:51:35 UTC
tags: php, opensource, showdev
canonical_url: https://ua1.us/updates/firedi/moving-ulfberht-to-ua1-labs-and-renaming-it-to-firedi/
---

Originally started as a learning project back in 2013, I was interested in creating a Dependency Injection Container for PHP. At the time, AngularJS was king and had a really awesome way of resolving dependencies. Originally this project had been named “z20”. I have since, renamed the project and refactored it several times. It has become time to start this process again. But this time, it will be the final time we are moving this code base as UA1 Labs will be maintaining and supporting this library for now on.

## Ulberht’s History

When I originally started this project, I set out to include it as part of a framework I had been working on. The framework was slated to replace a project I had started called Zoose. After getting deep into the project, I realized that instead of creating a framework and a DI why not have my DI be the framework. Z20 was born.

Z20 because I was building the 2.0 version of Zoose. At the beginning of the project I had been interested in a documentary I had just watched about the Ulfberht sword. A friend of mine told me I should have named the framework Ulfberht.

Shortly after creating Z20, It went into production on several projects and still exists today out in the wild! I shelved the Z20 project, swearing off any more client service work, and moved on. Years later, I decided to resurrect this project and rebrand it to “Ulfberht”, pulling out only the DI and leaving the rest of the Z20 framework behind. Ulfberht has since been used over and over again in many different projects.

## Why Move and Rename Ulfberht Yet Again?

When it came time for me to create the next framework ([FireStudio](https://github.com/ua1-labs/firestudio)), I would decide against a DI all together. I instead went with a simple service container. When the framework first started out, this made sense as all I was trying to do was create a simple MVC that leveraged a simple service container. The FireStudio project has grown and now we are in need of an official DI. So UA1 Labs is adopting it.

Ulfberht is no longer maintained and has very little users. So we are going to claim it for UA1 Labs and integrate it into our Fire Suite of projects.

## What Is Going To Change?

1. Ulfberht will be renamed to FireDI
2. We will move the code to https://github.com/ua1-labs/firedi
3. We will update the source code styling to take on that of the rest of our Fire suite of tools.
4. We will move the code into 3.0.

The post [Moving Ulfberht to UA1 Labs and Renaming It To FireDI](https://ua1.us/updates/firedi/moving-ulfberht-to-ua1-labs-and-renaming-it-to-firedi/) appeared first on [UA1 Labs](https://ua1.us).
Building a web frontend with Vue.js v3, Typescript and D3.js during #Hacktoberfest together
Tags: vue, typescript, d3, hacktoberfest
Published: 2019-10-04 17:42:48

Hi all,

**As I just started a web [front-end](https://github.com/sirixdb/sirix-web-frontend) for [SirixDB](https://sirix.io), we can switch to [Vue.js v3](https://github.com/vuejs/vue-next).**

A pre-alpha has been released. So, as SirixDB is kind of at the same stage regarding v1, let's build something together with the latest stuff. I'm just learning front-end related stuff, so any help is more than appreciated and you can practise your Uve.js v3 skills from day one, basically :-)

Ah, I'm super enthusiastic and I just started using Vue a couple of days ago ;-)

Best weekend to all of you
Johannes