Skip to content

Commit

Permalink
Update articles 2019 [EN] - part I
Browse files Browse the repository at this point in the history
  • Loading branch information
womanonrails committed Sep 19, 2024
1 parent 83a460a commit 75d4c7b
Show file tree
Hide file tree
Showing 9 changed files with 38 additions and 72 deletions.
2 changes: 1 addition & 1 deletion _i18n/en/_posts/2016-10-25-rails-girls-cieszyn.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ headline: My code is getting worse, please send more chocolate
categories: [workshops]
tags: [Rails Girls, Ruby on Rails]
place: Cieszyn
comments: true
lang: en
show_date: true
---

Expand Down
22 changes: 10 additions & 12 deletions _i18n/en/_posts/2019-05-18-where-to-start.md

Large diffs are not rendered by default.

8 changes: 3 additions & 5 deletions _i18n/en/_posts/2019-06-12-ruby-pattern-matching.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ lang: en
last_modified_at: 2022-01-19 10:00:00 +0200
---

Some time ago I wrote an article about <a href="{{ site.baseurl }}/elixir-pattern-matching" title="Elixir - How to fit to the pattern?">Pattern matching in Elixir</a>. I really like this idea. Now from Ruby version 2.7 we have **pattern matching in Ruby**!!! It is not the same like in Elixir, but it is a nice feature to have. Keep in mind that this is still an experimental feature, so it can change in the future versions of Ruby. Let's check out what we can do with pattern matching in Ruby.
Some time ago I wrote an article about [Pattern matching in Elixir]({{site.baseurl}}/elixir-pattern-matching "Elixir - How to fit to the pattern?"). I really like this idea. Now from Ruby version 2.7 we have **pattern matching in Ruby**!!! It is not the same like in Elixir, but it is a nice feature to have. Keep in mind that this is still an experimental feature, so it can change in the future versions of Ruby. Let's check out what we can do with pattern matching in Ruby.

Before we start, let's remind ourselves **what is pattern matching?** Pattern matching is a way to specify a pattern for our data and if data are matched to the pattern we can deconstruct them according to this pattern. In other words: Pattern matching is choosing specific elements from data, based on defined rules. We can also say that pattern matching is like _regular expressions_ with multiple assignments not only for strings.

Expand Down Expand Up @@ -171,9 +171,7 @@ irb> c
## Pattern matching in Hash

When we talk about pattern matching in Hash, you need to know that right now it will work only for **Hashes where keys are symbols**. It will not work for strings. You can find more about the reasons and problems related with string syntax for hashes in
{% include links/external-link.html
name='Kazuki Tsujimoto presenation'
url='https://speakerdeck.com/k_tsj/pattern-matching-new-feature-in-ruby-2-dot-7' %}
[Kazuki Tsujimoto presenation](https://speakerdeck.com/k_tsj/pattern-matching-new-feature-in-ruby-2-dot-7)
about _Pattern matching in Ruby_.

Let's start with something simple:
Expand Down Expand Up @@ -527,7 +525,7 @@ When I play around pattern matching in Ruby, I found some cases which are not a

I know that some of my ideas could be not possible or hard to do, but this is my wish list. ;]

From Ruby 3.0, we have more pattern matching features available. If you want to know more check out my article: <a href="{{ site.baseurl }}/ruby-pattern-matching-second-look" title="News about pattern matching in Ruby">Second look at pattern matching in Ruby</a>.
From Ruby 3.0, we have more pattern matching features available. If you want to know more check out my article: [Second look at pattern matching in Ruby]({{site.baseurl}}/ruby-pattern-matching-second-look "News about pattern matching in Ruby").

## Summary

Expand Down
18 changes: 5 additions & 13 deletions _i18n/en/_posts/2019-07-03-functional-programming-ruby.md
Original file line number Diff line number Diff line change
Expand Up @@ -492,7 +492,7 @@ To do Lisp lists in Ruby we will use lazy enumerators and recursion. But first,
=> (2 3 4)
```

If you read my article about <a href="{{ site.baseurl }}/elixir-pattern-matching" title="Elixir - How to fit into the pattern?">Elixir basics</a> you can compare `car` and `cdr` methods to `head` and `tail` in Elixir. `car` will always return first element of the list and `cdr` will return list without first element. Let's prepare a Ruby array to behave like Lisp lists.
If you read my article about [Elixir basics]({{site.baseurl}}/elixir-pattern-matching "Elixir - How to fit into the pattern?") you can compare `car` and `cdr` methods to `head` and `tail` in Elixir. `car` will always return first element of the list and `cdr` will return list without first element. Let's prepare a Ruby array to behave like Lisp lists.

```ruby
car, cdr = [1,[2,[3]]]
Expand Down Expand Up @@ -636,9 +636,7 @@ irb> (1..Float::INFINITY).lazy.select(&:even?).first(5)
```

If you want more information about them, check out
{% include links/external-link.html
name='Lazy enumerator documentation'
url='https://ruby-doc.org/core/Enumerator/Lazy.html' %}.
[Lazy enumerator documentation](https://ruby-doc.org/core/Enumerator/Lazy.html).

That's all for today. I hope you like it. If you have any questions put them in the comments below. I will try to answer them. See you next time!

Expand All @@ -647,12 +645,6 @@ That's all for today. I hope you like it. If you have any questions put them in
- {% include links/youtube-link.html
name='An Introduction video about Procs, Lambdas and Closures in Ruby'
video_id='VBC-G6hahWA' %}
- {% include links/external-link.html
name='Presentation about functional programming in Ruby'
url='https://www.slideshare.net/tokland/functional-programming-with-ruby-9975242' %}
- {% include links/external-link.html
name='Article about closures in Ruby'
url='https://innig.net/software/ruby/closures-in-ruby' %}
- {% include links/external-link.html
name='Ruby documentation'
url='https://ruby-doc.org/' %}
- [Presentation about functional programming in Ruby](https://www.slideshare.net/tokland/functional-programming-with-ruby-9975242)
- [Article about closures in Ruby](https://innig.net/software/ruby/closures-in-ruby)
- [Ruby documentation](https://ruby-doc.org/)
26 changes: 7 additions & 19 deletions _i18n/en/_posts/2019-08-07-4developers-2019.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,36 +17,24 @@ lang: en
show_date: true
---

Normally I'm quite active in <a href="{{ site.baseurl }}/tags/#Rails%20Girls" title='Rails Girls Workshops'>Rails Girls</a> community. I'm a mentor and an organizer, and also a speaker at Rails Girls workshops. In this year is a little bit different. I spend less time supporting Rails Girls events, but I challenged myself in a different way. I started sending my proposals to the conferences. I wanted to be a speaker at more than just local community groups or Rails Girls events.
Normally I'm quite active in [Rails Girls]({{site.baseurl}}/category/workshops "Rails Girls Workshops") community. I'm a mentor and an organizer, and also a speaker at Rails Girls workshops. In this year is a little bit different. I spend less time supporting Rails Girls events, but I challenged myself in a different way. I started sending my proposals to the conferences. I wanted to be a speaker at more than just local community groups or Rails Girls events.

Finally, my candidature was accepted
on both local editions of conferences:
{% include links/external-link.html
name='4Developers in Cracow'
url='https://4developers.org.pl/krakow/' %}
**4Developers in Cracow**
and
{% include links/external-link.html
name='4Developers in Katowice'
url='https://4developers.org.pl/katowice/' %}.
[4Developers in Katowice](https://4developers.org.pl/katowice/).
I have never been on 4Developers conference, but I hope, it will be a great experience for me. I will have an honor to say two presentations at this events. Here they are.

<h2>
<a href="http://womanonrails.com/presentations/are-you-egoistic-programmer" title='Refactoring presentation slides'>Are you an Egoistic Programmer? - Step by step refactoring</a>
</h2>
## [Are you an Egoistic Programmer? - Step by step refactoring](https://womanonrails.github.io/presentations/are-you-egoistic-programmer.html#/ "Refactoring presentation slides")

<a href="http://womanonrails.com/presentations/are-you-egoistic-programmer" title='Refactoring presentation slides'>
<img src="{{ site.baseurl_root }}/images/4developers/cracow.jpg" alt='4Developers Conf in Cracow'>
</a>
[![4Developers Conf in Cracow]({{site.baseurl_root}}/images/4developers/cracow.jpg)](https://womanonrails.github.io/presentations/are-you-egoistic-programmer.html#/ "Refactoring presentation slides")

In this presentation I would like to focus on small things, which every programmer can do to improve readability of source code. I want to show, that small things matter in architecture of our applications. At first, we should think about this small improvement, before we will start even thinking about big things like DDD or CQRS. I will show you some examples where this small improvement made a difference.

<h2>
<a href="https://womanonrails.com/presentations/quality-assurance-tdd-example" title='TDD presentation slides'>Quality Assurance - Based on TDD example</a>
</h2>
## [Quality Assurance - Based on TDD example](https://womanonrails.github.io/presentations/quality-assurance-tdd-example.html#/ "TDD presentation slides")

<a href="https://womanonrails.com/presentations/quality-assurance-tdd-example" title='TDD presentation slides'>
<img src="{{ site.baseurl_root }}/images/4developers/katowice.jpg" alt='4Developers Conf in Katowice'>
</a>
[![4Developers Conf in Katowice]({{site.baseurl_root}}/images/4developers/katowice.jpg)](https://womanonrails.github.io/presentations/quality-assurance-tdd-example.html#/ "TDD presentation slides")

Second presentation is about creating an application using TDD. We often talk how important quality is during a development process. TDD is one of these things, we can do to improve the quality. It can be our protection. Our safeguard, when we talk about bugs. Especially when your programming language has dynamic typing like Ruby and you don't have compiler. ;]

Expand Down
6 changes: 3 additions & 3 deletions _i18n/en/_posts/2019-10-02-ruby-iterators.md
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ array
# => [{:static=>"I don't want to be changed!", :dynamic=>"I can change yours objects!"}, {:static=>"Me too!", :dynamic=>"I can change yours objects!"}]
```

You can see that in this case, as a result, we get from `each` different collection, then initial collection was. The second thing is that not only result changed, but we modify `array` object too! This happened always when `item` as an element of the collection is a _complex object_ and we try to change it for example by assignment. I said more about this problem in an article about <a href="{{ site.baseurl }}/ruby-hash-tips" title="Useful methods for Hash in Ruby">Ruby hash tips</a>. This will not happen when you work on simple array with numbers.
You can see that in this case, as a result, we get from `each` different collection, then initial collection was. The second thing is that not only result changed, but we modify `array` object too! This happened always when `item` as an element of the collection is a _complex object_ and we try to change it for example by assignment. I said more about this problem in an article about [Ruby hash tips]({{site.baseurl}}/ruby-hash-tips "Useful methods for Hash in Ruby"). This will not happen when you work on simple array with numbers.

```ruby
array = [1, 2, 3]
Expand All @@ -154,8 +154,8 @@ array

You will use `each` iterator each time when the calculations are the most important part of your code. You are not interested in what `each` will return and in most cases you don't want to change an initial object.

At the end of this section I will add one more thing. There are different types of `each`. For example: `each_char`, `each_line`, `each_with_index` or <a href="{{ site.baseurl }}/each-with-object" title="How to use each_with_object method?">`each_with_object`</a>. You can use them in a different context for specific purposes. If you are interested in more details, please check
{% include links/external-link.html name='Ruby documentation' url='https://ruby-doc.org/' %}.
At the end of this section I will add one more thing. There are different types of `each`. For example: `each_char`, `each_line`, `each_with_index` or [`each_with_object`]({{site.baseurl}}/each-with-object "How to use each_with_object method?"). You can use them in a different context for specific purposes. If you are interested in more details, please check
[Ruby documentation](https://ruby-doc.org/).

### Map / collect

Expand Down
9 changes: 4 additions & 5 deletions _i18n/en/_posts/2019-10-27-4developers-local-events-2019.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ In one of my last articles I have written about my new challenge. To be a speake

<!--break-->

4Developers is a conference where the main edition took a place in April in Warsaw this year (2019). This is an event which brings over 2,000 participants interested in the IT world to one place. It doesn't matter if you are working in Python, JavaScript, PHP or any other technology. There were 14 paths related to different topics like cloud computing, data science, mobile or even soft skills. After this one big event there are smaller local editions, which have similar structure. Different topics on different paths, but each local event has its own atmosphere. Krakow and Katowice already had their local events. You can find more about them in my previous article about <a href="{{ site.baseurl }}/4developers-2019" title='4Developers 2019'>4Developers</a>. Now we are waiting for Wroclaw 5th of November and Poznan 18th of November. The end of this IT marathon will be in Gdansk on 27th of November where will take a place 4Developers OFFLINE will take a place.
4Developers is a conference where the main edition took a place in April in Warsaw this year (2019). This is an event which brings over 2,000 participants interested in the IT world to one place. It doesn't matter if you are working in Python, JavaScript, PHP or any other technology. There were 14 paths related to different topics like cloud computing, data science, mobile or even soft skills. After this one big event there are smaller local editions, which have similar structure. Different topics on different paths, but each local event has its own atmosphere. Krakow and Katowice already had their local events. You can find more about them in my previous article about [4Developers]({{site.baseurl}}/4developers-2019 "4Developers 2019"). Now we are waiting for Wroclaw 5th of November and Poznan 18th of November. The end of this IT marathon will be in Gdansk on 27th of November where will take a place 4Developers OFFLINE will take a place.

#### 4Developers discount

Expand All @@ -40,12 +40,11 @@ As I mention in the beginning I had good news for you. I have a discount for bot

#### How to win a free ticket for 4Developers in Poznan?

Do you want even more good news? You can win a free ticket for the Poznan edition of the 4Developers conference. The conference is on 18th of November in Novotel & ibis Poznan Hotel. You can find more details about the event
{% include links/external-link.html name='here' url='https://4developers.org.pl/poznan-2019/' %}.
Do you want even more good news? You can win a free ticket for the Poznan edition of the 4Developers conference. The conference is on 18th of November in Novotel & ibis Poznan Hotel. You can find more details about the event on 4Developers page.
To take a part in this contest you need to:

1. Like <a href="https://www.facebook.com/107403177317825/" title='Woman on Rails Facebook page' target='_blank' rel='nofollow noopener'>Woman on Rails page on Facebook</a>
2. Answer the question: **Why do you want to go to 4Developers in Poznan?** in the Polish comments section for <a href="{{ site.baseurl }}/pl/4developers-local-events-2019" title='4Developers - local events'>Lokalne edycje konferencji 4Developers 2019</a> article. With a minimum of 512 characters.
1. Like [Woman on Rails page on Facebook](https://www.facebook.com/107403177317825/ "Woman on Rails Facebook page")
2. Answer the question: **Why do you want to go to 4Developers in Poznan?** in the Polish comments section for [Lokalne edycje konferencji 4Developers 2019]({{site.baseurl}}/pl/4developers-local-events-2019 "4Developers - local events") article. With a minimum of 512 characters.

If you want to take a part of this contest, please start your comment with the hashtag **#4Dev2019**.

Expand Down
2 changes: 1 addition & 1 deletion _i18n/en/_posts/2019-11-10-rails-girls-warsaw-2019.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ imagefeature: rails-girls-warsaw-2019/og_image.jpg
show_date: true
---

There it is! The Rails Girls Warsaw 2019 edition! Rails Girls workshops in Warsaw are one of my favorites in Poland. They are always close to my heart. First time I was a mentor at <a href="{{ site.baseurl }}/rails-girls-warsaw" title="Rails Girls Warsaw - first time as a mentor">Rails Girls Warsaw in 2014</a>. Now I go around Poland to share my programming knowledge. This time in Warsaw.
There it is! The Rails Girls Warsaw 2019 edition! Rails Girls workshops in Warsaw are one of my favorites in Poland. They are always close to my heart. First time I was a mentor at [Rails Girls Warsaw in 2014]({{site.baseurl}}/rails-girls-warsaw "Rails Girls Warsaw - first time as a mentor"). Now I go around Poland to share my programming knowledge. This time in Warsaw.

<figure class='half'>
<a href="{{ site.baseurl_root }}/images/rails-girls-warsaw-2019/01-rails-girls-bags.jpg">
Expand Down
17 changes: 4 additions & 13 deletions _i18n/en/_posts/2019-12-11-occupational-burnout.md
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ OK, so what we can do about burnout syndrome? How we can help ourselves or our f

2. **Constraints**

This can help in situations when you feel bored and stuck. If your work looks the same every day and you feel no stress, nor motivation to do something, you can use a little bit of gamification just for yourself. For example, try to not use a mouse per one day. In this case, you can <a href="{{ site.baseurl }}/sublime" title="Sublime Text Editor - shortcuts">learn new shortcuts</a> and appreciate, that normally you have mouse support. You can change your editor. This will show you how much you depend on your setups or your IDE. This can remind you of a structure of your programming language or framework you use. You can also give yourself some constraints in the code. Good inspiration can be <a href="{{ site.baseurl }}/coderetreat" title="Coderetreat workshops in Krakow">Global Day of Coderetreat</a>. No `if` conditions or only functional approach. There are many ways to challenge yourself in the work. Try it. It can be fun!
This can help in situations when you feel bored and stuck. If your work looks the same every day and you feel no stress, nor motivation to do something, you can use a little bit of gamification just for yourself. For example, try to not use a mouse per one day. In this case, you can [learn new shortcuts]({{site.baseurl}}/sublime "Sublime Text Editor - shortcuts") and appreciate, that normally you have mouse support. You can change your editor. This will show you how much you depend on your setups or your IDE. This can remind you of a structure of your programming language or framework you use. You can also give yourself some constraints in the code. Good inspiration can be [Global Day of Coderetreat]({{site.baseurl}}/coderetreat "Coderetreat workshops in Krakow"). No `if` conditions or only functional approach. There are many ways to challenge yourself in the work. Try it. It can be fun!

3. **Supportive people around**

Expand Down Expand Up @@ -162,15 +162,6 @@ Now I would like to ask you: Did you ever had burnout syndrome? How did you deal

#### Bibliography

- {% include links/external-link.html
name='World Health Organization about burn-out an "occupational phenomenon"'
url='https://www.who.int/mental_health/evidence/burn-out/en/' %}
- {% include links/external-link.html
name='Wikipedia about burnout syndrome'
url='https://en.wikipedia.org/wiki/Occupational_burnout' %}
- {% include links/external-link.html
name='Jak Feniks z popiołów czyli syndrom wypalenia zawodowego [PL]'
url='http://www.psychologia.edu.pl/czytelnia/59-niebieska-linia/779-jak-feniks-z-popiolow-czyli-syndrom-wypalenia-zawodowego.html' %}
- {% include links/external-link.html
name='Podcast episode about occupation burnout syndrome by Maciej Aniserowicz [PL]'
url='https://devstyle.pl/2017/10/16/devtalk63-o-wypaleniu-zawodowym-z-arturem-krolem/' %}
- [World Health Organization about burn-out an "occupational phenomenon"](https://www.who.int/mental_health/evidence/burn-out/en/)
- [Wikipedia about burnout syndrome](https://en.wikipedia.org/wiki/Occupational_burnout)
- [Podcast episode about occupation burnout syndrome by Maciej Aniserowicz [PL]](https://devstyle.pl/2017/10/16/devtalk63-o-wypaleniu-zawodowym-z-arturem-krolem/)

0 comments on commit 75d4c7b

Please sign in to comment.