How to achieve high, true love? We deliver goods purchased from us in any way acceptable to you. By any method acceptable to you.

On the pages of all products the price is indicated exclusively for the product. Delivery costs are not included in the price of the product and are calculated additionally when placing an order (does not apply to electronic publications that do not require delivery). The calculation occurs automatically after filling in the delivery address in all required fields in the order, and you also see the weight of the goods for which you are paying. If completed correctly, you will receive the full cost of the order - the product including delivery.

Delivery throughout St. Petersburg and Leningrad region

Delivery in St. Petersburg and the Leningrad region is carried out by our own courier service from 10:00 to 21:00 on weekdays. Delivery on weekends is negotiated individually.

Orders are delivered the next day from the date of order.

Delivery cost is 250 rubles within the Ring Road. In case of delivery of goods outside the Ring Road, the cost is clarified by phone at the time of confirmation of the order.

To receive goods by a legal entity, a power of attorney with the organization’s seal is required.

Delivery across Russia

Delivery to the regions is usually carried out by Russian Post or the transport company EMS-Russian Post.

Delivery costs are calculated individually when placing an order, based on the weight of the shipment and the region of delivery.

Orders within Russia are shipped only after 100% prepayment.

In some cases, orders can be sent by any transport company convenient for the buyer.

Attention!

When placing orders for delivery, you must provide a phone number. We will contact you to confirm your order.

If the phone number is not specified when making delivery, then even in St. Petersburg, delivery can only be made after 100% prepayment.

If at the time of actual receipt of the order you refuse to purchase, then you will need to pay for delivery in accordance with clause 3 of Art. 497 Civil Code of the Russian Federation. Delivery is paid if the courier arrived at the agreed time and the delivered goods are of proper quality.

Electoral goods

In our store it is possible to purchase “electronic goods” - in this case, after paying for the goods, you can download the file from your personal account, which you registered when purchasing this product. The number of downloads of the same file is limited to three attempts.

If you were unable to download the file for any reason, please write a letter to the store administrator at [email protected] and your issue will be resolved.

If new versions of electronic products are released, you will be notified by e-mail about the new edition and in your account you will be able to download a new version of a previously purchased product at no additional cost.

Methods for creating classes in JavaScript have been discussed more than once throughout the RuNet, including on Habré, I decided to find a slightly different approach to creating classes, closer to real classes. One important difference from other implementations described in many articles is the ability to create accessors (setter"s/getter"s). Which will work not only in modern browsers, but also in long-lived IE below version 9. Read about it below.

To begin with, I will describe how to create classes of the types we need; classes can have ordinary public properties, private properties and static properties.

Creating classes

To create a class, just declare the class name and assign an object to it
Example of creating an empty class:
classes.Class("EmptyClass", ()); // created an empty class classes.EmptyClass alert(classes.EmptyClass); // we'll see
As you already understood, creating a class does not require huge costs for writing code.

To create a class with private properties, it is enough to declare as the second parameter not an object but a function in which the class object will be returned

Example of a class with private properties:
classes.Class("PrivatePropertyClass", function())( // our private variables/properties var privateProp = "tratata", twoPrivateProp = "lalala"; // return the object of the class itself return ( ) )); // Create an instance of the class var privateTest = new classes.PrivatePropertyClass(); // try to get private properties alert(privateTest.privateProp); // see undefined
You can create classes not only in the classes context, but also in any other context.

As an example, I will show several ways how this is done; you can choose any method acceptable to you, without limiting yourself in anything.

Here are ways to create a class in any convenient context:
// creating a class for example in the context of window classes.Class.call(window, "GlobalClass", ()); // creating a class in the current context var CurrentContextClass = classes.Class(); // create a class in the current context, but at the same time it will // be available in the context classes with the name ClassesContextClass var CurrentContextClass = classes.Class("ClassesContextClass", ());
This is where we’ll actually finish creating classes; I don’t think there’s any need for other methods.

Working with classes

Now I will show you how to work with classes; the principle of their operation is no different, for example, from the classes existing in PHP. "It can not be!" you ask, yes, of course it can’t. There are some subtleties here, of course there is no possibility of creating interfaces, abstractions and other full-fledged delights of OOP. But using existing capabilities, the programmer can safely use the knowledge of class programming, the behavior of classes is predictable, the context does not run back and forth, but has the same instance of the generated class.

First, let's create a simple class that will display information in the browser window
classes.Class("Debug", function() ( // private variables var // a link to the BODY tag of our document will be stored here body = null, // here we will add elements with text until body is defined cache = ; return ( // class constructor, will be called during the creation of a class instance // we will need the callback parameter later, read more about this constructor: function(callback) ( // determine which method we should use to hang the event var listener = window.addEventListener ? [ "addEventListener", "" ] : [ "attachEvent", "on" ]; // before we attach the event, we will check // perhaps our document has been loaded a long time ago if (document.readyState === "complete") ( // if the document was indeed loaded, in this case we will assign // to our private variable a link to the object BODY body = document.body; // we will execute the function passed as the first parameter in the constructor // if it was passed if (callback && typeof callback = == "function") ( callback.call(this); ) // then just exit the constructor return; ) // save the current context to pass it to the callback" var self = this; // when creating the class, attach a handler to the document loading event window[ listener[ 0 ] ](listener[ 1 ] + "load", function() ( // after the document has loaded, we can safely assign our // private variable a link to the object BODY body = document.body; // display everything that has accumulated in our cache and reset it. for(var i = 0; i< cache.length; i++) { body.appendChild(cache[ i ]); cache[ i ] = null; } // очистим кеш cache.length = 0; // выполним функцию переданную первым параметром в конструкторе // если она была передана if (callback && typeof callback === "function") { callback.call(self); } // bubbling - смотрите: http://learn.javascript.ru/bubbling-and-capturing }, false); }, // наш метод с помощью которого мы будем выводить сообщения на нашу страницу write: function() { // создадим DIV в который положим наш текст var div = document.createElement("DIV"), // проверим что хотят вставить в окно вывода, если последний // параметр нашей функции имеет болевое значение TRUE значит // мы хотим просто распечатать текст не конвертируя теги в DOM // элементы. isPlainText = arguments.length ? arguments[ arguments.length - 1 ] === true: false, // переведем наши аргументы в массив dataArray = Array.prototype.slice.call(arguments); // если хотим распечатать текст не переводя HTML в структуру DOM объектов if (isPlainText && dataArray.pop()) { // последний аргумент как вы видите мы удалили, который информирует // нас о том что мы не желаем переводить текст в структуру DOM div.appendChild(document.createTextNode(dataArray.join(", "))); } else { // здесь теги в тексте будут обработаны в DOM элементы. div.innerHTML = dataArray.join(", "); } // здесь мы выводим или отложим данные до возможности их вывести if (body) { // выводим в браузер сразу так как элемент BODY определен body.appendChild(div); } else { // положим пока что в наш кеш до определения элемента BODY cache[ cache.length ] = div; } } } });
Here we have created our full-fledged class, in it we used an approach with private properties, this class does not do anything particularly tricky, but simply displays text in the browser window, while waiting for the document to be completely loaded so that an error does not occur.

For example, we can now create an instance of this class and print our first message.
var debug = new classes.Debug(); debug.write("Our class classes.Debug works great!");
"Nothing special!" You say, the usual unnecessary creation of classes in a different way. Yes, I will answer you, there is nothing particularly abstruse here, but the most delicious things have not yet been told.

Inheritance

Let's now create our second class, which will inherit the properties of our Debug class. Our new class will be a regular button that will change color when you click on it.
// Create a ButtonClass class and extend it from the Debug class classes.Class("ButtonClass extends Debug", function() ( // mouse status var mouseState = 0, // our future button, a regular DOM element button = null; // private function function switchState(type) ( // type of change of mouse status if (type === 1) ( mouseState++; // here we change the style of the button if the mouse is pressed on the button button.style.backgroundColor = "green"; return; ) else if (type === 2) ( mouseState--; ) else ( mouseState = 0; ) // default button style button.style.backgroundColor = "red"; ) return ( // our constructor for the button constructor: function() ( // create an element for the button button = document.createElement("SPAN"); // set the default button properties button.style.border = "1px solid blue"; button.style.color = "white"; button.style.textAlign = "center"; button.style.backgroundColor = "red"; button.style.borderRadius = "5px"; button.style.padding = "4px"; button.style.cursor = "default"; // initial text for our button button.innerHTML = "Our first button"; // call the parent constructor, that is, the constructor of the Debug class // pay attention to the fact that here I pass the first parameter to the parent // our function, which the Debug class will call when the document is loaded this.parent.constructor(function() ( // save link to the current context var self = this; // add our button to the DOM structure document.body.appendChild(button); // disable text selection in IE when double-clicking on the button button.onselectstart = function() ( return false; ) // process the mouse click event button.onmousedown = function(e) ( // get the mouse event object var e = e || window.event; // change the status of the button, that is, its style switchState(1); // cancel the action by default so that the text // is not highlighted in other browsers if (e.preventDefault) ( e.preventDefault(); ) else ( e.returnValue = false; ) ) // handle the mouse button release event button.onmouseup = function() ( // change the status of the button, that is, the style switchState(2); // if the mouse is pressed and released on our button if (mouseState === 0) ( // launch the action handler after a successful // click on our button self.click(); ) ) // handle the mouse moving away from our button button. onmouseout = function() ( // if the mouse status is not zero, then add the status if (mouseState && mouseState++) ( // and restore the default button style switchState(2); ) ) // process the event of the mouse coming to our button button. onmouseover = function() ( // if the mouse status is not zero, lower it if (mouseState && mouseState--) ( // and set the style of the pressed button switchState(1); ) ) // overload the document event for raising the mouse key outside the button var handler = window.document.onmouseup; window.document.onmouseup = function(e) ( // reset the status and set the default style switchState(); // launch the old handler if there was one if (handler) ( handler.call(window, e); ) ) )) ; ), // a global function that returns the DOM element of our button node: function() ( return button; ), // essentially an abstract function that is called when the button is clicked // in our case, it is not necessary to declare it in a child class. click: function() ( ) ) ));
And so we created a new class ButtonClass that inherits the properties of the Debug class. As you have already noticed, inheritance is done by adding the word extends followed by the name of the class from which we want to inherit the properties.

This is not the only way of inheritance, it can be done in other ways, for example:
var Child = classes.Class(classes.Debug, ());

As we can see, the Child class has become the heir of the classes.Debug class

Now let's try out our written button
// Create a button instance var button = new classes.ButtonClass(); // hang an event on a successful click on the button button.click = function() ( // we inherited the write method from the Debug class this.write("You pressed and released the mouse button on our first button"); ) // As usual message that the class is working:) button.write("Our class classes.ButtonClass works great!");
As you can see, we have a fully functioning button, it may not be beautiful, but these are minor things. You can always change the style and name of the button. This is just a small example of how projects can be implemented in classes.

Setter's/Getters

Now let's move on to the goodies that are so lacking due to limitations. As you know, Internet Explorer below version 9 does not allow you to work normally with getters/setters, this is a huge disadvantage in project development. Yes, of course, this does not reduce the capabilities of the language, and neither does the ability to write programs. But I still tried to implement them in the current classes, you can rather call it some kind of “magic getter/setter”, here you don’t need to attach all sorts of defineProperty for each property, but rather simply indicate which properties should be able to intercept.

Let's expand our button class and create a super class that will make it possible to change the text of the button using getters/setters. In this class we will not use either constructors or private methods, but will only create a property that will be intercepted by a magic getter/setter
classes.Class("SuperButtonClass extends ButtonClass", ( // create a property that we want to intercept with a magic getter/setter // note that such properties must begin with a dollar sign // this sign will indicate to the class constructor that it requires interception // dollar sign the class constructor will remove and declare a property with a name without this sign $text: null, // magic setter, it works for all properties declared for interception // in the first property parameter it will send the name of the intercepted property, so // you you can easily determine who they want to replace, the second parameter will be the value // that they want to set set__: function(property, value) ( ​​// write a message to the browser that the setter for the property was called this.write("SETTER was called for the property " + property + " with meaning "+value+""); // if the property name is text if (property === "text") ( // then change the button text to a new value this.node().innerHTML = value; ) ), // magic getter, it fires every whenever a property is accessed to // get a value, just like in a setter, the first parameter will have the name of the intercepted // property, which you can easily process. get__: function(property) ( // write a message to the browser that a getter was called for the property this.write("GETTER was called for the property " + property + ""); // if the property name is text if (property === "text") ( // return the current value of our property return this.node().innerHTML; ) ) ));
Here we have created a super class for a button, which simply makes it possible to change the text of the button by simply assigning the text property the value we need. This, of course, is not all the capabilities of getters/setters; you can use them in any conditions, with any type of data, etc. .

Now let's look at what we got:
// create an instance of our super button var superButton = new classes.SuperButtonClass(); // let's try the getter, just get the current value of the button name // pay attention to the message in the browser window superButton.write("Current name of our super button: " + superButton.text + ""); // now let's replace the text of the button and we will again see a message in the browser window // informing us that the setter was called superButton.text = "Our second super button"; // just display a message that our super button works superButton.write("Our class classes.SuperButtonClass works great!");
You can see all the described examples in action at this link.

Static properties

There is no point in specially describing static properties; as everyone knows, they are added in the usual well-known way:
classes.SuperButtonClass.NEW_STATIC = "Static constant";

Finally, I would like to draw your attention to the fact that when accessing parent methods, you do not need to explicitly specify the context. I think you noticed that I call the constructor of the Debug class from our button class, with the usual call to this.parent.constructor(), and the debug class will already have the context of the last child, that is, the class initiator. You don't need to call parent methods through the well-known call, apply, etc. Simply calling this.parent.parentMethod(args); and the relative will work with the child's context.

I’ll also add that creating additional getters/setters to an already existing instance of a class cannot, of course, be added in a browser like IE below version 9. Therefore, there are slight restrictions on dynamics; also, when using getters/setters in descendant classes and/or its descendants, it will not be possible to add any properties dynamically. But this limitation only applies to IE below version 9 and if at least one getter/setter is present.

Let's say we want to create an additional property on an instance of the SuperButtonClass class or its descendants, which we do not yet have. But in the future you will have them anyway. An attempt to create it will lead to an error in IE below version 9, because an object with setters/getters is generated through VBScript and there, as you know, there is a limitation that does not allow you to declare an additional property if it is not explicitly specified.

But we can easily create additional properties for an instance of the ButtonClass class, since we do not use setters/getters for this class and its descendants.

I also want to add that the native instanceof will not respond correctly to these classes, so for these cases I added the classes.instanceOf method to check whether the instance belongs to the class we need, in our case the call:
alert(classes.instanceOf(superButton, classes.Debug)); // will display TRUE

That's all about classes in this article, in the future there may be some additions,
changes and of course bug fixes. Although they were not identified during development.

Happy class building, good luck and thanks for your attention and future criticism!

You can download the library for working with classes using the link: http://code.spb-piksel.ru/?classes.latest.zip
I will also post it on GitHub: https://github.com/devote where you can download not only it, but also my other projects.

UPD: As Ashot noted in one of his comments, there are many already invented libraries for building classes in JavaScript. But this library differs from them all in that it has the ability to create accessors (setter"s/getter"s). I did not find such an implementation in any of the mentioned libraries. Accessors work not only in modern browsers, but also in IE below version 9. This is what I want to distinguish my implementation from other implementations of class creation.

High, true, spiritual love is possible. The one that every person dreams of at a deep level of the Self. Even those who don't believe in it. Even those who don't believe in God. Even those who live on autopilot. The one that we know about, but, listening to reason, we explain to ourselves that it does not exist, that it is an illusion, it is a myth.

That love, which every person yearns for in the secrets of the soul, has become a parable about two halves and lives only in a parable. We are sure that real life is far from such stories. After all, this is just a beautiful fairy tale, and also psychologically harmful: each person is self-sufficient, and he does not need another person.

We are convinced that there is no high love in life, so we sleep with the wrong people and live with the wrong people. We empty ourselves and waste our energy, and even life itself, in vain, without absolutely understanding where and why.

And only sometimes... very rarely... when we wake up next to the wrong person or the wrong person, we feel pain. The acute pain of meaninglessness and loneliness. It's hard to escape from her... but we can do it. In worries, in work, in everyday life. So as not to think. To not feel. Stop waiting.

External noise overshadows the ineradicable inner call and knocks down the vibrations of the soul. Vanity and survival. We just live, we just work, we just die.

But someone knows, feels, hears what the voice of the soul persistently reminds of. This song is about the existence of a Mother Soul. Not the one who can endure it - she will fall in love, and after half her life she will become her own. It's not about love, it's a habit.

A soulmate is one who was such even before the two met. Not a half, but a Divine Complement. “We are each other’s eternal tenderness.” Expansion of that field and strengthening of the light that everyone is. Understanding each other on a qualitatively different level. Feeling each other without words and at any distance.

To meet your Soulmate, you need to go a long way. Living with the wrong ones, being the wrong ones. Realize and rise.

Divine love does not and cannot exist for everyone and everywhere, because the path is difficult; only a few can go through it and, having realized it, rise. You need to go beyond the program - for most this is impossible.

Hear me. Believe me. I will tell you what you need to do to meet your Soul Mate. I know.

  1. To hear your soulmate, you first need to hear your own. You need to become authentic, become authentic. We need to stop playing with everyone and everywhere—the masks must be taken off mercilessly. It is important to become open and sincere. Awareness is needed: what am I doing and why? You need to learn to separate social roles from your essence. Every moment in time ask yourself: “What do I really want now? What I feel?" Catch the first thing that comes to mind. Do what your soul asks. You need to learn to listen and obey her. Your soul mate will hear you when you begin to sound clear.
  2. Connect with your Higher Self. With that which is greater than man, with the Cosmos, with God, with the Universe, with the Source. No matter what you call it, it is important that you feel something greater than your personality, that you feel a strong connection with your Higher Self, that you feel oneness and community with the world. Prayers, meditations, mantras, immersion in sensations. Notice the signs. Listen to your intuition. Learn to feel the moment - through it a connection with the world will come. Isolation is a big obstacle to meeting.
  3. Embrace your Inner Woman (if you are a man) and your Inner Man (if you are a woman). Get this subpersonality out of the unconscious and establish contact with it. Forgive all offenders of the opposite sex. Forgive your father and mother if there is anything to do. Sincerely, from the bottom of my heart, understand and forgive. Learn to love the opposite sex, admire what is not in you. The soulmate will come for acceptance.
  4. Love yourself. Give yourself care, warmth and acceptance. Learn to see and appreciate the best in yourself, treat with understanding and respect what you don’t like. Learn to treat yourself from the perspective of your personal characteristics, and not from the perspective of your strengths and weaknesses. Give yourself everything you need - from meeting basic needs to self-actualization. Fill yourself with love, then you will be able to give it.
  5. Love the world. Look for manifestations of love in the world and let them in. Find pleasure in every reflection of life and in every moment. Raise the vibration of your soul. Show empathy and compassion. Take care of those who are weaker and need help. Take care of animals. Help just like that, learn to enjoy it. Think about high things, cultivate high things in yourself - honor, conscience, dignity, etc. Become cleaner and more transparent, then your soul mate will see you.
  6. Develop your personality. Develop all your abilities and talents, develop hobbies. Watch movies, read books, listen to music. Become fulfilled. You will not only become happy within yourself, you will be able to expand and complement others. To meet your Soulmate, you must be complete.
  7. You need to have a Goal. You need to find, understand, feel your ultimate task, your mission. It is necessary to rise above vanity and pettiness. Only a Great Goal can keep you from routine and getting bogged down in everyday life. We need a beacon that will keep love and guide us through life. This is the main thing for which you will meet, for which you will become each other’s support and inspiration. You and your Soulmate will go to this lighthouse together.
  8. Become a free spirit. Free yourself from dogmas, templates and stereotypes. Be free from specific religions and movements. Uncover your habitual beliefs and work through them. Give your Soulmate a chance to become noticed by you. Look at the world with your eyes wide open, and not through the prism of imposed norms and rules.
  9. Visualize the one you are calling. Visualize not appearance, but your feelings next to the person. Feel the presence of your Mother Soul with your whole being. Anticipate it. What will it be like when you are together? Describe your relationship. Describe the qualities you want to see in your loved one. Become consistent with these qualities. Develop them in yourself and feel them in others. Feel the love of your Soulmate and give yours. In meditation, in visualization, in the feeling of presence.
  10. Set an intention and declare it. In any way acceptable to you. Write a letter to the Universe. Read a prayer service and light candles to certain saints. Contact the Archangels. Think about your desire to meet Love and Soulmate strongly and specifically in an emotional frenzy. Ask in your hearts. Ask the clouds to carry your message. Use what is close to you. Release the intention, switch your attention, forget about it.
  11. Believe. At the level of Knowledge, believe in love. Believe that there is a person, your Soul Mate, with whom you will feel another world and experience a relationship of a high order. With him you will have unprecedented acceptance and understanding, unconditional respect and admiration. You will be connected, but it will not be an emotional dependence. This will be a merger at the level of divine presence. You will feel happy and joyful, you will create and be inspired, your life will be easy and colorful. Stress and conflicts, if they happen, will be in a mild form and with rapid fading. You will feel connected, but you will be free. In everything there will be only your and his (her) desire and good will. You will open up like never before. You will finally become yourself. You can simply BE.

A lot of…. It turned out a lot. And doing one thing without doing the other will not be enough. The path to true Love is not close.

You ask, is it possible to meet love just like that, without doing anything to yourself? Can. Only it will be as truncated as you yourself are truncated.

It may be cute, attractive, pleasant and sexy, but it will be just a relationship. With tears, with dependence, conflicts, mutual humiliation and mutual games. Or just boring and ordinary. As Mikhail Litvak said, you can “pull the burden of life together.” The cosmos will not appear, and the world will not open. Co-creation will be impossible. The flight won't happen.

In truth, not everyone needs it. There have not been many such couples in all centuries. Love incarnate on earth is a miracle. The further you follow the steps described, the closer you will be to a miracle. But for him there is no age.

Unconscious Love also happens. She has her own mechanisms. But if you read this article to the end, then this mechanism did not work for you. Means, your destiny is to follow the path of a conscious desire to experience high Love with your Soul Mate.

Dream big. Love for real.

With love, Liliya Akhremchik,
trainer, psychologist, coach

The primary task of such an invention as a screen is. For those who have a problem with square meters, the screen will be a real godsend. It is thanks to the screen that you can hide your sleeping area from public view, separate a work area or create a mini-wardrobe. The great thing about the screen is that it is mobile and you can move it from place to place without affecting other interior items. Unlike a bulky closet, the screen is very convenient and does not hide the already missing centimeters of living space. A properly selected screen will not only solve the problem of zoning your home space, but will also add charm.

Types of portable screens

Standard screens consist of 3-4 sashes and fold like an accordion. Inside the frame, such screens are covered with fabric. The frame of such partitions is made of wood or metal.

Custom screens can be made from almost any material. The doors of such partitions differ in height, and the decoration can be made from a variety of elements: paper, fabric, lace, rattan, leather and others. The folding parts of such a screen close inwards.

Do it yourself

Purchasing a ready-made screen in a store is not always what we need. Sometimes difficulties arise with selecting the desired shape or general style. In this case, you can make a screen with your own hands. Screens made with wood carvings or mosaics look gorgeous, but this requires special skills. We will consider the option of creating simple screens on a wooden frame with glass and fabric trim.

What materials do you need to stock up on to create a screen on a wooden frame with your own hands:

  • Wooden boards of the required length;
  • special paper for sanding;
  • paint or stain for wood;
  • saw of any type;
  • cutter;
  • electric drill;
  • screws;
  • six small loops;
  • fabric or glass, depending on what you will use to decorate the screen inside the frame;
  • glue;
  • wooden glazing beads;
  • slats.

We prepare 12 boards for the frame and sand them, 8 - vertical, long for the height of the screen, and 8 - horizontal for the width of each individual sash.

How to assemble the frame correctly

Using a cutter, we make “pockets” at the end of the boards for wooden veneers. We sand all cuts and indentations with sandpaper. Apply wood glue to the holes made and insert the slats. The glue will swell and the connection will be very strong. In this way, we assemble all the components of the frame and leave until the glue dries completely. Thus we assemble three frames. After drying, we tint the frames in the desired color; for this you can use paint or wood stain, which will give the frame an interesting color and at the same time the natural grain of the wood will remain visible.

The first option for a partition that can be created is a Chinese-style screen with glass. Next, to make it, we will decorate the glass panel with stained glass film. We cover the surface of the glass with a slightly soapy solution and, using a regular ruler, remove liquid bubbles from the surface. To insert glass into the frame, you need to make a special recess on the inside of the frame. We insert our pseudo windage into it, secure the glass using glazing beads, small nails and a hammer. Having marked the desired place, using a screwdriver and screws, we install all the hinges that will connect the sashes together. The first screen with glass is ready. If desired, wheels can be mounted at the bottom of the screen to make it easier to move the partition to the desired location.

Video tutorial on how to create a screen on a wooden frame in the Chinese style:

We will make the second version of the screen using fabric. This time we will stretch the fabric onto the frame prepared in the same way as in the first version. We select the fabric of the required color and, having previously taken measurements, take it with a small margin so that the fabric does not stretch, but hangs like a “curtain”. You can take ready-made pleated fabric or create this effect using a sewing machine. Using a construction stapler or small nails, we attach the blank fabric to the frame. You can attach chair supports or furniture wheels to the legs of the screen with nails.

The filling of the screen can be anything you want; you can use your own drawings on whatman paper, beads, feathers, and so on according to your imagination. Of course, it’s easier to make a screen on a ready-made frame, but it costs a lot, and why spend money if the job is essentially not dusty.

Parts of the frame frame can be fastened in completely different ways using the one that is convenient for you: with screws, joint-to-joint wood glue or using lamellas - we described this method above.

Decor and decoration

You can decorate the frame using any method acceptable to you, the simplest is to paint it, but decoupage, wood painting or other decorative decorations on the frame will look better. The inside of the screen can also be decorated. Decorate the fabric with bows, butterflies or other appliqués, or you can use embroidery.

Screen with window

This is a more complex version of the partition to create with your own hands. This window can be used as a clothes hanger. It is done using an additional wooden crossbar, mounting the block at a distance of 20-25 cm from the top and fastening the fabric at the level of the block.

As you can see, creating a beautiful screen on a wooden frame is not at all difficult. All its elements can be purchased at your nearest hardware store and, using your imagination, you can create an incredible, impressive, designer partition.

“You can pray to the angels and they will hear, but the best way to call them, they told me, is to laugh. Angels respond to joy because that is what they are made of."

Michael Jackson

Our spirit guides and guardian angels have many ways they use to convey messages to us.

Below I have listed those with the help of which I received answers from higher powers: from my spiritual guides and the Higher Self.

Activation of Unconditional Love by Chakras

These short meditations will help you activate Unconditional Self-Love in every chakra of your physical body.

Use any of them, or better yet all, to establish a connection with higher powers.

8 Ways to Recognize Answers from Higher Powers

I counted 8 such methods. It is possible that there are many more of them.

If you communicate with higher powers using other channels, please share them, we will also be interested.

Method 1. Repeating numbers

The simplest and most common way in which angels communicate with us is repeating numbers on the clock (11:11, 02:02), on car license plates.

If you know the meaning of the numbers, you can decipher the message.

In the articles we offer the meaning of each number.

Catch the thought at the moment when you see repeating numbers, read the meaning. And you will understand that this is a direct message for you, and maybe a ready-made answer.

If you see repetitions of the same numbers too often, perhaps the angels are simply showing you that they are nearby and you are on the right path.

Method 2. Signs

Another way to get answers from higher powers is signs, which you can define yourself.

This method works well for initially establishing a connection with spirit guides and strengthening the belief that they are helping you.

You ask the question to your Higher Self or the angels, determine the sign that will serve as a positive answer, and the time frame when you should see it.

If your answer is positive, you will see what you wished for.

Be honest with yourself and prepare for any answer. Choose a sign that is not found everywhere and in all circumstances.

It could be a natural phenomenon, a specific person, an action, anything, but what really exists, there is a probability, although not high, that you will meet it in the time allotted to you.

You can’t specifically look for signs or adjust circumstances. Otherwise you will deceive yourself. Let the angels themselves give you the answer.

At one time, in response to my question, if the outcome was positive, I asked to see a rainbow within a week. If I don’t see it, then it’s not worth investing energy in realizing this goal.

I still saw a rainbow, although the phenomenon is quite rare.

Method 3. Books, songs, snippets of phrases from TV, radio, from random passers-by

It happens that you are tormented by some question, and then you accidentally hear a song on the radio or a fragment of a phrase from a passerby. And it’s like you’re being electrocuted.

Something seems to you makes you hear exactly this phrase.

Or, supposedly by chance, some book catches your eye in a bookstore or falls off the shelf, which then becomes decisive in the issue of your worldview and self-development.

Several years ago I had a difficult period, one might say a life crisis. I was in such despair, I didn’t know how to continue living.

I said mentally that I was ready to work through the situation from beginning to end using any acceptable method, but so that such events that happened to me would no longer happen in my life.

I had a list of books I was going to read and my eye fell on the book Radical Forgiveness by Colin Tipping.

I opened it and promised myself, not yet knowing the methods that were offered there, that I would do all the exercises and apply in life what the author advises, if only this series of troubles would stop.

This book became my salvation then. This is how my spirit guides tried to reach me.

Now it’s clear that they gave me signals before, but I listened exactly that time.

Often some minor event or even a word can become a turning point in your life. I'm sure this has happened to you too.

Method 4. Receiving messages in a dream

Often answers from higher powers come in a dream. Sometimes randomly. You wake up and realize that you dreamed of something significant, special.

But you can use sleep as a way to communicate with angels consciously.

Formulate your request, preferably in writing, so that when you wake up you don’t forget what you asked, and go to bed.

In the morning, try to remember what you dreamed about. It may not work out the first time, especially if your connection with the angels is not established.

But after some practice you will begin receive answers from higher powers through sleep. And perhaps this method will become your favorite.

Method 5. During and/or after meditation

This is one of the direct methods of communication when you go into meditation with a specific request. In a meditative state, the mind slows down and you can hear the voice of the soul.

If the mind is too restless or the question is pressing, the answer may come after meditation, for example, within a day or several.

Sometimes the angels need to create the conditions for you to receive a message.

Use to connect with your soul, Higher Self.

Method 6. Awareness

Any new thought insight is words from above.

If a thought or idea that comes to you inspires you, you feel that it is different from others in vibration, then this is the voice of the soul or angels.

In the ordinary waking state, the mind dominates. And the mind is guided by past experience; it cannot produce anything new.

When you expand your consciousness, you gain access to everything new - ideas, awareness, discoveries.

Consciousness expands only when the heart is open. And the heart is a direct channel of communication with your higher aspects and spiritual guides.

Keep it open and your connection with them will not be interrupted.

Method 7. Direct contact with the Higher Self or channeling

Some communicate directly with your higher aspects and spiritual mentors, feeling them physically.

But there are people who receive channelings from higher spiritual entities.

We often refer to the forecasts of channeled channels: Ronna Herman and Celia Fenn (Archangel Michael channels), Lee Caroll (Kryon channel), Steve Rother, Lauren Gorgo and others.

Most likely, such souls, even before incarnation into physical reality, planned to become channels of higher angelic entities and transmit information to people.

This is one of the types of planetary service.

In other cases, even if we accept channelings, it is from our highest essence.

Method 8. Creativity

A more common way than the previous one to receive answers from higher powers is creativity, creating something new.

Nothing that a person creates belongs to him alone. All achievements of science, culture, inventions, and creative results were given to humanity from above.

The person who creates a creation, like a channel, passes it through himself and gives the world a result, colored by his unique vibrations.

All creations are intended not only for their creators, but for the whole world. This is how the universe and higher powers share their wealth with us.

Everyone perceives the same music, work of art, poetry in their own way and finds their own answer, healing.

Communication through creativity is a universal tool that higher powers use to communicate with people. And it doesn’t matter whether you create yourself or are connoisseurs of other people’s creativity.

As you can see, everything is quite simple. We are looking for a miracle, but it has long been part of our reality.

It doesn’t matter how you communicate with your spiritual guides, the main thing is that you feel from within that the information being received is true, that you can grasp feeling of absolute knowledge- you can’t confuse it with anything.

This is a sure sign of feedback from higher powers and your Higher Self.