• Как удалить файл из числа прикрепленных?

    profesor08
    @profesor08 Куратор тега JavaScript
    Данные о файлах хранятся в объекте FileList, поля которого только readonly.
    $("#filename")[0].files
    Это значит, что можно только посмотреть что там, но не менять. Следовательно остается либо удалить все.
    $("#filename")[0].value = "";
    Либо позволить выбирать только по одному файлу и для каждого файла свой
    <input type="file" name="filename" id="filename">
    Без атрибута multiple
    Ответ написан
    Комментировать
  • Как спарсить double число в C#?

    frammmm
    @frammmm
    Можно так double.Parse(s1, CultureInfo.InvariantCulture)
    либо вот так double.Parse(str.Replace('.', ','))
    Ответ написан
    1 комментарий
  • Сервис облачного хранения файлов наподобие Dropbox, дающий прямые ссылки на загрузку файла

    risik
    @risik
    Программист
    Может Amazon S3? Тем более, что AWS Вы все равно уже пользуетесь. Не так удобно заливать, как в DropBox (хотя есть ряд приложений и даже плагинов к браузерам и средам разработки, которые это позволяют делать проще, на совсем крайний случай, можно все решить несколькими скриптами). А после того, как залили, у Вас есть простая http ссылка, которую Вы отправляете секретарше заказчика.
    Ответ написан
    Комментировать
  • Как связать микро сервисы?

    @RuGrof
    Систему для общения можно написать самому или использовать что-то готовое
    Например https://nats.io/ или ещё чего посмотреть тут queues.io
    Передавать лучше JSON. Если нужно быстро, можно просто на http сделать.
    В любом случае каждый микросервис должен слушать свой "канал" или "очередь сообщений" и как-то реагировать на сообщения и отвечать в соответвующее место.
    Ответ написан
    Комментировать
  • Как узнать высоту шрифта?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Комментировать
  • Ошибка во время установки модуля Nodejs?

    ghaiklor
    @ghaiklor
    NodeJS TechLead
    1) Ставим питона и ТОЛЬКО второй версии. Третья не поддерживается.
    2) Пробуем снова.
    3) Если не получилось, вручную указывает путь до питона через npm config set python /path/to/python.

    Для еще большей уверенности ставите node-gyp через npm -g install node-gyp и делаете node-gyp rebuild.
    Ответ написан
    1 комментарий
  • Сайт с упражнениями по SQL?

    gobananas
    @gobananas
    finishhim.ru
    sql-ex.ru
    Ответ написан
    Комментировать
  • Что делать если команда говнокодит?

    Мы стараемся не запускать эту проблему посредством code review, пытаясь распределить нагрузку по ревью между наиболее опытными участниками. Если в коде есть проблемы - тикет возвращается на доработку с замечаниями. Даже если банально не мержится с главной веткой. Попробуйте наладить этот процесс.

    Также мы всё собираемся настроить Continuous Integration. Jenkins может прогонять по коду проверку на соблюдение стандартов и покрытие тестами, а затем показывать результаты в красивом виде. Если чей-то коммит показывает более чем N ошибок в расчёте на единицу объёма кода - можно возвращать на исправление.

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

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


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

    Ну и важно, чтобы у самих разработчиков была установка на хороший код, профессиональная гордость. У фрилансеров её, бывает, нет, а есть отношение "тяп-ляп, лишь бы работало и лишь бы часы оплатили, а там хоть потоп". Учитывая, что их заказчики занимаются code review нечасто, развитие такого отношения закономерно. Но всё-таки хочется писать красивые программы. Такое желание обязано быть.

    Я, конечно, сам не волшебник, я только учусь, и работа с командой - такая штука, которой надо постоянно учиться. Видимо, вы тоже учитесь; успехов в этом.
    Ответ написан
    2 комментария
  • Как правильно спроектировать хранение графика работы в БД?

    Rastishka
    @Rastishka
    Я делал, но скорее всего делал не совсем правильно:

    Есть таблица со "постоянным" расписанием, типа Иван Иванович в субботу работает с 9 до 18.
    (id, workerId, weekday, fromTime, tillTime)

    Есть вторая таблица, в ней храним изменения в стандартном расписании, типа в понедельник выйти не сможет, зато в воскресение поработает сверхурочно.
    (id, workerId, type ENUM ('vacant', 'closed'), date, fromTime, tillTime)

    Есть таблица записей, она же таблица занятых таймслотов:
    (id, workerId, day, time, timeslotDescription)

    При записи на определенное время в ней создается запись.
    Расписание, когда можно записаться строиться таким образом:
    - смотрим по первой таблице когда рабочее время,
    - смотрим по второй таблице нет ли изменений на это время в этот день,
    - смотрим по 3й таблице когда не занято время для записи, выводим свободные таймслоты для записи.
    Ответ написан
    Комментировать
  • Почему ASP.NET не используют в крупных компаниях?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Вот некоторые компании, которые используют .NET стэк :)
    • StackOverflow
    • Microsoft
    • Intuit
    • Intel
    • Citrix
    • Cisco
    • Symphony
    • ThoughtWorks
    • Morgan Stanley
    • JP Morgan Chase
    • Capgemini
    • Siemens
    • Bank of america
    • Societe Generale
    • Hitachi
    • British telecom

    .NET меня лично очень радует. Особенно в свете последних трендов Microsoft все переводить в OpenSource, дружить с другими стэками разработки и платформами. Особенно радует новая волная развития, именуемая .NET Core.
    Ответ написан
    3 комментария
  • Почему ASP.NET не используют в крупных компаниях?

    В настоящий момент С# (asp.net) имеет целый ряд преимуществ над тем, что нам дает Java (в плане удобства и синтаксиса языка). Это правда!

    Проблема заключается в том, что Java появился раньше, Java был открытым для использования на Linux. В итоге под сервера на Java написали огромный список уникальных решений, которые сейчас используют топовые команды (посмотри, что такое хадуп, например). В итоге, компании либо не видели смысла переписывать все на C#, так как уже имели билды на Java, либо не хотели тратить время на разработку того, что уже есть на Java.

    Именно по этой причине Microsoft сейчас активно начинает спариваться с Linux и везде кричит, что они его любят.

    Что касается текущего состояния, то сейчас достаточно много компаний, кто начинает писать свои системы на С# (asp.net) - чаще всего новые компании, например, Додо-Пицца. Но старички с Java уже просто не слезут.
    Ответ написан
    6 комментариев
  • Server doesn't listen [PostgreSQL] ?

    fox354
    @fox354
    Testing Engineer, Bradypodidae и просто "Диванный
    Приветствую!
    Была похожая проблема. При разборе полетов, оказалось, что pg_hba.conf в процессе редактирования был сохранен с "BOM".

    1. Как проверить?
    Открыть pg_hba.conf в любом hex-редакторе. Если в начале документа имеется "п»ї", то значит у вас файл конфига сохранен с "BOM".
    Также на это есть ссылка в логах запуска.

    2. Как исправить?
    Открыть pg_hba.conf в notepad++. В верхнем меню выбрать "Кодировка", а выпадающем списке "Преобразовать в UTF-8 без BOM".
    После чего сохранить изменения.
    Ответ написан
    Комментировать
  • Что делать после разработки?

    KamiSempai
    @KamiSempai
    Android and iOS developer
    Причина потери вдохновения скорее всего в следующем.
    Когда проект был маленьким, малейшие изменения двигали прогресс семимильными шагами, вы видели его и от проделанной работы получали удовольствие. Сейчас пришла пора шлифовки, когда делается много мелких но нужных доработок. Вы их не видите, поэтому нет такого удовлетворения как раньше.
    Я вам советую составить список всех этих мелких задач, например в гугл таблицах. Чем больше будет список, тем лучше. По мере выполнения, не удаляйте их, а помечайте выполненными. Подчищать список можно раз в 1-2 недели.

    При таком подходе вы убьете сразу 2-х зайцев: будете видеть свой прогресс, значительно повысите производительность.
    Главное не зацикливаться на одной задаче. Выполнил одну, пометил как выполненная, перешел к следующей.
    Ответ написан
    Комментировать
  • Как организовать хранение объектов в БД?

    @mletov
    Почему бы просто не завести два поля для отрезка: dateStart, dateFinish
    Тип полей DATETIME или TIMESTAMP

    Так правильнее, вдруг вам завтра понадобится изменить длину отрезка.
    Ответ написан
    1 комментарий
  • Как влиться в тренд нынешней веб-разработки?

    @SuperOleg39ru
    Front-end разработчик
    Добрый день!

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

    flexbox, grid layout
    - это css из современных стандартов. Что бы знать, когда применять - вы должны знать версии старых браузеров, которые необходимо поддерживать на вашем проекте, и соответствующую поддержку этих стилей. Например, формировать элементы на flexbox на порядок удобнее, чем на float, но в IE9 вы уже использовать flexbox не можете.
    Немного о новинках в css тут.
    Поддержка браузерами тут.

    gulp, webpack и пр.
    - это инструменты, которые созданы для облегчения рутинных задач.
    Для верстки очень удобно использовать gulp - вы описываете задачи, такие как создание локального сервера, мгновенная перезагрузка страницы при изменениях, минификация ваших файлов, и прочее.
    Посмотрите отличный скринкаст от Ильи Кантора!

    препроцессоры
    - представьте, что вам чего-либо не хватает в html и css.
    Например, вы хотите разбивать большие html файлы на множество мелких, или вам нужно вставить в html динамическое содержание - для этого созданы html шаблонизаторы. Вы используете в работе синтаксис конкретного шаблонизатора, затем тот же gulp автоматически собирает эти файлы в обычный html, который понимает браузер.
    Аналогичная ситуация с css, препроцессоры позволяют разбивать файлы на мелкие, и собирать в один, доступны переменные и функции, и многое другое.
    Популярный шаблонизатор Pug
    Один из css-препроцессоров Stylus

    пакетные менеджеры
    - это удобный способ скачать конкретные библиотеки, и переносить их из проекта в проект. Статья про npm тут

    Ну и конечно статьи и подкасты:
    https://habrahabr.ru/
    jsraccoon.ru

    https://soundcloud.com/web-standards
    https://radiojs.ru/

    Конкретные статьи и ресурсы для новичка:

    frontender.info/a-baseline-for-front-end-developers
    frontender.info/a-guide-to-flexbox
    css-live.ru/articles-css/pravilnye-kontrolnye-toch...
    https://medium.com/russian/%D0%BE%D1%82-%D0%BD%D1%...
    https://medium.com/russian/%D0%BE%D1%82-%D0%BD%D1%...
    https://habrahabr.ru/company/zfort/blog/321214/
    https://frontendmasters.gitbooks.io/front-end-hand...

    Дерзайте!
    Ответ написан
    6 комментариев
  • Что почитать об архитектуре CMS?

    riky
    @riky
    Laravel
    не уточнили какую цмс вам надо.
    цмс бывают двух типов:
    (1) просто система для управления контентом, которая ставится на сервер как правило в одном экземпляре, для упрощения работы менеджерам над контентом, или пользователм сайта.
    (2) и коробочные цмс которые либо свободно распространяются либо продаются, но факт в том что много юзеров использует их.

    для проектирования цмс первого типа, нужны общие знания о ООП в пхп и MVC. проект очень простой, нужно знать только ООП/MVC и желательно выбрать какой нибудь фреймворк symfony/laravel/yii.
    во втором случае система должна быть супер универсальной, функциональной. очень большие сложности возникают для обеспечения писателям плагинов(сторонним разработчикам) хорошего внутреннего апи (систему хуков hooks).

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

    разработка же цмс первого типа ничего сложного, паттерны там общие как при разработке любого сайта на фреймворках, поэтому любые книжки по паттернам и проектированию подойдут.
    Ответ написан
    4 комментария
  • Что такое замыкание?

    @HowardRoark
    Full stack developer
    Мне кажется, самый простой пример замыкания - это счетчик.
    var counter = (function () {
    	var current = 0;
    	return function () {
    		current++;
    		return current;
    	}
    })();
    
    console.log(counter()); // 1
    console.log(counter()); // 2

    В данном случае мы не имеем доступ к переменной current и функция гарантированно возвращает каждый раз уникальное значение.
    Если бы это была простая функция, то переменная, содержащая состояние (current), должна была бы находиться вне функции.
    var current = 0;
    var counter = function () {
    	current++;
    	return current;
    }
    
    console.log(counter()); // 1
    current = 5;
    console.log(counter()); // 6

    А это уже нарушает принцип "черного ящика", т.к. переменной можно присвоить другое значение в любом месте.
    Ответ написан
    4 комментария
  • Что такое замыкание?

    @tetafro
    var a = 42;
    function b() { return a; }

    Вот замыкание в самом простом виде. Функция привяжется к переменной a и будет её возвращать каждый раз.
    Ответ написан
    Комментировать