Задать вопрос
  • Как определить свой уровень программирования?

    Adamos
    @Adamos
    Измерение уровня программиста часами чтения учебника и решения задачек - все равно, что попытка оценить уровень посла во Франции по пройденным им курсам французского языка.
    Ответ написан
    Комментировать
  • Как учить понять школьную геометрию?

    Adamos
    @Adamos
    Уверенность знания математики приходит в три ступени.
    1. Прочитал учебник и вроде бы понял.
    2. Прорешал задачник и вроде бы справился.
    3. Решая практическую задачу, смог свести ее к этому разделу математики и решить. Вот теперь - понял.
    Ответ написан
    Комментировать
  • Какую платформу выбрать для создания MVP?

    Adamos
    @Adamos
    Битрикс - это не платформа, а решение. Делать на нем что-то свое - это больше борьба с тем, что накостыляли кодеры Битрикса. А когда он надоест, все наработки можно будет спустить в унитаз, потому что больше они ни к чему не подойдут.
    Озвученная Ларавель - хороший фреймворк, но готовые писать на голом фреймворке не задают таких вопросов. Вам, полагаю, стоит посмотреть CMS на базе Ларавели.
    Самому мне нравится OctoberCMS, точнее, сейчас - ее бесплатный форк WinterCMS. Каталог готовых плагинов, среди которых немало бесплатных, тут: https://octobercms.com/plugins
    Ответ написан
    4 комментария
  • Как сделать субдомен, и отдельную БД для каждой пользователя с миграциями laravel, docker?

    Adamos
    @Adamos
    https://octobercms.com/plugin/initbiz-cumuluscore - Лара под капотом, готовая админка с пользователями и готовый же плагин кластеризации. На одной БД, без их бессмысленного размножения.
    Вместо платного Октября можно взять его бесплатный форк WinterCMS, плагины совместимы.
    Ну, или хотя бы использовать логику, уже кем-то проработанную, в своих велосипедах.
    Ответ написан
    Комментировать
  • Что такое бэкенд-сервер?

    Adamos
    @Adamos
    То же, что фронтенд-браузер, только наоборот. Тавтология ;)
    Ответ написан
    Комментировать
  • Опенсорс ПО для склада, какие есть варианты?

    Adamos
    @Adamos
    Работник произвел бочку, надо проставить на неё маркировку которая будет учитывать ФИО работника и ID изделия(термопринтер+шрих коды)

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

    При отгрузке иметь возможность "пропикать" изделия для последующего импорта в базу - чтобы знать что продалось (сканер штрих кодов)

    Таблица заказов и привязка к ним товаров. В перспективе - калькулятор для менеджера, в котором этот заказ обсчитывается со всеми нюансами, а потом уже продажа. На складе - страничка активных заказов, открыв которую, кладовщик пропикивает отпущенные по ним бочки.

    Возможность отчетов \ сортировки по работникам \ изделиям

    Банальная работа с БД, банальные таблички на фронтенде.

    Возможность внесения "расходников" и их автосписании при изготовлении продукции

    Странички для бухов с внесением, расчет для рабочего при выдаче ШК со списанием. Тот же расчет - для менеджера при обсчете заказа.

    Сетевое, чтоб подключаться к БД по локалке

    Онлайн, чтобы администрация и менеджеры могли работать хоть со смартфона.
    Ответ написан
    4 комментария
  • На чем писать плагины и макросы для AutoCAD?

    Adamos
    @Adamos
    Нагуглите, какие открытые CAD-форматы понимает Автокад, и генерите в них.
    Это будет и значительно проще, и значительно перспективнее.
    Со временем сможете отказаться от Ёкселя и текстовых файлов и сделать нормальную онлайн-систему, приспособленную на выходе давать то, что и Автокад прожует тоже.
    Ответ написан
    6 комментариев
  • Редактор PDF и AstraLinux, какой использовать?

    Adamos
    @Adamos
    Редактирование PDF - тема тухлая, формат этого не предусматривает.
    Конкретно манипуляции со страницами PDF я в Убунте делаю утилитой pdfjam.
    Банально
    pdfjam "документ.pdf" 'номер страницы' "другой документ.pdf" 'номер страницы' -o "выходной документ.pdf"

    Астра - это перекрашенный Дебиан, пакет pdfjam в ней есть.
    Ответ написан
    2 комментария
  • Как правильно оформить вопрос на QNA.Habr, чтобы получить ответ?

    Adamos
    @Adamos
    1. Сформулировать проблему.
    2. Попробовать решить ее самостоятельно и конкретизировать ту часть, с которой справиться не удалось.
    3. Прочесть правила и соблюдать их.
    Собственно, все.
    Новички чаще всего - нарушают эти три пункта. Вы, например - третий.
    Ответ написан
    Комментировать
  • Безопасно ли загружать docx файлы пользователей на сервер?

    Adamos
    @Adamos
    Уязвимости воздушно-капельным путем не передаются.
    Если документ заражен - это проблема того, кто его откроет уязвимой библиотекой. У себя на компьютере.
    Сервер тут ну вообще ни при чем.
    Ответ написан
  • Бест практис разработки регистрации с подтверждением по email?

    Adamos
    @Adamos
    В сущности, проблема обозначена: человек взялся ваять самопис, не познакомившись с готовыми решениями, которые сто лет как написаны и отлажены. В результате медитирует над оптимальной формой руля велосипеда, следующим шагом перегорит от "все сложно" и забросит проект.
    Решение: берешь ЛЮБУЮ ВООБЩЕ CMS и изучаешь, как такие базовые проблемы решили до тебя. Не изобретая.
    Ответ написан
    6 комментариев
  • Чем можно сравнить две папки по содержимому?

    Adamos
    @Adamos
    Вообще-то find - sort - diff...
    Для не умеющих - есть Meld, например. Хотя тут он, конечно - из пушки по воробьям.
    Ответ написан
    1 комментарий
  • Xprinter 365b в arch linux?

    Adamos
    @Adamos
    У меня на такой балалайке второй год сборщики работают под Убунтой, проблем нет.
    1. Устанавливаем драйвер (принтер не понимает нормальные форматы печати, нужен растеризатор)
    2. Ручками прописываем в PPD нужный размер для маркетплейсов.
    Xprinter XP-365B.ppd
    *PPD-Adobe: "4.3"
    *%
    *% Create By CommUnit 2017/04/05 11:13
    *%
    *FormatVersion: "4.3"
    *FileVersion: "1.0"
    *LanguageVersion: English
    *LanguageEncoding: ISOLatin1
    *PCFileName: "Xprinter XP-365B.ppd"
    *Manufacturer: "Xprinter"
    *Product: "(XP-365B)"
    *ModelName: "Xprinter XP-365B"
    *ShortNickName: "Xprinter XP-365B"
    *NickName: "Xprinter XP-365B"
    *PSVersion: "(3010.000) 550"
    *PSVersion: "(3010.000) 651"
    *PSVersion: "(3010.000) 652"
    *PSVersion: "(3010.000) 653"
    *PSVersion: "(3010.000) 704"
    *PSVersion: "(3010.000) 705"
    *PSVersion: "(3010.000) 800"
    *LanguageLevel: "3"
    *ColorDevice: False
    *DefaultColorSpace: Gray
    *FileSystem: False
    *Throughput: "1"
    *LandscapeOrientation: Plus90
    *TTRasterizer: Type42
    *cupsVersion: 1.2
    *cupsManualCopies: False
    *cupsFilter: "application/vnd.cups-raster 0 rastertobarcodetspl"
    *cupsLanguages: "en"
    
    *TscAttr tscLanguage: TSPL2
    *TscAttr tscUtility: BarCodeUtility
    *TscAttr MaxPaperWidth: 317.48
    
    *MaxMediaWidth: "306.14"
    *MaxMediaHeight: "7920"
    *HWMargins: 0.00 0.00 0.00 0.00
    *CustomPageSize True: "pop pop pop <</PageSize[5 -2 roll]/ImagingBBox null>>setpagedevice"
    *ParamCustomPageSize Width: 1 points 14.17 306.14
    *ParamCustomPageSize Height: 2 points 14.17 7920
    *ParamCustomPageSize WidthOffset: 3 points 0 0
    *ParamCustomPageSize HeightOffset: 4 points 0 0
    *ParamCustomPageSize Orientation: 5 int 0 0
    *RequiresPageRegion All: True
    
    *OpenGroup: General/General
    
    *OpenUI *PageSize/Page Size: PickOne
    *OrderDependency: 10 AnySetup *PageSize
    *DefaultPageSize: w2h1
    *PageSize w2h1/2 x 1 (2.28 in x 1.57 in): "<</PageSize[164 113]/ImagingBBox null>>setpagedevice"
    *CloseUI: *PageSize
    
    *OpenUI *PageRegion/Page Size: PickOne
    *OrderDependency: 10 AnySetup *PageRegion
    *DefaultPageRegion: w2h1
    *PageRegion w2h1/2 x 1 (2.28 in x 1.57 in): "<</PageSize[164 113]/ImagingBBox null>>setpagedevice"
    *CloseUI: *PageRegion
    
    *ImageableArea w2h1/2 x 1 (2.28 in x 1.57 in): "0 0 164 113"
    
    *PaperDimension w2h1/2 x 1 (2.28 in x 1.57 in): "164 113"
    
    *OpenUI *Resolution/Resolution: PickOne
    *OrderDependency: 300 AnySetup *Resolution
    *DefaultResolution: 203dpi
    *Resolution 203dpi/203 dpi x 203 dpi: "<</HWResolution[203 203]/cupsBitsPerColor 1/cupsRowCount 8/cupsRowFeed 0/cupsRowStep 0/cupsColorSpace 3>>setpagedevice"
    *CloseUI: *Resolution
    
    *OpenUI *Collate/Collate: Boolean
    *OrderDependency: 200 AnySetup *Collate
    *DefaultCollate: True
    *Collate True/Yes: "%%"
    *Collate False/No: "%%"
    *CloseUI: *Collate
    
    *CloseGroup: General
    
    *OpenGroup: Media/Media Setting
    
    *OpenUI *MediaMethod/Method: PickOne
    *OrderDependency: 110 AnySetup *MediaMethod
    *DefaultMediaMethod: Direct
    *MediaMethod Normal/Use Currently Printer Setting: "%%"
    *MediaMethod Direct/Direct Thermal: "%%"
    *MediaMethod Transfer/Thermal Transfer: "%%"
    *CloseUI: *MediaMethod
    
    *OpenUI *PaperType/Type: PickOne
    *OrderDependency: 120 AnySetup *PaperType
    *DefaultPaperType: LabelGaps
    *PaperType LabelGaps/Label with Gaps: "%%"
    *PaperType LabelMark/Label with Mark: "%%"
    *PaperType Continue/Continue: "%%"
    *CloseUI: *PaperType
    
    *OpenUI *PostAction/Post-Print Action: PickOne
    *OrderDependency: 130 AnySetup *PostAction
    *DefaultPostAction: TearOff
    *PostAction None/None: "%%"
    *PostAction TearOff/Tear Off: "%%"
    *PostAction PeelOff/Peel Off: "%%"
    *PostAction Cut/Cut: "%%"
    *PostAction PartialCut/Partial Cut: "%%"
    *CloseUI: *PostAction
    
    *OpenUI *Occurrence/Occurrence: PickOne
    *OrderDependency: 140 AnySetup *Occurrence
    *DefaultOccurrence: Every
    *Occurrence Every/After Every Page: "%%"
    *Occurrence Copies/After Identical Copies: "%%"
    *Occurrence Job/After Job: "%%"
    *Occurrence Specified/After Specified interval: "%%"
    *CloseUI: *Occurrence
    
    *CloseGroup: Media
    
    *OpenGroup: Effects/Effects
    
    *OpenUI *MirrorImage/Mirror Image: Boolean
    *OrderDependency: 200 AnySetup *MirrorImage
    *DefaultMirrorImage: False
    *MirrorImage True/Yes: "%%"
    *MirrorImage False/No: "%%"
    *CloseUI: *MirrorImage
    
    *OpenUI *NegativeImage/Negative Image: Boolean
    *OrderDependency: 210 AnySetup *NegativeImage
    *DefaultNegativeImage: False
    *NegativeImage True/Yes: "%%"
    *NegativeImage False/No: "%%"
    *CloseUI: *NegativeImage
    
    *CloseGroup: Effects
    
    *OpenGroup: PrinterOptions/Printer Options
    
    *OpenUI *PrintSpeed/Print Speed: PickOne
    *OrderDependency: 110 AnySetup *PrintSpeed
    *DefaultPrintSpeed: 50
    *PrintSpeed 20/2.00 in/sec: "%%"
    *PrintSpeed 30/3.00 in/sec: "%%"
    *PrintSpeed 40/4.00 in/sec: "%%"
    *PrintSpeed 50/5.00 in/sec: "%%"
    *PrintSpeed 60/6.00 in/sec: "%%"
    *CloseUI: *PrintSpeed
    
    *OpenUI *Darkness/Darkness: PickOne
    *OrderDependency: 120 AnySetup *Darkness
    *DefaultDarkness: 7
    *Darkness 0: "%%"
    *Darkness 1: "%%"
    *Darkness 2: "%%"
    *Darkness 3: "%%"
    *Darkness 4: "%%"
    *Darkness 5: "%%"
    *Darkness 6: "%%"
    *Darkness 7: "%%"
    *Darkness 8: "%%"
    *Darkness 9: "%%"
    *Darkness 10: "%%"
    *Darkness 11: "%%"
    *Darkness 12: "%%"
    *Darkness 13: "%%"
    *Darkness 14: "%%"
    *Darkness 15: "%%"
    *CloseUI: *Darkness
    
    *CloseGroup: PrinterOptions
    
    *OpenGroup: GraphicsFormat/Graphics Format
    
    *OpenUI *DirectBuffer/Direct to Buffer: PickOne
    *OrderDependency: 210 AnySetup *DirectBuffer
    *DefaultDirectBuffer: AUTO
    *DirectBuffer AUTO/Automatic: "%%"
    *CloseUI: *DirectBuffer
    
    *OpenUI *StoredGraphics/Stored Graphics: PickOne
    *OrderDependency: 220 AnySetup *StoredGraphics
    *DefaultStoredGraphics: AUTO
    *StoredGraphics AUTO/Automatic: "%%"
    *CloseUI: *StoredGraphics
    
    *CloseGroup: GraphicsFormat
    
    *OpenGroup: InstallableOptions
    
    *OpenUI *OptionDisplayUnit/Measurement Units: PickOne
    *DefaultOptionDisplayUnit: MM
    *OptionDisplayUnit AUTO/Automatic: "%%"
    *OptionDisplayUnit MM/mm: "%%"
    *OptionDisplayUnit Inch/Inch: "%%"
    *CloseUI: *OptionDisplayUnit
    
    *CloseGroup: InstallableOptions
    
    *% Generic boilerplate PPD stuff as standard PostScript fonts and so on
    
    *DefaultFont: Courier
    *Font AvantGarde-Book: Standard "(001.006S)" Standard ROM
    *Font AvantGarde-BookOblique: Standard "(001.006S)" Standard ROM
    *Font AvantGarde-Demi: Standard "(001.007S)" Standard ROM
    *Font AvantGarde-DemiOblique: Standard "(001.007S)" Standard ROM
    *Font Bookman-Demi: Standard "(001.004S)" Standard ROM
    *Font Bookman-DemiItalic: Standard "(001.004S)" Standard ROM
    *Font Bookman-Light: Standard "(001.004S)" Standard ROM
    *Font Bookman-LightItalic: Standard "(001.004S)" Standard ROM
    *Font Courier: Standard "(002.004S)" Standard ROM
    *Font Courier-Bold: Standard "(002.004S)" Standard ROM
    *Font Courier-BoldOblique: Standard "(002.004S)" Standard ROM
    *Font Courier-Oblique: Standard "(002.004S)" Standard ROM
    *Font Helvetica: Standard "(001.006S)" Standard ROM
    *Font Helvetica-Bold: Standard "(001.007S)" Standard ROM
    *Font Helvetica-BoldOblique: Standard "(001.007S)" Standard ROM
    *Font Helvetica-Narrow: Standard "(001.006S)" Standard ROM
    *Font Helvetica-Narrow-Bold: Standard "(001.007S)" Standard ROM
    *Font Helvetica-Narrow-BoldOblique: Standard "(001.007S)" Standard ROM
    *Font Helvetica-Narrow-Oblique: Standard "(001.006S)" Standard ROM
    *Font Helvetica-Oblique: Standard "(001.006S)" Standard ROM
    *Font NewCenturySchlbk-Bold: Standard "(001.009S)" Standard ROM
    *Font NewCenturySchlbk-BoldItalic: Standard "(001.007S)" Standard ROM
    *Font NewCenturySchlbk-Italic: Standard "(001.006S)" Standard ROM
    *Font NewCenturySchlbk-Roman: Standard "(001.007S)" Standard ROM
    *Font Palatino-Bold: Standard "(001.005S)" Standard ROM
    *Font Palatino-BoldItalic: Standard "(001.005S)" Standard ROM
    *Font Palatino-Italic: Standard "(001.005S)" Standard ROM
    *Font Palatino-Roman: Standard "(001.005S)" Standard ROM
    *Font Symbol: Special "(001.007S)" Special ROM
    *Font Times-Bold: Standard "(001.007S)" Standard ROM
    *Font Times-BoldItalic: Standard "(001.009S)" Standard ROM
    *Font Times-Italic: Standard "(001.007S)" Standard ROM
    *Font Times-Roman: Standard "(001.007S)" Standard ROM
    *Font ZapfChancery-MediumItalic: Standard "(001.007S)" Standard ROM
    *Font ZapfDingbats: Special "(001.004S)" Standard ROM
    
    *%
    *% End of PPD
    *%

    3. Дальше можно, скажем, в настройках принтера еще покопаться и указать формат красиво. Но это уже опционально.
    Ответ написан
    Комментировать
  • Как протестировать софт на Win11?

    Adamos
    @Adamos
    M$ предлагала готовые образы ВМ со свежими виндами, как раз для тестирования.
    Последние полгода пишут, что загрузки недоступны, но на каких-нибудь торрентах такие образы еще вполне могут валяться, типа такого: https://archive.org/details/windows-11-pro_202208
    Ответ написан
    Комментировать
  • Почему вдруг нагружается сервер и потом все сбрасывается?

    Adamos
    @Adamos
    Как паллиатив, можно просто создать своп-файл.
    Именно для того редкого момента, когда память вдруг нештатно выжрана, и БД умирает по ООМ.
    Пусть оно две минуты в неделю потормозит, зато все живы ;)
    Ответ написан
    2 комментария
  • Как в комментарии сделать ссылки на участок кода?

    Adamos
    @Adamos
    /**
     * @link MyClass::myMethod
     */
    
    class MyClass
    {
        static public function myMethod()
    Ответ написан
    1 комментарий
  • Как освободить место на диске облачного сервера Ubuntu 24.04 LTS 64-bit?

    Adamos
    @Adamos
    du -hd1 /var
    Покажет, что жрет место в конкретном каталоге. Потом du -hd1 /var/log и т.д.
    Ответ написан
    Комментировать
  • Использование PDFium через WASM в Node.js и альтернативы для анализа метаданных PDF?

    Adamos
    @Adamos
    Какие данные-то нужны? Не эти?
    $ pdfinfo sample.pdf 
    Producer:        Oracle BI Publisher 12.2.1.4.0
    Custom Metadata: yes
    Metadata Stream: no
    Tagged:          no
    UserProperties:  no
    Suspects:        no
    Form:            none
    JavaScript:      no
    Pages:           3
    Encrypted:       no
    Page size:       595.3 x 841.9 pts (A4)
    Page rot:        0
    File size:       70491 bytes
    Optimized:       no
    PDF version:     1.6
    Ответ написан
    Комментировать
  • Корректный алгоритм изучения языка программирования?

    Adamos
    @Adamos
    1. Найти бесплатный курс Питона.
    2. Пройти его, пользуясь онлайн-песочницей.
    3. Потом уже искать себе IDE и проч., отталкиваясь от изученного и того, что хочется программировать.
    И да,
    0. На время изучения ограничить интернет курсом и песочницей, не бегая на Тостер размазывать сопли на тему "как мне эффективнее учить".
    Ответ написан
    Комментировать