• Что значит "знание linux" в вакансиях на позицию веб-разработчика?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    В принципе знание среды, в которой работает backend всегда на пользу. Проще объяснить админу чего надо, проще понимать в каком месте надо "нажать". Между фронтом и бэком есть ещё места, где можно программировать. Кроме того админы могут не знать тонкостей настроек и могут поставить настройки по-умолчанию. У меня на работе крутился один сервер приложений. На tomcat. Выделили на виртуалке 16ГБ памяти, запустили. И он проработал не один год до моего появления в компании. Когда я увидел конфиг - офигел. Память была выделена по-умолчанию. 2ГБ. Так что не думайте, что если что-то не ваша обязанность, то и проверять не надо уметь.

    Позвольте дать вам совет - ведите записи своих достижений, скриншоты. Меня такой подход не раз выручал. Лишний раз показать на собеседовании, что вы умеете реально что-то документировать и делиться этим - однозначно плюс на собеседовании. Может даже будущий работодатель увидит как вы разбирались со знакомой ему темой - будет будет легче найти с ним общий язык.
    Ответ написан
    Комментировать
  • Как реализовать взаимодействие Angular и Java?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    >> Я читал, что Angular используется только для одностраничников
    Ну это как сделаете. Там имеется в виду, что можно сделать одностраничный сайт, т.к. все операции можно делать через ajax, но можно и сделать столько страниц, сколько вы хотите.
    >> Я back-end разработчик и хочу изучить "модные" UI-фреймворки. Один из них - Angular 4
    Тоже хочу изучить angular4, но вот как-то руки не доходят. Сначала надо изучить typescript. )))
    Что касается subj, то всё взаимодействие с backend осуществляется методом чёрного ящика через ajax. Как вы им пользуетесь - php_curl, jquery, angular, C# webrequest - без разницы.
    Ответ написан
    Комментировать
  • Как спарсить и вывести информацию на странице?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Я так понимаю, что вы хотите выполнить на странице свой собственный скрипт в Chrome?
    Тут есть парочка вариантов, кроме расширения для Chrome.
    1. Tampermonkey. https://chrome.google.com/webstore/detail/tampermo...
    Я буквально на днях писал для 1cbitrix:

    ad86428faec345c4aeadec5d87c02e57.png

    2. Использовать консоль ChromeDevTools (F12) и в разделе sources\snippets написать свой скрипт. Например, как-то грузил данные со страницы в ElasticSearch:

    45fe1cececd541a0a81e720f7322551b.png


    Вы вполне можете использовать не angular, а jquery-post запросы.
    Ответ написан
    2 комментария
  • Как запланировать ежедневные изменения файле js (график)?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Если нужно именно кроном именно в файл (всякие обстоятельства бывают), то я бы посоветовал иметь для этого иметь отдельный файл в простом текстовом виде, в котором хранятся только данные, которые добавляет крон по одной строке за раз. Потом клиент читает страницу и читает отдельно этот файл, парсит его и строит график. А в том виде, как делаете вы, как сказал Ivan Bogachev - плохая идея. Например, вы можете поломать синтаксис исходного файла и тогда пользователь вообще ничего не увидит.
    Ответ написан
    Комментировать
  • Дизайн десктопных программ на windows?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Раз вы пришли из web-программирования, то вам будет близка технология WPF и первым качеством, которое я посоветую вам освоить в WPF - это WPF-binding. Грубо и отдалённо напоминает angular-binding. При желании можно увидеть достаточно близкие параллели, фигурные скобки, watchers...
    Я достаточно давно потихоньку пользовался WPF, но как-то всё вынужденно, но как только прочувствовал binding, то возникло ощущение, что открылись глаза. Он, конечно, не без недостатков, но даже то что есть на порядок лучше WinForms.
    Ответ написан
    Комментировать
  • Настроить сервер для Javascript + PIXI JS?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    >> после обновления страницы ничего не меняется
    Настройки кеширования на странице верные? Может Ctrl-F5 нажать (в основном она помогает очищать кэш). Если работаете в Хроме, то откройте DevTools/F12, т.к. в режиме разработчика Chrome отключает кеширование. Спрашиваю, потому что вы не указали, применяли ли вы эти приёмы, а мне как-то не догадаться...
    Ответ написан
  • Как узнать WinAPI функцию?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    >> Без подобного понимания я вообще застрял в обучении, и приходится, мягко говоря, туго.
    Кто-то обещал, что будет легко??? Мы тут все окукливаемся и не жалуемся. Привыкайте ))) Добро пожаловать в профессию.

    Ну а по поводу функций, сами они, конечно, не найдутся, но читаете документацию в соответствующем разделе и достигаете результата.

    >> Но опять же,что в поисковой строке на MSDN вводить? X которая делает Y?
    Обычно да. Только нужно иметь верную догадку, что Y делается именно X-ом.

    >> Стандартный ответ будет-читай MSDN
    Ну вы так сразу на всех не ополчайтесь. Обычно такой ответ означает, что вы перешли границы, потому что никто не любит решать задачу за вас. Имейте совесть не просить сделать что-то за вас. Разбивайте вопрос на части и по одному задавайте. Конкретно. Что хотите, что уже сделали, скрины и т.д. Нужно, чтобы была видна ваша работа, тогда участникам будет вам интересно помогать.

    >> Сейчас учу C++
    Вы и не рассчитывайте, что вот прям сейчас у вас что-то и получится ))) Обучение - процесс длительный и итерационный. Разве что с опытом он начинает идти быстрее.

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

    P.S.
    Посоветую из личного опыта - заведите блокнот бумажный/электронный, не важно. Записывайте в него то, что вы узнали и обязательно потом перечитывайте его!!!
    Ответ написан
    Комментировать
  • Как с помощью PHP сгенерировать и сохранить HTML файл?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Может быть проблема именно в этом:

    if (ob_get_level()) {
         ob_end_clean();
    }


    Вы как раз отключаете буфферизацию и тут же просите продолжить отправлять заголовки. Вот обсуждение: https://stackoverflow.com/questions/2168956/php-he...
    Может этот код поставить после header перед readfile?
    Ответ написан
    Комментировать
  • Как отключить учетную запись при перемещении ее в определнную OU?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Можно делать наоборот. Сначала блокировать, потом переносить. Но в принципе есть возможность, вот народ обсуждает:
    https://stackoverflow.com/questions/2002606/regist...
    Не смотрели?
    Ответ написан
  • Перспективы embedded разработки?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Программирование на "низком" уровне не всегда низкоуровневое. Но лично для себя я вижу проблему интернета вещей/роботов/умных домов в том, что как разработчик я надолго должен оказаться привязан к проекту одной вещи. Я, например, не могу представить себе, чтобы я при программировании, условно, кофеварок мог легко закончить этот "проект" и переключиться, например, на робота на сборочном конвейере автомобилей. Как правило люди в этой сфере должны отдать много лет проекту (взять, например, медицинское оборудование, так люди там вообще пожизненно завязаны). В WEB/desktop ситуация немного другая - сегодня сайт, завтра утилита или конвертер. При должном усердии задачи, сферы приложения знаний и люди сменяют друг друга и не скучно работать. Но это исключительно МОЁ мнение, может быть вы видите работу в IT в принципе по другому и вам будет нравится то, что лично не нравится мне.
    Мнение других людей - это неприятие их положения на вашем месте. Только и всего.
    Нужно научиться уверенности в своём выборе, тогда мнение других людей не будет вас волновать.
    Ответ написан
    Комментировать
  • Как правильно организовать регистрацию и авторизацию пользователей сайта (Java)?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    В основном всё верно. Я бы немного подправил следующие моменты:
    >> Пользователь отправляет, это "что-то", полученное при регистрации и в ответ получает страницу
    Не пользователь, а клиент (пользователь сидит за компом). Но клиент - не ваша программа, а в основном браузер (curl - тоже клиент) и ваша программа максимум может иметь доступ к некоторым кукам, да и то не ко всем (как настроит куку сервер, см. cookie httponly). Сервер проверяет токен и сопоставляет контекст приложения (php/java) с параметрами пользователя (_GET/_POST/_SESSION), поэтому код backend как правило никак не может влиять на контекст пользователя, только если в нём нет ошибок на выполнение критичных операций. (Естественно, что нужно разбираться в архитектуре сервера, т.к. на уровне фильтров, а в tomcat/IIS они есть, можно сделать много чего нехорошего ещё до обработки запроса под пользователем).

    >> Что представляет из себя токен? (случайную строку, которая является по сути идентификатором? Если да - то какой она должна быть длины, нужно ли ее шифровать и где хранить на стороне клиента?
    Токен - это уникальный идентификатор сессии в формате именно строки. Можно в него вставить JSON.stringify(), но браузер всё равно будет идентифицировать его как строку. Символы ему без разницы. Выдаётся на сессию на одном клиенте. Т.е. если вы подключитесь/логинитесь разными браузерами под одним логином пользователя, то у них будут разные токены. Однако, если вы технически сможете своровать токен из одного браузера и воткнуть его в другой, то фактически будете работать под одной сессией в разных браузерах и проходить аутентификацию во втором браузере не придётся (Иногда этим можно пользоваться для тестов). Именно по этом причине токены надо зарывать по максимуму, т.е. отправлять их в заголовках и в протоколе HTTPS. Только это не касается протокола Kerberos, там аутентификация производится другим механизмом и завладевание кукой не даст результата (весьма сложный механизм, используется в корпоративных сетях, не в интернете).
    где хранить на стороне клиента - Для кук браузер сам их хранит и сам же дописывает в заголовки при выполнении запросов, так что это делается прозрачно. Поставьте fiddler, там всё видно.
    нужно ли ее шифровать - Обычно нет.

    >> Слышал про OAuth и долго и коротко живущие токены
    OAuth используется, когда вы хотите привлечь большое количество пользователей, предполагая, что у них есть аккаунты в соцсетях, т.е. этот протокол упрощает и регистрацию и аутентификацию, но сложнее в настройках, чем form-based. тут есть одна тонкость - аккаунт пользователя в вашей программе надо будет всё равно создавать и связывать его с аккаунтом профиля в соцсети (сейчас подробнее не скажу, давно занимался)
    Теперь какая связь между токеном и OAuth - Делаем выход из контекста рассуждения "на уровень выше" и вспоминаем, что OAuth - протокол аутентификации, а после аутентификации нужно (барабанная дробь ...) тадам - установить токен сессии!!! Т.е. с помощью OAuth вы только проверяете валидность пользователя, затем ваша программа выясняет с каким аккаунтом на вашем сайте он связан и устанавливает токен/куку, чтобы не проходить аутентификацию каждого запроса от пользователя аккаунтов с соцсети. Ну, представьте, что даже на CSS и IMG надо будет требовать подтверждение? (если только не настроен NGINX для отдачи статики, как вы указали выше).

    >> Если да - то какой она должна быть длины
    Посмотрите на форматы и размеры токенов, которые выдают соцсети? Да, взять этот же toster.ru, вот прям сейчас:

    719fc6c4999547af95b58b252dd5255d.png

    Токен сессии придумываете самостоятельно. Хоть sid. Формат строки токена ничем не определён. Главное, чтобы при идентификации пользователя случайно не выдать аналогичный токен другому пользователю, а то получится, что два пользователя идентифицируются сервером как один, кто первый залогинился. Так что одна из проблем сервера - обеспечить уникальность токенов сессий, а это важный раздел безопасности. Вполне можно поискать способы компрометации выдачи "нужных" токенов и тогда безопасность сайта под большой угрозой.

    >> Достаточен ли уровень безопасности OAuth или стоит искать что то другое? jwt?
    Поскольку OAuth тоже начинается с "вешалки", т.е. с form-based аутентификации в соцсети, то главное обеспечить достаточный уровень секретности - HTTPS и всё будет норм.
    Ответ написан
    Комментировать
  • Можно ли отделить монитор ноутбука?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Поскольку для "удалённой" работы на ноуте требуется ещё и мышка с клавиатурой, то посоветую приобрести беспроводную клавиатуру. Ну ооочень удобно! Я пользуюсь Genius wireless. На год хватает. Потом начинает заедать Ctrl и иду, покупаю новый комплект. )))
    Ответ написан
  • Как ускорить создание однотипных изображений в фотошопе?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Не силён в рисовании в фотошопе, но вдруг вам может помочь то, что в фотошопе есть скриптовой язык?
    На английском, русском и пример как народ развлекается. Вдруг что-то подойдёт...
    Ответ написан
    Комментировать
  • Как организовать поиск по содержимому файла?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Есть два варианта:
    1. Поставьте Elastic Search, загоните туда эти файлы и выполняйте к базе поисковые запросы. Просто на поиграться усилий почти не требуется. Только, наверное, чтобы загнать файлы придётся писать небольшую програмку, чтобы она отправила файлы методом POST.
    2. Загнать все json в NOSQL базу (Mongo - чистый NoSQL, Postgre или MySQL в колонку типа JSON).

    Например, на ElasticSearch я сделал обработку документации для техподдержки:

    2ed94a68bcd94213b43f24c79e76b84e.png


    Но это если нужно заморочиться с интерфейсом. Для минималистических целей я предпочитаю MySQL. У него достаточно хороший набор методов для работы с типом JSON. Например:

    8001f2cbae9a4c6b89507763727e6edf.png
    Ответ написан
    3 комментария
  • Как объяснять время на подумать, и как в этом не закопаться?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    >> Хорошая ли практика ли брать поиск решения себе на дом?
    Генри Форд однажды сказал:
    Я могу увеличить производительность труда, если заставлю рабочих выходить на работу раньше, но я не могу заставить пораньше выйти на работу инженера и иметь при этом свежую идею.
    С принципе неплохо попросить менеджера тоже подумать дома и поделиться своими мыслями при следующей встрече. Он же тоже должен вносить свой вклад, а не только предлагать другим подумать, пока сам будет отдыхать.
    Ответ написан
    Комментировать
  • Отправка авторизации на сайт и получение кода страницы после авторизации. Как?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Даже если поиграться, то тема совсем не простая. Вот простой способ на "поиграться"
    https://stackoverflow.com/questions/32837084/use-w...
    Но для серьезной работы не очень подойдёт. Есть даже сильно более низкоуровневые способы, но это очень сильно на любителя: https://msdn.microsoft.com/ru-ru/library/debx8sh9(...
    Если вы нацеливаетесь на Web-scrapping, то лучше копать в сторону CefSharp. Там можно инжектировать функционал JavaScript в любую загруженную страницу, грабить любую инфу, картинки, в общем при должном усердии можно в прямом смысле изнасиловать любой сайт )))
    Ответ написан
    2 комментария
  • Тема для диплома (специалист) Компьютерные науки?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Быть придатком своей программы на много лет вперёд - не завидная участь. Лучше выберите проект, который можно сделать за небольшое количество времени, хоть за неделю, но тщательно его обдумайте, пока не получите четкое видение результата. (У математиков такое есть - перед решением интеграла "увидеть" ответ, а потом его проверить).
    Хорошая программа - это и хороший интерфейс, и хороший хелп, и хороший установщик, и хороший саппорт. Вряд ли от диплома требуется все это. Спрашивать у бизнеса - идея так себе, т.к. бизнесу нужны решения, а не ваш диплом и далеко не все задачи бизнеса тянут на диплом. Я на работе, например, две недели писал синхронизатор каталогов файлового сервера (несколько десятков тыщ документов и это только для одного проекта) между файловым сервером и Sharepoint. Для моей фирмы очень актуальная задача, но как дипломная работа - не очень. Утилита и только.
    Но вот на выходных попалась интересная задачка - снимать значения с бумажных графиков, номограмм (эмпирические графики). Надо снимать с них значения по заданным параметрам. Оцифровка не катит, Надо было написать графический редактор, чтобы можно было масштабировать рисунок (взял leaflet), добавил к нему редактор полилиний (leaflet.editor), чтобы обводить линии номограммы и написал небольшой матаппарат, чтобы достроить графики по промежуточным значениям (применил morphing). Получилась неплохая утилита для старых расчетных методичек, чтобы не пользоваться линейкой, когда снимаешь как и показания с заданных линий, так и с промежуточных. И снимает достаточно точно. Ну, вот такой способ втащить научные legacy данные в сегодняшний день. Ну вот такая задача вполне могла пойти за диплом или как минимум за заготовку.
    Если интересно, то могу дать список некоторых проектов на моей работе, вдруг вам ещё какая-то мысль придёт в голову, для вашего диплома.
    Ответ написан
    2 комментария