• Проблема c настройками SSH после взлома сервера. Как можно изменить поведение сервера и клиента без изменения ssh_config и sshd_config ?

    Gasoid
    @Gasoid
    Думаю, проще пока перенести все на другой сервер этот оставить в покое,
    на новом усилить безопасность, короче провести работу над ошибками.

    Старый сервер попытаться почистить, заодно найти где дыра
    Ответ написан
    1 комментарий
  • Что означает эта ошибка в С++ ?

    TrueBers
    @TrueBers
    Гуглю за еду
    this=optimized out, this=optimized out

    Есть возможность выключить -O и включить -g?
    Намного больше будет информации вместо optimized out.
    Ответ написан
    1 комментарий
  • Что означает эта ошибка в С++ ?

    Как способ прояснить ситуацию можете попробовать воспользоваться valgrind-ом, он кроме того что утечки отслеживает еще и перехватывает обращение к "чужой" памяти если повезет - это один вариант, другой вариант, если вам доступны исходники, перекомпилируйте программу с флагом -fsanitize=address, с этим флагом программа будет плевать наружу ошибки работы с памятью (что как правило и приводит к segmentation fault).
    Ответ написан
    Комментировать
  • Что означает эта ошибка в С++ ?

    bogolt
    @bogolt
    Ошибка в недрах STL событие маловероятное. Эта библиотека тестируется годами на огромном количестве проектов. То что ошибка проявилась именно в std::vector вовсе не значит что ошибка именно там. Вероятнее всего - код пытается работать с удаленной памятью, вызывает функцию получения размера, а так как объект не существует программа падает.
    Это совершенно нормально для программ с ручным управлением памятью ( ну и для остальных тоже вроде случается ).
    Почему ошибка может происходить время от времени: причин тому множество. Может неправильная работа с многопоточностью ( и тут уже зависит от ОС как она и что распределит ) ведет к тому что изредка один поток обращается к ресурсу удаленному другим потоком. Может ошибка с памятью проявляется не сразу потому что хоть какие-то значения обращаются к несуществующей памяти, но физически эта память находится в адресном пространстве вашей программы, а значит ОС считает что все в порядке. Ну а уже когда указатели выходят за пределы этого пространства - случается большой бум.

    Раз уж у вас есть запрос который гарантированно воспроизводит проблему - вам стоит попытаться отладить ваш сервер и найти эту ошибку.
    Ответ написан
    3 комментария
  • Как установить подключение ssh по ключам?

    @s1dney
    ssh-keygen #без аргументов, на все вопросы жать enter
    ssh-copy-id user@server.com #user - это юзер на сервере server.com, а не локальный

    Если после этого спрашивает пароль, то самые вероятные проблемы:
    - в конфиге /etc/ssh/sshd_config
    - права на ~/.ssh/authorized_keys или id_rsa, должно быть строго 600
    В дальнейшем, чтобы найти проблему можно использовать ssh -vv user@server.com и читать лог /var/log/secure на server.com
    Ответ написан
  • DigitalOcean как замена хостингу. Как всё грамотно настроить?

    @neol
    Во-первых, безопасность - это процесс, а не состояние.
    Чтобы система была более-менее безопасной, нужно:
    - быть в курсе существующих уязвимостей в используемом софте (как минимум следить за ubuntu security notices )
    - ставить апдейты
    - использовать достаточно стойкие пароли и периодически их менять
    - отключать неиспользуемые сервисы
    - если возможно, максимально ограничивать доступ по сети (например, не выставлять mysql на всеобщее обозрение)
    - отключать неиспользуемые модули, плагины, расширения, фичи etc.
    - делать бекапы
    - всегда строго соблюдать принцип минимальных привилегий
    - не подключаться к серверу с ненадежных систем (подключение с домашнего десктопа, на котором детишки гоняют пиратские игры, а вы смотрите "порно онлайн бесплатно без смс" - не очень хорошая идея).

    Эти довольно простые советы в стиле КО на самом деле дают практически 100% защиту от "автоматических" взломов (имеются в виду боты, которые сканируют все подряд в поисках уязвимых систем и троянчики, вытаскивающие сохраненные пароли). Все остальное больше зависит от вашего кода, чем от каких-то настроек.
    Ответ написан
    Комментировать
  • Как вы ведете учет прочитанных книг?

    qmax
    @qmax
    программер
    Чтение книг, котрое нужно учитывать - не имеет смысла.
    Лучше читайте то, что вам действительно интересно.
    Ответ написан
    1 комментарий
  • Есть ли рускоязычная среда програмирования?

    @wikipro
    0. www.algoritm2.ru/index.php/ru - Алгоритм2 - аналог/надстройка над VisualBasic.NET - самое совершенное (кроме 1С) из того что видел
    1. среда программирования Кумир 2.2.1 - ключевые слова на русском языке используется для обучения в школах, версия для Win, Mac, Linux в т.ч. AltLinux . Интерфейс напоминает Ваши скриншоты -UOPilot. Много документации и примеров. На удивление среда исполнения выглядит заметно лучше чем оф. сайты по КУмир.
    Я так понял Вам нужны не только русские ключевые слова, но и хочется визуального программирования, типа нарисовал блок схему программы и запустил её (или оболочка сгенерировала код)
    2. для визуального программирования можно посмотреть Scratch - рисуете блок схемы - он по ним выполняет программу http://ru.wikipedia.org/wiki/Scratch_(язык_програм... но в основном для обучения детей
    3. rus.24bb.ru/viewtopic.php?id=7 - Визуальный язык программирования Дракон - рисуете блок схему он по ней генерирует текс программы на 1С, Си, Java и т.п. На нём было написано ПО Для Бурана
    4. www.hiasm.com - Конструктор программ позволяет каждому пользователю ПК начать программировать без знания каких бы то ни было языков высокого уровня сразу же после установки среды.
    Создать программу в HiAsm так же просто, как собрать фигурку из деталей лего - достаточно выбрать необходимый набор компонентов и соединить их друг с другом в цельную конструкцию...
    5. habrahabr.ru/post/145067 - Визуальный язык программирования Google Blockly
    6. Есть ещё такой язык программирования Глагол - аналог паскаля сейчас помоему заброшен
    7 www.gendoc.ru КОНЦЕПТ - система для программирования на русском языке с IDE - достаточно современная, подходит для написания скриптов

    Если интересуют только русские ключевые слова то:
    1. практически все современные компиляторы позволяют использовать русские имена постоянных, переменных и функций - реально очень удобно, особенно править старый код, Это работает например в ЯваСкрипт, VisualBasic, visualC и т.п.
    2. В Си можно использовать комманду препроцессора Define - тогда везде можно использовать "если ... то... иначе"
    3. преимущества - улучшается понимаемость кода особенно старого, меньше ошибок при вводе имён переменных
    4. Недостатки - при использовании define - не будут работать авто дополнения комманд, справка по коммандам и т.п. имена библиотек и т.п. всё рано останутся англоязычными, в справочных системах и примерах кода всё будет написано по английски - всё равно придётся переводить на русский или использовать двуязычный код
    5. Утверждение о том что такой код не смогут использовать в англоязычных проектах - отдаёт манией величия - те кто туда вносить свой код английский знает отлично и таких вопросов не задаёт
    Выводы:
    Я для себя выбрал использование русских имён переменных констант и функций - во всех своих проектах, кодовые слова оставил английские там где нельзя применять русские (в 1С, Кумир)

    ruscomp.24bb.ru - форум для тех кто интересуется Языкам программирования с русским синтаксисом
    Ответ написан
    1 комментарий
  • Есть ли рускоязычная среда програмирования?

    Color
    @Color
    Golang SWE, Cloud & DevOps
    Вы мне напомнили человека, который хочет научиться водить машину, но вместо того, чтобы учить ПДД, учится крутить руль и жать педали и возмущается, что на дороге ему не комфортно.

    Множество сред программирования написаны скорее для облегчения создания интерфейсов(дизайн) или для облегчения написания кода с помощью подсветки и авто подстановки, но все они написаны для людей уже знающих язык.

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

    Также даже со всеми такими подсказками совершенно не понять как например нарисовать простейший пиксель на экране. Нужно сначало лезть по документации изучить язык, затем узнать что существуют библиотеки(opengl например) затем научиться с ними работать, затем узнать что есть всякие api(winAPI или qt) , и научиться работать с ними. И только потом вывести пиксель на экране. И ведь для всего мне придёться читать документацию (javaJDK openglSDK MSDSN qt-доки) и всё на иностранном для меня языке.


    Так и есть. Хотите пользоваться OpenGL - изучите его специфику. Опять пример с машиной.
    Конечно, можно просто скопировать кусок и вставить, но если потом придется что-то править, без понимания Вы можете порушить всю архитектуру программы

    Русскоязычные пользователи вынуждены лезть в google и искать, перелопачивать тонну информации ради маленького фрейма. Англичанам проще их инструкции написаны на понятном им языке.


    Так уж сложилось, что программирование зародилось в англоязычной среде. И никакой патриотизм к этому отношения не имеет. У меня был опыт написания программ на языке с русским синтаксисом, и я проклял все как раз из-за конструкций вида <имя><знач.>[<зн.оп.><знач.>].
    Если не знаете английский, купите книжку типа "<ВыбранныйЯзыкПрограммирования> для начинающих" или "Введение в <ВыбранныйЯзыкПрограммирования>", там все на русском и понятно. Все так начинали.

    Не пытайтесь вести машину, не зная ПДД. Не пытайтесь готовить, не зная рецепт. Не пытайтесь программировать, не зная языка программирования. Все это приводит к плохим результатам.
    Ответ написан
    3 комментария
  • Есть ли рускоязычная среда програмирования?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    я не думаю что вам будет понятнее такой код:
    класс ПростойКласс {
        приватно:
            свойство строка названиеПеременной
        публично конструктор (строка названиеПеременной) {
             контекст.названиеПеременной = названиеПеременной;
        }
        // ...
    }
    
    ПростойКласс[] массивКлассов = создать ПростойКласс[10];
    пока (беззнаковое целое итератор = 0; итератор < 10; итератор++) {
        массивКлассов[итератор] = создать ПростойКласс("строка передаваемая в конструктор);
    }


    Вообще все эти понятия типа "функция может возвращать значение" (точнее наоборот, она обычно возвращает значение но может и не возвращать) родом из математики, и там никто не ноет что "почему все называют эти все штуки буквами греческого алфовита". Никто не кричит "почему синус принято обозначать sin а не син" и т.д.

    Тут так же. Знание самого языка не поможет вам понять смысла конструкций типа for.
    Ответ написан
    3 комментария
  • Каков план личностного развития JavaScript программиста с нуля?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    1. Выучить русский язык. Узнать, что такое "личностное развитие" и чем оно отличается от профессионального.
    Ответ написан
    2 комментария
  • Каков план личностного развития 1С программиста с нуля?

    @helycopternicht
    1) 1С Предприятие 8.2. Практическое пособие разработчика - это самая первая книжка которую знают все ОдинЭсники - получите необходимую основу подкрепленную практикой
    2) Дальше нужно прочитать и подкрепить практикой книгу - Конфигурирование и Администрирование для более глубокого понимания как там все работает
    3) Делаем самостоятельно практические задачи. Например (Товаро-оборот, Касса-Банк, Зарплата, Производство). ТЗ можно поискать в интернете.
    4) Пытаемся устроиться в контору стажером
    5) На работе дадут много новых и полезных навыков - так что дальше только общие советы
    Дальнейшие пункты нужны скорее после того как устроитесь на работу
    Обязательно очень хорошо разобраться с запросами это ой как сильно поможет.
    Обязательно получите хотя бы азы бухгалтерии - это тоже очень пригодится в работе
    Никогда не унывайте =)
    Ответ написан
    8 комментариев
  • Что должен знать и уметь начинающий сетевой администратор?

    @throughtheether
    human after all
    0) Представим, необходимо передать данные между компьютерами 1 и 2. Никаких Ethernet и IP еще не придумали, допустим. Есть провода, оптоволокно, соответствующие трансиверы. Что делать? (семиуровневая модель и почему это не священная корова, мультиплексирование, инкапсуляция)

    1) Коммутация. Как происходит обработка (перенаправление) трафика коммутатором? Допустим, пришел фрейм с таким-то адресом источника и таким-то адресом назначения - что происходит? Что и почему произойдет, если два 'деревянных' (без STP и прочих излишеств) коммутатора соединить двумя линками? Как с этим бороться (STP, в чем минусы)?

    2) Статическая маршрутизация IPv4. Зачем вообще нужен IP, когда есть Ethernet или Serial интерфейсы (хотя, по-моему, IP появился раньше, чем Ethernet, но вопрос имеет определенный смысл, пересекается с пунктом 0)? Допустим, на маршрутизатор приходит пакет (точнее, Ethernet-фрейм, а в нем IP-пакет). Что дальше происходит? Чем концептуально отличается перенаправление пакетов на 3 и 2 уровнях ЭМВОС? Почему l2-петля (в случае Ethernet) это скрежет зубовнай, а L3-петля не так страшна? Чем концептульно отличаются IPv4-адреса от MAC-адресов?

    3) Как заставить работать вместе Ethernet и IP (это про ARP)?

    4) Нарисуйте топологию вида "маршрутизатор на палочке", где маршрутизатор маршрутизирует трафик между двумя вланами. К нему транком подключен коммутатор, к коммутатору - два хоста в разных вланах. Один хост шлет icmp echo запрос другому ('пингует'). Что происходит на каждом устройстве? Какие адреса (IP, MAC) используются в заголовках пакетов и фреймов на разных этапах? Каково содержимое таблиц маршрутизации, коммутации, ARP-таблиц?

    5) Уже после четкого освоения вышеописанного: безопасность (ACL, фаерволлы), туннели (зачем нужны, в чем минусы), NAT (зачем нужен, в чем минусы). Динамическая маршрутизация. Как устроен Интернет (и чем Интернет отличается от Worldwide web)

    Из книг, Jeff Doyle, 'Routing TCP/IP', volume I, первые несколько глав. И есть неплохая книжка, на тему 'чего не сказали в курсе CCNA'.

    Привел самые базовые вопросы. Разобравшись с ними, думаю, дальнейший вектор развития сами будете способны задать.
    Ответ написан
    3 комментария
  • Есть сервис для того, чтобы научиться бегло понимать английскую речь?

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

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

    Но терпение и труд всё перетрут. Так что вот пара трюков и советов:
    + во-первых, нужна базовая грамматик; с ней можно познакомиться из банальных учебников, или же на таких сервисах, как liangualeo.ru (правда придётся заплатить, дабы открылись курсы); в принципе это самый сложный момент, хоть и не совсем обязательный: сложный тем, что правил туча, совсем другой язык, скорее непохожий на наш, чем сходный в чём-то, но необязательный он тем, что людям свойственно ошибаться и никто вас не съест за "моя твоя не понимать". Конечно, я утрирую, в простом общении (особенно в холиварах и если Вы кому-то просто не понравились) за ошибки могут и наказать привлечением внимания общественности, но на спец. форумах по обучению языкам Вам просто вежливо растолкуют;
    + во-вторых, нужен словарный запас; по замерам, для свободного чтения хватает 3k слов с лихвой, для чтения технической литературы нужно слов чуть больше, в зависимости от сферы сверху от 500 до 2k слов, но 5k это не так много, особенно если учесть, что большинство слов похожи и имеются простые алгоритмы построения одних частей из других (хоть это и нельзя использовать прост так, если вы не писали "Гамлета", но для запоминания - не можно, а нужно); для этого нужно много читать, чтение невероятно быстро повышает словарный запас, но читать надо по возможности без словарика: развивает "языковую догадку", когда из контекста догадываетесь до смысла неизвестного слова, что намного лучше, ибо Вы начинаете думать на ин. языке, нет бессмысленной высокоуровневой прослойки.
    + в-третьих, надо много слушать; без этого Вы просто не будете понимать устную речь. Сам этим страдаю - спокойно читаю технический текст, но никак не могу слушать живого собеседника, говорящего свободно, пока что приходится просить помедленнее; здесь Вам помогут фильмы, аудиокниги, первые желательно без субтитров ибо иначе будете читать субтитры, а не слушать; тяжело, но зато быстро научитесь слушать (примерно пара недель интенсива).
    + предпоследний, четвёртый этап: общение - второй по тяжёлости, здесь надо будет снять языковой барьер полностью, научиться думать и говорить на другом языке, а это не просто; говорить надо часто, чем чаще тем лучше, причём длительные перерывы этому ни разу не способствуют. Месяца интенсива хватит, но продолжать придётся, чтобы не потерять навык. Skype творит чудеса, правда Вам придётся тогда поучить русскому языку.

    Наконец, последний этап, сто раз по желанию: переводы. Это последний этап изучения языка, и это всё бред и ужас, что твориться в школах в СНГ (где учат языку через постоянные переводы). При это придётся научиться в совершенстве не только изучаемый язык, но и знать, понимать и любить переводимый (совершенство здесь не обязательно, редактор или другой человек если что может поправить, но исказить мысль - недопустимо). Собственно, здесь помощников нет: сколько людей, столько и мнений. Разве только выкладывать переводы на habrahabr.ru, хоть и нынешняя публика не очень относиться к переводам. В принципе, если очень хорошо знаете свой язык (я допускаю, что он русский), можете переводить и в обратную сторону, заодно познакомив зарубежного обывателя с материалами хабры =)

    Удачи в этом не лёгком деле. Как я говорил, без труда ничего не получиться. В крайнем случае, можете просто "пытаться" пользоваться иностранным по мере надобности, он сам будет прокачиваться, а Вам придётся пользоваться другими людьми и справочниками довольно долгое время. Но самое печальное: levelup будет столь незаметный, что Вы сами не поймёте на каком уровне Вы владеете языком, тогда как языковые тесты имеют колоссальную погрешность и ориентированы на знание грамматики и умения переводить (что печально), но иначе измерить уровень владения языка очень трудно.

    UPD.
    К превеликому сожалению toster до сих пор не позволяет отправлять более чем 10 тыс символов, так что тем, кто захочет посмотреть некоторые интересные наблюдения придётся кликнуть на эту ссылку. (что ещё забавнее - toster обрезает длинные ссылки, вот негодяй!)
    Ответ написан
    6 комментариев
  • Есть сервис для того, чтобы научиться бегло понимать английскую речь?

    dmitmedv
    @dmitmedv
    -
    Автору вопроса я бы посоветовал обратить внимание на сервис puzzle-english.com
    Сервис достаточно прост, максимально нацелен на аудирование ( что и ищет автор вопроса).
    В списке видео-роликов можно выбрать свой уровень сложности и пересмотреть и понять сначала легкие, потом переходить к более сложным. На этом же сервисе есть специально подготовленные для изучающих английский сериалы (например можно поставить на паузу и увидеть в виде чата предыдущие диалоги). На мой взгляд этот сервис более полезен чем даже lingualeo, хотя я использую оба, т.к у каждого есть свои плюсы.
    Ответ написан
    Комментировать
  • Проблема с куками — handshake error при использовании socket.io

    Anonym
    @Anonym
    Программирую немного )
    Есть ли кука в браузере вообще?
    Если есть, то она может не передаваться, если клиент и сервер на разных доменах (или используется https)? Копать в сторону заголовков Access-Control-Allow-Origin и Access-Control-Allow-Credentials.

    Для полноты картины выложите заголовки запроса и ответа (их можно прямо в браузере посмотреть) и домены клиента и сервера.
    Ответ написан
    6 комментариев
  • Проблема с куками — handshake error при использовании socket.io

    pomeo
    @pomeo
    сессии хранятся где? строка express.session(?)
    express 2 или 3?
    Ответ написан
    4 комментария
  • Стратегия «одна база с клиентским разделителем» против «каждому по базе»

    RUVATA
    @RUVATA
    Разработчик, гик, меломан, разгильдяй
    :) Напились вдоволь
    Кстати вот вам еще идейка, мы в итоге сделали следующим образом:
    1) У себя «на кухне» готовим для клиента виртуалочку, паролим ее — выворачивая наружу интерфейс БД.
    (Но насколько я понял базы у вас тяжелые, потому могут быть траблы с производительностью)

    2) Отдаем сию виртуалочку клиенту, он ее у себя запускает и наш софт конектится к ней как к сетевой БД.
    Одминов в свою очередь просим по возможности нас на нее пустить по ssh
    (Здесь поджидает проблема если у клиента говеная локалка или админь — упырь, в последнем случае все очень плохо
    вот таких мы пускаем к себе на виртуалочки предусмотрительно развернутые на хостинге поближе к клиенту)

    PROFIT!!! — убиваем несколько проблем:
    1) Клиент не причастен к конфигурации не то чтобы БД, но и системы с необходимой экосистемой
    2) Развертывание — проще простого.
    3) Разбор полетов можно производить на Time Stamp виртуалки в реальном окружении. (Так как не всегда БД является источником проблем)
    4) Миграция тоже очень проста, мы потихонечку уговариваем клиентов таки перебираться «в облака» (у кого нет проблем с интернетом)
    Ответ написан
    1 комментарий
  • Стратегия «одна база с клиентским разделителем» против «каждому по базе»

    RUVATA
    @RUVATA
    Разработчик, гик, меломан, разгильдяй
    Очень много других факторов которые так же влияют на принятие подобного рода решений,
    например потянет ли ваше железо кучу пользователей, таким образом чтобы им было комфортно работать, стабильный ли у Вас / у них коннект.
    А если их число удвоить например (я про пользователей)
    У нас была отчасти похожая задача, в итоге у клиента свой БД — но мы ее постоянно реплицируем к себе, кстати так и обновляем свою обновленную версию разворачивая назад. Естественно на это время работа с базой на стороне клиента заблокирована архитектурно приложением до завершения.
    Да и что касается обновления то рано или поздно вам все равно необходимо будет автоматизировать процесс.

    Перед нами стояли проблемы и железа и коннекта и его скорости, не знаю как у Вас.

    PS: Личный совет, если уж и будете БД у клиентов держать, то не подпускайте их IT-долбоящеров к обновлению или конфигурированию.
    Ответ написан
    1 комментарий
  • Стратегия «одна база с клиентским разделителем» против «каждому по базе»

    @Ruslan_Y
    Еще вариант, перекликающийся с первым ответом, оставить одну базу, но разнести таблицы клиентов по разным схемам. Избегается столпотворение таблиц в одной схеме, при этом довольно легко все обновлять и давать доступ каждому клиенту только к его данным. Админится только 1 БД, что тоже, в данном случае, облегчает жизнь.

    Минусы как и при разных базах — если выходит исправление/обновление вместо единого набора таблиц, придется пройти и пропатчить каждую из них в каждой схеме.
    Ответ написан
    Комментировать