• Почему я должен писать именно так, а не иначе?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Почему я должен писать именно так, а не иначе?
    Хороший вопрос. Один человек, изначально тоже подумал, а как бы вообще замутить такую конструкцию, чтобы я мог считать, что одно слово - это функция, а другое аргумент. И придумал письменность.
    Ответ написан
    Комментировать
  • Как настроить CORS для withCredentials: true?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Кто сталкивался помогите! Уже все запросы гугла помечены как прочитаны.
    - это вы должны ещё два дня по ним побегать. ;)
    Основной прикол в том, что CORS настраивается не на клиенте, а на сервере, к которому вы хотите обратиться. Пока сайт, который является сторонним по отношению к вашему приложению, не разрешит делать к себе CORS - всё! Никакие настройки CORS в браузере не помогут. Либо делать перезапрос с вашего web-сервера (с backend-а) или идти к тому сайту на поклон, чтобы он включил CORS на адрес вашего сайта. Вроде как вариантов по фен-шую больше и нет.

    UPDATE:
    Если сторонний сайт является вашим, то почитайте неплохую статью как его настраивать: https://learn.javascript.ru/xhr-crossdomain

    UPDATE 01:
    Собственно основной прикол, почему сделана такая схема - запросы всегда уходят на сайт с куками и если бы злоумышленник отправлял со своей страницы запрос на тот же https://facebook.com, то он бы мог пользоваться api этого сайта с данными вашего профиля. Ну вам этого бы не очень хотелось? Поэтому эта CORS задаётся именно на сайтах, к которым вы хотите обратиться по CORS и по этой причине он там и отключена.
    Ответ написан
  • Threejs, как избавится от "треугольных" искажений [решено]?

    AlexXYZ
    @AlexXYZ Автор вопроса
    O Keep Clear O
    Дело оказалось в камере. Было:
    camera = new THREE.PerspectiveCamera(45, width / height, 0.1, 100000);
    Стало:
    camera = new THREE.PerspectiveCamera(45, width / height, 10, 100000);
    Результат:
    5cd9bb54c8f73856692281.png
    Ответ написан
    Комментировать
  • Как перейти из инженера в программисты?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Этот вопрос задают себе и новички (какую тему выбрать для дипломного проекта) и специалисты из других областей, не связанных с программированием (например, периодически на хабре проскакивают статьи "Джун в 40 лет").

    Я немного скажу вам свой путь в этой сфере.
    1. С самого начала хотел быть программистом. Вот прям со школы, с 7-го класса. Раньше не получилось - персоналок ещё не было, поэтому начинал на терминалах. Но это не критично. Поэтому и в 30 лет, думаю, можно и не надо себе запрещать. Пластика мозга.
    2. Пробовал программировать что в голову взбредёт. Это, видимо, важный этап, когда учишься отделять мух от котлет - когда и где вообще имеет смысл применять программирование.
    3. Бесчисленное количество попыток заставить работать идею в виде программы. Иногда это не 1-2 попытки. 20, 30 и больше. Сутки, двое, неделю, чтобы заставить "это" работать. И это далеко не предел.
    4. Со временем учишься ставить себе задачу в более-менее ясном виде и на техническом языке, своего рода "техзадание", только внутреннее, когда вы самому себе по шагам расписываете решение (уверен, что этот этап вам хорошо знаком по вашей профессии).
    5. А вот теперь самое главное - работа программистом в "чистом виде" называется "кодировщик". И это вообще не интересное занятие. Даже низкоквалифицированное. Поэтому, самое интересно в программирование - личное общение с людьми других профессий. Вот представьте себе, что квалифицированный спец или даже ГИП рассказывает вам как что-то проектируется и строится! Да ни один препод в институте вам так интересно и с энтузиазмом не расскажет как идёт этот процесс. А вы слушаете, мотаете на ус и размышляете, что вы можете для этого человека сделать, чтобы автоматизировать его деятельность (п.2 и 4). Так сказать ищете своё место в этой работе. Фактически, имея одну профессию программиста можно познакомится с большим количеством разных профессий и поучаствовать в них. И на этом уровне недостатка в работе вроде как и не будет больше. Но тут надо решить для себя, что вы готовы к такой смене профессий, но к ней люди идут годами и таких людей не так уж много.

    Ну и самое неожиданное - вы себе не представляете, сколько нужных программ и утилит ещё не написано!

    Скажу вам пару секретов из опыта:

    1. Нет хорошего или плохого кода (типа "говнокод"). Если код работает и выполняет свою задачу - он хороший. Остальные идут лесом. Можно спросить коллег, чтобы они вам подсказали, как можно было бы решить задачу проще, но их советами можно игнорировать, т.к. они не живут в контексте вашей задачи и именно вы несёте ответственность, что в вашей программе окажется тот или иной кусок кода. Поэтому не вставляйте в программу код, который вы не понимаете.
    2. Как и в любой другой профессии вас будут учить только как делать правильно, но никто не будет вас учить как не надо делать (думаю, что и это вам должно быть хорошо знакомо по своей профессии). Тут только на своём опыте. И эти два понятия по времени прохождения очень сильно отличаются.
    3. Ведите журнал. Записывайте, что получилось, потом перечитывайте. Начните с простого, "написал программу Hello World на C#" и сделал это следующим образом - скрин запуска Visual Sudio, создание нового класса, указание места, куда вписал текст "Hello World". Потом через пару дней будете делать другую программу будете быстрее вспоминать как вы начинали первую программу. Лично я себе стал делать такие заметки лет 8 назад. И писать доки в своим программам. Очень помогает, когда выдёргивают из контекста на полгода, потом просят доработать.

    У меня тоже получилось несколько сумбурно, но как есть. )))

    P.S.
    программирование контроллеров для инженерных систем зданий
    - с моей точки зрения отличается от "обычного" программирования инструментами разработки и возможностями отладки и имитации тестовой среды. Поэтому с контроллерами - это лучше после некоторого опыта программирования. Хотя само программирование контроллеров может быть и проще чем обычное программирование под Windows/Linux.
    Ответ написан
    Комментировать
  • Как имитировать POST запрос?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Еще fiddler может:

    5cba10d328b6f821891480.png
    Ответ написан
    Комментировать
  • Стоит ли изучать старые технологии?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Особенно пугает куча конфигураций через xml
    Это потому что вы сами не писали конфигураций ))). XML/JSON, иногда ini. Больше ничего по сути и нет.
    Ответ написан
  • Создать "пакет" и отправить?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Начните с простого. С уровня работы web-приложений. Для "ручного" формирования запросов можно использовать fidder. Им можно создать любой GET/POST запрос как буд-то вы браузер:
    https://learn.javascript.ru/fiddler

    5c42345644014256709126.png


    5c4234c377887127017536.png
    Ответ написан
    Комментировать
  • Chrome начал блочить ссылки, которые открываю в новой вкладке нажатием на колесико, как исправить, баг?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Проверьте, что не глючат расширения. Запустите хром без плагинов (www.bilee.com/chrome-6.html) и попробуйте ещё раз колёсиком.
    Ответ написан
    1 комментарий
  • Как получить максимум инфы о том, кто заходил на страницу?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Не силён в сборе инфы о пользовалете, но если уместно, то есть browser fingerprint.
    https://ipper.ru/article/?p=103
    Так, для информации.
    Ответ написан
    Комментировать
  • Как на сервере рассчитать таблицу excel с использованием формул из таблицы?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Аналогичная задача сейчас в разработке. Только там ещё и макросы попросили добавить. Приходится запускать excel на сервере, загружать страницу и данные в неё, выполнять макросы, считывать данные и отдавать клиенту. Тут сильно большие ограничения на скорость, т.к. файл excel нужно открыть, а это 90% по общему времени задержки. Так же нужно следить, что excel может открыть диалоговое окно. Не вовремя.

    Однако, если у вас кроме формул ничего нет, то можете попробовать https://handsontable.com/docs/6.2.2/demo-formula-s.... Мне кажется, что вполне возможно добавить и свои формулы, если парсинг осилите.

    Не бесплатный компонент, но если сеть внутренняя, то для тестов можно и поковыряться с исходниками. )))
    Ответ написан
  • Как лучше выполнять авторизацию в отдельной программе подключающейся к БД?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Кажется, надо вводить трёхуровневую архитектуру. Клиент-ВебСервер-БазаДанных. У вас двухуровневая. Клиент-БазаДанных. Тогда пароль от базы будет знать только вебсервер к бинарному содержимому которого нет доступа, кроме API.
    Ответ написан
    Комментировать
  • DotNet. strongly named assembly. Можно ли Загрузить такую сборку из ресурса?

    AlexXYZ
    @AlexXYZ Автор вопроса
    O Keep Clear O
    В итоге оказалась та же самая проблема, что и в Как отловить место в программе, которое приводит к загрузке dll?. Все функции инициализации и запуска программы должны выполняться после установки функции предзагрузки dll из ресурсов. Ситуация один в один как по ссылке.
    Ответ написан
    Комментировать
  • Загрузка сайта с помощью cURL, с подготовленными cookies?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Попробуйте fiddler? Ставите его как локальный прокси, и ходите на сторонний сайт с заданными куки. Можно и php пустить через fiddler.
    Ответ написан
  • Языки программирования, какой перспективнее?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    >>Если нет то прошу сказать какие языки имеют больше возможностей и перспектив в будущем
    В будущем возможности и перспективы есть у человека, а не у языка.
    Ответ написан
    Комментировать
  • Как запустить приложение на HTTPS?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Почему нет? Выпустите сертификат на localhost и можно работать.
    Ответ написан
    Комментировать
  • Как спроектировать модель так, чтобы была возможность отследить изменение должности?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Можно повесить отслеживание изменения на триггер.
    Лично я давно перешёл на хранение небольших объемов иерархических данных на JSON. И повесил на добавление/изменение триггеры. Имеется таблица истории, куда при срабатывании триггера перебрасываю старые Json данные. Сравнения версий делаю только при необходимости вне БД. Вычислять разницу через язык запросов очень тяжело.
    Ответ написан
    Комментировать
  • Как Яндекс узнаёт аккаунты через которые был выполнен вход в хроме?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Прогоните запросы через Fiddler. Он покажет, что уходит на сервер.
    Ответ написан
    Комментировать
  • Качество работы штатного программиста. Как оценивать?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    О, да. Я разработчик и надо мной есть начальники и у меня обратная ситуация, что считают, что я слишком много уделяю внимания обработке ошибок.)))
    Видимо кто-то не очень готов к своей работе. Поясню. Любая программа решает не меньше двух задач. Первая - сделать всё правильно при правильных исходных данных и Вторая - не делать первой работы при неправильных исходных данных.
    Поскольку первую часть работы сделать относительно просто в силу очевидности, то делать вторую всегда качественно сложнее по причине именно неочевидности. Ну и ещё этому обычно не учат. Обычно все заканчивается на try/catch и думают, что этого достаточно.
    Что касается программистов, то обычно с них трудно спросить, почему они не предусмотрели ту или иную обработку ошибок, т.к. они могут быть не в курсе контекста решаемой задачи и что там могут быть за ошибки и за это скорее должен отвечать руководитель проекта (единственная очевидная ошибка - деление на ноль. Всё остальное нужно рассматривать в контексте).
    С другой стороны, когда вы выбирали программистов, то стоило бы проверить у них чувство «вкуса» на ошибки, так что тут вопрос тоже к вам.
    Не могу дать именно вам однозначного совета, но я бы пообщался с разработчиками на предмет желания делать качественно свою работу, обозначил срок проверки и довёл бы прозрачные параметры оценки работы (возможно и с субъективной оценкой, вы же начальник))). После окончания срока самого слабого увольняете. Ещё до окончания срока оценки можно начать искать сотрудника на бушующее вакантное место, ну, чтобы лучше мотивировать остальных. Понятно, что это стресс для всех, но вполне себе радикальное средство, как химиотерапия, к которому можно прибегнуть, когда ситуация критическая.
    Но вам тоже нужно и над собой поработать, чтобы научиться избегать таких проблем, чем их решать. Если вы человек опытный, то делитесь своими знаниями, чтобы ваши разработчики учились у вас, но и вы тоже должны у них учиться, т.к. их опыт тоже постоянно увеличивается и его можно позаимствовать. В общем у вас сейчас слабая обратная связь, раз вы узнаете о проблеме уже после выполнения работы. Я бы какое-то время посидел бы с разработчиками, чтобы посмотреть как они вообще работают, но, чтобы не отсвечивать делал бы какую-то задачу. Вдруг у вас в технологии разработки какая-то проблема, которая мешает качеству?
    Ответ написан
    Комментировать
  • Как отловить место в программе, которое приводит к загрузке dll?

    AlexXYZ
    @AlexXYZ Автор вопроса
    O Keep Clear O
    Проблема решена чисто философским путём. Попал пальцем в небо. Читая статью https://weblog.west-wind.com/posts/2012/Nov/03/Bac... (ещё от 2012 года!!!) обратил внимание на абзац:

    5bc0996c71590022855047.png

    И тут я повнимательнее глянул на код функции Main:

    5bc09af1cff3b746046260.png

    И тут у меня сложился этот пазл! Возникло предположение, что dot.net перед выполнением функции смотрит на тело функции и проверяет, а потребуются ли для этого кода загрузка библиотек? Идиотское предположение, но... почему бы не проверить. Вынес тело функции в отдельную функцию:

    5bc09c2145b1b590354662.png

    И теперь в функции Main библиотечный LongFile.AppendAllText метод не виден! И случилось ЧУДО! Программа нормально запустилась! Выходит от перестановки слагаемых результат меняется )))

    Решено.
    Ответ написан
    4 комментария