LINUX.ORG.RU

36
Всего сообщений: 1704

Как «подружить» C++ с тырнетом?

Решил написать программу на «C++», которая бы могла делать две вещи:

  1. Могла генерировать диапазон чисел,скажем от 1000 до 10000. В принципе «погуглив» у меня уже был на «руках» код, с помощью которого в принципе можно генерировать «фиксированный» диапазон и выводить этот диапазон в консольную строку.
  2. Используя сгенерированный диапазон,она бы могла поочередно вставлять числа в ссылку (к примеру такую: http://localhost/ko<первое число диапазона>) и таким образом могла формировать запрос на ресурс, и получать ответ от ресурса, и если такой адрес существует, то она бы выводила эту самую ссылку. (т.е типа http://localhost/ko1000), иначе она бы выводила тупо «False» «Error» etc.

    Так же хотелось бы, что бы эта программа имела отдельное окошко с «кнопчками»...

    P.s: На всякий случай скажу, что обладаю знаниями «базового» «Паскаля» (типа там program n_1 var a,b,c: integer; a: array [1..10] of integer;)

 ,

Vented ()

на чём писать программу непрограммисту?

Хочу написать небольшую программу. По сути, большая часть кода — вычисления, которые уже написаны на R.

Сначала хотел не париться и задавать исходные данные в виде таблицы и скармливать это скрипту на R, но решил сделать что-то более законченное с GUI.

Программа должна уметь:


  • загружать исходные данные из файла;
  • сохранять исходные данные в файл;
  • сохранять результаты в файл;
  • выводить результаты в виде отчёта .tex с конвертацией в .pdf с моим шаблоном;
  • иметь интерфейс для забивания туда исходных данных вручную в поля ввода;
  • быть кросплатформенной;
  • интерфейс должен уметь масштабироваться под разный DPI.



Вычисления несложные, поэтому скорость роли не играет. Хочу параллельно написанию выучить что-нибудь полезное и перспективное из программирования.

Также хочется не заниматься конвертацией кода из R на другие языки, то есть надо, чтобы язык GUI дружил с R.

И ещё, чтобы создание GUI давалось максимально легко, например, путём рисования боксов мышкой.

Подскажите, пожалуйста, на чём писать и какой IDE использовать для этого?

 , ,

frigate_freedom ()

Как научиться работать с терминалом в Linux?

Господа. Читаю этот форум, вижу что здесь много продвинутых линуксоидов, хорошо понимающих работу в терминале. Как вообще повышать свои способности работы в терминале Linux? Нужно ли для этого быть программистом или нет? Я например не программист, знаю не так много команд, поэтому предпочитаю графический интерфейс, на линуксе сижу чуть больше года. Без навыков программирования вообще реально хорошо освоить терминал Linux?

 , ,

Linuxoid_Deb ()

Получить снимок с Web-камеры и найти на нём звезду

Всем привет!

Короче, наткнулся я тут на проект. Чувак решил сделать астротрекер, понятное дело, что можно такую штуку купить без каких либо проблем, даже видел объявления за 12к б\у, но появился академический интерес. А почему бы не попробовать сделать свой автономный гид?! За одно наконец-то поковыряюсь в анализе изображений.

Из оборудования есть:

  • Монтировка HEQ5-Pro с GoTo
  • OrangePI Zero

Плату разводить и МК программировать лениво, так что хочется взять дешёвую Web-камеру или модуль камеры для платы. Подцепить камеру по USB к линуксу установленному на OrangePI Zero, но тут встаёт ряд вопросов:

  1. Могу ли я делать выдержки на этих камерах в 1, 2, 4, 8 секунд?
  2. Может лучше купить Raspberri Pi Zero и заточенный под неё модуль камеры? Или оставить Orange PI Zero и купить USB-Web камеру? И какую?
  3. Поиск объектов на фото и поиск движения между двумя фото лучше сделать на OpenCL или есть альтернативы? (C OpenCL ещё не работал, но много слышал про эту либу.)

    Ну а дальше остаётся только учить матчасть и говнокодить =) Заранее спасибо за ответы.

 , ,

AntonyRF ()

C++ виртуальные деструкторы (ну простите)

Добрый день. Тема поднималась хренову тучу раз, уж простите. Вопрос: объявляете ли вы деструкторы производных классов виртуальными? Я знаю, что не обязательно, что и так будет работать. Тут вопрос скорее такой: с точки зрения правил хорошего тона нужно ли это делать?

 , , ,

rumgot ()

Как учиться программированию?

Где и как научиться программированию, а не только синтаксису? Вернее, чтобы вообще не стоял вопрос об ЯП. Есть ли признанные книги, курсы? Может есть варианты решения: изучаешь программирование через изучение синтаксиса или наоборот?

Посоветуйте пожалуйста для уровня нуба.

К примеру вот навскидку, что-то из подобного подойдёт?

1. https://www.intuit.ru/studies/courses/3533/775/info

2. https://www.intuit.ru/studies/courses/2193/67/info

3. https://www.intuit.ru/studies/courses/11876/1156/info

Буду благодарен за советы.

P.S. Это не толксы, не нужно тут чсв показывать.

 

le_legioner ()

Невезет с работой?

Не могу задать вопрос в талкс, поэтому напишу сюда, да меня опять продинамили на собеседовании что я понял нужно знать наизусть сортировки,поиски и деревья. Что то ещё? Пишите в комменты и желательно со ссылками

Перемещено tailgunner из general

 ,

Gremlin_ ()

Столкнулся с непонятным заданием?

Вот этим https://ibb.co/t8nLrNb

 

Gremlin_ ()

Работать я не хочу, а воровать боюсь.

«Нужна ли математика программисту?» (c)

Фронтед и вёрстка меня бесят. Бигдата не даётся из-за тугодумия в математике.

Нравится (хочется) системное программирование, но может есть в мире разработки, где

математики не больше, чем в веб? Разработчик баз данных как живёт ? Или останется

только сайтостроительство?

Перейти работать електриком советовать не нужно. Не хочу!

 , ,

le_legioner ()

ошибка при компиляции в с++

компилирую примерчик cordova. после того как подключаю плугин камеры получаю ошибку компиляции

$ /usr/local/bin/cordova run ubuntu
Running command: /home/yurau1510/work/cordova/hello/platforms/ubuntu/cordova/run 
Building...
make -j 2; make install FAILED
[  5%] Automatic moc for target cordovaubuntuplugin
[ 11%] Automatic moc for target cordova-ubuntu
[ 11%] Built target cordovaubuntuplugin_automoc
[ 17%] [ 17%] Automatic moc for target coreplugins
Built target cordova-ubuntu_automoc
[ 17%] Built target coreplugins_automoc
[ 52%] Built target cordovaubuntuplugin
[ 70%] Built target copy_wwwqmlxml
[ 76%] Building CXX object CMakeFiles/coreplugins.dir/src/coreplugins.cpp.o
[ 88%] Built target cordova-ubuntu
/home/work/cordova/hello/platforms/ubuntu/build/src/coreplugins.cpp: In function ‘QList<QSharedPointer<CPlugin> > cordovaGetPluginInstances(Cordova*)’:
/home/work/cordova/hello/platforms/ubuntu/build/src/coreplugins.cpp:28:66: error: expected primary-expression before ‘(’ token
 #define INIT_PLUGIN(class)    res.prepend(QSharedPointer <class> ( new class(Cordova) ));
                                                                  ^
/home/work/cordova/hello/platforms/ubuntu/build/src/coreplugins.cpp:35:5: note: in expansion of macro ‘INIT_PLUGIN’
     INIT_PLUGIN(Camera);
     ^
/home/work/cordova/hello/platforms/ubuntu/build/src/coreplugins.cpp:28:85: error: expected primary-expression before ‘)’ token
 #define INIT_PLUGIN(class)    res.prepend(QSharedPointer <class> ( new class(Cordova) ));
                                                                                     ^
/home/work/cordova/hello/platforms/ubuntu/build/src/coreplugins.cpp:35:5: note: in expansion of macro ‘INIT_PLUGIN’
     INIT_PLUGIN(Camera);
     ^
CMakeFiles/coreplugins.dir/build.make:54: ошибка выполнения рецепта для цели «CMakeFiles/coreplugins.dir/src/coreplugins.cpp.o»
make[2]: *** [CMakeFiles/coreplugins.dir/src/coreplugins.cpp.o] Ошибка 1
CMakeFiles/Makefile2:226: ошибка выполнения рецепта для цели «CMakeFiles/coreplugins.dir/all»
make[1]: *** [CMakeFiles/coreplugins.dir/all] Ошибка 2
Makefile:116: ошибка выполнения рецепта для цели «all»
make: *** [all] Ошибка 2
[  5%] Automatic moc for target cordovaubuntuplugin
[  5%] Built target cordovaubuntuplugin_automoc
[ 41%] Built target cordovaubuntuplugin
[ 58%] Built target copy_wwwqmlxml
[ 64%] Automatic moc for target cordova-ubuntu
[ 64%] Built target cordova-ubuntu_automoc
[ 76%] Built target cordova-ubuntu
[ 82%] Automatic moc for target coreplugins
[ 82%] Built target coreplugins_automoc
[ 88%] Building CXX object CMakeFiles/coreplugins.dir/src/coreplugins.cpp.o
/home/work/cordova/hello/platforms/ubuntu/build/src/coreplugins.cpp: In function ‘QList<QSharedPointer<CPlugin> > cordovaGetPluginInstances(Cordova*)’:
/home/work/cordova/hello/platforms/ubuntu/build/src/coreplugins.cpp:28:66: error: expected primary-expression before ‘(’ token
 #define INIT_PLUGIN(class)    res.prepend(QSharedPointer <class> ( new class(Cordova) ));
                                                                  ^
/home/work/cordova/hello/platforms/ubuntu/build/src/coreplugins.cpp:35:5: note: in expansion of macro ‘INIT_PLUGIN’
     INIT_PLUGIN(Camera);
     ^
/home/work/cordova/hello/platforms/ubuntu/build/src/coreplugins.cpp:28:85: error: expected primary-expression before ‘)’ token
 #define INIT_PLUGIN(class)    res.prepend(QSharedPointer <class> ( new class(Cordova) ));
                                                                                     ^
/home/work/cordova/hello/platforms/ubuntu/build/src/coreplugins.cpp:35:5: note: in expansion of macro ‘INIT_PLUGIN’
     INIT_PLUGIN(Camera);
     ^
CMakeFiles/coreplugins.dir/build.make:54: ошибка выполнения рецепта для цели «CMakeFiles/coreplugins.dir/src/coreplugins.cpp.o»
make[2]: *** [CMakeFiles/coreplugins.dir/src/coreplugins.cpp.o] Ошибка 1
CMakeFiles/Makefile2:226: ошибка выполнения рецепта для цели «CMakeFiles/coreplugins.dir/all»
make[1]: *** [CMakeFiles/coreplugins.dir/all] Ошибка 2
Makefile:116: ошибка выполнения рецепта для цели «all»
make: *** [all] Ошибка 2

Try running the task again with --verbose for more logs.
Example: cordova run -- --verbose
ERROR running one or more of the platforms: Error: /home/yurau1510/work/cordova/hello/platforms/ubuntu/cordova/run: Command failed with exit code 1
You may not have the required environment or OS to run this project
вот сам файл в котором происходит ошибка coreplugins.cpp
/*
 *
 * Copyright 2013 Canonical Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 *
*/
#include <QtCore>
#include "cplugin.h"
#include "coreplugins.h"
#include "cordova.h"


#include "plugins/cordova-plugin-camera/camera.h"

#define INIT_PLUGIN(class)    res.prepend(QSharedPointer <class> ( new class(Cordova) ));

extern "C" {

Q_DECL_EXPORT QList<QSharedPointer<CPlugin>> cordovaGetPluginInstances(Cordova *) {
    QList<QSharedPointer<CPlugin>> res;

    INIT_PLUGIN(Camera);


    return res;
}

}
Где тут ошибкa?

 ,

martin_blumen ()

Text User Interfaces 2k18

Собственно, начал писать небольшое TUI приложение, но в ходе разговоров с другими людьми, получил определенный скепсис насчет того, а не слишком ли плохая идея писать что-то на ncurses в 2018 (почти 19м) году, когда, ну, если не веб, то Qt и Swing в помощь.

Интересено мнение среднего обывателя лора:

  1. Стали бы вы разрабатывать TUI приложение сейчас?
  2. Стали бы вы пользоваться TUI приложениями сейчас?

Сам же я пользуюсь очень часто именно «консольными» приложениями, такими как vim, ranger, ncmpdcpp по причинам:

  • единообразное vimlike управление не отрываясь на мышь.
  • уменьшенное потребление ресурсов, в том числе батареи.
  • использование низкоуровневых утилит для лучшего понимания происходящих процессов (в том плане, что они используется, например IDE и разработчик может (и часто такое бывает) даже не знает что его среда запускает внутри себя).

 , , , ,

JAkutenshi ()

PosgreSQL как хранить пользователей

Добрый день. Есть программа, она выполняет опрос некоторого железа и сохраняет результат опроса в базу данных PostgreSQL. Нужно наличие системы пользователей, т.е. запускает человек эту программу, выбирает свою фамилию, вводит пароль и работает, а результат сохраняется под его фамилией. Так вот. Как хранить пользователей? Делать в базе таблицу users с пользователями или на каждого пользователя заводить роль в PostgreSQL?

 , ,

rumgot ()

как вырасти из junior

Заканчивается 3 год и я все еще junior software developer. Собственно, в этом слове junior вся соль проблемы.

Прихожу джуном, за 3 месяца получаю знания достаточные для выполнения определенного круга задач и в общем то все. Делаешь однообразные задачи, а толку нет. Чувство, что зря протираю штаны не покидает ни на минуту. Прыгать с места на место каждые 3 месяца тоже желания нет. А угадать, что же предлагает работодатель очень сложно. На собеседованиях обещают интересные проекты, а по факту все не так.

Хочу выработать какую то стратегию, чтобы разорвать этот порочный круг, поэтому сижу анализирую свой скромный опыт. В дальнейших рассуждениях, постараюсь максимально абстрагироваться от технологий, т.к. пришел к выводу, что суть моей проблемы глобальная и не зависит от каких либо мелочей. В общем, как мне кажется я все делаю не так, прошу пнуть в верном направлении.

1. Начнем с банальщины: - Делай свои проекты! Ок. Делал. Делаю. Буду делать. Сколько мелких проектов запилено уже не сосчитать, к сожалению никого ими не удивишь, да и после определенного уровня все становится однообразным и бонуса к скиллу не дает никакого. Были попытки сделать более крупные проекты, все были сделаны до какого то уровня, а потом заброшены, ибо за рутиной потерян интерес. Лично мне для себя пилить что то крупное прям сильно напряжно. И снова, даже когда делаешь что то большое, то все равно это набор каких то знакомых тебе паттернов, просто их много.

2. Пробовал ли говорить с начальником, чтобы дали другую работу? - Пробовал, иногда давали разовые задачи, но каждый раз заканчивалось одинаково - «мы тебя взяли под определенную задачу, ты нам нужен тут». Так было и на 1, и на 2, и на 3 работе. Пробовал брать напором, и скулежом - только испортил отношения. На 2 работе так вообще до смешного дошло, добавили зп лишь бы больше не поднимал этот разговор.

3. По поводу менторства: - Много раз слышал про менторство, мол найди себе учителя или работу с таковым. Были попытки, даже были люди готовые ответить на мои вопросы. Проблема в том, что я не знаю что у них спросить. Когда у меня есть конкретный вопрос, мне не влом загуглить. На последней работе у меня был ментор на испытательном, ей богу хороший дядька, много всего знает, но объяснять не умеет, от слова совсем. Поэтому от общения было толку мало, но тут у него хоть была обязанность это делать. В других местах обычно даже времени на код ревью не было, поэтому с вопросами просто отшивали.

4. Мысли по поводу книг: - В последние года 2 приналег на книги, читаю все подряд - алгоритмы, про язык, про технологии, т.е. вроде бы все близкое по смыслу. Но как показывает опыт на это тратится очень много времени, но выхлоп очень маленький, т.е. реально за целую книжку в 800-1000 страниц говоришь «мм вон оно как» в лучшем случае 2-3 раза, остальное не имеет смысла пока плотно не столкнешься, а когда начнешь делать то проще загуглить.

5. По поводу фриланса: - Если рассматривать в целом то, что предлагают биржи, то это ахтунг, 90% задач реально зашкварные, чуть более менее нормальная задача появляется, то сразу конкуренция высокая.

- Даже если идеализировать предыдущий пункт. Если посидел нормально и попрогал ночью, то с утра на основной работе сидишь как вареный и полдня приходишь в норму. Это сразу качественно сказывается на основной работе. Высокий шанс перегореть.

- Если пытаться на елку залезть и кое куда присесть, то у среднестатистического человека 9 часов на работу + сколько то на дорогу. Итого, в лучшем случае ~4 часа в день. Со сроками, которые ставят заказчики - 4 часа это ни о чем. Да, я знаю людей, которые умудряются делать на основной работе то, что продают потом вечером как фриланс. Я искренне восхищаюсь ими и считаю их талантами, у меня такое не прокатывает.

6. Коммитить на гитхабе. - Ок, выбираю язык + технологию, которые мне интересны, смотрю баги и то что открыто. Если открыто и нет пул реквестов, то моих знаний там тоже не достаточно. Ищу тупо то, что мог бы хотя бы потенциально починить. Смотрю - их уже кто то фиксил, а они так и висят в pull request, потому что владелец давно забил на проект. Допилить фичу в какой то имеющийся проект? Да тоже самое, те идеи что и приходят в голову требуют хороших скилов.

7. Найти народ на форуме и с ними запилить проект. - Было и такое, встречался, обсуждали и даже делали, но таки успеха не было. Потому что абсолютно все идеи изначально были слабые.

8. Была интересная мысль мол, есть сайты на которых люди просят что нибудь сделать. Мол можно там идею подсмотреть. - Анон удивишься, я о таком огромном количестве софта узнал благодаря этому, но все идеи, которые были уже кем то реализованы.

Конечно, все это без конкретики пустые строки. Поэтому попробую вспомнить, все свои проблемы.

1. Самая главная претензия, ты медленно пишешь код. Чаще всего бывает так, что подобный код пишу впервые. Я не представляю как можно писать код не разобравшись в проблеме досконально. Обычно, если не разобрался до конца, то потом будет багов столько, что проще будет все таки сесть разобраться и написать код заново. Лично видел людей, которые вообще не разбираясь в сути проблемы сходу пишут код и каким то чудом им удается избежать багов. Для меня это мистика, если есть потенциальные грабли, я их соберу все до единого. Анон, как мне набить этот скилл???!!!

2. Не понимаю ТЗ. Также одна из главных моих проблем. Спрашиваю, сделать так - угу. Делаю, отдаю на проверку, мат перемат, мы все хотели по другому. Смотришь на исправленное ТЗ - все ваще не так. И я бы сказал что это не моя проблема, но снова, я видел людей которые экстрасенсы чтоли, умудряются сходу понять, что не так. Думал что с годами этот скилл будет расти, так и есть, но оччеень медленно.

3. Поиск информации. Речь не о том, чтобы открыть stack overflow, отнюдь! Если инфа не гуглится, то я буду сидеть месяцами и снова таки пытаться разобраться с проблемой пока не разберу ее на винтики и таки снова я вижу что большинству удается найти инфу там, где никогда не догадаешься искать. На вопрос, как?? как ты до этого дошел, человек пожимает плечами.

4. Как читать код. Нет, нет, вопрос не про то чтобы проследить вызовы функций или кто где выставляет переменные, вопрос в том, когда ты открываешь сходу понять идеологию в принципе. Хорошо когда рядом есть человек, который писал код и ты можешь его спросить, а что же в принципе этими строчками ты хотел сделать. Постоянно с этим проблемы.

5. Многостаночник. лично от меня на работе это постоянно требуют, но я вижу что некоторым товарищам удается это обойти и они занимаются одним делом. И снова вопрос, стоит ли?

6. Смежные технологии. Постоянно от меня требовали знаний в какой то узкой области, причем абсолютно всегда эти знания больше нигде и никогда не пригодились. Стоит ли бодаться или изучать?

Итого, много сумбура. Я понимаю что главный ответ на мои вопросы - сиди программируй, это понятно. Вопрос как делать это эффективно, при таких исходных данных, с такими темпами я еще 10 лет буду джуном. Хочется мяса и жести, роста, интересных проектов, удовольствия от того что делаешь. ЗЫ анон, прошу больше конкретики.

 , ,

xvier ()

А нет ли у нас проблем с рендерингом SVG?

Попробовал я тут повозиться с рендерингом SVG на Qt. Разумеется с полпинка всё криво и косо, но это мелочи. Не мелочи то, что 2MiB SVG на не древней машине реально тормозит.
Ок, новая для меня либа; я скорее всего делаю что-то неправильно. Но GTKшный просмотрщик из MATE тоже тормозит. Реально неудовлетворительно.
А масштабирование в моей программе будет чуть ли не самой часто ипользуемой фичей.
Неужели с SVG всё действительно так плохо? Может это гиблая идея? А может просто нужно подрезать детализацию и всё будет хорошо?

 ,

ZweiStein ()

Влияет ли избыточное создание переменных на производительность?

Привет всем! Давно такой вопрос мучал меня. Влияет ли избыточное создание переменных на производительность? Допустим я в Python буду руководствоваться принципам красоты кода, и буду разбивать длинные выражения на несколько более мелких, создавая избыточные переменные, это на быстродействии не скажется? И вообще, этот случай на всех языках программирования на быстродействии не скажется? Например такой код:

def egg(a, b, c):
   some = some1.some2.some3(a)
   todo = some.fucking1.fucking2.fucking3(b)
   .... // и т.д. :)
   return fucking_finish

 , , , ,

dimcoin ()

Что есть программист

Доброго времени суток. Прошу откликнуться людей, работающих в сфере разработки.

Мне, как человеку, который ещё только обучается стало интересно, а чем занимаются разработчики ПО? То есть какие конкретно проекты они выполняют? Если с веб разработкой все понятно, то тут я просто хочу узнать, дабы начинать копать именно практическую составляющую.

Перемещено tailgunner из development

 ,

KrasnoGlazik ()

Рекурсивный список имён и атрибутов

Добрый день, прошу помощи. Никак не получается выполнить задание: Вывести два первых элемента рекурсивного списка имен и атрибутов файлов в директории lab0, заканчивающихся на символ 'd', список отсортировать по убыванию даты доступа к файлу.

 ,

Hajuro ()

Как создать этот деб пакет

Я только только начал изучать линукс и программирование на с++ буквально неделю назад. Написал небольшой скрипт и скомпилировал его. Получился файл который запускается через терминал командой ./filename. Вопрос - как из этого файла или скрипта .cpp сделать deb пакет, что бы он запускался из меню приложений?

 , ,

EgorLoveLinux ()

Пробелы и другие спецсимволы в идентификаторах

Сферический пример:

https://github.com/slide-rs/specs/blob/master/examples/basic.rs#L52

Автор кода назвал систему «sys_a» но мог бы и назвать «sys a», мне кажется что страх пробелов какой-то нездоровый. Из-за длительного унижения линуксовыми шелами программисты и другие айтишники боятся пробелов в именах и это печально.

Предлагаю искать вот такие вот случаи, где '_' или '-' можно без проблем заменить на пробел и обращать на них внимание, что бы излечиться.

 

vlad9486 ()

Программирование: Начало

Доброго времени суток, уважаемые форумчане! Недавно все же решил, что жизнь слишком коротка, чтобы тратить ее на ненавистную работу и самое время заняться тем, о чем мечтал ещё со времён школьной скамьи. То есть программированием. Умные люди посоветовали освежить высушенные временем мозги высшей математикой, а также изучить алгоритмы, структуры данных. После чего приступать к обучению языкам программирования, базам данных и в итоге к практике. Только все усложняется тем, что живу я в Казахстане и вариантов проявить себя абсолютно нет (так как область IT ещё на стадии зародыша), как и получить работу. В будущем хотел бы иммигрировать в Россию или более развитую страну в сфере IT, ради реализации себя как разработчика или хотя бы тестировщика. Ну а сейчас внимание, вопрос! Есть ли какая-нибудь возможность обрести практический опыт онлайн? Может есть сайты для этого? Желательно что бы опыт помог в дальнейшем трудоустройстве. Готов быть фрилансером за идею, так как сейчас я полный ноль без опыта и соответствующего образования. Заранее благодарен.

Перемещено leave из general

 , , ,

bushmen ()