• Перспективы Delphi?

    @kvsemenov
    Не могу сказать про Delphi (он до сих пор живёт как дорогущий коммерческий проект), но его Open Source реинкарнация - Lazarus - вполне даже пригодна для многих задач. Поддерживает компиляцию в Win(32/64), Mac (32), Linux (32/64), FreeBSD итд., в том числе с возможностью кросс-компиляции; а также iOS и Android. Я им пользуюсь только для того чтобы быстро собрать редактор БД с какой-нибудь сложной структурой - очень уж быстро всё получается по сравнению с другими средствами разработки.
    Ответ написан
    Комментировать
  • Как избежать использование одного аккаунта несколькими людьми?

    Посмотрите как это реализовано в других проектах (Webmoney, Steam и.т.д).
    * Определяем, что пользователь зашел с другого компа (отличается ip(сетка), географическое положение, нет нужных кук, как хотите)
    * Высылаем пользователю на почту код и просим ввести его
    * Если вводит, предлагаем сохранить этот комп в списке доверенных.
    Ответ написан
    1 комментарий
  • Как увеличить скорость интернет-магазина на битрикс?

    Staltec
    @Staltec
    Node.js разработчик
    Прекратить пользоваться этим раскрученным маркетологами г-ном.
    Ответ написан
    Комментировать
  • Почему не удалить элемент, селектор которого модифицирован?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    Не занимайтесь мазохизмом. Используйте ванильный document.getElementById
    Ответ написан
    1 комментарий
  • С чего начинать проектировать приложение?

    max-kuznetsov
    @max-kuznetsov
    Главный IT-архитектор
    Предположим, что с будущей функциональностью Вы определились. Тогда Вы точно знаете, кто или что будет поставлять данные, и кто/что будет их потреблять.

    Теперь выясните, кто будет обращаться к вашей системе, чтобы передать или забрать данные, а к чему будет обращаться Ваша программа. Те системы или пользователи, которые обращаются к программе сами, нарисуйте схематически на листе бумаги вверху. Те, к которым будет обращаться программа (включая БД), - снизу.

    Теперь нарисуйте под каждым нарисованным сверху субъектом прямоугольник с названием UI или API - это интерфейсы, к которым будет обращаться пользователь или внешняя управляющая система. Иногда UI тоже может обращаться к API. Объедините все прямоугольники с UI одним контуром и обзовите слоем UI. Объедините все прямоугольники с API и обзовите слоем сервисов.

    Для систем, нарисованных снизу, укажите компоненты, которые будут отвечать за доступ к этим системам. Объедините все эти компоненты одним контуром и обзовите слоем доступа к данным.

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

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

    Получите логическую архитектуру. Разбросайте слои по серверам - получите физическую архитектуру.

    А дальше - детально прорабатывайте каждый маленький квадратик. Всё.
    Ответ написан
    2 комментария
  • Почему запрос к MySQL с Front-End в разы медленнее прямого запроса?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    1. Не очень понятно если честно что Вы подразумеваете под "возвращается через несколько секунд", в коде не понятно как Вы это меряли.
    Мне кажется что вероятней всего дело не в SQL:
    При "отправке с phpmyadmin", phpmyadmin выводит чистое время работы SQL запроса.
    При "отправке с фронтенда" - Вы видите итоговое время всего HTTP запроса, включая: dns поиск, установление соединения до вашего хоста, запуск вашего php фреймворка и его работу, получение данных и их отдача. Промониторьте все эти значения.

    На всякий случай если дело все таки в SQL:

    2. У Вас могут быть включены всяко-разные кеши, соответственно при повторном вводе запроса через phpmyadmin он отдается быстрее. Можно попробовать отключить кеши и промониторить ситуацию заново.

    3. Покажите explain запроса
    Ответ написан
    32 комментария
  • Селектор не содержит класс, как правильно написать? not hasClass?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    !
    (инвертируйте условие внутри if)
    Можно в 1 строку: $(".tabs .tab:not(.active)").addClass("blink");
    Ответ написан
    5 комментариев
  • Как создать изображение, управляемое с сервера?

    dizballanze
    @dizballanze
    Software developer at Yandex
    Почему бы не сделать по-нормальному и загружать новости через REST Api, например.
    Ответ написан
    Комментировать
  • Как через SSH вставить базу данных db_backup.sql в виде новой БД?

    berezuev
    @berezuev
    #define TRUE FALSE
    Ну, вообще-то все гуглится за минуту

    Сначала заходим в mysql (удобнее всего это делать, находясь в папке с дампом)
    mysql --host=127.0.0.1 --user=myname --password=mypass


    Далее создаем базу:
    CREATE DATABASE dbname;

    Переходим в нее:
    use dbname;

    И заливаем в нее дамп
    SOURCE db_backup.sql;

    UPD: обновил ответ для троллей из комментариев. Оговорился, и сразу налетели...
    Ответ написан
    Комментировать
  • Как подвинуть иконку внутри input?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    В современных браузерах и IE 9+ работает указание смещения при задании позиции фона.
    Задаются опционально 2 пары — ключевое слово + смещение в процентах или пикселях (по умолчанию 0).

    background-position: right 10px top 50%;

    Пример
    Ответ написан
    5 комментариев
  • Как правильно вызывать запросы?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Включайте в браузере консоль разработчика и смотрите что уходит на сервер и что оттуда возвращается.
    Ответ написан
    Комментировать
  • Мне нужно ассинхронно подгрузить скрипт который испольниться после этого на Yii 2. Как этого достичь (без jQuery)?

    @iShatokhin
    JS developer
    Не знаю, как Yii 2 использует скрипты, но загрузить можно так:

    var s = document.createElement('script');
    s.src = '/script.js'; // путь до нужного скрипта
    s.async = true;
    s.onload = s.onreadystatechange = function() {} // функция сработает сразу после загрузки скрипта
    document.head.appendChild(s);
    Ответ написан
    Комментировать
  • Как сделать такой эффект?

    @bIbI4k0
    Питоню
    Например, банально:
    <style type="text/css">
    .invisible-red-line {
        border-bottom: 5px solid red;
    }
    
    .white-text-on-red-bg {
        background-color: red;
        color: white;
    }
    </style>
    
    <div class="invisible-red-line">
        <span class="white-text-on-red-bg">Отзывы о нас</span>
    </div>
    Ответ написан
    8 комментариев
  • Как отловить завершение всех Ajax-запросов?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Добавить глобальный счётчик. По отправке запроса - увеличивать и включать показ загрузки, по завершении запроса - уменьшать, когда станет 0 отключать показ.
    Ответ написан
    9 комментариев
  • Существует ли способ обработать CSS файл через JS?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Есть такая коллекция document.styleSheets, которая содержит ссылки на подключённые стили (элементы style и link). В каждом элементе коллекции CSSStyleSheet есть доступ к правилам.
    Ответ написан
    3 комментария
  • Как подключить заголовочный файл частично?

    maaGames
    @maaGames
    Погроммирую программы
    Не парься, компоновщик оставит только те функции, которые реально используются.
    Ответ написан
    7 комментариев
  • Как начать работать удаленно или фрилансить, если даже проекты по мизерной цене вызывают затруднения?

    MegaMufa
    @MegaMufa
    Я бы посоветовал вам устроиться на некоторое время работать в офис. Работа в команде очень сильно помогает поднять свой уровень. В этом есть несколько плюсов:
    1. У вас всегда под рукой есть ментор, который может подсказать как решить поставленую перед вами конкретную задачу. Знания, получаемые таким образом, усваиваются намного лучше. Вы лучше понимете, как применять свои навыки.
    2. К окманде работает несколько человек, каждый со своим мнением и кругозором. Общение на обеде, за кофе и на обсуждениях проектов поможет ваам расширить свой профессиональный кругозор. Вы узнаете про многие технологии. В данный момент они вам не понадобытся, но вы будете знать о них, во время принятия решений в будущем.
    3. Устраиваясь на работу в офис стажером (или новичком, в общем неопытным специализстом), вы ставите в известность своего работодателя. Он в замен на пониженый оклад (у начинающего программиста ЗП, конечно ниже), помогает вам обучаться, выделяя вам ментора и давая практику.
    4. Вы преобретаете опыт решения реальных кейсов. В дальнейшем вы будете знать, как решается большинство типовых задач.
    5. В спокойной, но реальной обстановке получите опыт обучения "на лету" и поиска нужного материала.

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

    Мой вам совет: поработайте некоторое время в команде.
    Ответ написан
    6 комментариев
  • C++ как вызвать метод потомка, не определоного в предке?

    RiseOfDeath
    @RiseOfDeath
    Диванный эксперт.
    Вообще, если ваша функция foo принимает объекты типа A, то она не должна вызывать функции, которых у этого объекта нет. Т.е. грубо говоря класс A задает "интерфейс" для всех потомков, который должны дергать всякие функции foo.

    Т.е. в ваш пример должен выглядеть как-то так:

    class A {
    virtual int getSome()=0;
    }

    class B : A {
    int getSome();
    }
    Ответ написан
    Комментировать
  • Какие ЯП не требуют кучу прикладнухи для устройства на работу?

    Я постараюсь подключить философию, примеры и "как если бы я говорил в баре с вами".

    ЯП - это инструмент. Инструмент всегда взаимодействует с объектом и со средой. Соответственно, вам точно нужно что-то знать про объект и уметь пользоваться инструментом внутри среды, а это потащит дополнительные знания, назовем их "естественными" зависимостями. Насколько глубоко их нужно знать? Тут ответа не бывает: настолько, насколько нужно и хочется. Тут важен баланс и акцент. Если нет строгих параметров на уровне разума, нужно верить интуиции, потому что больше нечему. Для JS-программиста JSON/jQuery/AJAX - это естественные зависимости, их в любом случае не получится обойти. Даю зуб, что вам хватит вечера и немного гугла, чтобы стать чуть ли не LIKE A PRO в этом. Это все форматы хранения данных, либы, парадигмы. Это примерно как прочитать состав у шоколадки по сложности и входному порогу. Скорее всего, вас пугают сложные слова. Примерно как сказать "НАПРАВЛЕННЫЙ АЦИКЛИЧЕСКИЙ ГРАФ", и вы сразу знаете теорию графов, хотя с практической точки зрения суть настолько элементарна, что аж страшно, а вы будете долго прокрастинировать и искать что попроще.

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

    Вы можете просто верстать (html/css) и игнорировать программирование в целом. Но естественная среда противится: вы уже (!) пишете на декларативном языке, неплохо было бы узнать об этом подробнее (о языках или даже о типизации), тем более, что крайне близко к вам находится интереснейший язык js, а там моментально вылезут проблемы связывания html и js, разные подходы к этому, целые парадигмы и фреймворки; и вот вам выпадает интересная задача по анимированию svg, вы курите мануал по нужной либе, читаете что-то про reflow/repaint, внезапно узнаете что-нибудь про селекторы. И через какое-то время, будучи все тем же верстальщиком, вы видите архитектурный косяк дизайна, который очень неудобно укладывается в используемые технологии, предлагаете его пофиксить и спасаете команду от факапа через месяц, когда какой-нибудь транзишн наложится на какой-нибудь position: fixed и еще и в Safari упадет анимация и только там, а тут и новая тудушка: "Переделать, нафиг, всю шапку, чтобы ок было". Что-то изменилось в мышлении и картина стала полнее. ВНЕЗАПНО вы уже и инженер, можно сказать, ЗП растет, все дела, рутины меньше стало.

    Так вот, о инженерах. Можно выучить, например, Python за пару дней, там же отличный мануал. Но настоящий программист - это инженер, потому что вся суть в архитектуре, во взаимодействии объектов/компонентов и в том, как все это соотносится с задачей. Какой молоток взять, это уже без разницы, как состав на банке прочитать. То есть суть вашей работы заключается как раз в объекте и среде, а не в инструменте. Образно говоря, когда вы сидите в кафе, суть не в чашке чая, а в атмосфере и как вы себя в ней чувствуете, но при этом чашка чая нужна, чтобы заставить вас что-то делать и вписать тем в самым во взаимодействие со средой, поэтому придется научиться красиво пить чай.

    Подведу тут черту: естественные зависимости - это норма, а суть в инжиниринге. Можно двигаться по зависимостям дальше. У вас есть интервал, где есть минимальный порог, ниже которого нельзя, и максимальный, где вы "мастер на все руки", что тоже плохо. Между минимальным и максимальным порогом можно двигаться. Взять те же сети: разворачиваете приложение, видите линуху, настраиваете сеть. Можно немного заморочиться и прочитать про основы маршрутизации, буквально 2 вечера, можно еще про сетевой стек в линукс, еще 2 вечера, и уже будет во много раз проще. Кроме того, возрастет культура в целом и если вы программист на бэке, то вам будет проще взаимодействовать с админами. Про OSPF, очевидно, читать не надо, важен баланс. Баланс - это понимание того, на что у вас акцент (вы программист? какой? фронт/бэк? насколько важны сети/ос? проектируете бд? верстаете? интересен ли прикладной кодинг под какую-то ос и так далее...) и насколько интересны естественные далекие зависимости выбранной области.

    Так вот, теперь у нас есть естественные зависимости, инжиниринг и баланс между порогами. А не php/jquery/html/css.

    Важно также отметить, что все очень быстро развивается сейчас, а это еще один аргумент, что привязываться к инструменту не стоит. Кто-то может сказать, мол, взять тот же js, программирование на нем - это целая парадигма, иной подход, свои фичи. Это так, но дело тут не в js, а в целом в динамичных/интерпретируемых языках.

    Кстати, что касается SEO: с технической точки зрения это пара мануалов от гугла и не более того. Там сеошники наговорить могут много, с ними надо быть осторожнее :)

    А теперь, собственно, выводы:

    1) Вакансий крутых много, надо пробовать. Нужно только отличать близкие и необходимые естественные зависимости от мастера на все руки. Я считаю, что мастером на все руки нужно поработать хоть однажды, чтобы просто понять, почему это плохо. Но зависимости будут всегда, и это норма. Вы перечислили слишком радикально, конечно.
    2) Себя пилить под вакансию не нужно. Нужно просто идти туда, где интересно, всегда стараться быть инженером и не убить в себе искусство (то есть не бояться делать так, как кажется правильно, чтобы либо убедиться в правоте, либо ошибиться и стать круче).
    3) Не нужно думать в стиле "а что если завтра рубионреилс развалится, комьюнити разойдется, вакансий не будет, что я буду делать". Вы же инженер. У вас опыт в проектировании IT-систем, перейти на что-то смежное, если будет понятно, что технология умирает, не составит труда.
    4) По естественным зависимостям нужно двигаться по мере интереса, вы станете от этого только лучше.

    Это, конечно, если вам действительно все это интересно. Все это области, очень близкие к искусству, и тут надо любить все это делать.
    Ответ написан
    8 комментариев
  • Какие ЯП не требуют кучу прикладнухи для устройства на работу?

    barmaley_exe
    @barmaley_exe
    Никакие.

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

    Вообще, в области server / desktop / mobile очень сложно уйти далеко без, как минимум, следующего:
    • Объектно-ориентированное программирование и проектирование — ведь код не должен быть говном
    • Параллельное программирование — ведь делать нужно много и быстро, а у нас уже 10 лет как многоядерные машины есть
    • Сети — ведь нельзя жить без интернета
    • Базы данных — ведь данные надо где-то хранить, и хранить надёжно


    hardware не комментирую, но там ещё хардкорнее.

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