• Где хранить бесконечность записей (111 * 10^29)?

    abyrkov
    @abyrkov
    JavaScripter
    На бесконечном винчестере, разумеется. И как вы такую фигню написали?
    Ответ написан
    2 комментария
  • Где хранить бесконечность записей (111 * 10^29)?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Это что вы такое собрались хранить?
    95*111*1029 байт ≈ 1034 байт ≈ 1022 терабайт
    Значит покупаете тысячу миллионов миллионов миллионов винчестеров на 10 Tb и получаете своё хранилище.
    Ответ написан
    12 комментариев
  • Почему при сложении 1500 чисел, не превышающих 1, printf выдает #INF0?

    Schullz
    @Schullz
    =^.^=
    На некоторой итерации случается следующее:
    rnd = 0;
    t_i = 1.#INF0
    sum=1.#INF0

    Это из-за того, что log(0) стремится к минус бесконечности
    Ответ написан
    1 комментарий
  • Пишут ли сейчас на чистом Си?

    @ruGuardian
    Огромное количество кода пишется на Си в области встроенного ПО систем реального времени для авиации, космоса и в целом для армии и транспорта. Это целый мир, который в интернете почти не заметен, если специально не интересоваться. В целом, Си необходим, если:
    1) вам интересно низкоуровневое программирование - здесь на Си будут писать, когда вы на пенсию выйдете. Любая новая железка, новый проц - это сперва работа на низком уровне, и только потом - API, использование прикладниками и проч.. А новые железки будут всегда.
    2) вам интересны ОС и *nix в частности - аналогично. Никто ядро Линукса на Rust переписывать не будет.
    3) вам интересно ПО систем реального времени - будет актуально ещё лет 25 минимум. Реалтаймщики даже С++ в полном объеме не используют - любой конструктор с выделением памяти может разрушить детерминизм по времени исполнения. Для ПО от реакции которого в строго заданное время зависит жизнь людей - это непозволительно.
    Вот те области для Си программиста, весьма почетные и профит соответствующий (и в деньгах, и в инженерном профессионализме).
    Ответ написан
    Комментировать
  • Какой редактор выбрать Sublime, Brackets, Atom?

    Одно можно сказать точно: Sublime быстрее и производительнее, и по некоторым возможностям обходит конкурентов. Вот тут есть подробное сравнение. Спойлер - лучшим по набранным баллам окажется как раз Sublime.
    Ответ написан
    5 комментариев
  • Как сделать графический интерфейс программ на C++?

    Nipheris
    @Nipheris Куратор тега C++
    Смотрел в сторону Qt, но что то как то не сраслось.


    А надо, чтобы срасталось. Нет, конечно вам правильно пишут, что библиотек всяких еще много, и правильно пишут, что многие современные библиотеки рисуют с помощью OpenGL, но лично я вам советую Qt, раз уж начали знакомиться. Я сомневаюсь, что с остальными либами вам будет сильно проще (особенно с WinAPI или c WTL - Кьют покажется детской игрушкой).

    Популярные программы потому имеют хороший интерфейс, что у их производителей есть время и деньги его сделать, а самое главное - ПОТРЕБНОСТЬ. Ведь их продукты популярны! Adobe готова вылизывать Фотошоп до блеска, и в состоянии написать свою собственную библиотеку, т.к. это дорогой продукт, используемый по всему миру.
    Ответ написан
    Комментировать
  • Область применения C, C++, C#?

    Nipheris
    @Nipheris Куратор тега C++
    > Хотел задать вопрос к опытным программистам.

    Ну раз опытным, то думаю разумно поделиться своим опытом. Итак, в чем участвовал за последние 5-6 лет, где были плюсы или шарпы. Три места работы, три команды:
    - десктопная софтинка наподобие 2ГИС - база данных услуг и предприятий с привязкой на карту. C#, карту отрисовывали сами с помощью Direct3D;
    - TCP-сервер GPS-трекеров (такие фиговины, отправляют по GRPS/SMS свои текущие GPS/ГЛОНАСС координаты + всякие плюшки для транспорта - уровень топлива, скорость движения и т.д. - зависит от модели). C++ и обыкновенные сокеты. Сервер небольшой, принимал именно данные от трекеров и писал в базу. Отображалось все на обыкновенном сайте с PHP в бэкенде.
    - веб-сервис, принимающий платежи по WebMoney Merchant и поддерживающий балансы на счетах клиентов. Открывал урл для серверов вебмани, плюс давал простейшие отчеты (проведена транзакция или нет, текущий баланс, транзакции на списание). C# (WCF), данные писались в PostgreSQL.
    - десктопное приложение для проходной - по отпечаткам пальцев входящих/уходящих сотрудников регистрировалось их время пребывания на предприятии. Ну и разумеется - отчеты, агрегации (время отработанное за неделю, опоздания, переработки и т.д.). C# + некоторые части на С++, соединяющие драйвер сканера отпечатков и библиотеку их распознавания по образцам.
    - здоровенное декстопное приложение на C++ + Qt, трейдинговый терминал (более 10к файлов исходников, команда из 30+ человек);
    - довольно объемный ГИС-проект на C#, клиент десктопный (WPF+SharpMap), серверная часть - ASP.NET WebAPI (JSON API).
    - планируется новый ГИС-проект с клиентом уже на C++ и Qt, т.к. существует нереально крутые рендереры на OpenGL от MapBox (тык), а большинству участников текущего проекта плевать - C++ или C#. Qt сейчас развивается очень серьезно, поэтому на сегодняшний день он выровнялся с C#+WPF, а т.к. рендерер на плюсах - то и клиента будем писать на плюсах. На сервере по-прежнему ASP.NET, вероятно новой версии (пока начнем писать, должна успеть выйти в релиз); тех, кто считает, что с ним "сложно в вебе" - аргументы в студию;
    - небольшой сайд-проект - рендер сложного 3D объекта для внедрения в рекламный ролик новой фантастической книги. С++ и OpenGL, написано быстро, дешево и сердито, отрисовано покадрово в PNG-шки, смонтировано в After Effects, все довольны.

    Вывод: поверьте, если инструмент подчиняется вам, то вам открыто много способов решения различных задач. Конечно, для Web-бэкенда C++ будет очень странным выбором, но лично у меня хватает задач и без бесконечных мелких сайтиков.

    Послесловие: безусловно, начинать лучше с того же Паскаля (да, я серьезно, отличный язык для обучения, дисциплинирует, и при этом не скрывает машину от программиста). Но если уж выучите С++, или хотя бы Си, то остальные языки после него будут как игрушки с наворотами. Конечно, для этого вам уже надо знать, что вы хотите стать программистом. Если еще не уверены - лучше попробовать на более простом языке, иначе перегорите не дойдя и до середины.
    Ответ написан
    12 комментариев
  • Какую книгу по assembler посоветуете?

    frosty7777777
    @frosty7777777
    Для начала посмотри этот сайт. Там очень коротко и доходчиво изложены основные концепции.

    Затем, если тебя интересует теория и ты готов потратить время на её изучение, то самая лучшая книжка - это
    Юров В.И. - Assembler 2-е издание
    Кстати, к этой книге есть замечательный практикум:
    Юров В.И. - Assembler. Практикум.

    Если ты мечтаешь сразу начать писать программы и предпочитаешь практические навыки, то немедленно приступай к чтению
    Калашников О. А. - Ассемблер — это просто.

    Так же, как программист программисту, настоятельно рекомендую ознакомиться c двумя замечательными книгами:
    Пильщиков В.Н. - Программирование на языке ассембл...
    Марек. Р. - Ассемблер на примерах

    Если затянет и захочется стать гуру ассемблера, то, пожалуй, самые серьезные и глобальные книги, которые я могу тебе посоветовать:
    Ирвин К.Р. - Язык ассемблера для процессоров Intel
    Абель П. - Язык Ассемблера для IMP PC

    Дорогу осилит идущий. Удачи!
    Ответ написан
    2 комментария
  • Какую книгу по assembler посоветуете?

    globuzer
    @globuzer
    gezgrouvingus progreszive ombusgrander greyderzux
    Авторы книг: Юров, Голубь, Зубков. Это российские более-менее современные учебные пособия.
    Также есть старинная книга, автор Скэнлон, программирование на IBM\XT, там еще для i8086 объясняется и хорошо расписана архитектура процика.
    Для организации ЭВМ и машинных языков, можно для понимаю почитать Таненбаума Архитектура компьютера, чтобы понять смысл ЭВМ изнутри.
    Ответ написан
    1 комментарий
  • Ruby or Python?

    yokotoka
    @yokotoka
    Python guru
    Я стоял перед тем же выбором лет 6 назад и выбрал Python. Не пожалел. Он достаточно универсален, чтобы писать на нём не только сайты. Ruby, к сожалению, больше RoR-язык, чем язык общего назначения. Очень мало софта вне RoR у него и назначение очень узкое, хотя сам язык прикольный. Python же используется очень много где вне веба - начиная от микроконтроллеров, заканчивая сложными научными расчётами.

    И ещё, немного личного. Я ненавижу Django. Это один из самых худших веб-фреймворков, по странному стечению обстоятельств, оказавшийся в тренде. Он, заточенный под газетные сайтики и бложики, с тяжёлым синдромом велосипедостроения и Not Invented Here, лепится всюду, куда стоит и, особенно, куда не стоит. И это нелепо смотрится (особенно в нём убог ORM в сравнении с той же SQLAlchemy). Есть много более удачные примеры для многих применений (Flask, Pyramid). Если возьмётесь делать веб-приложение, а не сайт-визитку/блог (который лучше вообще делать на php и Wordpress), присмотритесь к ним повнимательнее.

    UPD: А вообще, создаётся ощущение, что сейчас лучше всего учить JS, хотя он плох почти всем, что в нём есть. :) Go, Rust интересны, но пока слишком незрелые. Тут ещё C#/.NET со своими open source движениями начинают смотреться неплохо. Ну и всегда есть Java для любителей винтажа и максимальной кроссплатформенности (с матюками). В общем, сложное сейчас время. :)
    Ответ написан
    5 комментариев
  • Ruby or Python?

    "Лучше" зависит от ответа на вапрос "А вам для чего?", "легче" зависти от опыта и личных качеств. На обоих ЯП можно создавать всё.
    По существу: Языки сравнимой мощности. Однако Питон более распространён и применяется в более широком спектре задач, Рубин в свою очередь более силён в сфере вёба.
    Рубин тяготеет к магии (вещи просто работают, не важно как, "соглашения над конфигурацией"), Питон -- к строгости и предсказуемости.
    Мне лично больше нравится Рубин. Субъективно -- красивее, человечнее. Кроме того на РУбине написаны Рельсы )))
    Питон ничуть не хуже -- просто другой.
    Короче: если нет контекста, то кому что нравится....
    Ответ написан
    1 комментарий
  • Стоит ли перейти на linux

    Informatikum
    @Informatikum
    Преподаю робототехнику и информатику в школе.
    Если вы хотите программировать, то однозначно стоит попробовать Linux. Линукс используют в работе топовые компании. Во многих вакансиях указывают, что знание Linux будет преимуществом для IT.

    Если вы играете в игры, то под Линукс на сегодняшний день существует огромное количество игр с красивой графикой. После того как на Linux появился Steam OS (Valve поддерживает Linux), в Линуксе стало ещё больше качественных игр!

    Составил список "Топ 30 лучших игр для Ubuntu".
    Ответ написан
    2 комментария
  • Где найти генератор отчетов для данных в mysql?

    0neS
    @0neS
    Вам тяжело ручками 3 запроса сделать?
    Ответ написан
    Комментировать
  • В чем отличия C++ и C# ?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Тут все пишут про отличия. Рискну написать про сходства.

    Во-первых, о чём бы ни писала Елена и Си++ и C# - оба языки общего назначения. Даже больше, оказывается - C# ни разу не заточён под объёмную библиотеку (или фреймворк) .NET, однако с ним намного, много проще. Но если таки учитывать .NET, то для Си++ есть Boost и Qt, так что здесь скорее паритет - библиотек для обоих хватает.
    Во-вторых, сложность разработки на Си++ часто преувеличена. Разве только дисциплины надо поболее - выстрелить в ногу здесь попроще. Однако при этом Си++ будет чутка более гибкий и без танцев с бубнами unmanaged код не запустить на C#. Если внезапно потребуется.
    В-третьих, оба языка, раз они общего назначения, таки мультипарадигмальные. То есть они реализуют большинство практик. И хотя Си++ развивается довольно медленно, сейчас Си++ резко догнал C# в плане нереализованных фич (здесь как минимум лямбды). Ну и метапрограммирования у Си++ поболее будет (наглая ложь).
    В-четвёртых, оба языка кроссплатформеные. Впрочем, C# будет более кроссплатформенный, чем Си++. Разве только тот же Qt резко стёр границы, но это не значит почти ничего - C# компилируется в тот же самый CIL для всех платформ, Си++ - в совершенно разный код для разных платформ (i386, amd64, ARM Cortex-AXX).
    Наконец, в пятых, синтаксис у них действительно очень похож. Оба языка принадлежат к семейству Алгол-подобных, так что и брейсы, и остальные скобки здесь имеют примерно одно предназначение.

    Различия, которые казалось бы делают языки совершенно разными, таки не столь принципиальны на том уровне абстракции, на котором был задан вопрос. А различия действительно колоссальны: C# - managed код, что означает, что скомпилированный код будет исполнятся не на прямую в CPU, а на специальной виртуальной машине. Это съедает производительность, но сильно облегчает перенос кода. Ну и потом, C# - полупроприетарный ответ Java (что интересно, так как получается, что C# - более свободный, чем Java), которая была создана как замена сложному и небезопасному C++ в том числе.

    В общем, как человек, который начал давно с C#, продолжив C++ и по пути изучив Python, Java, D и другую ООП-чушь могу с уверенностью сказать, что разницы в общем-то и нет... То есть придётся немного проникнуться в чуть другую философию и выяснить, какие проблемы более новый язык пытался решить. Но если подходить к этому, как подошёл lookid, то это скорее не как изучать языки одной языковой группы, а как изучать один и тот же язык в разное время или в разных сферах.

    Почему так? Потому что ООП... Оно как бы ООП, ничего сверхъестесственного ни один язык не предлагает, это не Haskell, и тем более не Brainfuck. Так что принципиально общие вещи в них будут. То подмножество, что реализует машину Тьюринга - у них общие. Сами посмотрите: циклы, ветвления, передача аргументов, арифметика... С небольшими правками всё совершенно одинаковое. Да, Дмитрий совершенно прав, traits на C# не повторишь, ибо та аналогия будет уже не traits, однако... Это уже [programming_language] related, то есть это попытка совладать с особенностями.

    Немного пруфов: лично я ходящий пруф. Зная C++ и C# и немного Java я просто начал программировать на Python. При том, что Python даже алголоподобным не принадлежит. А всё потому, что логика одна и та же, хотя различий между Python и C(++|#) намного, много больше. Но не читая почти никаких туториалов, пройдясь галопом по европам с документацией сейчас я знаю python достаточно для серьёзного проекта.

    UPD. По поводу метапрограммирования... Таки рантайм рефлекшн шарпа тащит. И хотя ни макросов, ни шаблонов, ничего. Но изменять код на лету - это уже очень круто. По дефолту плюсы так не умеют, и хотя шаблоны с макросами тащат, сильно, очень сильно тащат и вытаскивают его, Си++, со дна, надо признать - рефлешн у шарпа будет поинтереснее. Извиняюсь за дезу.
    Ответ написан
    6 комментариев
  • Как поднять VPN сервер на linux mint?

    @younghacker
    Прежде всего уясните себе что машина с easy-rsa это машина которая только подписывает ключи. И по логике безопасности должна быть отдельной машиной. Не стоит хранить генератор ключей и в особенности приватный CA на самом VPN сервере.

    1) ставим openvpn на VPN сервере
    # apt-get install openvpn
    2) ставим easy-rsa на станции подписей
    # apt-get install easy-rsa
    3) создаём каталог куда скопируем easy-rsa и там будем изменять настройки, создавать и подписывать сертификаты
    # mkdir -p /root/sign-host/easy-rsa
    # cd /root/sign-host/easy-rsa
    # cp /usr/share/easy-rsa/* ./

    4) проверяем что скопировалось
    # ls -1
    build-ca
    build-dh
    build-inter
    build-key
    build-key-pass
    build-key-pkcs12
    build-key-server
    build-req
    build-req-pass
    clean-all
    inherit-inter
    list-crl
    openssl-0.9.6.cnf
    openssl-0.9.8.cnf
    openssl-1.0.0.cnf
    pkitool
    revoke-full
    sign-req
    vars
    whichopensslcnf

    5) меняем переменные в конце файла vars. Размер ключики. Если параноя входит в ваши должностные обязанности то нужно побольше ставить. :)
    # mcedit vars
    .......
    export KEY_SIZE=1024
    .......
    export KEY_COUNTRY="US"
    export KEY_PROVINCE="CA"
    export KEY_CITY="SanFrancisco"
    export KEY_ORG="Fort-Funston"
    export KEY_EMAIL="me@myhost.mydomain"
    export KEY_EMAIL=mail@host.domain
    export KEY_CN=changeme
    export KEY_NAME=changeme
    export KEY_OU=changeme
    export PKCS11_MODULE_PATH=changeme
    export PKCS11_PIN=1234

    changeme - замените на свои значения. Остальные также можно изменить если хотите. На работоспособность это никак не влияет.

    Затем генерируем ключи. Команда vars запускается из шела. перед ней через пробел точка.
    После её запуска нужно запускать остальные.
    # . vars
    NOTE: If you run ./clean-all, I will be doing a rm -rf on /root/easy-rsa/keys
    # ./clean-all 
    # ./build-ca myvpn-ca
    Generating a 1024 bit RSA private key
    .....++++++
    .................++++++
    writing new private key to 'ca.key'
    -----
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [US]:
    State or Province Name (full name) [CA]:
    Locality Name (eg, city) [SanFrancisco]:
    Organization Name (eg, company) [Fort-Funston]:
    Organizational Unit Name (eg, section) [my-organization]:
    Common Name (eg, your name or your server's hostname) [myvpn-server]:
    Name [myvpn-key]:
    Email Address [mail@host.domain]:

    Получили ключик центра сертификации. Публичный и приватный.
    ca.crt
    ca.key


    Следом создадим ключик Diffie Hellman
    # ./build-dh
    Он может довольно долго работать и создавать ключ. Для 1024-х бит получим файл ./keys/dh1024.pem
    Теперь генерируем и подписываем ключ сервера.
    ./build-key-server myvpn-server-key
    Generating a 1024 bit RSA private key
    ............++++++
    .......++++++
    writing new private key to 'myvpn-server-key.key'
    -----
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [US]:
    State or Province Name (full name) [CA]:
    Locality Name (eg, city) [SanFrancisco]:
    Organization Name (eg, company) [Fort-Funston]:
    Organizational Unit Name (eg, section) [my-organization]:
    Common Name (eg, your name or your server's hostname) [myvpn-server-key]:
    Name [myvpn-key]:
    Email Address [mail@host.domain]:
    
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:
    An optional company name []:
    Using configuration from /root/easy-rsa/openssl-1.0.0.cnf
    Check that the request matches the signature
    Signature ok
    The Subject's Distinguished Name is as follows
    countryName           :PRINTABLE:'US'
    stateOrProvinceName   :PRINTABLE:'CA'
    localityName          :PRINTABLE:'SanFrancisco'
    organizationName      :PRINTABLE:'Fort-Funston'
    organizationalUnitName:PRINTABLE:'my-organization'
    commonName            :PRINTABLE:'myvpn-server-key'
    name                  :PRINTABLE:'myvpn-key'
    emailAddress          :IA5STRING:'mail@host.domain'
    Certificate is to be certified until May 17 13:58:59 2024 GMT (3650 days)
    Sign the certificate? [y/n]:y
    
    
    1 out of 1 certificate requests certified, commit? [y/n]y
    Write out database with 1 new entries
    Data Base Updated

    Это добавило ещё 3 файла в каталог ./keys/
    myvpn-server-key.crt
    myvpn-server-key.csr
    myvpn-server-key.key

    Ну и теперь генерируем ключи для клиентов. Если клиенты будут иметь разные ключи то сколько клиентов столько раз и запускать. Не забывайте каждый раз менять (номер) ключа. Ну или можете назвать по именам реальных клиентов vasya-key, roma-key и т д.
    ./build-key myvpn-client1-key
    Generating a 1024 bit RSA private key
    ...................++++++
    ................++++++
    writing new private key to 'myvpn-client1-key.key'
    -----
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [US]:
    State or Province Name (full name) [CA]:
    Locality Name (eg, city) [SanFrancisco]:
    Organization Name (eg, company) [Fort-Funston]:
    Organizational Unit Name (eg, section) [my-organization]:
    Common Name (eg, your name or your server's hostname) [myvpn-client1-key]:
    Name [myvpn-key]:
    Email Address [mail@host.domain]:
    
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:
    An optional company name []:
    Using configuration from /root/easy-rsa/openssl-1.0.0.cnf
    Check that the request matches the signature
    Signature ok
    The Subject's Distinguished Name is as follows
    countryName           :PRINTABLE:'US'
    stateOrProvinceName   :PRINTABLE:'CA'
    localityName          :PRINTABLE:'SanFrancisco'
    organizationName      :PRINTABLE:'Fort-Funston'
    organizationalUnitName:PRINTABLE:'my-organization'
    commonName            :PRINTABLE:'myvpn-client1-key'
    name                  :PRINTABLE:'myvpn-key'
    emailAddress          :IA5STRING:'mail@host.domain'
    Certificate is to be certified until May 17 14:03:29 2024 GMT (3650 days)
    Sign the certificate? [y/n]:y
    
    
    1 out of 1 certificate requests certified, commit? [y/n]y
    Write out database with 1 new entries
    Data Base Updated

    Получили три файла на каждого клиента
    myvpn-client1-key.crt
    myvpn-client1-key.csr
    myvpn-client1-key.key

    Ну и для комплекта сгенерим ещё и TA ключ.
    openvpn --genkey --secret "$EASY_RSA/keys/myvpn-server-ta.key"

    В результате добавится ключик ./keys/myvpn-server-ta.key
    Поздравляю! С ключами закончили.

    Теперь берите пять (5) ключей:
    dh1024.pem
    ca.crt
    myvpn-server-ta.key
    myvpn-server-key.crt
    myvpn-server-key.key

    и копируете на сервер в каталог /etc/openvpn/
    Копируете по закрытому соединению. scp например. или флешкой перенесите.
    Затем берёте четыре (4) ключа:
    ca.crt
    myvpn-server-ta.key
    myvpn-client1-key.crt
    myvpn-client1-key.key

    и копируете их на клиента в каталог /etc/openvpn/ или в соответствующий каталог на windows
    Аналогично копируете соблюдая меры безопасности.
    Теперь осталось сделать конфиги.
    Сервер /etc/openvpn/myvpn-server.conf
    port 443
    proto udp
    dev tun1
    
    user nobody
    group nogroup
    
    dh       /etc/openvpn/dh1024.pem
    ca       /etc/openvpn/ca.crt
    cert     /etc/openvpn/myvpn-server-key.crt
    key      /etc/openvpn/myvpn-server-key.key
    tls-auth /etc/openvpn/myvpn-server-ta.key 0
    
    server 10.10.0.0 255.255.255.0
    push "redirect-gateway"
    push "dhcp-option DNS 10.10.0.1"
    push "explicit-exit-notify 3"
    
    client-config-dir ccd
    keepalive 10 60
    
    #duplicate-cn
    
    auth SHA1
    cipher AES-256-CBC   # AES
    comp-lzo
    
    max-clients 128
    persist-key
    persist-tun
    
    ifconfig-pool-persist /var/log/openvpn-ipp-udp443.txt
    status                /var/log/openvpn-status-udp443.log
    log                   /var/log/openvpn-udp443.log
    verb 3


    Клиенты /etc/openvpn/myvpn-client.conf
    client
    dev tun1
    proto udp
    remote xxx.xxx.xxx.xxx 443
    resolv-retry infinite
    nobind
    persist-key
    persist-tun
    
    ns-cert-type server
    
    ca       /etc/openvpn/ca.crt
    cert     /etc/openvpn/myvpn-client1-key.crt
    key      /etc/openvpn/myvpn-client1-key.key
    tls-auth /etc/openvpn/myvpn-server-ta.key 1
    
    # разрешаем запускать скрипты
    script-security 2
    # на поднятие и опускание vpn запускаем скрипт обновления файла resolv.conf
    up /etc/openvpn/update-resolv-conf
    down /etc/openvpn/update-resolv-conf
    
    cipher AES-256-CBC
    log /var/log/openvpn.log
    comp-lzo
    verb 3

    Готово.
    Заускаем
    # service openvpn start
    Проверяем что запустился
    # netstat -nlp -A inet | grep openvpn
    udp        0      0 0.0.0.0:443             0.0.0.0:*                           2075/openvpn

    Теперь важно открыть на Firewall UDP 443 на нужном интерфейсе.
    # ufw allow 443/udp
    И не забыть проверить и настроить SELinux если он установлен и включён.
    Если вдруг openvpn не запустился временно отключить SELinux можно так:
    # setenforce 0
    Дальше нужно включить автозапуск как на сервере так и на клиентах если это нужно.
    Для этого раскомментируем или добавим опцию AUTOSTART
    # mcedit /etc/default/openvpn
    ...
    AUTOSTART=all
    ...
    Ответ написан
    2 комментария
  • Стоит ли перейти на linux

    foxmuldercp
    @foxmuldercp
    Системный администратор, программист, фотограф
    Хотите перейти - прекрасно!
    поставьте виртуалбокс/вмварь воркстейшен, в нём дебиан. почитатей хендбук по дебиану, попробуйте недельку поработать, настроить под себя и установить и настроить все необходимое.
    снесите дебиан, поставьте генту, почитайте мануалы и хендбук по ней.
    снесите это все, поставьте центось как ту, что используется много где на серверах под ораклом и виртуализацией, почитайте мануалы к ней.
    на BSD смотреть тоже можно, но по тенденции последних 5 лет с нее все хостеры и ISP уходят на вышеназванные центоси/рхелы...
    Ответ написан
    Комментировать
  • Стоит ли перейти на linux

    Color
    @Color
    Golang SWE, Cloud & DevOps
    Постараюсь ответить просто и понятно.
    стоит ли переходить - да
    будет ли первое время неудобно - зависит от дистрибутива. для новичков советую Linux Mint. Сам пользовался им два года, сейчас перешел на другой из интереса
    есть ли игры - да. за последние два года их стало очень много. но придется покупать
    есть ли программы - почти все распространенные программы есть, или мощные бесплатные аналоги. Узкоспециализированного софта нет, ничего не поделаешь
    а как же фотошоп - три варианта: виртуалка (простой), wine (посложнее), gimp - бесплатный редактор, тоже мощный, но придется переучиваться.
    две системы параллельно - да хоть десять, только на разных дисках, и ставьте линукс последним, чтобы нормально настроился GRUB (менеджер операционных систем). Но я советую поставить один линукс, а винду завести под виртуалкой. Это проще
    непривычный интерфейс - нифига. такой же. только программы ставить в сто раз проще
    офис - libreoffice немного отличается от МСофис, но привыкнуть просто. Я в нем диплом писал.
    музыка, видео, браузеры - все есть, что есть в винде, или есть получше
    какой дистрибутив выбрать - советую Linux Mint - на основе Ubuntu, только проще в понимании да и стабильнее, если честно. Для новичка - самое то.
    А как же консоль - все уже давно есть в гуи. но в консоли проще и удобнее (а я то думал, что наоборот!). придет со временем
    смогу ли я играть в кс / дотку / майнкрафт / тимфортресс / <...> с друзьями по сетке - да
    смогу ли я программить под линем - да, возможностей в нем больше.
    Ответ написан
    Комментировать
  • Стоит ли перейти на linux

    UrbanRider
    @UrbanRider
    ОС, это как ваш инструмент. Если вам удобно работать на Windows работайте, не морочьте себе голову, если у вас нет лицензии на Windows и вы не готовы за нее платить, то переходите, попробуйте несколько дистрибутивов, выберите тот, который вам понравится и работайте.

    Не стоит слушать вещи типо Ubuntu для домохозяек, Gentoo наше все. Пробуйте, вы сами поймете где вам комфортнее.
    Ответ написан
    3 комментария
  • Стоит ли перейти на linux

    saintbyte
    @saintbyte
    Django developer
    Доказано линукс не наркотик, но вызывает привыкание
    Ответ написан
    Комментировать
  • Стоит ли перейти на linux

    @rsi
    software engineer
    Вы так спрашиваете, как будто для перехода нужно убить дракона и спасти принцессу. Забекапте данные и через 30 минут у вас будет linux на винте, а дальше уже сами поймете стоит оно того или нет. Если решите что не стоит, то достаточно отформатировать винт и поставить обратно винду востановив бекапы. Единственное, не рекомендую ставить две ОС рядом, так как вы будете часто переключаться в виндовс просто потому, что для какой то задачи lilux надо настраивать, а винда вот она, только нажми резет. И еще даже если вам изначально не понравиться, посидите месяцок на linux, что бы составить полную картину, ну если после месяца не понравиться, то велком обратно.
    Ответ написан
    Комментировать