• Системный администратор в колледже. Вопросы об особенностях работы в учебном заведении?

    ipswitch
    @ipswitch
    IT-инженер
    Какие существуют особенности работы системного администратора в колледже (или ПТУ, школе)? Может, кто-нибудь работал или работает на сей должности?


    Контингент и его тупость.
    Тупость всех (и вышестоящих, и подчинённых, и "конечных пользователей"), кто Вас окружает. Феноменальная тупость.

    Ограниченность ресурсов.
    Выбить финансирование на покупку чего бы то ни было кроме картриджей и канц.товаров практически нереально.
    Сдох жёсткий диск, целая история заказать новый. Зачастую придётся брать б/у или потрошить мамонтов в поисков запчастей.

    Устаревшее и уставшее оборудование.
    Приготовиться к дохнущим блокам питания (БП) и жёстким дискам. Это 75% того, что у Вас будет ломаться из "железа". Ещё 10% на кулеры и перегрев, 5% на вспухшие конденсаторы мат.платы и оборванные провода. 5% на клавиатуры и мыши. Остальное - статистическая погрешность.

    Широкий спектр задач.
    Крайне широкий. Как повезёт. В идеальном для Вас случае этого будет минимум. Так, по мелочи, тут на телефон WhatsApp поставить, тут телевизор посоветовать какой купить. А вот в худшем... от простой помощи в оформлении документов ("не подскажете как в Ворде межстрочный интервал увеличить?") до перевода с английского (немецкого, испанского, японского) и сведения бухгалтерских балансов. В редких случаях потребуется также рисование в фотошопе, создание web-сайтов на HTML и монтирование видео.

    Сколько обычно в среднем длиться рабочий день?

    Как договоритесь. От пары часов 1-2 раза в неделю до фуллтайма.

    Какие подводные камни?

    • Вы крайний.
    • От Вас всем чего-то НАДО.
    • Мало платят.
    • Широкий ассортимент задач и запросов.
    • Много brainfuck'a в прямом смысле.
    • Могут проиметь все мозги кадровики бюрократией - справкой о несудимости, из псих.диспансера, медкнижкой, флюорографией даже если "к деткам" вы не подходите.


    Задавайте вопросы.
    Ответ написан
    4 комментария
  • Почему при запуске скрипта из командной строки, если я нахожусь в каталоге скрипта, он нормально выполняется. А если не в каталоге, то нет?

    DevMan
    @DevMan
    потому что относительные пути не просто так называются "относительными": они вычисляются относительно текущей директории.
    решается это просто:
    $fp = fopen(__DIR__ . DIRECTORY_SEPARATOR . "result.txt", "a+");

    php.net/manual/ru/language.constants.predefined.php
    php.net/manual/ru/dir.constants.php
    Ответ написан
    5 комментариев
  • Как развить мат. аппарат до минимального уровня для машинного обучения и дата саенс?

    aRegius
    @aRegius
    Python Enthusiast
    Именно для минимального необходимого уровня там не так уж много нужно. Обратите внимание на книгу, которая, на мой взгляд, является как хорошей стартовой площадкой для DS в целом, так и может оказаться актуальной, в частности, в контексте вашего вопроса: Principles of Data Science
    Ответ написан
    Комментировать
  • Как устроить электрогенерацию в домашних условиях?

    @nehrung
    Не забывайте кликать кнопку "Отметить решением"!
    и полагаю, что если просто воткнуть динамо-машину в розетку, то она будет работать как электромотор, и раскручивать хомячков, тогда как хотелось бы наоборот.
    Это ваше школьное представление настолько упрощено, что практически бессмысленно. А ответы - вот они:
    1. Сначала прикиньте потребности внутридомовых потребителей (обычно это киловатты, а в пике потребления в достаточно большом доме возможны и десятки киловатт) и производительность внутридомового источника. Такой источник отнюдь не сводится к одному лишь динамо и в совокупности всех составных частей оказывается весьма дорогим. Правда, после своего запуска он начинает давать экономию, а после решения вопроса о передаче эл.энергии во внешнюю сеть может даже давать доход (вращение счётчика назад - это он и есть), но это отдельная тема.
    2 и 3. Да, это возможно, и во многих европейских странах нетрудно реализовать это как технически, так и юридически. У нас - нет, и я не зря упомянул про юристику. Дело в том, что вам придётся тогда зарегистрироваться (и мало того - ещё и сертифицироваться!) как производителю эл.энергии. Я разговаривал с людьми, попытавшимися хотя бы вникнуть в это дело - они сказали, что узнав, сколько надо пройти инстанций, они в ужасе отказались от всяких мыслей об этой затее. Так что подождите, пока у нас изменится законодательство на более либеральное по отношению к обычным людям - есть мнение, что ждать осталось недолго.
    Ответ написан
    5 комментариев
  • Какой микро php фреймворк использовать?

    @egormmm
    Борітеся — поборете!
    Ответ написан
    Комментировать
  • Какой микро php фреймворк использовать?

    @diama
    PHP и Go кодер
    Symfony 4.
    Разработчики переосмыслили подход к фреймворку и выпилили из него все. Остался минимум для построения микросервиса.
    Все плюшки добавляются через composer при необходимости. Таким образом, можно начать с основ и вырастить монструозный проект.
    Ответ написан
    Комментировать
  • Wi-fi ПУШКА Работает? Кто нибудь пробовал сделать по схеме с канала Kreosan на You-tube?

    Jump
    @Jump
    Системный администратор со стажем.
    умный провинциал из Украины придумал антенну
    Это сколько же лет этому провинциалу?
    Учитывая тот факт, что антенна была изобретена в 1926году ему сейчас явно более ста лет, а он все на ютубе постит? Да еще и на Украину из Японии перебрался?
    Мощный чувак.
    Такие антенны в советское время делал каждый уважающий себя школьник для просмотра ТВ.
    На данный момент это пожалуй самая распространенная в быту антенна.
    Ее кстати зачастую называю по фамилии одного из создателей - антенна Яги.

    Правда ли он атак работает как говорит автор?
    Работает очень хорошо, если конечно изготовлена аккуратно и грамотно. Ну и про согласование не надо забывать.

    Схема не совсем понятна
    На просторах интернета есть сотни сайтов посвященных изготовлению этой антенны, в библиотеках есть куча книг.
    Ответ написан
    1 комментарий
  • Как убрать повторяющийся код?

    muzikant777
    @muzikant777
    PHP/Vue разработчик
    <button class="btn-filter" data-filter="foo1">.foo1</button>
    <button class="btn-filter" data-filter="foo2">.foo2</button>
    <button class="btn-filter" data-filter="foo3">.foo3</button>
    <button class="btn-filter" data-filter="all">All</button>

    $('.btn-filter').on('click', function (e) {
    	var $el = $(e.target);
      var className = $el.data('filter');
      if (className) { filter(className) }
    });

    https://jsfiddle.net/0ogtxpba/
    Ответ написан
    2 комментария
  • Есть ли сайт, где собраны общепринятые практики программирования?

    Moskus
    @Moskus
    Естественно, нет, потому что всё, что вы описали - это не какое-то тайное знание, которое можно только запомнить, а логичные приёмы, которые следуют из знания фундаментальных принципов и анализа требований к продукту. Если попытаться заменить фундаментальные знания таким сборником прецедентов, он получится гигантским и совершенно непригодным для освоения - столько всего просто нельзя запомнить. Объем фундаментальных знаний - на порядки меньше объёма частностей, которые из них выводятся, но сложность этих знаний, при этом, выше. Кто фундаментальные знания не осилил, остаётся говнокодером, пока не осилит.
    Ответ написан
    Комментировать
  • Как перезаписать значение Input?

    @xtress
    Web-dev
    После изменения поле скриптом просто вызвать евент onchange, если он уонечно существует
    Ответ написан
    6 комментариев
  • Можно ли заменить сессионные переменные localStorage?

    alexxxst
    @alexxxst
    Можно.
    А как же авторизация всякая и так далее?
    Ответ написан
    3 комментария
  • Как в Crome DevTools можно просматривать все события страницы?

    @xtress
    Web-dev
    Выполните в консоли monitorEvents(document.body); Увидите все события по мере их появления. Если надо фильтровать - второй аргумент для этой функции: monitorEvents(document.body, 'click'); - покажет все клики.
    Ответ написан
    3 комментария
  • Права и роли пользователей как делать?

    amorphis
    @amorphis
    Технолог в Студии Артемия Лебедева
    Почитайте про RBAC (Role-based Access Control)
    Ответ написан
    7 комментариев
  • Почему b = 10, а не 11?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Потому что постинкремент ++ относится только к a.
    Ответ написан
    8 комментариев
  • Оценка своего уровня. Как улучшить код?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    1. Используйте const вместо let для определения переменных которые не переопределяются в коде. Это помогает снизить когнитивную нагрузку с человека читающего код и негласный стандарт в React разработке.

    2. Такие вещи как globalStyles и конфигурацию store лучше вынести в отдельные файлы. Они могут со временем хорошо разрастись.
    По поводу globalStyles, вы вообще можете вынести их в отдельный css файл.

    3. Вместо:
    {
      isModal
      ? <Route path="/auth" component={AuthPopup} />
      : null
    }

    лучше:
    {isModal && <Route path="/auth" component={AuthPopup} />}


    4. Вместо:
    function mapDispatchToProps(dispatch) {
        return {
            autoLogin: () => dispatch(autoLogin()),
            getBrowser: () => dispatch(getBrowser()),
            getMedia: () => dispatch(getMedia())
        }
    }


    лучше:
    const mapDispatchToProps = {
      autoLogin,
      getBrowser,
      getMedia,
    };


    5. Точки с запятыми в конце то есть, то нет. Определитесь и приведите код к одному виду.

    6.
    & label {}
    & input {}
    & span {}

    Это не очень хороший подход. Во-первых ваши стили не изолированные, что может приводить к неожиданным результатам. Во-вторых у вас очень много дублирования стилей. Определите Input и Label как базовые компоненты и используйте в разных местах, то же с остальным если есть.

    7. Почему папка со страницами называется Containers? Дань бойлерплейтам?

    8. Использование trailing comma является хорошей практикой.

    9.
    import {combineReducers} from 'redux';
    import photoReducer from './photoReducer';
    import authReducer from './authReducer';
    import globalReducer from './globalReducer';
    
    export default combineReducers({
        photoReducer, authReducer, globalReducer
    })


    Все таки приятней работать с хранилищем в котором ключи не имеют в названии слова reducer:
    import {combineReducers} from 'redux';
    import photo from './photoReducer';
    import auth from './authReducer';
    import global from './globalReducer';
    
    export default combineReducers({
      photo, 
      auth,
      global,
    });


    10. Забудьте вообще, что в языке есть возможность использовать вложенный тернарный оператор:
    return e === 'invalid-email' ? 'Неверно указан e-mail'
        : e === 'user-not-found' ? 'Указанный e-mail на найден'
        : e === 'wrong-password' ? 'Неверный пароль'
        : e === 'email-already-in-use' ? 'Указанный e-mail уже используется'
        : e === 'network-request-failed' ? 'Нет подключения к интернету'
        : e === 'operation-not-allowed' ? 'Произошла ошибка, попробуйте снова'
        : e === 'popup-closed-by-user' ? 'Окно авторизации закрыто пользователем'
        : e === 'account-exists-with-different-credential' ? 'Аккаунт уже существует с другими данными, используйте другой способ авторизации'
        : e

    Это одна из самых худших практик в JavaScript разработке. Тут лучше подойдет конструкция switch case

    11. Константы actionTypes лучше вынести в папку constants и разложить по разным файлам, иначе со временем у вас там будет свалка.

    12. Вместо:
    import {SET_ACTIVE, CHANGE_VALUE, SET_DEFAULT, UPLOAD, UPDATE_IMAGE, SET_IMAGE_ERROR, SET_LIKE, SET_COMMENT, ADD_ARTICLE_SUCCESS, FETCH_ARTICLES_START, FETCH_ARTICLES_SUCCESS, FETCH_ARTICLES_ERROR} from '../actions/actionTypes';

    Лучше:
    import {
      SET_ACTIVE,
      CHANGE_VALUE,
      SET_DEFAULT, UPLOAD,  
      UPDATE_IMAGE,
      SET_IMAGE_ERROR,
      SET_LIKE,
      SET_COMMENT,
      ADD_ARTICLE_SUCCESS,
      FETCH_ARTICLES_START,
      FETCH_ARTICLES_SUCCESS,
      FETCH_ARTICLES_ERROR,
    } from '../actions/actionTypes';


    13. Попробуйте внедрить библиотеку reselect. И для получения значения из store вместо записи вида:
    function mapStateToProps(state) {
        return {
            browser: state.globalReducer.browser
        }
    }


    использовать селектор:
    const mapStateToProps = state => ({
      browser: browserSelector(state),
    });
    Ответ написан
    12 комментариев
  • Как передать split() несколько параметров для разделения?

    AlexKeller
    @AlexKeller
    str.split(/[ _-]/g);
    Параметр separator может быть как строкой, так и регулярным выражением

    Плюс нужно скобки добавить для вызова toUpperCase()
    Ответ написан
    Комментировать
  • Не могу понять для чего нужны Entities в ООП PHP, Yii?

    @sidni
    Php Developer
    Ну если очень грубо и примитивно отвечать то в Yii2: Entities заменяют Модели ActiveRecord.
    В чем возник вечный холивар, почему Yii2 это фрейм для новичков, тк реализация ActiveRecord именно в Yii2 получилась очень "толстая"
    Ответ написан
    2 комментария
  • Не могу понять для чего нужны Entities в ООП PHP, Yii?

    @thyratr0n
    Есть разные подходы к пониманию смысла этих вещей.
    Entities чаще всего используются в контексте DDD-подхода. Там это означает то, что объект может изменять свое состояние (фигура может менять цвет, стакан может заполняться и тд). Супротив Entities выступают т.н. ValueObject, которые используются только для чтения и менять свое состояние не могут.
    И те, и другие используются в бизнес-логике приложения и генерируются либо хранилищами (storage), либо сервисам (в зависимости от выбранного подхода).

    В контексте же Yii понятие Entity не применяется. ибо там структурной единицей бизнес-логики выступают экземпляры ActiveRecord чаще всего (сам фреймворк к этому располагает), либо, иногда, наследники Model.

    Главное - это то, что сущность не обязательна должна сохраняться as is, т.е. иметь четкую проекцию в БД, ибо сущностью может выступать экземпляр паттерна Композит - все зависит от хранилища/сервиса, который это дело будет "CRUD'ить".
    Ответ написан
    2 комментария
  • Почему onclick не работает при первой загрузке сайта?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Потому что по нажатию F5 перезагружается только основная страница, а все вспомогательные файлы, включая файлы скриптов, загружаются из кэша. Поэтому закэшированные скрипты объявляют функции быстрее. И когда код страницы вешает обработчик onclick, то он видит функцию. Если же вы нажимаете Ctrl + F5, то код пытается повесить обработчик, но функция ещё не объявлена, и вместо функции по указанному имени вы получаете значение undefined.
    Ответ написан
    Комментировать
  • Почему onclick не работает при первой загрузке сайта?

    @choupa
    Архитектор (обычный, который строит)
    Общий совет: Проверьте, что обработчик назначается тогда, когда в DOM уже есть данный элемент.
    Ответ написан
    Комментировать