teleren/devto huggingface dataset:
Freelancing & Academia to Industry panel
Tags: freelancing, academia, industry
Published: 2019-10-25 17:02:10

---
title: Freelancing & Academia to Industry panel
published: true
description: Takeaways from the Freelancing and Academia to Industry panel @ PyCon DE & PyData Berlin 2019
tags: [ "freelancing","academia", "industry"]
canonical_url: https://www.christianbarra.com/posts/freelancing-and-academia-to-industry-panel/
---

On October 11th we hosted a [panel at PyConDE](https://de.pycon.org/program/pyconde-meegjc-job-panel-christian-barra-tereza-iofciu-katharina-rasch-matteo-guzzo-sieer-angar/) with [Matteo Guzzo](https://twitter.com/_teoguso), [Tereza Iofciu](https://twitter.com/terezaif), [Katharina Rasch](https://twitter.com/krasch_io) and [Sieer Angar](https://twitter.com/sieer83/) and I had the pleasure to be the moderator.

These are some of the takeaways:

### From Academia to Industry

> 1) **As a PhD student you learn how to learn**

This will be extremely useful to help you moving to industry and to learn new skills as fast as possible.

> 2) **Do your homework, be prepared**

If you don't want to be perceived as a junior during your interviews prepare yourself beforehand, try to understand what companies are looking for and how to approach the interview correctly.
If the interview process is something new for you have some dry runs with companies you don't want to work for.

> 3) **There are pros and cons on both worlds**

[Katharina Rasch](https://twitter.com/krasch_io) keeps teaching although working as a freelancer and consultant.
You can move to industry without fully leaving academia.

### Freelancing

> 1) **Wanna be a freelancer? Just do it**

If you think you want to do it just do it, you always have a rollback plan: finding another job as employee.

> 2) **You have to create and grow your network**

Meetups, conferences and generally sharing your knowledge is a great way to do it, make yourself visible.

> 3) **Freelancing platforms can be a great way to start**

[Pivigo](https://www.pivigo.com/), [Fiverr](https://www.fiverr.com), [Toptal](https://www.toptal.com), [Upwork](https://www.upwork.com/) are a great way to kick-start your way to freelancing.

> 4) **Create a cash buffer**

Having a cash buffer is fundamental if you want to be able to sustain your first months as a freelancer, that will give you financial freedom and reduce stress.

> 5) **You rates will suck at the beginning**

And that's fine. But don't forget to raise them and keep them updated considerinng market rates.

> 6) **Berlin is a bubble**

While knowing German might not be a requirement in Berlin the rest of Germany is different although things are changing.

> 7) **Just freely approach companies**

If you want to collaborate with them and/or create new connections as a freelancer.

> 8) **Take care of the bureaucratic stuff**

Being a freelancer involves some bureaucratic burdens you have to take care like accounting and health insurance.

*The panel has been recorded, it will be available on the [PyCon DE youtube channel](https://www.youtube.com/channel/UCji5VWDkGzuRenyRQZ9OpFQ).*
Axes and Scales – Using React (Hooks) with D3
Tags: react, dthree, beginners, svg
Published: 2019-10-25 16:56:53

{% youtube yhwHUmjqxQw %}

This is part 3 of my series, where we add an X and Y axis to our chart, and explore scales.
Using a new mic, and you now can also access the code from this series on GitHub:

https://github.com/muratkemaldar/using-react-hooks-with-d3

Hope you like it!
Jet-pack compose, does it matter?
Tags: discuss, android, kotlin
Published: 2019-10-25 16:42:34

Jet-pack compose is a new way android developers can build native uis, it replaces the xml structure of uis with a kotlin function base, that you call to place in the layout, allowing reusable code and better flexibility https://developer.android.com/jetpack/compose 


Do you think it will change the android dev landscape?
Hoisting in JavaScript
Tags: javascript, webdev
Published: 2019-10-25 16:17:42

I feel it's safe to say that hoisting in JavaScript leads to a lot of confusion and it's mainly due to how it's explained and our condition to take words immediately for what they are. 

Hoisting is the physical act of moving something right? Yes, but not in this case. Yet, you may have heard "Hoisting is when declarations are moved to the top of your code". Well... not really. 

## Function Hoisting 

Let's look at a basic example of a function declaration.


```javascript
function getName(name) {
  console.log(`My name is ${name}`)
}

getName("Dave") // My name is Dave
```

Above, we declared a function named `getName` and then call it.

Now, let's flip it and call the function before it's declared. 

```javascript
getName("Dave") // My name is Dave

function getName(name) {
  console.log(`My name is ${name}`)
}
```

You might be surprised, but our output is exactly the same without any errors. Let's see why. 

> Keep in mind, this behavior only applies to function declarations. Function expressions **are not** hoisted. 

##Under the hood

When the JavaScript engine runs your code, it sets up something called the **Global Execution Context**. In this, there are two phases, the **creation phase** and **execution phase**. During the creation phase, JavaScript has done the following to your variable and function declarations:

- Created space in memory to store variables and functions
- Set variables to have a value of undefined.

 **NOTE**: There are two other steps before this (global object and the "this" keyword) but to avoid confusion, I have left those out as a seperate topic.

## The simple breakdown

JavaScript looked through our code, grabbed the `getName` function in it's entirety and placed it in memory during the creation phase. It then moved onto the execution phase where it went through our code line by line and once it hit the `getName()` call, it checked it's memory space and found the `getName` function to use.

## Variable hoisting

Earlier, we learned that during the creation phase variables are set to `undefined`. Let's look at an example to better understand that. 

```javascript
var fruit = "apple"

console.log(fruit) // "apple"
```

Let's see what happens when we declare our variable after we call it. 

```javascript
console.log(fruit) // undefined

var fruit = "apple"
```

Why do we get `undefined` and not an error? Let's drill it in one more time. Variables are set to `undefined` and put in memory during the creation phase. 

The above code behind the scenes really looks like this


```javascript
var fruit = undefined

console.log(fruit) // undefined

fruit = "apple"
```

> As for ES6, `let` & `const` are not hoisted. 

## Closing

Hopefully you have a better understanding of what hoisting is and what it isn't. The next time someone asks, you'll be able to confidently say:

 > Hoisting is when the JavaScript engine puts function declarations into memory and sets variables to undefined during the creation phase.
Strong Params with Custom Arguments 
Tags: codenewbie, ruby, rails
Published: 2019-10-25 15:37:21

Strong Params are used in Rails to make sure that users can only pass in values for permitted parameters when sending POST requests to the server. For example, when updating a blog post, a user will only be able to update the attribute parameters for the post that have been permitted by the developers for users to edit/update.

Custom arguments for strong parameters are a helpful way to ensure that the user cannot update the values for certain parameters after the object has already been created (through a form_for).

{% gist https://gist.github.com/danhjoo7/deb9fb145fafe144e20f2aba16870df0  %}

In the example shown here, I have a private strong params method. It's called task_params and takes in custom arguments for what params are permitted for a user to enter values for when creating and updating a task. The method requires that there be a task, and what is being permitted is up to the developer's digression later on in the Tasks#create and Tasks#update methods.

{% gist https://gist.github.com/danhjoo7/182f9b51c1a2f381e6c09858c56dd469 %}

In the Tasks#create controller action, there are 5 parameters that are being permitted. There is the assigner_id, title, category, priority, and content. These are the only attributes of a task object that the user can pass in values for when that user creates a task on a form.

However, because the task_params method has custom arguments, now I can permit different parameters when users want to update a preexisting task. Let's say that once a task has been assigned to someone(the assignee), the assignee for a task cannot be changed. In the Tasks#update action, you can see that the assignee_id parameter has now been taken out. As long as take out the form field for assignee_id in the corresponding form on the edit view page, users will now only be permitted to update values for the remaining 4 parameters. 

Passing custom arguments for strong parameters is definitely a neat and simple way to control what users can and cannot update!
INNOTECH/THUNDERPLAINS
Published: 2019-10-25 15:36:38

MY NOTES

Animations Timelines and playback control Sag/css/Js

Properties like a transform to animate

Available animation:

Firefox, and Opera have foundation implementated Safari is very close in Tech preview of behind a flag Edge will be blink soon

Create an animation Transitioning fro one state to another A timing function

Animating multiple frames and properties key frames

It has an equivalent in CSS Beneffits as compositor layer variables finer control

Control and play states

If's you want to see how far away you are in an animation that is player timeline.

Playback rate fives a lot of power to play it faster

EVENTS onfinish oncancel Games that uses animation

Interacting with multiple animations.

COSECURITYPRO

What is IOT Printers, smart thermostats, smart lights, cars, appliances, phones etc.,

Prevent hackers

IOT is everywhere It's growing quickly as more devices get in the network

MS08-06 2008 devices were infected with conficker. They had to find hatches to fix the devices.

Domain Admin was applied in printers. Hackers got access to it with default credentials. Hplaserjet M4345 insecurely returns the password in the clients HTTP response. Since it was domain admin it was hard to fix.

Meteobridge web weather web interface. Weather underground insecure passwords were easy to get in and more chances to hack.

Highly recommend to a non default value. No encryption at all.

Lessons learned: Change default password Apply media and software patches Isolate IOT from trusted networks Network access least privileges con be affected Apply firmware and software patches Isolate these devices from other networks

Miral Botnet Uses a table of 60 factory default usernames Isolate IOT from the internet Change default password

Another default password mistake 1234567812345678

Konica Minolta Bizhub Change LDAP server address to the pen test system.

Address Book 64 usernames and email addresses. With that you can launch a password spray attack against the user list.

Encouraging users to make passwords long to prevent these kind of attacks in the network.

Veeder Root Keep your data secure with FTS Vulnerable to shellshack Can run commands on the webserver

IPMI devices Out of band management for servers Intelligent Platform management. Allows you to do lthings from the command line IPMI ipmitool.

Cipherzero should be disable to prevent anytype of attacks.

Remote Hash Retrieval vulnerability it cannot be patched.

We need a mental model #1 defensive layers #2 attack surface #3 least privilege

Cybersecurity Identifying your IOT Detect issues that arent resolved Response Recover
Installing Android 4.0 Preview
Tags: androidstudio4, android, androidstudio
Published: 2019-10-25 16:12:36

---
title: Installing Android 4.0 Preview
published: true
date: 2019-10-25 15:21:35 UTC
tags: android-studio-4, android, android-studio
canonical_url: 
cover_image: https://cdn-images-1.medium.com/max/1024/1*O-a2-eev5nDjzCVRE3Po6g.jpeg
---

You can install Android Studio 4.0 Preview which is available in canary and dev channel. There are lots of new things in new Android 4.0 which make me excites to install that.

Android Studio 4.0 is in Preview version which means this is not for everyone. Preview are not stable release and it’s not available of stable channel. This is for those, who are interested in try and test new features. Preview are

There are four different channel of android studio release.

1. Canary
2. Dev
3. Beta
4. Stable

> You should not expect any bug-free experience from any channel except stable.

Android Studio take care of these things, if you will move to other channel that will make two android studio available in you Computer. You can use any Android Studio anytime. You need not to uninstall one and install other.

If you want early access to the next version of Android Studio, you don’t have to replace your existing stable version. You can install the Android Studio preview side by side with the stable version and work on the same app projects in both.

### APPLE USER

If you have mac here is a video showing, how to install preview version side by side.

{% youtube xXCWcZS1lug %}

### WINDOWS USER

If you are windows user then I will be uploading video about that soon. Here are the steps which you need to follow.

1 . Download the Android Studio Preview from this link [https://developer.android.com/studio/preview/](https://developer.android.com/studio/preview/)

2. Extract the zip

![](https://cdn-images-1.medium.com/max/949/1*jNlDkQZ0n3fk2aixM1yGpA.png)

3. Change the directory name to **Android Studio Preview** from   
**android-studio**

![](https://cdn-images-1.medium.com/max/945/1*5RnxCZ1XG8UiUhdEm9ybsw.png)

4. Open the Android Studio Preview Directory and go to bin folder. There you will find **studio.exe** and **studio.64.exe.** Depends upon system architecture(32bit or 64bit) open the files.

![](https://cdn-images-1.medium.com/max/1020/1*yT823hK81sEYPI-FzZANqg.png)

5. You can’t open this from windows start search. You can pin this to start or taskbar, which will make you will easier for opening this again and again. You can make shortcut to the desktop also.

![](https://cdn-images-1.medium.com/max/968/1*o5tcX_w3L1J4NhWE71jvVg.png)

### LINUX USER

I don’t have anything for you  
Sorry
What are your Favorite Text-Processing Tools?
Tags: discuss, textprocessing, tools
Published: 2019-10-25 15:21:31

---
title: What are your Favorite Text-Processing Tools?
published: true
description: What tools do you use for markup, text processing, templating, static-site building, converting and more?
tags: discuss, textprocessing, tools
---

I.  Love.  Text-processing.

I don't know why.  Don't ask me why.  It's weird.  But if it's a markup language, templating engine, static site builder, converter, generator, pipeline, etc., it fills me with pure joy to use them and learn about new ones.

So, I want to hear from you.  What tools do you use?  What's your favorite markup language?  What's so good about Asciidoc, or Org-mode, or Flnerb?  Why is your static site builder the best?  What simple command line utility have you super charged by duct-taping shell scripts all over it in order to handle your most extensive text-file-conversion needs?  Show me your shell scripts!  Your one-liners!

Bonus game: let's see how many people come here after seeing the title without reading the post or the other comments to say "Pandoc."  😊

Bonus score as of 10/25 8:20 AM PDT: 1
8 Articles About Python Lists (+ 2 Videos)
Tags: python, tutorial, showdev
Published: 2019-10-25 15:19:53

One of my favorite data structures in Python is the list. Honestly, there's a lot to like about Python lists. For one, they're easy to use and intuitive. In fact, declaring one and indexing it is as easy as:

```python
nums = [2, 9, 6]
nums[0]  # returns 2
```

Better yet, Python lists are thoroughly supported. There are tons of convenience features that make lists fun to work with (i.e. negative indexing, iterable unpacking, etc.). That's why I can't stop writing about them:

- [How to Write a List Comprehension in Python](https://therenegadecoder.com/code/how-to-write-a-list-comprehension-in-python/)
- [How to Sort a List of Dictionaries in Python](https://therenegadecoder.com/code/how-to-sort-a-list-of-dictionaries-in-python/)
- [How to Sort a List of Strings in Python](https://therenegadecoder.com/code/how-to-sort-a-list-of-strings-in-python/)
- [How to Get the Last Item of a List in Python](https://therenegadecoder.com/code/how-to-get-the-last-item-of-a-list-in-python/)
- [How to Clone a List in Python](https://therenegadecoder.com/code/how-to-clone-a-list-in-python/)
- [How to Check if a List is Empty in Python](https://therenegadecoder.com/code/how-to-check-if-a-list-is-empty-in-python/)
- [How to Convert Two Lists into a Dictionary in Python](https://therenegadecoder.com/code/how-to-convert-two-lists-into-a-dictionary-in-python/)
- [How to Sum Elements of Two Lists in Python](https://therenegadecoder.com/code/how-to-sum-elements-of-two-lists-in-python/)

Well, lately, I've decided to start improving these articles to include more than just solutions. For example, a few months ago, I started adding performance metrics using the `timeit` library. Recently, I started adding challenges, so you can take what you learn a step further. 

Now, I'm converting some of these articles into videos for your viewing pleasure. Say hello to my latest two videos:

{% youtube wAJ1Nlk-T7w %}

{% youtube ZMCte_LHml0 %}

As always, I appreciate your support, and I hope these videos are helpful to someone. Thanks!
AWS Global Infrastructure & Setup IAM
Tags: aws, iam, cloud
Published: 2019-10-25 15:12:08

---
title: AWS Global Infrastructure & Setup IAM
published: true
description: My notes for learning AWS services
tags: #aws #iam #cloud
---

![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/azczv6iqbyc1016rzfaf.png)

Hey guys, I am learning the AWS services and write down the note what I learned. Welcome tech exchange or give me any advisement that i can improve, thanks.
[Here is link to my notes(Medium).](https://medium.com/@JayChang84/amazon-web-service-aws-global-infrastructure-and-identity-access-management-iam-6ee238b62b01)

### Main Topics:
- Global Infrastructure
- Identity Access Management
Skaffolder 2.0 - Coming Tomorrow
Tags: devops, webdev, productivity, docker
Published: 2019-10-25 15:09:09

Luca from the Skaffolder team here! 👨‍💻After months of work we are ready to release the new interface! Skaffolder 2.0 is the new way to create web and mobile applications.

I worked for several years in enterprise software development companies. Based on my experiences, I figured out that at least 40% of a developer’s time is spent on recreating code that already exists. 🤯🤬 I knew that this time could be better used to focus on the business logic and creative engineering/coding of a given application.  

Skaffolder was created to automatically create working code, fully documented in multiple programming languages. The code generated is fully documented, customizable and owned by you. In addition, Skaffolder has been benchmarked to save up to 40% of development time and costs. 

If you are a web or mobile application developer we are eager to hear your feedback. https://www.producthunt.com/upcoming/skaffolder-2-0-2
Switch context faster with git worktree
Tags: git, beginners, workflow
Published: 2019-10-25 14:57:28

---
title: Switch context faster with git worktree
published: true
description: When you're deep down in the rabbit hole working on a feature and need to hotfix a bug you stash your changes and start clean? Wrong!
tags: git, beginner, workflow
---

Working with git has made lives of many developers in the world a lot easier but it also brought some quirks, especially for those who work in fast paced environments. Having multiple branches and working on many things at once is a normal thing nowadays.

So, what do you do when you're working on a feature, you're deep down the rabbit hole, and suddenly, you have to switch and work on something else like a hotfix?

For me, personally, it meant that I'd stash my changes, fetch master, create a new branch and restart my editor to not have cluster of opened files. That also meant that when I finished working on the hotfix and when I got back to the original feature my reaction was somewhat like this:

![confused](http://giphygifs.s3.amazonaws.com/media/iHe7mA9M9SsyQ/giphy.gif)

Let's introduce `git worktree`.
> A git repository can support multiple working trees, allowing you to check out more than one branch at a time
https://git-scm.com/docs/git-worktree

### But what does it mean?

Using `worktree` you can easily create a local copy of your desired branch outside your main repo, work on it like you'd normally would, without having to stash anything!

### Enough talk, show me the code!

In your main repo dir do
```
git worktree add -b super_important_hotfix ../super_important_hotfix origin/master
```
This will create a new directory with an exact copy of your repository (at `origin/master`) and switch to a new branch called `super_important_hotfix`. 

You can now work on your super important hotfix without polluting the main dir.

```
touch super_important_hotfix.txt
git add super_important_hotfix.txt
git commit -m 'Fixed bug'
git push
```

Go back to your main repo dir and eveything is exactly the same you left it!

![tada](https://media.giphy.com/media/JqDeI2yjpSRgdh35oe/giphy.gif)

Once you're done with you hotfix you can remove the dir we created for it and run `git worktree prune` from the original directory to cleanup references to it.

You can have a more in depth look at `git worktree` [here](https://git-scm.com/docs/git-worktree)

Happy coding!


Love Ruby, new tech, and working remotely? Check out https://leadfeeder.com/jobs and don't forget to mention my name!
JavaScript: My animation doesn't make the element start from the right position.
Tags: html, javascript, css
Published: 2019-10-25 14:48:44

Hi guys!
I wrote this code:
https://pastebin.com/cHfwEZB8
when I click "Movement" button, the element would have to start from the position in which it is now, and he have to go on right.
But when I click the button, the element teleports to another point before starting to move. Can you tell me why?
React Effect Hooks Cheatsheet !
Tags: react, javascript, tutorial, github
Published: 2019-10-25 14:35:21

![](https://media.licdn.com/dms/image/C5122AQFCgO7mIQL_TA/feedshare-shrink_2048_1536/0?e=1574899200&v=beta&t=63-I0Tp6ZzFr_f2-9SyEwViersA5WnOpu4_YIk_0T80)
Compass - powerful SASS library that makes your life easier
Tags: courses, css, html
Published: 2019-10-25 14:35:00

---
title: Compass - powerful SASS library that makes your life easier
published: true
tags: Courses, css , HTML
canonical_url: https://udemyhunt.com/course/compass-powerful-sass-library-that-makes-your-life-easier/
cover_image: https://i.udemycdn.com/course/480x270/383042_a840_2.jpg
---


Compass is a framework (library) for SASS which means that inside of it you can find lots of useful utilities -that I will be showing you inside this course.

These utilities can save your time with developing your websites. By using Compass, you can use various functions/mixins created by other programmers, which you would normally need to write on your own.

As always time = money. Save your time by learning Compass. 

Make your website load faster using Sprites within Compass. With Compass you can create Sprites instantly. If you do not know what Sprites are, watch my free lesson about Sprites and you will see that this course is worth taking. 

After my course you will know how to: 

install compass

integrate compass with sass

use compass

use and know what are sprites

use Compass inside a great IDE

create vendor prefixes using mixins

and much more

<center>[Enroll Course](https://udemyhunt.com/course/compass-powerful-sass-library-that-makes-your-life-easier/)<center>