• Какая альтернатива есть у Jira и BitBucket?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    gitlab redmine

    и да лучше разверните на своих серверах
    Ответ написан
    Комментировать
  • Как определить переменные в bash-скрипте запускаемом Jenkins?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    сперва через дженкинс выполни просто
    /usr/bin/lsof -ti tcp:8080

    убедись что команда возвращает PID
    а потом уже решай это команда неработает или переменная не передается
    Ответ написан
    Комментировать
  • Как удалить дубликаты строк в postresql?

    @d-stream
    Готовые решения - не подаю, но...
    Канва примерно такая:
    есть ip - primary key и dup_fld - поле, которое могло дублироваться
    1. select dup_fld from table group by dup_fld having count(*)>1 -- это дубликаты как таковые
    2. select max(id) from table group by dup_fld having count(*)>1 -- это id (уникальный, последний) в дубликатах
    3. само удаление по условию что dup_fld из 1 селекта и id НЕ из 2 селекта

    во втором селекте берем самый последний id - подразумевая, что id растут при добавлении и самое последнее добавление - самое верное, но можно брать min - тогда "самое первое оставить" или развивать конструкцию до нужной логики (типа цена ближе всего к среднему и т.п.)

    Ну а как реалезовать - вопрос вкуса и компромисса с оптимизатором. Я бы делал 2 cte - первым inner join "урезал" набор до только дубликаты, вторым - left join where cte2.id is null

    with cte_dbls(dup_fld) as (select dub_fld from table group by dup_fld having count(dup_fld)>1),
    cte_ones( id ) as ( select max(id)  from table group by dup_fld having count(dup_fld)>1)
    
    --delete from table where id in (
    
    select 
    id
    from table
    inner join cte_dbls on cte_dbls.dup_fld=table.dup_fld
    left join cte_ones on cte_ones.id=table.id
    where cte_ones.id is null
    --)


    Для удобства - само удаление закомменчено, чтобы увидеть результат селекта, а так можно избавится из конструкции where in
    Ответ написан
    Комментировать
  • Зачем учить jvm языки кроме Java?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Это очень странный вопрос. Почему под .NET существует множество языков, если можно писать всё на C#? Почему вообще существует множество языков, если можно писать всё на C? Почему так много разновидностей мобильников? Почему автомобили бывают разных марок? И т.д. и т.п. Потому что не бывает единственно правильного всегда и для всего решения.

    Как понять, что вот проект А пишется на Java, а вот проект B ужеее неее, на Scala или Groovy лучше будет.

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

    Тогда если он такой крутой, почему я за 6 лет в айти(не коммерческого, но всетаки был рядом) не слышал почти про него

    В пещере может жили?

    И где тогда куча вакансий на него?

    Между "крутостью" языка и количеством вакансий на него нет прямой связи. Дворников сильно больше, чем нейрохирургов, но вы же не будете утверждать, что дворником быть круче?
    Ответ написан
    7 комментариев
  • Как подключить питание для нескольких жестких дисков на материнской плате ASUS Q87T?

    gbg
    @gbg Куратор тега Железо
    Любые ответы на любые вопросы
    Разъем там один, но к нему подключается коса с кучей разъемов для дисков.

    Однако, гораздо надежнее иметь отдельное питание на каждый диск.
    Ответ написан
    1 комментарий
  • Как подключить питание для нескольких жестких дисков на материнской плате ASUS Q87T?

    @Drno
    Согласен с ТС выше, в комплекте идет разветвитель на ПИТАНИЕ для hdd.

    И кстати, на будущее - не вздумайте создавать RAID средствами самой мат платы ( через биос), делайте софт рейд, надежднее
    Ответ написан
    4 комментария
  • Vue или Jquery?

    @deliro
    На Vue можно сделать всё, что можно сделать на jQ.
    На jQ можно сделать всё, что можно сделать на Vue, но сложнее.
    На чистом JS можно сделать всё, в том числе Vue и jQ (sic!)

    Я участвовал(ую) в проектах, где в качестве фронта один единственный Vue-бандл. Это сложные интерактивные приложения, где jQ просто иррационально использовать из-за огромного количества реактивных связей. А Vue справляется с этим "из коробки".

    Также, конечно, были проекты, где нужно было показать слайдеры, при определённых действиях обновить DOM, перехватить пару сабмитов форм, но в целом это просто HTML. Там Vue использовать иррационально и jQ подходит отлично.

    Есть даже проекты, в которых jQ и Vue отлично уживаются вместе. Почти везде jQ, а на некоторых сложных страницах, где много связей, аяксов и перерендера DOMа стоит Vue и экономит гигантское количество кода, разметки и моих нервов.

    Вот только чего не стоит делать — так это использовать jQ в качестве HTTP клиента для Vue. Я имею ввиду, что есть куда более легковесные и заточенные под это axios'ы и fetch'и.
    Ответ написан
    1 комментарий
  • Стоит ли хранить базы данных на SSD?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    сервер базы стоит на SSD
    Я думаю, где стоит сам сервер - особой разницы нет.

    Меня интересует стоит ли хранить сами базы на SDD или лучше их перенести на HDD для продления жизни SDD?
    Для ответа на этот вопрос, нужно оценить следующие факторы:
    1. Оно Вам действительно нужно, что бы базы работали на SSD, скорости HDD не хватает?
    2. Резервирование диска? Т.е. если диск "крякнется" - есть дублирующий носитель, RAID или что-то ещё подобное? Если у одного из дисков он есть - лучше хранить на том диске, у которого оно есть.

    3.
    Стоит отметить что базу используя для личной разработки.
    Дочитал до этого пункта и... Из личного опыта могу рассказать Вам одну историю... Есть у нас сервер 1U, купленный изначально "для работы", потом мы его отдали под проект. В сервере среди прочего стоит SSD, самый обыкновенный, на 120Гб, из числа тех что стоят сейчас в районе 1500руб., стоит он там уже более 2-х лет (с того момента как мы его отдали проекту), ежедневно и беспрерывно, 24х7 диск "молотит" база достаточно крупного проекта (и сам проект стоит там же), изначально было много опасений на тему того, что диск не проживёт там и месяц... но, любопытство всё же пересилило и мы решили попробовать. Результат - по прошествии 2+ лет "здоровье" диска в районе 74%, думаю ещё года 3 он там проживёт за милую душу. Единственное отличие нашего диска от тех, что продаются сейчас - у него MLC-память, но что-то мне подсказывает, что этот факт никак не даёт диску сколь-нибудь фантастическую живучесть по сравнению со всеми остальными.

    P.S. С учётом цен на SSD на сегодняшний день, и того, что Вы собираетесь его использовать даже не в боевых условиях - я бы не стал забивать себе голову такими мелочами. Храните базу там, где Вам удобнее. Скорее всего, диск будет выброшен и заменён на другой раньше по техническим причинам, чем успеет "сдохнуть".
    Ответ написан
    1 комментарий
  • Как сделать, чтобы в случае, если пользователь не указал диапазон цен - SQL запрос не крашился?

    VladimirAndreev
    @VladimirAndreev
    php web dev
    $select = 'select * from watches where 1=1';
    $binds = [];
    if(!empty($from)) {
        $select .= ' and from>=?';
        $binds[] = $from;
    }
    if(!empty($before)) {
        $select .= ' and before<=?';
        $binds[] = $before;
    }
    $stmt = $this->_instance->prepare($sql);
    $stmt->execute($binds);
    $items = $stmt->fetchAll(PDO::FETCH_ASSOC);
    Ответ написан
    6 комментариев
  • Где хранить несколько десятков записей в Java?

    @develnk Автор вопроса
    Благодаря Eugene Aristarhov остановился на json-файле с помощью Jackson действительно всё просто и легко делается.
    Ответ написан
    Комментировать
  • Spring. Как автоматически заполнить форму после заполнения одного из полей?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    У вас же форма будет на клиенте, а соответствено, java там не поможет. Вам нужно при помощи javascript (при потере фокуса поля) аяксом отправить запрос на сервер и если есть запись с нужным вам ID заполнять нужные поля при помощи JS. А данные для вставки будут в полученном ответе от сервера в JSON или XML Соответственно, это POST ajax запрос и скорее @RestController, который вернет ответ.
    Ответ написан
    Комментировать
  • В чем смысл ВУЗа?

    @garik_R
    On my way
    В ВУЗе учат взаимодействовать с людьми. Не в том смысле, что прогулять пары, прибухнуть, а наоборот, решить проблемную контрольную, написать курсовую. Развивать навыки, в любой сфере. Часто, именно этим, люди в Вузе и пренебрегают. Это социальная структура, где, по идеи, должны были собраться люди со схожими интересами. К сожалению, у нас это простой способ откосить от армии. Или родители сказали: "Ты должен поступить..." еtc. Кроме того, диплом поможет устроиться на хорошую работу у нас в стране или где-то в другой.

    Зачем учить? Что касается "странных" предметов, которые, казалось бы, никому не нужны - это ошибочная точка зрения. Любая работа сталкивает нас с такими неожиданностями, о которых мы и не думали. Вот тогда и вспоминаешь про какое-то ОБЖ и так далее. Часто негодование на этот счет связано не с большим умом, а наоборот, с большим незнанением и узким взглядом на жизнь. Подобные предметы нужно проглотить, отмучаться и знать где подсмотреть в случае чего. Или просто посмотреть шире. Вы же не станете отрицать, что даже если Вы учитесь на программиста, знать основы экономики необходимо, верно? А потом вы можете устроиться на работу, где будете писать какой-то софт где уже и не помешают и глубокие знания?

    Без математики можно заниматься только формошлепством. Везде так или иначе нужна математика. Где-то простая арифметика, где-то нюансы шифрования.

    Преподаватель, читающий курс по книге - со своими нюансами - чистое зло и он, конечно, не нужен. Но если книга то хорошая? Значит свою пользу он уже принес. Это уже не так плохо. Все от этого страдали, никто не умирал. Это особенности уже нашего образования. Не все преподатели гении и ими должны быть. Но на ваши вопросы должны ответить. Здесь очень хочется скатится в полемику про то, как с этим бороться, но тред не о том.

    Учить наизусть? Скажем так - хуже не будет. Да, сейчас всё немного изменилось. Если до ~2000х важно было иметь хорошую память. По книгам сложней искать, но других способов тогда не было. Сейчас нет острой необходимости помнить важную информацию. Сейчас важно знать где найти. Это умение стало более важным сейчас, из-за доступности интернета. Важная информация откладывается у вас в голове, если вы её постоянно используете - этого не избежать. Тут действительно, сейчас важно знать где найти, чем помнить досконально. Но человек, который является ходячей библиотекой оставляет гаааараздо более интересное впечатление, нежели тот, который говорит: "Щас, сек, я точно знаю, это вот здесь было написано". Перед работодателем это совершенно точно. Если вы помните, умеете развивать мысль, а не тупо заучили - то вы оставите более яркое впечатление. Мне кажется, это старомодный подход и со временем действительно можно будет погуглить и это всех будет устраивать. Но сейчас имидж умного, начитаного человека всё еще очень важен. Всё еще интересно поговорить вживую, с телефоном в кармане, нежели общаться отрывками статей, которые только что прочитал.

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

    ВУЗ нужен. Он учит, учит общению с людьми, решению социальных проблем. Учит решать поставленные задачи, порой, которых вы не ожидали. Дает возможность встретить людей, которым интересна таже область, что и Вам. Встретить людей, которые умнее Вас и прокачаться до их уровня. И да, как ни крути он даёт вам бумажечку. Может быть, она Вам и не пригодится, а может, вы в какой-то момент сильно пожалеете, что не получили её. Я бы даже сказал, что ВУЗ - это часть молодости, и не нужно её себя лишать. :-) И добавил бы, что желательно учится не в родном городе. Но это уже лирика :)
    Ответ написан
    4 комментария
  • Верстка с нуля: какие основные этапы работы?

    pavelkarinin
    @pavelkarinin Автор вопроса
    Full Stack Web Developer
    На этот вопрос есть подписчики, не ожидал, что столько, но это говорит о том, что вопрос интересен и это хорошо. Поэтому хоть и я его автор, но отвечу тоже. Я, как человек, который пережил эпохи Mosaic, Netscape и IE (старички меня поймут), отвечу ещё и по той причине, что часто, нет … очень часто сталкиваюсь с тем, что действительно "талантливые" начинающие Front-End тратят попусту свое время, из-за незнания такого, казалось бы, вопроса ни о чем (как выразился Froggyweb) об организации своего workflow и начинают не с того, с чего стоило бы начинать в результате это приводит к тому, что некоторая работа просто дублируется, переделывается и т.д. лишь потому, что изначально об этом не подумал.

    Дизайнеры "лепят" макеты кто во что горазд, и кто на чем может, и кто как может, особенно начинающие. Клиенты, с целью сэкономить, частенько прибегают к услугам именно начинающих дизайнеров, иногда явно очень талантливых, но ещё не постигших некоторых норм поведения в плане того, в каком виде следует представить макет верстальщику. Ведь для клиента: красиво, вроде все кнопочки есть, картиночки есть и ссылочки на месте - все хорошо. Нам же приходится это расщеплять.

    Я работаю на трёх мониторах: центральный - вёрстка, левый - результат, правый - дизайнерский макет + чего ещё что надо по ходу пьесы, типа киношки, статейки и т.д.;

    Среда:
    в Visual Studio - для сложных и крупных проектов, плотно подсевших на Back-End;
    в Visual Studio Code - для проектов попроще;
    хе-хе в Блокноте - для совсем простых))

    Музыка – это святое, тем более я её тоже иногда пишу, но слушаю всегда чужую на SoundCloud))

    Создаю папку решения

    Создаю в ней подпапку всегда с одним и тем же имеем: _native_design, в которую (в зависимости от формата портирую дизайн)

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

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

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

    Исходя из сетки, и из минимально необходимой версии браузеров (речь конечно же об IE), создаю файл _base.scss который наполняю сбросом стиля, и объявлениями для grid (ну все это не вручную, а сниппетами, импортами, инклудами, которые у меня подготовлены почти на все случаи жизни).

    Стараюсь придерживаться отлично зарекомендовавшего себя принципа "one base", который подразумевает единую основу для всего макета, т.е. есть одни базовый каркас (основа), и эта основа является местом для навешивания на неё всего необходимого. Часто вижу ошибки в этом плане, когда доходит до того, что ради одно "нестандартного" компонента страницы, встречающегося НЕ на каждой странице, используется отдельный (и не один) базовый стиль (по сути, файл), в котором 90% каскада продублировано с другим и т.п.

    После такой подготовительной работы начинается HTML, и когда он готов, перехожу к непосредственно блокам в каскад, разумеется, в постоянном контакте с HTML – это самый долгий этап во всей работе, я думаю все это прекрасно понимают.

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

    Потом начинается работа с адаптивностью. Я всегда сворачиваю контент, т.е. начинаю с широкого формата, потом desktop, tablet, mobile. Тут ничего сложного нет, особенно когда есть сетка, исходя из того насколько много компонентов плотно зависят от размеров, выбираю как прописывать медиа-запросы, т.е. либо запрос внутри селекторов блоков, либо селекторы внутри запроса. Как правило, используется 4-6 точек + по две на каждую основную точку, т.е. на 1px больше и на 1px меньше, но не всегда, зависит от макета. Не забываем про DPI.

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

    Потом начинается JS, т.е. наполнение интерактивом уже не средствами CSS, а именно скриптовым.

    Потом начинаем крутить-вертеть макет везде, где-только можно, исходя из требований клиента о поддержке минимальной версии браузеров. Тут сложностей особо не бывает, так как с браузерами в плане поддержки стандартов уже полегче, и юзеры стали обновлять чаще свои браузеры. Так или иначе изначально верстаешь с оглядкой на тут самую минимальную версию. Хотя бывают еще запросы на поддержку IE7, особенно часто от клиентов из средней Азии.

    Короче, как-то так… ради ответа, открыл Word и накатал этот текст. Уверен, что что-то пропустил, о чем-то не сказал, но не судите строго))

    UPD:
    Забыл сказать: про измерения скорости загрузки и скорости отрисовки. Этому стоит уделять внимание особенно в макетах со сложной композицией! Следует помнить о том, что перед отрисовкой браузеры проводят серьезный анализ DOM и каскада стилей, есть способы оптимизировать эти моменты, это важно для мобильных устройств, если у сайта нет для них отдельной версии. Это же касается и JS в части вашего ручного кода.

    UPD2:
    Ребят, я Skype указывал не для того, что вы присылали мне на него вопросы. Есть уточнения, пишем сюда или создаем новый вопрос на Тостере. Спасибо за понимание.
    Ответ написан
    4 комментария
  • Если на виндовс нажать сочетание клавиш вин + R, откроется окошко "Выполнить", но что можно в него вводить?

    vesper-bot
    @vesper-bot
    Любитель файрволлов
    Вообще - полную команду для start. В том числе можно ввести адрес URL или UNC путь до документа, и этот документ будет открыт в сопоставленной его расширению программе.
    Ответ написан
    Комментировать
  • Если на виндовс нажать сочетание клавиш вин + R, откроется окошко "Выполнить", но что можно в него вводить?

    15432
    @15432
    Системный программист ^_^
    Любые исполняемые файлы из PATH
    Например, cmd, explorer, msconfig, regedit, calc, gpedit.msc...
    И это только то что я обычно использую.
    Ответ написан
    1 комментарий
  • Использование нелицензированного ПО в организации, кто несёт ответственность?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    А теперь от теории к практике, я сам несколько раз попадал под проверки, а также несколько лет "работал" независимым специалистом по киберпреступлениям, в том числе на проверках лицензионной чистоты. Руководство всегда показывает пальцем на админа и говорит "Мы не знали, вот ответственный специалист!" Заканчивается это тем, что компанию штрафуют, а админу прилетает срок. Наличие бумажки о том, что директор знал об установке пиратского софта трактуется судом как преступный сговор. Позиция админа "я не обязан разбираться в тонкостях лицензирования" - это как позиция бухгалтера "я не обязан разбираться в тонкостях налогообложения". Правильных решений может быть только два - либо заставить компанию перейти на лицензионное ПО, либо уволиться.
    Ответ написан
    39 комментариев