• Как подключится по SSH к серверу с динамическим IP?

    @rPman
    Есть разные формы отсутствия белого ip

    К примеру - динамический ip адрес, это когда ip адрес выдается но на какой то промежуток времени (часы-сутки-сессию) а затем меняется - в этом случае достаточно настроить dyndns провайдера (их огромное количество, от бесплатных до опций у платных dns/хостинг провайдеров), вы локально настраиваете какое то приложение (роутеры тоже умеют работать с некоторыми dyndns провайдерами) которое определяет ваш текущий ip адрес и отправляет провадеру, а тот настраивает вам доменное имя на текущий ip адрес тогда обычными настройками роутера открываете порты вашего локального сервера и подключаетесь по dyndns доменному имени.

    Если вы за NAT, т.е. даже ваш роутер получает для выхода в интернет адрес из локальной сети (видел такое у мобильных провайдеров) то да, это приговор. Тут варианты только vpn или к примеру reverse ssh port forwarding:
    На вашем ноутбуке настраивается автоматическое циклическое подключение ssh к удаленному серверу с белым ip, с настройкой перенаправлений порта вашего уже лкального ssh сервера на тот удаленный. В этом случае для подключения вам достаточно подключиться к удаленному серверу и подключение будет перенаправлено. Развитие вариантов - можно не делать порт удаленный доступным из интернета, и для подключения по ssh нужно будет подключаться сначала к ssh того сервера, так же с настроенным перенаправлением портов, и уже тогда подключиться к своему серверу.
    Ответ написан
  • Хороший ли выбор Java в качестве первого языка программирования?

    @rPman
    Комфорт использования языка очень слабо связан с его синтаксисом, но больше с наличием фреймворков, документации и удобного IDE.

    Если выбрали java, настоятельно рекомендую eclipse, эта среда разработки позволяет добавить модулями поддержку любого популярного языка программирования (к примеру c++ или даже php) и платформы (одно время даже под android можно было писать, но поддержка прекращена, очень жаль).

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

    Так уж получилось, что выбор языка в каком то смысле определит область деятельности, например мало кто пишет бакэнд вебсервисам на java (хотя такая возможность есть и одно время была даже популярна, фу брррр - сарказм, вообще то java более чем используется большими компаниями и именно для онлайн сервисов), и наоборот, на php пишут в основном бакэнд но никто не пишет графический интерфейс пользователя (хотя так же, наверное в качестве шутки, есть библиотеки для этого).

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

    c# с фреймворком .net чем то на жаву похож, но больше порядка что ли, более выверенные библиотеки, мне кажется более медленный язык, и как я уже писал выше, благодаря visual studio очень удобный для написания формочек к базам данных

    python - язык семимильными шагами захватывает мир, давно уже, к примеру его активно используют сейчас в области ИИ и нейронок (само собой поддержка библиотек есть и для других языков) и вообще в академической сфере... многим нравится, очень приятный и компактный код.
    Мне не нравится, чисто субъективное мнение, приложения на питоне (те места что не используют оптимизированные библиотеки, написанные на каком-нибудь c/c++) тормозные, жрет память минимум двухкратно по сравнению с другими и т.п... есть ускорители типа cpython но потребуют рукошевеления, особенно под windows.

    c/c++ как первый язык будет тяжел
    Ответ написан
  • Как автоматически выгружать показатели из 1С в excel?

    @VitalyChaikin
    Наиболее здоровый вариант - написать обработку, которую из 1С раз в месяц (или чаще если понадобится) будет запускать юзер (тот самый, который заинтересован в этих данных);
    Эту же обработку можно запусакать из cmd (bat)
    Здесь srv-1c-01\Database01 = Сервер\База
    Username = Имя пользователя из этой базы 1С
    UsernamePassword = Пароль этого юзера
    "C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /S"srv-1c-01\Database01" /N"Username" /P"UsernamePassword" /Execute "C:\Sbis1C\RobotSBIS_UF.epf"
    Ответ написан
  • Каким образом поступить?

    @vabka
    Токсичный
    Начал спрашивать про оклад, сказал что если повысит могу ли я остаться и сказал дождаться вечером и забрать заявление либо с его подписью либо без(если договоримся на каких - то условиях)

    Это норма.

    всё бы ничего но мне надо доработать 19 дней.

    Тоже норма. Скорее всего, об этом написано в договоре.

    Каким образом мне надо себя вести чтобы не испортить отношения?

    Хорошо отработать оставшиеся 19 дней и максимально облегчить жизнь своим коллегам и своей замене перед уходом. Если найдут вам замену до того, как вы уйдёте, то круто будет ему по-быстрому объяснить что да как.

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

    Выглядит разумно. Всё правильно делаете
    Ответ написан
  • Как изучить C++?

    @DimaIs
    Сложно посоветовать что-то конкретное, люди разные, но поведаю вам свой путь, ибо тоже начинал с с++.
    Изучил основы на сайте stepik (Ссылка на курс), курс от Яндекса и ВШЭ, его ведет приятный мужик, говорит кратко и по делу. Темы в основном простые (базовый синтаксис), а вот над некоторыми задачами пришлось попотеть не один день, иногда полностью отчаиваясь, но через неделю возвращаясь. В итоге это позволило мне собрать какое-никакое представление о том, что есть математическое мышление в купе ЯП. После этого прочел книгу Стивена Прата (Ссылка на книгу), длинное, порой сложное, но очень хорошо расписанное от А до Я чтиво. После него взялся за Страуструпа (Ссылка на книгу). Если вы дошли до этого пункта, то отсюда можно плясать в практически любом направлении - десктоп, геймдев, просто графика, computer vision, ИИ, все что угодно. Благо, материалов по темам достаточно.
    Ответ написан
  • Как "вскрыть" backbas.dll от 1С 8.*?

    @LollyFox
    достаточно сменить библиотеку backbas.dll на заранее пропатченную и всё!

    Патченная backbas.dll уже давно палится платформой и программа вылетает с ошибкой "Обнаружено нарушение целостности системы"

    obnaruzheno-narushenie-celostnosti-sistemy-01.png
    Ответ написан
  • Django и диаграммы?

    @bacon
    1. Сделать обычную html таблицу
    2. Освоить Plotly (возможно Dash)
    3. Сгенерировать на клиенте, бери любую js библиотеку, например Chart.js, django предоставляет данные, js генерирует диаграмму на клиенте.
    4. Сгенерировать на сервере, бери matplotlib или подобные.
    Ответ написан
  • Куда расти, когда везде сложно?

    Вы как-то поверхностно и однобоко смотрите на каждую из областей. Залог успеха в ИТ-карьере - это гибкость, энтузиазм, интерес и трудоспособность. А все остальное наживное. Если у меня появляется интерес в какой-то области, я изучаю ее до крови из глаз, не могу оторваться месяцами и даже не пытаюсь - уже знаю, что это все равно не пройдет пока другим клином этот клин не вышибет. Окупается ли это? - всегда и жирно, хотя я никогда не гналась за деньгами как за самоцелью.
    Если у вас нет интереса и энтузиазма, то вы не найдете кнопку "Деньги". Деньги не раздают за просто так.
    Ответ написан
  • Java junior, серверное ПО, какие задачи решать, чтоб понять устройство системы?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера
    software engineer
    Хороший код приходит с опытом, проблематично целенаправленно учиться писать хороший код, это все равно как целенаправленно учить опыт.
    В этом плане нужно просто понимать почему что делается.

    А так - направление это совместная работа. Понимать весь цикл разработки. Как предсказуемо оценивать сроки задачи, как их правильно дробить, как взаимодействовать с другими разработчиками или командами.
    Все инструменты, с которыми сталкиваешься - старайся добиться, чтобы работало, потом интересуйся как это работает. Таже кафка - что она вообще умеет. Тот же ELK стек - можно научиться парсить логи чтобы искать нужные вещи, а можно в самом приложении поправить логгер, чтобы он в ЕЛК отправлял более удобные для парсинга данные. И так с каждым сервисом/технологией - ты как разработчик и со стороны приложения можешь менять и со стороны сервиса можешь смотреть что от него взять можно.
    Ответ написан
  • Java junior, серверное ПО, какие задачи решать, чтоб понять устройство системы?

    @Asapin
    В свободное время ковыряюсь с Rust и Wasm
    Если уже есть небольшой опыт работы со спрингом, то советую посмотреть "Spring-потрошитель" (2 части) от Евгения Борисова на ютубе. Он хорошо объяснил как спринг устроен изнутри. Магии много, на разобраться можно.

    После этого можно начинать читать документацию по интересующим модулям спринга. Она обычно очень подробная и понятная. Вот например документация по Spring Jpa.

    После этого попробуйте с нуля написать какое-нибудь простое приложение на спринге не используя туториалы, quick-старты и spring initializr, только maven/gradle (смотря что у вас в команде используется) и документация. Скажем, 3 пользовательских роли (админ, пользователь, аноним), 3 эндпоинта: 1 доступен для всех, 1 доступен админу и пользователю, 1 доступен только админу. Для начала пользователей можно захардкодить. Потом прикрутить постгрес для их хранения, потом прикрутить эластик для логов и т.п.
    После этого добавить несколько тестов, причём как тестов, которые напрямую дёргают методы сервисов и репозиториев, так и тесты, которые эмулируют пользователя: отправляют http-запросы на вход в систему, а потом дёргают эндпоинты и проверяют, что ограничения эндпоинтов по ролям работают правильно.

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

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

    Понимание рекурсии и базовых алгоритмов полезно, но в корпоративном сегменте это будет встречаться не часто: бизнес процессы в большинстве случаев будут расписаны либо бизнес-аналитиком, либо самим заказчиком, а большинство структур данных и алгоритмов работы с ними уже доступны в стандартной библиотеке, Apache Commons Lang 3 и Google Guava.
    Ответ написан
  • Высшее/средне-специальное образования для системного администратора?

    fdroid
    @fdroid
    press any key
    1) Для системного администратора ВУЗ даёт исключительно диплом, который нужен только для того, чтобы была возможность официально устроить в государственное учреждение либо в крупное коммерческое с требованиями уровня "у нас даже уборщицы должны быть с высшим!" Если диплом уже есть - не тратьте время на 2-е высшее. Сам факт отсутствия ВО часто очень мешает устроиться на интересную вакансию.
    2) К системному администрированию должна быть предрасположенность, интерес к этой сфере. Случайные люди в этой области не задерживаются, либо если даже скрипя сердцем работают, то им не позавидуешь - нет ничего хорошего в том, чтобы заниматься нелюбимой деятельностью. Вообще, я согласен с высказыванием Конфуция - "Найди себе дело по душе и тебе не придётся трудиться ни одного дня в жизни."
    3) Если плевать на пункт 2, то лучше гоу в программирование - это куда более востребованная и высокооплачиваемая сфера. Лично я не хочу.
    4) Не могу посоветовать каких-то конкретных курсов, потому что сама по себе сфера системного администрирования очень разнообразная и области деятельности далеко не всегда хоть как-то пересекаются друг с другом. Вспомнил разговор с одноклассником, типичным виндо-админом-эникейщиком (ничего против Win не имею, если что), который уехал в Москву из моей глубинки дабы покорить столицу своим обаянием и скиллами. Спрашиваю: "Ну как там? Что посоветуешь прокачать исходя из реалий рынка труда в Мск?" Он помолчал, вздохнул, и ответил: "Задроть линукс". Вообще, это в любом случае актуальный совет :D
    5) Практика и ещё раз практика. Можно быть теоретиком семи пядей во лбу, но это не поможет в реальности, если нет опыта работы с реальной инфраструктурой. Если не определились в принципе - устройтесь эникейщиком куда-нибудь просто для старта и понимания того в каком направлении хотелось бы развиваться. Например, если есть интерес к сетевому администрированию, можно поработать у провайдера какого-нибудь.

    Ну и древний баян всегда актуален:

    Если бы водителей принимали на работу так же, как системных администраторов и программистов, то выглядело бы это примерно следующим образом:

    Вакансия: водитель.
    Требования: профессиональные навыки в управлении легковыми и грузовыми автомобилями, троллейбусами, трамваями, поездами метрополитена и фуникулера, экскаваторами и бульдозерами, спецмашинами на гусеничном ходу, боевыми машинами пехоты и современными легкими/средними танками, находящимися на вооружении стран СНГ и НАТО.
    Навыки раллийного и экстремального вождения обязательны.
    Опыт управления болидами «Формулы 1» — приветствуется. Знания и опыт ремонта поршневых и роторных двигателей, автоматических и ручных трансмиссий, систем зажигания, антиблокировочных систем, навигационных систем и автомобильных аудиосистем ведущих производителей — обязательны. Опыт проведения кузовных и окрасочных работ — приветствуется.
    Претенденты должны иметь сертификаты Mercedes, BMW, а также справки об участии в крупных международных ралли не более чем двухлетней давности.
    Зарплата: XXXXX — YYYYY рублей, определяется по результатам собеседования.


    PS И ещё: учиться нужно всегда, постоянно, чтобы просто не отстать от технологий. Айтишник (неважно - сисадмин, программист, сетевик и т.д.) не может себе позволить роскошь работать с 8 до 5, а в свободное время напрочь выкинуть работу из головы, иначе быстро станешь неактуальным. Такие неактуальные дядечки нередко встречаются: освоили что-то лет ..цать назад и по инерции пытаются применять везде свои давно устаревшие знания, вместо того чтобы развиваться.

    PPS Подпишусь на вопрос чтобы он вышел в "Самое интересное". Любопытно почитать мнения других участников ресурса.
    Ответ написан
  • Как кастомизировать интерфейс Битрикс24?

    ReaverJS
    @ReaverJS
    Привет!

    можно ли сделать встраивание только с помощью JS, чтобы обойтись статичным локальным приложением?

    Правильно ли я понял что локальное - имеется в виду хостинга у вас нет?
    В документации Битрикс написано следующее:
    Важно: Следствием вышеуказанных пунктов является то, что механизм встраивания доступен только для серверных приложений!

    Так что... можно!

    1) Закидываем в архив zip наше приложение (или только index.html)
    2) Регистрируем приложение в битрикс (разработчикам > готовые сценарии > локальное приложение)
    Настраиваем права (обязательно, placements)
    3) Теперь ваше приложение можно открыть в битриксе. Заходим в Разработчикам > интеграции, ищем наше приложение и через контекстное меню жмем "Перейти к приложению"
    Нам надо посмотреть куда его закинул Битрикс. Можно через дев тулзы найти iFrame с нашим приложением и скопировать адрес.
    4) Осталось зарегистрировать место встраивания.
    Тут несколько вариантов.

    Вариант 1. Открываем входящие вебхуки, кидаем запрос на bind (можно просто открыть в браузере).
    https://dev.1c-bitrix.ru/rest_help/application_emb...
    {{url вебхука, который вам выдали}}/placement.bind?PLACEMENT=TASK_VIEW_TAB&HANDLER={{адрес из шага 3}}&TITLE={{My awesome APP}}


    Вариант 2. В нашем же приложении с помощью JS-библиотеки Б24 - регаем обработчик методом BX24.callMethod. Там же можно сразу указать HANDLER как текущий url iFrame-а.

    Вариант 3. Берем мои файлы index.html и placements.js, добавляем к ним страницу, которую надо отображать (к примеру my-awesome-page.html). Архивируем это все и на шаге 1 - заливаем этот архив.
    Тогда в приложении будет открываться уже моя страница. На ней 3 кнопки - зарегать плейсмент, удалить плейсмент, вывести в консоль список текущих плейсментов.
    Жмем "добавить" - указываем PLACEMENT (код места встраивания), HANDLER (адрес страницы которую надо встроить - т.е. адрес iFrame-а + /my-awesome-page.html), TITLE.
    Код (html - index.html, js - placements.js) В CODEPEN - не работает! Только при запуске из-под Битрикс24:

    Тут же можно посмотреть как регаются плейсменты (но лучше нет, т.к. плохой код)

    5) Готово. Идем проверять.
    Ответ написан
  • Какую часть Java занимает в мобильной разработке, если код написан на Kotlin?

    zagayevskiy
    @zagayevskiy Куратор тега Kotlin
    Android developer at Yandex
    Начинать с джавы необязательно, можно и сразу с котлина.
    Котлин под Андроид компилируется в джава-байткод. Также он использует джавовую стандартную библиотеку(коллекции, например). Поэтому с джавой ты так или иначе столкнешься, но, в принципе, это можно и по ходу раскурить, не обязательно страдать с самого начала. Когда уровень твоей компетенции вырастет, ты поймёшь, где пробелы и чего ты не понимаешь. Тогда изучишь джаву и устройство jvm.

    Свифта в айос на первых парах хватит с головой. Там есть Objective-C, но ты с ним не столкнешься, разве что полезешь во что-то низкоуровневое.
    Ответ написан
  • Как сохранить отпечаток пальца в БД?

    firedragon
    @firedragon
    Senior .NET developer
    Вы не написали главного операционной системы. А так ищите biometrics api os name. Сенсоры обычно выплевывают блоб который апи уже обрабатывает, выдавая ответ есть ли он в базе.
    Ответ написан
  • Какими навыками должен обладать помощник системного администратора (эникейщик)?

    SeanCooper
    @SeanCooper
    IT и все с этим связанное.
    День добрый. Касаемо знаний - нет какого-либо стандарта знаний для любой компании, есть определенный набор требований, который разнится от компании к компании. Для телекома вам важно понимать сети на 1 и 2 уровнях, для датацентра, вам, скорее всего, нужно будет знать только аппаратную часть серверов, уметь вставлять их в стойку и включать, знать что такое рейд и как заменить в нем диск, для обычной неайти компании - уметь настроить и установить дохренльерд программ, чаще всего пиратских, там подкрутить 1ску, тут развернуть файлопоймойку, починить принтер и т.д. Это вкратце по ситуации на рынке, дальше конкретные рекомендации:
    • Нельзя на первых этапах поиска работы просто сделать 1 резюме и слать его рассылкой в 10 компаний. Мне вот сейчас хватает профиля на линкедине, ибо есть бэкграунд, опыт и рекрутеры пишут сами. Когда я искал первую работу, у меня было 6 разных резюме под разные профили и каждый перед отправкой я немного редактировал. Это сильно помогает увеличить вероятность вызова на интервью. Если компания ищет специалиста техподдержки, а в вашем резюме написано "Помощник системного администратора/Эникей" - шансов, что вас выберет HR меньше, чем если бы там было написано "Специалист тех.поддержки". Также и по навыкам: Если в вакансии просят умение: Настроить ОС Win10, работать с оргтехникой, уметь построить ЛВС, уметь пнуть 1ску и т.п., а в резюме, в навыках у вас указаны уязвимости веб-приложений и там, список сетевых служб, то вероятность, что вас позовут на именно эту вакансию опять же резко сокращается, ибо компании нужен человек, который знает, как принтер запустить если вдруг перестанет печатать, а не тот, который знает различие между telnet-ом и SSH.

    • Второй момент, опять же по навыкам. Рекрутер ищет не специалиста, который будет как минимум иметь этот набор знаний и выше за n-ную сумму. Ему нужно найти человека, который отработает в компании хотя бы год. Если вы гордитесь своими познаниями в сетях, но компания не располагает серьезной ЛВС, то вас скорее всего не возьмут, банально потому что ваши интересы не совпадают с задачи в компании и вряд ли вам это понравится. Пример: Если я пишу в резюме DevOps инженер и в основные знания ставлю Kubernetes, Ansible, Docker и Gitlab, то, пусть у меня и есть бэкграунд виндоус и линукс администрирования, и я полностью подхожу компании, которая ищет сисадмина, они, скорее всего, мне не позвонят, ибо я своими навыками четко показываю, чем именно я планирую заниматься в новой компании и другое мне будет неинтересно.


    • Третье. Опять же про навыки. Пожалуйста, проще. Не пишите "изучил Танненбаума", это звучит как "познал всё". Не пишите "поиск и устранение уязвимостей веб аппликейшнов", это подразумевает за собой действительно глубинное понимание темы ИБ, а не просто знать, шо над в айпитейблс закрыть лишние порты и шо такое sql инъекция. "Немного знаю сети, учил по книгам Танненбаума. Немного представляю, что такое ИБ, даже ходил на CTF-ки, ибо нравится это тема." Будьте проще, скорее всего потому после интервью вас и не берут, ибо по таким описаниям - вы спец на 100к, а по факту, знания только поверхностные. Конечно, судить я ваши знания браться не буду, но готов лишь предположить, исходя из вашей ситуации.


    В любом случае успехов в поисках!
    PS. Касаемо того, какую выбрать компанию, решайте сами. Я выбрал путь из телекома в небольшую компанию сисадмин-эникеем, где у меня не было присмотра сверху, дабы получить максимальную свободу. Но можно и в крупную пойти, чтоб сразу трогать, так сказать, "взрослые" железки и сервисы. Но эникея туда, как правило, не подпустят.
    Ответ написан
  • Как организовать общение между базой данных 1с и django?

    WhiteSsnoww
    @WhiteSsnoww
    Программист
    В общем случае задачу обмена 1С с сайтом можно решить так.
    На стороне 1С:
    1. Создаем ПланОбмена и включаем в состав плана обмена объекты, изменения которых требуется выгружать на сайт
    2. Создаем РегламентноеЗадание, которое раз в сутки или чаще запускает процесс обмена данными с сайтом
    3. Пишем код на 1С, который забирает из ПланаОбмена новые зарегистрированные изменения, сереализует их в заданный формат - XML или JSON, и отправляет на сервер сайта через HTTPS-запрос.
    4. После успешной выгрузки данных на сайт получаем от сайта номер квитанции, которая ранее была отправлена на сайт. По номеру квитанции снимает с регистрации изменения на плане обмена, т.к. они подтверждены сайтом как принятые.

    На стороне сайта:
    1. Реализуем REST API для взаимодействия с 1С - чтобы 1С могла через HTTPS-запросы отправлять и получать данные.
    2. Реализуем таблицу для хранения квитанций для ПланаОбмена 1С
    3. Реализуем парсинг полученных данных из XML или JSON
    4. Реализуем запись в базу полученных данных

    PS На стороне 1С можно обойтись и без ПлановОбмена и выгружать данные выборкой запросом
    Соответственно можно обойтись и без квитанций, т.к. это сущность для ПланаОбмена
    Можно выгружать по одному объекту и снимать его с регистрации в ПланеОбмена сразу после 200 от сайта.

    Вариантов много. Зависит от задачи и требований.
    Ответ написан
  • Что почитать по MS SQL Server и t-sql?

    @VitaliiVV
    мимопроходил
    руки еще не дошли почитать, но много знакомых рекомендуют Ицик Бен-Ган "Microsoft SQL Server 2012. Основы T-SQL", ну и про сайт майков все верно сказано, там все примеры разбираются максимально, но сходу глаза разбегаются)
    Ответ написан
  • Какие нужны знания чтобы стать МАСТЕРОМ в области ремонта ПК и ноутбуков?

    Начинать - со школы. Изучать физику, чуть менее, но надо - математику.
    Дальше - профильное образование, в котором должна быть: электротехника (ТОЭ), электроника, системы автоматического управления, математические основы теории систем, и т.д. В общем-то первых двух (плюс физика по части электричества плотно, и чуть больше математики чем в школе) хватит.
    Кроме того, предметы по устройству ЭВМ (у нас в институте вроде так и назывался ЭВМ) - там изучали устройство, начиная с малого (логика, сумматоры, регистры, память, ...), дальше АЛУ, ну и процессоры по классике - x86. Соответственно, всё что касается ввода-вывода, хранения и перемещения информации. Следом тут же понадобится предмет типа "передача данных в системах управления", где изучаются интерфейсы, способы передачи информации, кодирование, протоколы передачи, и т.п.
    ...
    Параллельно этому нужно плотно заняться "радиолюбительством", ну то есть можно просто взять книжку типа "электроника для начинающих" и прямо по ней пробовать собирать и паять свои первые устройства - радиоприёмник, генератор, всякие звонки, машинки на радиоуправлении и какую-нибудь автоматику. Аппетит приходит во время еды - дальше сами поймёте, что интересно, что не очень. Этот этап важен для понимания на уровне интуиции и автоматизма, как применяются и работают законы физики (закон Ома, Кирхгофа, и т.д.), как работают транзисторы, что такое большое напряжение, или маленькое, можно прямо на своей шкуре (в прямом смысле!) испытать. Ну и элементарно, научиться паяльник держать, освоить химию разных процессов - что чем паяется, что отмывается, ичто куда сувать.
    ...
    Опять же параллельно, изучаем хоть по минимуму, программное устройство современных процессоров, и компьютеров - порядок загрузки, bios, uefi, источники загрузки, пробовать писать программы на разных языках, в т.ч. на ASM (удобно на старых компах, с LPT портом побаловаться, сразу наглядно видно что как управляется, и как программой управлять каким-нибудь железом).
    ...
    ФОРУМЫ!
    Не нужно идти на ютуб, и смотреть видосики- оставьте это детям.
    Идём на rom.by, изучаем материалы, читаем и пользуемся поиском по непонятным вопросам. Идём на ноутбук1, опять же изучаем материалы и опыт других (как таковых статей нет тут, но большой объём полезных закреплённых тем).

    Ну и брать и делать!
    Берём комп, и чиним. Что непонятно - ищем, читаем, изучаем. Даже если это неизвестный разъём на материнке попался - ищем что это и зачем и как работает. Когда не остаётся неизвестного - собственно, уже и чинить-то не придётся :-) или вполне можно самому найти направление, куда копать. Нет - гуглим по названию платы/устройства/пост-коду/ошибке или даже названию микросхемы и т.д., изучаем. Нет - создаём тему на форуме, указывая максимально полно всё что известно, и всё что было сделано (не надо видео снимать и выкладывать!). Ждём советов, продолжаем. Вначале это тяжело, можно неделями одну плату чинить, потом будет проще и легче, а через лет 5 уже и забудете как тему создавать на форуме.

    Удачи!
    Ответ написан
  • Как двум разработчикам одновременно разрабатывать один сайт на wordpress?

    firedragon
    @firedragon
    Senior .NET developer
    1. Создайте скрипты для модификации БД.
    2. Не изменяйте чужих данных только добавляйте.
    3. Создайте скрипты для дропа данных см п2
    4. создайте скрипты для seeddata

    Структура папок. По идее любое ваше изменение можно откатить просто запустив нужный скрипт.

    1. SQL
    • up
      • up_2020_10_28_01.sql
      • up_2020_10_28_02.sql

    • down
      • down_2020_10_28_01.sql
      • down_2020_10_28_02.sql

    • seed
      • seed_2020_10_28_01.sql
      • seed_2020_10_28_02.sql




    Ниже пример MSSQL но это применимо к любой базе
    CREATE TABLE [Telemetry] (
        [Id] bigint NOT NULL IDENTITY,
        [Login] nvarchar(200) NULL,
        [DisplayName] nvarchar(200) NULL,
        [Url] nvarchar(400) NULL,
        [Start] datetime2 NOT NULL,
        [End] datetime2 NULL,
        [Duration] int NULL,
        [PageName] nvarchar(400) NULL,
        [CourseId] uniqueidentifier NOT NULL,
        [PageNumber] nvarchar(200) NULL,
        CONSTRAINT [PK_Telemetry] PRIMARY KEY ([Id])
    );
    GO
    
    
    CREATE INDEX [IX_Telemetry_CourseId] ON [Telemetry] ([CourseId]);
    GO
    
    
    CREATE INDEX [IX_Telemetry_Login] ON [Telemetry] ([Login]);
    GO
    
    
    CREATE INDEX [IX_Telemetry_PageNumber] ON [Telemetry] ([PageNumber]);
    GO
    
    
    CREATE INDEX [IX_Telemetry_Status] ON [Telemetry] ([Start]);
    GO
    
    ------ Изменение размера -----------
    DROP INDEX [IX_Telemetry_PageNumber] ON [Telemetry];
    DECLARE @var0 sysname;
    SELECT @var0 = [d].[name]
    FROM [sys].[default_constraints] [d]
    INNER JOIN [sys].[columns] [c] ON [d].[parent_column_id] = [c].[column_id] AND [d].[parent_object_id] = [c].[object_id]
    WHERE ([d].[parent_object_id] = OBJECT_ID(N'[Telemetry]') AND [c].[name] = N'PageNumber');
    IF @var0 IS NOT NULL EXEC(N'ALTER TABLE [Telemetry] DROP CONSTRAINT [' + @var0 + '];');
    ALTER TABLE [Telemetry] ALTER COLUMN [PageNumber] nvarchar(20) NULL;
    CREATE INDEX [IX_Telemetry_PageNumber] ON [Telemetry] ([PageNumber]);
    
    GO
    
    DROP INDEX [IX_Telemetry_Login] ON [Telemetry];
    DECLARE @var1 sysname;
    SELECT @var1 = [d].[name]
    FROM [sys].[default_constraints] [d]
    INNER JOIN [sys].[columns] [c] ON [d].[parent_column_id] = [c].[column_id] AND [d].[parent_object_id] = [c].[object_id]
    WHERE ([d].[parent_object_id] = OBJECT_ID(N'[Telemetry]') AND [c].[name] = N'Login');
    IF @var1 IS NOT NULL EXEC(N'ALTER TABLE [Telemetry] DROP CONSTRAINT [' + @var1 + '];');
    ALTER TABLE [Telemetry] ALTER COLUMN [Login] nvarchar(20) NOT NULL;
    CREATE INDEX [IX_Telemetry_Login] ON [Telemetry] ([Login]);
    
    GO
    
    DECLARE @var2 sysname;
    SELECT @var2 = [d].[name]
    FROM [sys].[default_constraints] [d]
    INNER JOIN [sys].[columns] [c] ON [d].[parent_column_id] = [c].[column_id] AND [d].[parent_object_id] = [c].[object_id]
    WHERE ([d].[parent_object_id] = OBJECT_ID(N'[Telemetry]') AND [c].[name] = N'DisplayName');
    IF @var2 IS NOT NULL EXEC(N'ALTER TABLE [Telemetry] DROP CONSTRAINT [' + @var2 + '];');
    ALTER TABLE [Telemetry] ALTER COLUMN [DisplayName] nvarchar(100) NULL;
    
    GO
    
    INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
    VALUES (N'20200922061931_ChangeSizes', N'3.1.8');
    
    GO
    
    
    -- изменение курса с гуида на строку
    
    EXEC sp_rename N'[Telemetry].[IX_Telemetry_Status]', N'IX_Telemetry_Start', N'INDEX';
    
    GO
    
    DROP INDEX [IX_Telemetry_CourseId] ON [Telemetry];
    DECLARE @var0 sysname;
    SELECT @var0 = [d].[name]
    FROM [sys].[default_constraints] [d]
    INNER JOIN [sys].[columns] [c] ON [d].[parent_column_id] = [c].[column_id] AND [d].[parent_object_id] = [c].[object_id]
    WHERE ([d].[parent_object_id] = OBJECT_ID(N'[Telemetry]') AND [c].[name] = N'CourseId');
    IF @var0 IS NOT NULL EXEC(N'ALTER TABLE [Telemetry] DROP CONSTRAINT [' + @var0 + '];');
    ALTER TABLE [Telemetry] ALTER COLUMN [CourseId] nvarchar(38) NOT NULL;
    CREATE INDEX [IX_Telemetry_CourseId] ON [Telemetry] ([CourseId]);
    
    GO
    
    
    GO
    Ответ написан
  • Как устроиться на начальную должность в веб?

    PlugIN
    @PlugIN
    A Little Programmer
    Доброго дня! Попробуйте переложить бумажную логику какого-либо словаря на программную логику. Там будет всяческая фильтрация, выборки и UI. Главное придумать что-то и начать делать. Самое хорошее, IMHO, для pet project это самому сформировать требования к продукту, расписать функциональность, настроить свою инфраструктуру, спроектировать БД, сделать фронт (подумать над более-менее удобным UI) и бэк. Покрыть тестами. И приложить эти материалы как доказательство того, что вы можете самостоятельно обдумывать процесс работы и работать. Это, считаю, будет полезным.

    Еще идеи, возможно, примитивные для кого-то )

    • Каталог книг, которые есть в вашей домашней библиотеке
    • Автопостинг из вашего блога (на WP или самописного, что лучше) в вашей ленте в ВКонтакте ...
    Ответ написан