How to configure TCP port 3389 on the router

To allow remote connections via the Internet to a specific computer located in the local network, you need to configure TCP port 3389 on the network router. To do this:

  • Run “Command Prompt”;
  • Enter the ipconfig command and press Enter:
  • Pay attention to the IPv4 address that identifies your computer on the local network. Also, take a look at the default gateway, which is the IPv4 address of the router;

  • Open your web browser;
  • Enter the IPv4 address of your router in the search bar and press Enter;
  • Log in to the router page using your username and password;
  • Review the list of available settings and find the “Port Forwarding” section;
  • Make sure this feature is enabled;
  • Under the Port Forwarding list, add the following information:

Service name: You can use any name you want;

Port range: enter TCP port number 3389;

Local IP: Enter the IPv4 address of your computer. For example:;

Local port: enter the same TCP port number 3389;

Protocol: select TCP.

  • Make sure the data has been added to the router settings;
  • To apply the new parameters, save the configuration.

How to set up remote access to a computer over the Internet

If you want to get remote access to a computer via the Internet, in addition to the system settings, you need to make some additional settings.

How to find the public IP address of your computer

If you want to be able to remotely connect to your computer via the Internet in order to communicate with the device, you need to know your public IP address.

The easiest way to find your public IP address is as follows:

Open a web browser and go to the website At the top of the page you will see the address, which is your public IP.

Please be aware that most ISPs offer dynamic public IP addresses to their consumers, which means that your public IP address may change from time to time.

How to use the Remote Desktop app in Windows 10

Surely many of you have heard about such a Windows 10 feature as “Remote Desktop”. With it, you can connect to a remote computer using your PC, smartphone or tablet. In this article, we will explain how to use Remote Desktop and how to configure this feature.

How to allow remote connections to a computer

If you want to connect to a remote computer located in your local network, you must make sure that remote connections are allowed on this computer.

Important! The Remote Desktop application works only with editions of the Windows 10 operating system at least Pro (Professional)

In order to allow connections to a remote computer, do the following on it:

  • Open the “Control Panel”;
  • Go to the “System” section;
  • Select “System Protection”;
  • Select the “Remote Access” tab;
  • Activate the item “Allow remote connections to this computer”;
  • Click on the “OK” button;
  • Click on the “Apply” button;
  • Click OK again to complete the task.

If you did everything correctly, your computer will now support remote LAN connections.

If you would like to access this computer over the Internet, please read the next section carefully.

Troubleshooting Remote Desktop Connection

If you did everything as we advised, most likely you will connect to the remote computer without any problems. If for some reason you cannot connect, you can use the following tips to troubleshoot.

The failed connection may be due to the Windows firewall, which you can check the settings by following the steps below:

Use Your Gopro As A Webcam for Live Streaming EASY!

  • Open the “Control Panel”;
  • Go to the “Windows Firewall” section;
  • Select “Allow communication with an application or component in Windows Firewall”;
  • Check the box next to “Remote Desktop”.

In case, after configuring Windows Firewall, you still cannot connect to the remote computer, it is possible that your ISP is blocking the port required for remote desktop control. If so, contact your ISP and consult.

How to use connections for business and career success


Who is this course for:

  • Anyone interested in developing their connections
  • leaders
  • managers
  • designers
  • painters
  • and even hairdressers

What will you learn

Additional information 2 lectures 28 min


How to use connections? I present to your attention a problem-oriented course with many insights and tips that show us how to use current connections and build new ones and not forget old ones.

We analyze the key issues of working with our contacts, which can be used for successful career and business development.

Communication is our everything! But how to work with them correctly?

In the course “How to use connections for success in business and career”, you will learn:

Concretize your connections, you will understand how to work with current, new and old connections;

You will learn about the main problems and what are the specifics of working with connections.

What is the entry point? How to connect and what to do next?

Let’s analyze the cycle of work with connections, from the point of view of the stages of work

We will form a permanent communication process that will allow you to set ambitious goals and achieve the desired result.

In the course “How to use connections for success in business and career”, I will tell you:

Approaches to building the right attitude towards connections

Practical methods to help you analyze connections and understand how to act even.

In the format of the course “How to use connections for success in business and career” you can ask questions and receive expert answers and recommendations, if necessary, apply for a separate business consultation.

Approach 2. Get used to the networking environment

Working out and developing connections, highlighting the main advantages

Conclusion. How to work with links: Analyzing 360 degrees

Register for the course “How to use connections for success in business and career”, study the information and start applying the knowledge gained in your business or at your workplace.

Course materials

Send a request to the News API and render the results

Now that we have a data model for our application, let’s go ahead and make requests to the News API and then render the results on the page.

Since the News API requires an API key, we need to find a way to pass it in our application without hardcoding it in code. Environment variables are a common approach, but I chose to use command line flags instead. Go provides the flag package. supporting basic parsing of command line flags and this is what we are going to use here.

First, declare a new variable apiKey under the tpl variable:

Then use it in the main function like this:

Here we are calling the flag.String method. which allows us to define a string flag. The first argument to this method is the name of the flag, the second is the default, and the third is the usage description.

After defining all the flags, you need to call flag.Parse. to actually analyze them. Finally, since apikey is a required component for this application, we ensure that the program crashes if this flag is not set during program execution.

Make sure you add the flag package to your import, then restart the server and pass the required apikey flag. as shown below:

Next, let’s go ahead and update the searchHandler. so that the user’s search query is sent to and the results are displayed in our template.

Replace the two calls to the fmt.Println method at the end of the searchHandler function with the following code:

First, we create a new instance of the Search structure and set the value of the SearchKey field to the value of the URL q parameter in the HTTP request.

After that, we convert the page variable to an integer and assign the result to the NextPage field of the search variable. We then create a pageSize variable and set its value to 20. This pageSize variable represents the number of results that the News API will return in its response. This value can range from 0 to 100.

Then we create the endpoint using fmt.Sprintf and make a GET request to it. If the response from the News API is not 200 OK, we will return a generic server error to the client. Otherwise, the response body is parsed into search.Results.

We then calculate the total number of pages by dividing the TotalResults field by pageSize. For example, if a query returns 100 results, and we are only viewing 20 at a time, we will need to scroll through five pages to see all 100 results for this query.

After that, we render our template and pass the search variable as the data interface. This allows us to access data from a JSON object in our template, as you will see.

Before moving on to index.html. make sure to update your imports like below:

Let’s go ahead and display the results on the page by modifying the index.html file as follows. Add this below the tag:

To access a structure field in a template, we use the dot operator. This statement refers to the structure object (in this case, search), and then inside the template, we just specify the field name (like.Results).

The range block allows us to iterate over a slice in Go and output some HTML for each element in the slice. Here we iterate over a slice of the Article structures. contained in the Articles field. and output HTML at each iteration.

Restart your server, refresh your browser, and search for news on a popular topic. You should get a list of 20 results per page, as shown in the screenshot below.

Showing the current page

Instead of only displaying the total number of results found for a query, it is also helpful for the user to view the total number of pages for that query and the page they are currently on.

To do this, we just need to change our index.html file as follows:

After you restart the server and do a fresh search, the current page and the total number of pages will be listed at the top of the page along with the total number of results.

So, let’s begin!

We clone the repository of start files on GitHub and cd into the created directory. We have three main files: In the main.go file, we will write all the Go code for this task. The index.html file is the template that will be sent to the browser and the styles for the application are located in assets / styles.css.


The only requirement for this assignment is that you have Go installed on your computer and that you are somewhat familiar with its syntax and constructs. The version of Go that I used to create the application is also the most recent at the time of writing: 1.12.9. To view the installed version of Go, use the go version command.

If you find this task too difficult for you, skip to my previous introductory language lesson, which should help you get the hang of it.

Formatting the publication date

If you look at the date in each article, you will see that it is difficult to read. The current output shows how the News API returns the publication date of an article. But we can easily change this by adding a method to the Article structure and using it to format the date instead of using the default.

Let’s add the following code just below the Article structure in main.go:

Here, a new FormatPublishedDate method is created in the Article structure. and this method formats the PublishedAt field in Article and returns a string in the following format: January 10, 2009.

To use this new method in your template, replace.PublishedAt with.FormatPublishedDate in your index.html file. Then restart the server and repeat the previous search query. This will output the results with a properly formatted time as shown below:

Let’s create a basic web server

Let’s start by creating a basic server that sends the text “Hello World!” to the browser when making a GET request to the server root. Modify your main.go file so that it looks like this:

The first line of package main declares that the code in the main.go file belongs to the main package. After that we imported the net / http package. which provides HTTP client and server implementations for use in our application. This package is part of the standard library and is included with every Go installation.

In the main. http.NewServeMux creates a new HTTP request multiplexer and assigns it to the mux variable. Basically, the request multiplexer matches the URL of the incoming requests against the list of registered paths and calls the appropriate handler for the path whenever a match is found.

Next, we register our first handler function for the root path /. This handler function is the second argument to HandleFunc and always has the signature func (w http.ResponseWriter, r http.Request).

If you look at the indexHandler function. you will see that it has exactly this signature, which makes it a valid second argument to HandleFunc. The w parameter is the structure we use to send responses to the HTTP request. It implements the Write method. which takes a slice of bytes and writes the concatenated data as part of the HTTP response.

On the other hand, the r parameter represents the HTTP request received from the client. This is how we access the data sent by the web browser to the server. We are not using it here yet, but we will definitely use it later.

Finally, we have the http.ListenAndServe method. which starts the server on port 3000 if the port is not set by the environment. Feel free to use a different port if 3000 is in use on your computer.

Then compile and execute the code you just wrote:

If you go to http: // localhost: 3000 in your browser, you should see the text “Hello World!”.

Adding the navigation bar to the page

Replace the content of the tag in your index.html file as shown below:

Then restart your server and refresh your browser. You should see something similar to this:

How to create your first web app with Go

Hello, Habr! I present to your attention the translation of the article “How to build your first web application with Go” by Ayooluwa Isaiah.

This is a guide to your first Go web app. We will create a news application that uses the News API to fetch news articles on a specific topic and deploy it to the production server at the end.

You can find the complete code used for this tutorial in this GitHub repository.

Tracing is fine Copy link

Often we already have an idea of ​​what we want to draw. After all, this article is not about design. It’s about taking an image and rendering it using DOM and CSS. I’m sure this technique has been around since time immemorial. But this is what I’ve been sharing for the past few months.

  • Find or create the image you want to paint.
  • Insert it into your HTML with.
  • Position it so that it sits directly below your artwork.
  • Reduce the transparency of the image so that it is visible, but not too much.
  • Trace it with the DOM.

To my surprise, not everyone knows about this technique. But it is invaluable for creating accurate CSS illustrations.

Here is a time-lapse of @eggheadio’s logo creation with CSS Played around with shadows and applied clip-path over ️ @ jh3yy

If you start using only two of the techniques in this article, let it be the tracing from the section above and this.

There are many fantastic examples of CSS illustrations. But one of the annoying things about some of them is that they are not stylized. or even visible. on small screens. We live in an era where first impressions of technology are very important. Let’s look at an example of a keyboard drawn in CSS. Someone finds your work, opens it on their smartphone, and they are greeted by only half of the illustration or a small part of it. They probably missed the coolest parts of the demo.!

Here’s my trick: use viewport units for illustrations and create your own scaled unit.

For sizing and positioning, you can use either scaled units or percentages. This is especially useful when you need to use box-shadow. because this property works with viewport units, but does not work with percentages.

Consider the CSS logo I created earlier. I found the image I wanted to use and added it to the DOM with the tag.

Height 50vmin is the desired size of the CSS artwork. Reducing transparency allows us to “trace” the illustration as we progress.

Now let’s create our scaled unit.

Knowing the dimensions of the image, we can create a unit of measurement that will scale with our image. We know that the height is the largest side, so we use it as the basis for creating a fractional unit.

It looks so-so, but believe me, it’s okay. We can use it to size the container for illustration using calc.

Resize this demo to see that all aspect ratios are maintained, limiting the size to 50vmin.

clip-path. your friend Copy link

In the last demo, you might have noticed a couple of interesting CSS properties like clip-path. You will almost certainly need clip-path. if you want to create complex CSS shapes. It is especially useful for clipping the edges of elements when applying overflow on the parent does not help.

Here is a small demo I put together a while ago to show the various features of clip-path.

There is also a demo that takes ideas from the Shapes of CSS article and recreates the shapes using clip-path.

Tips for complex CSS illustrations

If you asked me what question I am most often asked about front-end development, I would answer: “How to pump in CSS?” This question is usually raised after I share my CSS illustrations. This is what I love to do on CodePen.

For many, CSS is an indomitable mythical beast. This tweet from Chris made me smile because, despite all the irony, there is a lot of truth in it. However, what if I told you that you only need a few properties and techniques to create whatever you wanted? The truth is that it really is.

I have wanted to write an article like this for a long time, but this is a difficult topic because there are so many possibilities and so many techniques that, as a rule, the same thing can be done in several ways. The same is true for CSS illustrations. There is no right or wrong way. We all paint on the same canvas. There are just a lot of different tools to put all these pixels on the page.

While there is no one-size-fits-all approach for CSS illustration, I can suggest a few techniques to help you along your journey.

Measure seven times, cut one Copy link

Next tip: measure. Hell, you can even grab a tape measure if you’re working with a physical object.!

Once we have calculated the variable, we can use it everywhere. I know that my TV is 158.1 cm wide and 89.4 cm high. I spied on the instructions. But in my CSS illustration it will always be limited to 25vmin.

Preprocessors are very useful Copy link

While not necessary, using preprocessors can help keep your code clean and tidy. For example, Pug allows you to write HTML faster, especially when you need to use loops to work with a group of repeating elements. And then we can restrict custom CSS properties in such a way that we need to define styles only once, and then override them if necessary.

Here’s another example that demonstrates the DRY structure. Flowers are laid out with the same markup, but each has its own class with an index that is used to override CSS properties.

This is the first, all the others are based on it. Note that the second flower is slightly offset to the right and up. All that is needed is to give different values ​​to the same custom properties:

Use absolute positioning for everything Copy link

This tip will save you on keystrokes. often than not, you will try to position elements absolutely. Help yourself and put this rule somewhere.

Take the Copy Link Approach

This is by far the hardest thing to do. What approach do you take with CSS illustration? Where do you start? Should you start from the outside and go inside the picture? It doesn’t work as well as we would like.

Most likely, you will try several approaches and find the best way to solve the problem. You will, of course, redo some things, but the more you practice, the more often you will notice boilerplate things and develop the approach that works best for you.

I tend to relate my approach to how if you were creating a vector image in which the illustration is composed of layers. Divide it and draw on paper if needed. But start at the bottom and work your way up. This usually means larger shapes first and finer details later. You can always tinker with the overlay context when you need to move elements.

Creating a multiplayer server on go?

Task: to make a small multiplayer WEB game.
Description: There are a number of rooms. Each room has a certain number of players. Each player can move WASD to shoot. When hitting a player. player disappears.

1) since we are doing it via WEB, then are we using websockets? Are there any other interesting and practical options for my goal? Also, are you interested in the maximum number of players? As I understand it is 64K people per server? Or not?
2) How should you divide rooms? Do everything in one instance or for each room its own? Store on one server or for each room its own?
3) If on different instances (or servers proper), how do you ultimately connect people in them? In the database, store the port of the room on the server or something else?
4) How to save and manipulate when running a GO instance? How to tell players which to connect to?
5) How does work? If you open the WS tab, then it is empty, how clients communicate?
6) Where and what you can see about the architecture of such applications?

PS. Under instance, I’m talking about the running application binary
PPS. Here the question is specifically about the logic of creating a server, and not the game in particular (but if this is important, then this is 2D with a top view)

Go is a general-purpose language so anything is possible.
Its advantages are its simplicity. One binary, that is, everything is fine

1) since we are doing it via WEB, then are we using websockets? Are there any other interesting and practical options for my goal? Also, are you interested in the maximum number of players? As I understand it is 64K people per server? Or not?

I would recommend UDP. One port and that’s it, punching firewalls and gray addresses is described.
In addition, in the case of TCP, add a second IP and get N 65000

2) How should you divide rooms? Do everything in one instance or for each room its own? Store on one server or for each room its own?

It all depends on your logic. I would recommend a master service that scatters players on workers and migrates from one instance to another, both the player and the room.

3) If on different instances (or servers proper), how do you ultimately connect people in them? In the database, store the port of the room on the server or something else?

The general configuration is stored in the database, in the radish the current cache for quick access

4) How to save and manipulate when running a GO instance? How to tell players which to connect to?

Why do they constantly think that the limit of 64K per IP?
This is the maximum number of ports, but the server only listens to 1 port.
In fact, each client can open 64K connections with the server from one IP to each server port, and there are no restrictions for the server, except to run into the I / O system and memory consumption for each connection.

Please stop misleading and misleading others)

I would recommend UDP. One port and that’s it, punching firewalls and gray addresses is described.

It is not entirely clear about the penetration of network filters (firewalls) with UDP packets. And gray addresses.

In addition, in the case of TCP, add a second IP and get N 65000

2 question
This is the case when the server has to keep a bunch of open to clients.

Building a multiplayer server on go? Task: to make a small multiplayer WEB game.

I see no obstacles. There are much more complex projects in this language.

1) once we do it via WEB, then we use websockets?

This is the master’s business. You can even do on webRTC.

Also, are you interested in the maximum number of players? As I understand it, this is 64K people per server?

It depends on what servers will be. Servers don’t care how many players there will be.

2) How should you divide rooms? Do everything in one instance or for each room its own?

At the MVP level, no. Let it work at least somehow. Then, as it grows, it is advisable to scatter it. To be able to balance the load: in one room it may be empty, in the other it is dense and it is necessary to somehow flexibly provide resources.

3) If on different instances (or servers proper), how do you ultimately connect people in them? In the database, store the port of the room on the server or something else?

There is a synchronous option, there is an asynchronous one. But it’s better to dazzle MVP. And then look at the options. Too many possible nuances to take into account.

4) How to save and manipulate when running a GO instance? How to tell players which to connect to?

This is about orchestration. There is one project in Go who does this.

PS. Under instance, I’m talking about the running application binary

This is the master’s business. You can even do on webRTC.

Regardless of the choice of language, it is necessary to solve important problems and choose a solution, in practice there are two approaches to creating a game:
1. the game loop is launched on clients, the server acts as a manager, synchronizes and validates data from clients. A bunch of problems due to desynchronization (a character swaying back and forth) but ‘pleasant’ realtime (this is an illusion, lags are simply masked)
2. The game loop starts on the server, clients connect and ask how the world looks at the moment. This is a laggy option (not suitable for dynamic games) but no synchronization problems

In any case, real-time games need sockets (the server must somehow inform clients about the changes). The first implementation method can allow the use of webrtc, which can significantly reduce lag but complicate validation algorithms from cheaters.

There is an ideological way to combine both approaches, making the second dominant, and the first approach will be responsible for displaying information, the client himself will compare the worlds that each approach generates in real time and, if there is a discrepancy, make corrections.

In practice, many developers spit on validation, write how it will turn out (for example, they take a single-player engine that does not check anything like an old unreal engine, saw AAA MMRPG based on it and then get cheaters who cast any skills by any class or fly or pass through walls and etc.)

What is a web page for?

The main purpose is to view information. The web page contains text, graphics, audio and video content. From the page it is read by the browser and displayed to users.

How to save a web page

If you plan to use the link frequently, you can save it. In the future, this will allow you to immediately navigate through it, bypassing the request from the search engine. Let’s see how to easily and quickly save the page address:

  • Click on the menu and select the “Save As” item, then a dialog box with the same name will open.
  • In the window that appears, we need to select the file type, page name and save location. Today there are 4 formats, we will analyze them below.
  • Click “Save”, now you can view a copy of the page at any time.

4 formats for saving pages:

  • Completely. In this format, the selected element is saved in full, with all images and stylistic solutions, design. Also, the browser creates a separate folder where all materials placed on the resource are placed: pictures, photos, widgets, etc.
  • HTML. It is no longer possible to save images and stylistic solutions here, the original is saved with the same structure and text. This saves memory space.
  • Text. The surviving text can be viewed using any editor, the text is saved in full, and not in fragments.
  • Files. All files placed on the page are saved. If necessary, you can change the extension of this or that file.

You can also save part of the page. Surely, everyone knows that you can save an image by right-clicking on it and selecting “Save As” in the window that opens. It’s also easy to copy text.

GoPro: How To Use Your GoPro as a Webcam | Windows

Web page not responding: what to do and how to fix the problem

Here everything is not as simple as in the cases described above. The problem could be anything. Let’s see how to solve this problem.

First, pay attention to the URL. Check that the page address is correct in the address bar. Next, check if the resource opens on another computer. If the page does not load on all PCs, check your internet connection. If everything is in order here, perhaps the problem is in the website.

The second way is to delete cookies. These are special files that are created to store information about the created profile. Sometimes cookies get corrupted. This results in the pages not being displayed. To remove them, open the browser settings, select the “Advanced” item and then “Personal data”. We open the content settings and select the files of interest to us. Delete “All cookies and site data”.

The next way is to change the proxy server. Sometimes connecting through a proxy server can lead to slow loading of web pages or errors in their display. To solve the problem, go to the settings, then open the “Network” item and specify the name of the network. Next, open the proxy server settings and enter the required parameters. If you do not know these parameters, contact your network administrator. Then the Internet connection will be interrupted. Reconnect to the Internet and continue working.

What does the message “web page slows down the browser” mean

Often when browsing sites, the text “The web page is slowing down your browser” appears. As a rule, the slowdown occurs due to the fact that the browser automatically loads a lot of unnecessary scripts on a given page. To solve the problem, you need to change the settings of your web browser in order to quickly load scripts. To do this, go to the browser menu, look for “Tools”, then click on the “Add” item. We are looking for a specialized plugin “Shockwave Flash” and install it. Then, in the plugin settings, select the item “Ask before activation” and put a tick next to it. Please note that the name of the items may vary depending on the browser used, the main thing is to grasp the meaning.

After that, the scripts will not be loaded automatically, the system will ask for permission before each boot.

What is a web page

November 9, 2017 Published in sections: ABC of terms. 24493

videos on our channel. study internet marketing with SEMANTICA

What does the message “the web page is out of date” mean?

This is a fairly common mistake. It means that the local copy of the page is out of date while the user’s Web site is requesting to load it. To solve the problem, you need to reload the page.