teleren/devto huggingface dataset:
Energy Forecasting with LSTM Neural Network
Tags: lstm, machinelearning, python, datascience
Published: 2024-02-12 00:09:00

Several methods have been used in energy forecasting over the years. Methods from different disciplines, such as ARMA and ARIMA models from econometrics and probabilistic and regression models from the domain of statistics, which also has an intersection with the symbolic AI field, to name a few. This experiment forecasts energy demand using the Long Short-Term Memory (LSTM) Neural Network models.

## Data Source

[National Grid Electricity System Operators (National Grid ESO)
](https://data.nationalgrideso.com/data-groups/demand)

## Google Collab Code
{% embed https://colab.research.google.com/drive/1QEZOsjiF1Wls0AePxQmaJoGpFlkX2Fm4?usp=sharing %}

## References
Gers, F. A., Schmidhuber, J., & Cummins, F. (2000). Learning to forget: Continual prediction with LSTM. Neural Computation, 12(10), 2451–2471.

Hochreiter, S., & Schmidhuber, J. (1997). Long Short-Term Memory. Neural Computation, 9(8), 1735–1780. https://doi.org/10.1162/neco.1997.9.8.1735

Yu, Y., Si, X., Hu, C., & Zhang, J. (2019). A Review of Recurrent Neural Networks: LSTM Cells and Network Architectures. Neural Computation, 31(7), 1235–1270. https://doi.org/10.1162/neco_a_01199
How Crucial is Your LinkedIn Profile?
Tags: discuss
Published: 2024-02-12 00:00:00

---
published_at : 2024-02-12 00:00 +0000
---
How has LinkedIn impacted your professional connections and job opportunities? Share tips on leveraging this platform effectively.
<br>
Follow the DEVteam for more discussions and online camaraderie!
{% embed [https://dev.to/devteam](https://dev.to/devteam) %}
Symfony conventions making their way to Drupal
Published: 2024-02-16 20:37:11

---
title: Symfony conventions making their way to Drupal
published: true
date: 2024-02-12 00:00:00 UTC
tags: 
canonical_url: https://www.oliverdavies.uk/archive/2024/02/12/symfony-conventions-making-their-way-to-drupal
---

Drupal 8 was a major turning point for Drupal when it was released in 2015.

Moving from "not invented here" to "proudly found elsewhere" and "getting off the island", Drupal 8 introduced Composer to Drupal core and several of the Symfony PHP components.

Following Drupal 8's release, Drupal core started to follow semantic versioning and, six months later, released Drupal 8.1.0 with new features.

In comparison, Drupal 7, with non-semantic versioning, is now on version 7.99.

The approach to having fixed release dates instead of feature-based release dates is also used in Symfony, which makes it much easier to plan for.

The differences between major versions, such as Drupal 9 and 10, is the removal of deprecated code - making it much easier than ever before to upgrade to the new major version of Drupal core. Sometimes, you won't need to update any custom code - especially if it's been maintained and updated during the minor releases.

I've been pleased to see Symfony features such as autowiring and autoconfiguration start to be used within Drupal, as well as discussions around using PHP attributes to replace annotations and docblocks.

Most recently, when writing my [automated testing email course](https://www.oliverdavies.uk/atdc), I saw a number of aliases have been added to core's `core.services.yml` file, which means I can use the fully qualified class name as the service name without adding aliases to my own services files.

Drupal and Symfony are separate projects, and Drupal uses more than just Symfony components, but as someone who uses Drupal and Symfony, I'm happy to see them learning from and inspiring each other.

I'm looking forward to seeing the next thing - [Twig components](https://www.oliverdavies.uk/podcast/10-ryan-weaver-symfonycasts), maybe - in Drupal.

P.S. Do you need immediate access to an expert Drupal Developer? [With my Drupal development subscription](https://www.oliverdavies.uk/subscription), make unlimited requests for a fixed monthly price in less time than posting to a job board!
Trigger an action when toggle
Published: 2024-02-11 23:22:03

I have a toggle in my app Settings where I can switch on and off the onboarding view.

Previously I was using if/else at App start to check if show onboarding, but now I have app state as Environment Object, I need to be able to change app state with something like:

```
if isOnboarding {
                    appManager.restartOnboarding()
                  }
```

So I found this link: [](https://stackoverflow.com/a/64760340) and the example code like below

```
struct ContentView: View {
    @State private var isDisplayed = false
    
    var body: some View {
        Toggle("", isOn: $isDisplayed)
            .onChange(of: isDisplayed) {
                print("Action")
            }
            .onChange(of: isDisplayed) { oldValue, newValue in
                // action...
                print(oldValue, newValue)
            }
    }
}
```


This works for me.
Bipartite graphs
Tags: tutorial, beginners, learning
Published: 2024-02-11 23:02:15

## What is a bipartite graph 
 bipartite graph is actually really simple graph that I shall explain in just a few minutes below

A bipartite graph is such a graph where you can split the nodes into two sets that have no intersection (disjoint sets), where no two nodes in the same set have an edge between them. So this means that an edge will only connect two nodes from different sets. 

An example:
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gzlpw6me24f9gt46b0zp.png)

you will have to forgive my terrible digital drawing skills, but i think this simple diagram gets the point across. We have 5 nodes here and there are two different sets: N1, N2, N3 are a part of one set, and N4, N5, N6 are part of the other set. There are also no edges within the red nodes, or within the green nodes.

## attributes
 - Two disjoint set of vertices
 - A node can only have as many edges as there are nodes in the smaller set
 - Every edge will connect an edge in one set to an edge in another set
 - There are no odd-length cycles. This is because to have an odd length cycle there must be an edge between nodes in the same set, and this goes against the definition of a bipartite graph

## Uses
One use that will be something that we all have interacted with is web search engines, as queries can be one set while web pages is another set. 
Another use of bipartite graphs is in neural networks which are very useful in machine learning. 
One last use is in matching problems. These are very important problems in graph theory, and one way to solve these is to use the Hungarian algorithm which is what i shall write an article on soon.

Well that is the basics of bipartite graphs and i hope that you found this insightful. Until next time.
Sprint 1: Introduction to Ruby on Rails
Published: 2024-02-11 22:29:32

After dealing with some Sinatra, it is time to graduate and learn how to utilize Ruby on Rails. It is probably the most intimidating task I've ever had to deal with. Files upon files, and it doesn't seem to end. 

Here's the first task, define the routes we want the users to access. To do so, we first have to head to /config/routes.rb. This is where we can define our routes (rails automatically comes with this code):

```
Rails.application.routes.draw do

end
```

Inside this do/end block, we can use our get() method (or post(), if necessary) to define our routes. This is where it gets confusing:

```
get("/divide", { controller: "division:, action: "show_division_form" }
```

It looks a little different, what's happening?
1. The get() method takes on two arguments: first -> a String defining the URL route and second -> a Hash containing two keys, :controller and :action. 

2. The first Key, :controller, is a Class we define in order to house the Ruby logic for the specified route. 

3. The second Key, :action, is the method contained within the Class which is the actual Ruby logic we create to perform certain tasks. 

Connecting the FIRST dot: config/routes.rb -> app/controllers/[:controller_value]_controller.rb

1. Create a new file: /app/controllers/[:controller_value]_controller.rb and define the Class specified in routes.rb:

```
class DivisionController < ApplicationController

   def show_division_form
      render({ template: "division_templates/division_form"})
   end
end
```
What is happening?

1. We create a new Class "DivisionController" and inherit from a Parent Class "ApplicationController". In doing so, we can utilize all the useful methods this Child Class would need. 

2. We connect the next dot: inside of render, we use another Hash to tell our route which view template it should connect to. The Value paired with this Key should be the name of the .html.erb file we are going to create to house all of our HTML/CSS.

Connecting the LAST dot: app/controllers/[:controller_value]_controller.rb -> [ChildClass_name]_templates/[template_name].html.erb

1. To check if we have properly connected the three files (i.e. routes.rb, [controller_name]_controller.rb, and [template_name].html.erb, we have to get back to our roots. In the .html.erb file, write this:

```
<h1>Hello world!</h1>
```

2. When you check the URL: yourdomainname.com/divide, it should now have an H1 heading of "Hello world!" 

NICE! Welcome to Ruby on Rails. 

CY@.
CRYPTO RECOVERY EXPERT SERVICES AND SOLUTIONS WITH-LEEULTIMATEHACKER@AOL.COM
Published: 2024-02-11 22:29:26

When it comes to Bitcoin recovery, time isn't always on your side. The difficulty of recovering the Bitcoin may increase with the amount of time that has passed since the loss. Prompt action is necessary for a better likelihood of success due to the constantly developing blockchain technology and the potential for lost Bitcoin to travel throughout the huge digital environment. The recovery process can be greatly impacted by law enforcement cooperation in cases involving theft or fraudulent activity. Collaborating closely with law enforcement guarantees that all available means are employed to apprehend the offenders and retrieve the misplaced Bitcoin. LEE ULTIMATE HACKER actively collaborates with pertinent agencies to increase the likelihood of success because it recognizes the value of teamwork. When it comes to recovering lost BTC, LEEULTIMATEHACKER@AOL.COM offers some nifty perks. For starters, their team of experts knows their stuff. They have the experience and technical know-how to dig through the digital maze and track down those missing coins. Plus, they've developed advanced tools and techniques to make the recovery process as efficient as possible. Another advantage of choosing LEE ULTIMATE HACKER is their dedication to customer service. They understand that losing BTC can be a stressful experience, and they strive to provide personalized support throughout the recovery journey. You won't feel like just another number in their system - they'll treat you like a fellow wizard in need. Now, let's talk about the not-so-magical side of things. Recovering lost BTC is a complex task, and even the most skilled wizards have their limitations. One of the main challenges is the decentralized nature of cryptocurrencies. Once those coins are gone, they can be hard to trace and retrieve. It's like trying to catch a sneaky leprechaun in a field of four-leaf clovers. Additionally, the success of the recovery process depends on various factors, such as the information provided by the client and the circumstances surrounding the loss. Sometimes, the lost BTC might have wandered off to an unreachable digital realm, making recovery impossible. It's important to set realistic expectations and understand that not all lost BTC can be recovered. Nothing speaks louder than the words of those who have experienced the magic of BTC recovery with LEE ULTIMATE HACKER. Clients have shared their stories of despair turned into delight as their lost coins were found. From accidentally sending BTC to the wrong address to forgotten passwords and lost wallets, the testimonials showcase the expertise and dedication of the LEE ULTIMATE HACKER team. 
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/knoj9y29pw06fyjbfnn4.jpg)
Next.js Codebase Analysis <> create-next-app <> index.ts explained — Part 1.17
Tags: javascript, nextjs, react, webdev
Published: 2024-02-11 22:04:34

In the previous article, I wrote about a prompt related to tailwind, src-dir and app.

> I teach project-based frontend learning at https://tthroo.com, check it out.

```
if (
      typeof program.importAlias !== 'string' ||
      !program.importAlias.length
    ) {
      if (ciInfo.isCI) {
        // We don't use preferences here because the default value is @/* regardless of existing preferences
        program.importAlias = defaults.importAlias
      } else {
        const styledImportAlias = blue('import alias')

        const { customizeImportAlias } = await prompts({
          onState: onPromptState,
          type: 'toggle',
          name: 'customizeImportAlias',
          message: `Would you like to customize the default ${styledImportAlias} (${defaults.importAlias})?`,
          initial: getPrefOrDefault('customizeImportAlias'),
          active: 'Yes',
          inactive: 'No',
        })

        if (!customizeImportAlias) {
          // We don't use preferences here because the default value is @/* regardless of existing preferences
          program.importAlias = defaults.importAlias
        } else {
          const { importAlias } = await prompts({
            onState: onPromptState,
            type: 'text',
            name: 'importAlias',
            message: `What ${styledImportAlias} would you like configured?`,
            initial: getPrefOrDefault('importAlias'),
            validate: (value) =>
              /.+\/\*/.test(value)
                ? true
                : 'Import alias must follow the pattern <prefix>/*',
          })
          program.importAlias = importAlias
          preferences.importAlias = importAlias
        }
      }
    }
  }
```

The above code is reponsible for the prompts shown in below 2 images:

![prompt-1](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bg6lg3qwbed15pc3j93e.png)


![prompt-2](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jkyg6wrfhvm5hx0tuok5.png)

Notice that these prompts do not store user preferences since they use a default value for import.

## Conclusion:

With this, all the prompts related code is complete. Up next, I will explain how the next app starter project is created.

Don’t forget to check out https://tthroo.com/ to learn how to develop frontend projects.
zsh: command not found: code - Solved!
Tags: vscode, terminal, beginners, code
Published: 2024-02-11 21:49:29




There are so many ways to open a project in VS code. My favorite is to navigate to the project directory from my terminal and invoke VS code on the directory by simply typing `code .`

However, sometimes the magic wand doesn't work, especially after a new installation of VS Code. It would instead just spit out `zsh: command not found: code` in the terminal. So how do you solve this?

1. Open your VS code 
2. Press `Command + Shift + P`. This will open the command palette. 
3. Then search for `shell command`. 
4. Select `Install 'code' command in PATH`. You might be prompted to type in your password. That's it. 
5. Head over to your terminal and type `code .`.

That's it! Happy coding!
Desafio 1 - Formação AWS
Tags: aws, henryllemaia, rds, multiaz
Published: 2024-02-11 21:38:56

Muito feliz em participar da Mentoria Desafio Labs 2.0 da Formação AWS do [Henrylle Maia](https://br.linkedin.com/in/henrylle). Nesse primeiro Desafio aprendi na prática como me conectar ao RDS, usando PGSQL, de forma remota, através do DBeaver. Como parte do laboratório, trabalhamos com security groups, gerenciamento de Backups e Snapshots e os tipos de alocação de instâncias no RDS. Bora pro próximo Lab	


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u8hslghipoui9wq4xnds.png)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fu7nwoaahwvj6uc2ihej.png)

Continuação - https://dev.to/caiohenrique/sql-server-na-aws-3729
Day 1 with C
Published: 2024-02-11 21:04:45

The first program every programmer writes in a new programming language is to print Hello, World! Let us do that in C.

```C
#include <stdio.h>  //include information about the standard library

int main() // define a function named main tat receives no arguement values
{
   // statements of main are enclosed in braces

   printf("Hello, Wordl!\n");
   
//    main calls a library function printf to print the sequences of    //    characters. \n represents the newline character.
//
}
```
Just how you run the program depends on the operating system you are using. On Linux-based OSes, you can use gcc to compile the program. Suppose the code is stored in a file called helloworld.c; you can compile it by using the command below.

```C
gcc helloworld.c -o hello
./hello

// -o mean the output should be stored in a filed called hello which we then run.
// the result of the code will be the words "Hello, Wordl!" being printed on the standard output.
```
Learning Elixir with ELXPRO - Gustavo Oliveira
Tags: podcast, elixir
Published: 2024-02-11 20:54:25

In this episode of the Professor Adolfo Neto podcast, join me, Adolfo, as we sit down with Gustavo Oliveira, creator of ELXPRO, an advanced Elixir course. We uncover Gustavo's Elixir journey and the inspiration behind ELXPRO. Delve into the current landscape of Elixir developers as Gustavo shares market insights and dispels myths about opportunities for developers at different levels.

[Podsqueeze webpage for this episode](https://podsqueeze.com/podcasts/0anypvpson)

Watch on YouTube at ⁠
{% youtube  https://youtu.be/bTUVIXg3Z28⁠ %}

[Listen/watch at Spotify](https://podcasters.spotify.com/pod/show/adolfont/episodes/Learning-Elixir-with-ELXPRO---Gustavo-Oliveira-e2dde66). 

The spotlight then turns to ELXPRO itself. Gustavo walks us through its unique features, giving you a sneak peek into how it empowers aspiring developers to master Elixir and its associated tools.

If you're curious and ready to take your Elixir skills to the next level, check out my affiliate link to ELXPRO ⁠[https://go.hotmart.com/F73840549I⁠](https://go.hotmart.com/F73840549I)
 
Your exploration not only opens doors to ELXPRO but also supports the future of this podcast.

A big thank you to Gustavo for sharing his expertise with us today. 

Find Gustavo Oliveira on Linkedin
[⁠https://www.linkedin.com/in/gustavo-oliveira-642b23aa/⁠](⁠https://www.linkedin.com/in/gustavo-oliveira-642b23aa/⁠)
DynamoDB :Wonders in Data analytics
Tags: aws, dynamodb, learning
Published: 2024-02-11 20:40:19

Recently in my exploration of cloud computing, I came across DynamoDB, a game-changing tool for data analytics. Its fully managed NoSQL architecture offers absolute flexibility and scalability, making it a great fit for handling large datasets efficiently.

What truly caught my attention was DynamoDB's seamless integration with other AWS services like Lambda, Kinesis, etc. This compatibility enables the creation of data pipelines for real-time processing and analysis.

DynamoDB's support for secondary indexes and flexible data modeling allows for complex queries and aggregations with ease. Features like Global Tables and DynamoDB Streams ensure a high availability and data durability, engraving confidence in data security and accessibility.

As I instructed for my Cloud Practitioner certification recently, DynamoDB's role in modern data analysis workflows caught my interest. Its ability to architect scalable and cost-effective solutions provides me as a valuable asset in the world of data-driven innovation.

Summoning up my learnings, DynamoDB has transformed my understanding of data analytics in the cloud. With its capabilities, I am understood to navigate the complexities of modern data analysis and drive meaningful effect for organisations leveraging the power of their data.
Bite-sized advice: Imposter Syndrome
Tags: webdev, beginners, programming, productivity
Published: 2024-02-11 20:30:02

If you spend half of your day wondering if you deserve that new role you just landed or questioning your manager's decision to make you lead that huge project, welcome to the club!

Your subscription to the "Imposter Syndrome" magazine is here! New issues are out every day, reminding you how much "not-enough" you are about everything. Enjoy!

You are not alone.

Jokes aside... I hope it helps you know that most people go through these feelings sometime in their careers. Especially if you want to grow you will find yourself in that situation every 3-5 years.

But because we all are having the same issues doesn't mean yours does not matter, on the contrary! It probably means that these issues are a real problem but also that you can get different advice on how to fight them.

## Practical advice

### Talk about it.

If you feel like a fraud, talk about it with friends, family or colleagues. Saying out loud what is on your mind helps you debunk it. Most of the time imposter's thoughts are saturated and completely made up. So when they are spoken and materialized is easy to be seen as what they are, imaginery facts to prove something that is not there.

### Create a list of successes.

Next time you get the new issue from Imposter Syndrome magazine, read it, talk about it, and then write a letter back to the author explaining why you disserve what you have. In the letter, try to introduce yourself with your full title, and then talk about what you have succeeded in the past. Write down a numbered list of all the things that you have achieved that lead you to the current status you are in. Save that list and stick it somewhere easily accessible. This will make you fight against imaginary thoughts with an arsenal full of concrete facts. The thoughts will not stand a chance here.

### Ignore it.

Ignore the thoughts and lose yourself in the tasks. Last but not least, maybe even my favorite one, is to ignore the imposter syndrome issues altogether. Let the current task, whatever is in front of you at the given moment, be your main focus. Let the thoughts of feeling a phony come and go, dissolving them with your actions, proving to yourself that you can do the job and deserve where you are. Beating the thoughts with actions, and realizing that they are just thoughts, weakens them in the long run!

## Conclusion

These three actionable pieces of advice are not meant to magically work for everyone, but I strongly recommend trying them out for some time. You also have to experiment and find out what works better for you. In any case, do not let the subscription to these harmful thoughts keep going unchecked, monitor your mind and cut down the costs to the minimum.

Start by sharing your successes in the comments!

Photo by Gus Ruballo on Unsplash
Who is a developer ???
Tags: developer, help, frontend, discuss
Published: 2024-02-11 20:25:03


A developer, also known as a programmer, coder, or software engineer, is an IT professional who uses programming languages to create software. They design, build, and implement computer programs and applications. Developers write, test, debug, and maintain applications. They can specialize in different areas such as web development, mobile app development, game development, and more. Their roles can vary widely depending on the type of organization they work for. They are usually employed by technology companies that create software or by organizations that develop bespoke applications. Developers need strong technical aptitude and often have degrees in fields such as computer science, information technology, mathematics, or engineering.