Задать вопрос
  • Возможно ли содержать сервер дома?

    CityCat4
    @CityCat4 Куратор тега Сетевое администрирование
    //COPY01 EXEC PGM=IEBGENER
    Что-то последнее время стало много вопросов на эту тему...

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

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

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

    К сожалению, плюсов не бывает без минусов :) Хотелось бы о них тоже поподробнее - не чтобы отговорить, а чтобы предупредить.

    - Цена, комплекутха, ЗиП. Новое серверное железо очень дорогое. Сервак за пол-лимона - это как здрассьте. "Для себя" обычно берут бу железо. Это довольно распространенный метод, так что существуют специальные конторы, торгующие бу серверным железом. Насколько оно старое? Обычно не моложе пяти лет. Почему пяти? В крупных конторах есть регламенты, по которым железо списывается по истечении определенного срока, обычно он пять лет. Списывается, независимо от состояния, даже если оно идеальное. Бу сервер можно прикупить за вполне приемлемые деньги (разумеется имея в виду, что винты нужно брать новые и не десктопные, а именно рейдовые). Комплектуху и ЗиП покупать можно в тех же конторах.

    - Размещение. Сервер обычно в серверном корпусе, который ставится в стойку. Добро, если у Вас есть стойка :) а иначе его нужно куда-то пристроить - а без стойки эта большая плоская хреновина будет весьма неудобной для резмещения (Лайфхак: у меня лежит на шкафу)

    - Шум. такого понятия как
    тихий серверный шкаф

    не существует. От слова совсем. Потому что шкаф - для серверной. Даже самый тихий сервер (а я подбирал именно по "тихости") даже при самых низких оборотах кулера (в BIOS - 4500 об/мин) - довольно заметно шумит. Кроме того, если температура повышается, сервер автоматически кладет на настройки BIOS и повышает скорость вращения кулеров - в итоге у меня сервер в людбое время устойчиво негромко гудит и периодически взвывает - потому что перегревается.

    - Комфортная температура. Для сервера и человека - она разная и поэтому запросто получится, что Вам придется выделить серверу отдельную комнату :D

    - Елестричество. Сервер жрет электричество. Круглые сутки, как дозорный в будке. Готовьтесь к повышению счетов от энергосбыта. Кроме того, сервер без упса будет падать при просадках - а в домах они не редкость. (У меня тоже нет упса :( )

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

    - Интернет-канал. Для физиков как правило flat-rate не предоставляют (ну либо заломят, как с юрика), поэтому держать там нагруженный сайт Вы не сможете - он будет адово тормозить. Хотя обычный сайт работать будет (если пров дает белые IP).

    - Анти-вирус, анти-ддос, анти-спам, анти-все-остальное. Все это придется делать самому либо просто забить. Разумеется, профессиональному админу это сделать несложно.

    - Настройка, резервное копирование. Фактически повторение предыдущего пункта - спихнуть нее на кого, сами, все сами...

    - Изменить IP практически невозможно, уж не говоря о его регулярной смене.
    Ответ написан
    12 комментариев
  • Хочу сделать API, с чего начать?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Следует начать с проектирования API. Возмите https://swagger.io/ и набросайте все, что нужно.
    Swagger вам позволяет объединить роутинг, документацию и примеры вызовов в единое целое.
    Кроме этого он позволяет сгенерировать заглушки для разных языков программирования и фреймворков.
    В принципе вы можете найти значительное количество интеграций для разных фреймоворков.

    В целом API лучше делать с помощью фреймворков, поскольку в них уже реализованы тривиальные моменты по безопасности, аутентификации и авторизации. Вы можете использовать микрофреймворки, например тот же Slim. Вы даже можете сгенерировать роутинг для него используя генератор от Swagger.

    В REST есть 6 принципов, прекрасно изложенных в Wiki. В REST нет ничего сложного и особенного. Это просто надстройка над стандартным протоколом HTTP. Именно поэтому нет никаких особенных уроков. Изучите работу HTTP и вы поймете как работает веб в целом и REST в частности.

    По поводу отдельного сервера для API. Есть множество разных подходов. В последнее время все более актуальными становятся Serverless-приложения. Serverless архитектура идеально вписывается в REST. Но думаю для вас это пока рановато и сложновато. Слишком много для начала.

    Логичнее всего держать проект в моно-репозитарии, если он не будет большим. Если вы точно не знаете насколько большим он будет, то можно разбить проект на компоненты и использовать Composer для управления зависимостями (советую полность прочитать эту страницу от корки до корки).

    По поводу best practices есть очень хороший ресурс https://12factor.net/ru/
    Он в целом применяется для всех приложений.

    Запомните: первый блин всегда комом. Прочитайте все ресурсы, которые я привел для вас. В них много ссылок на другие, походите по ним, присмотритесь. Напишите первую версию API так, как вам кажется удобно. Постарайтесь применить практики из статей.
    Вам нужен опыт и вы его не наберетесь, пока не сделаете что-то сами. Вы можете потратить год на чтение, но останетесь на том же месте, с которого начали. А другой человек напишет на коленке API за неделю, а потом перепишет его 20 раз за год и он вам расскажет в 10 раз больше, чем то, что вы изучили за год.
    Дерзайте!
    Ответ написан
    16 комментариев
  • Как решить проблему с терминалом PyCharm?

    @Ooblachko23
    Здравствуйте @villanelle1
    Решил проблему наикорявейшим способом для своей 11 винды благодаря всем вашим советам, чему несказанно рад.

    Не особо важная часть:
    1. Скачал PowerShell 7 по ссылке из терминала PyCharm в виде сжатого файла. Распаковал его на рабочем столе.
    2. Создал папку PowerShell в C:\Program Files\ и распакованную папку с программой переместил в неё. Нашёл там файл, открывающий PowerShell 7 и адрес получился такой C:\Program Files\PowerShell\PowerShell-7.4.4-win-x64\pwsh.exe
    3. В настройках PyCharm > Tools > Terminal > Shell path указал получившийся путь. Закрыл терминал через вкладку Local и перезапустил его. По итогу версия для скачивания оказалась не финальной и пришлось устанавливать PowerShell через Windows Store, чтобы всё сделать красиво.
    66c64403a9c4f250193139.png
    66c64465ae491719383766.png

    Важная часть:
    1. Скачал установочник из Windows Store, запустил программу PowerShell последней версии (7.4.5), ввёл команду $PSHOME , нажал Enter и так узнал адрес, куда установилась программа на жёстком диске. У меня путь выглядел так C:\Program Files\WindowsApps\Microsoft.PowerShell_7.4.5.0_x64__8wekyb3d8bbwe
    Осталось узнать только имя файла, запускающего программу.
    2. Папка WindowsApps не открывалась вообще никак и я предположил, что файл запуска программы должен называться так же как и в предыдущей версии PowerShell 7.4.4 Получился такой путь:
    C:\Program Files\WindowsApps\Microsoft.PowerShell_7.4.5.0_x64__8wekyb3d8bbwe\pwsh.exe
    3. В настройках PyCharm > Tools > Terminal > Shell path указал получившийся путь. Закрыл терминал через вкладку Local и перезапустил его. По итогу всё сработало и сейчас работает исправно.
    66c644d2272e4821575866.png

    Надеюсь такой способ тоже кому-нибудь поможет.
    Ответ написан
    Комментировать
  • Для чего нужен clojure?

    @Che_Bu_Rashka
    После прочтения вот этой статьи Функциональное программирование для всех , я пришел к Clojure. Прочитайте её и вы увидите зачем вам нужен такой язык. Ещё Почему стоит изучить Clojure?
    Ответ написан
    Комментировать
  • Для чего нужен clojure?

    SanchelliosProg
    @SanchelliosProg
    Java, Android, Software Testing
    С Clojure можно делать практически всё, в чём задействована Java, но только можно ещё кое-что.
    Clojure имеет отличный, как бы это назвать, диалект пусть будет, ClojureScript, который интерпретируется в JavaScript. Что это значит? То что при разработке web-приложения, можно не думать ни о чём и пилить на одном языке и backend и frontend. Это замечательно.
    С помощью Clojure можно писать игры, дополнительно используя libgdx.
    Clojure умеет в Android! Что тоже очень хорошо.
    Lisp основа языка говорит о том, что можно спокойно себе заниматься Искусственным интеллектом. Точно знаю, что ML точно можно.
    Самое главное - Clojure это современный Lisp который может использовать все Java библиотеки, а это значит, что он не только мощный, но и умеет многое. Единственный минус - в Раше он не нужен.
    Ответ написан
    2 комментария
  • Чем center отличается от pivot?

    @NIKROTOS
    Начинающий программист.
    посмотри любой 3d редактор пивот это точка относительно которой происходят трансформации и её для удобства можно поместить например в угол, чтоб приставить весь объект, за этот угол, к другой точке. Или использовать как ось для поворота. А центр, это центр. Отличный инструмент для создания карт.
    Ответ написан
    Комментировать
  • Как пофиксить кодировку csv файла?

    daruvayc0
    @daruvayc0
    Открываете Excel на вкладке "Данные" находите кнопку "Получение внешних данных", из выпадающего списка выбираете "Из текста", выбираете свой файл csv, и дальше по инструкции которая будет во всплывающем окне. После всех манипуляций сохраняете как Вам будет удобно.
    Ответ написан
    1 комментарий
  • Как увидеть диаграмму в MySQL WorkBench по готовой БД со всеми связями?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега MySQL
    Нужно создать новую модель, в меню выбрать Database -> Reverse Engineer. Дальше там более-менее понятно.

    P.S. Ужасная, глючная неинтуитивная программа... По крайней мере под Линуксом.
    Ответ написан
    Комментировать
  • Какой встраиваемый язык выбрать: Lua или Python?

    icelaba
    @icelaba
    Знаю и умею всё
    lua а именно ее разновидность luajit имеет особенность которая выделяет luajit из всех скриптовых языков, а именно "халявное" взаимодействие с C чз ffi, не надо конвертить Cшные структуры - можно читать напрямую без потерь на конверсию во внутренние типы скриптового языка.
    luajit - очень очень быстрый, у меня на части задач он выдает производительность равную C шному коду

    Сама по себе lua если выкинуть парсер и как следствие использовать прекомпилированный lua код, очень мало увеличит размер вашего приложения - в случае android не больше чем на 50кб (там правда apk это zip)

    Собственно я использую luajit именно по причине ffi
    и невероятной скорости.

    Недостаток lua - меня коробят конструкции if then end do :-) - но только в эстетическом плане, сам по себе язык очень мощный и имеет все что надо - тупели, клозуры и тп :-)
    Ответ написан
    Комментировать
  • В чём здесь различие?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Видимо, установлена и 8 и 18.
    About Java рассказывает о 8й
    Ответ написан
    1 комментарий
  • Важна ли версия стандарта JavaSctipt при изучении?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Это зависит от того что вы на этом js пишите. Браузерные вещи это одно, nodejs это другое. Если вы интересуетесь для "что учить", а других вариантов я не вижу, то ответ - учите последнюю. Там просто добавляются фичи, старое не меняется это все еще старое доброе говно, сорри js
    Ответ написан
    1 комментарий
  • Почему говорят что jquery не нужен?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Скрипач не нужен, родной (с)
    Аргументы против jq:
    - современные браузеры достаточно хорошо поддерживают единый синтаксис современного екмаскрипт(native js)(на самом деле нет).
    - сторонняя библиотека, работает медленнее чем натив и в основном состоит из с-сахара (тоже не совсем правда)
    - тащить еще один ресурс весом от 64 кб до 200 кб, еще и со сторонних ресурсов замедляет загрузку( правда, но бред)
    Аргументы за:
    - Современные браузеры как и всегда один другого "ровнее", всегда есть косяки и "нюансы", на которые еще и попадаешь обычно в самый неподходящий момент, в жк обычно все работает одинаково везде, ну или лучше чем в нативе.
    - В жк реализована куча плюшек в 1 функцию которые в нативе занимают "многабукав", не каждый начинающий напишет их правильно, да и профи не все напишут оптимально, уверен что в большинстве случаев написанный нативом функционал будет хуже аналога из жк.
    - размер мин пакета жк 64 кб, и все они лежат на быстрых цдн серверах. Думаю это последнее что может повлиять на скорость загрузки страницы.
    - есть ОГРОМНОЕ количество скриптов написанных с учетом жк, не использовать их глупо, писать свой велосипед - вообще только в целях обучения(не берем крайние случаи когда плагин писал упоротый пингвин).
    - Синтаксис и краткость записи - вообще вне конкуренции.
    - Старые браузеры никто не отменял, часто заказчик требует чтобы работало в ие8, натив не канает или доставляет море анального удовольствия.
    Вывод: Если ты крут в жс, еще и работаешь в ангуларе/ещечетамдляфронта и тебе нужно сделать 2 действия в очень современных браузерах - jquery не нужен, и ты это сам знаешь. Если слова ангулар, вуе и проч для тебя не больше чем шум листвы за окном, а навесить плагинов и эффектов нужно - jquery наше все.

    UPD: для всех кто там отписался а ля "в связи (...), исчезновением проблемы совместимости со старыми IE (что и было основным назначением jQuery)." - свежачок
    Ответ написан
    4 комментария
  • Почему Java выводит список данных в таком формате?

    al_gon
    @al_gon
    Предположительно у Вас метод toString в Organization не переопределённ.
    Если Вы сделаете System.out.println(new Organization("ФАР", "4444-55555-1", "FAR@GMAIL.COM", 18)) , то тоже будет не очень.
    Ответ написан
    2 комментария
  • Как добавить картинку на сайт laravel?

    delphinpro
    @delphinpro Куратор тега Laravel
    frontend developer
    В ларавель сайт – это папка public. Всё остальное – движок.
    Соответственно, все ассеты, которые должны быть доступны на сайте, должны располагаться в папке public.
    Ну и при правильной настройке сервера папка public это адрес / на вашем сайте
    Ответ написан
    2 комментария
  • Git was not found in your PATH, skipping source download как это устранить?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    1. Установить гит
    2. Добавить путь к нему в переменную окружения PATH (...\Git\cmd)
    3. Перезагрузить систему

    UPD: поставил гит на чистой системе - установщик сам добавил путь в переменную окружения. Так что достаточно просто поставить и все будет работать из коробки.
    Ответ написан