• Ошибка "UnicodeDecodeError" при запуске сервера, с чем это может быть связано?

    sim3x
    @sim3x
    import os
    
    os.path.join('/home', 'myname', 'dirname', u'поддирректория')


    и никаких path += "ололо"

    и начни понимать, что тебе написали в трейсе
    Ответ написан
    Комментировать
  • Что не так с Node.js?

    un1t
    @un1t
    Высоконагруженные проекты пишут на любых языках, многие написаны на php или perl. Нельзя называть эти языки быстрыми.
    То что он держит какую-то нагрузку это просто смешно. Никакую нагрузку он не держит, яваскрипт достаточно медленный, впрочем тоже можно сказать и о php.
    Нагрузку держит асинхронный поход (не яваскрипт!) который искользуется в том случае если у вас IO bound сервис, т.е. большую часть веремени он ничего не делает, а просто ждет ответа от другого сервиса или БД.
    Решать какие-нибудь задачи которые CPU bound на node.js ... ну вобщем это не подходящий инструмент, т.к. язык медленный, будет все работать медленнл.
    У меня лично претензии к js, что язык этот имеет мало возможностей и много костылей, хотя он активно развивается и в ES6 видно много улучшений В node.js мало библиотек, они сырые и медленные. Я сравниваю с Python, но даже у PHP тут есть преимущества. На node.js нет полноценного веб-фреймворка, аля Django, RubyOnRails или Yii. Конечно это вопрос времени, но пока все сыро.

    node.js и асинхронный подход.
    На ноде большинство библиотек асинхронные, если ты захочешь написать что-то синхронное, то у тебя будут проблемы.
    Асинхронный подход он не хороший и не плохой, это инструпент для решения определенных задач.
    Люди же использующие ноду используют асинхронный подход везде, они вынуждены. Но это как забивать гвозди микроскопом - долго дорого, неудобно и ненадежно.
    Асинхронный подход нужен для решения специфичесих задач. C# или Python имеют языковые конструкции упрощяющие асинхронное програмирование, но в ноде ничего подобного нет. Писать асинхронный код на JS это тот еще геморой. Всякие anync и promise немного улучшают ситуацию, но проблема остается.
    Ответ написан
  • Как присвоить и удалить класс?

    keslo
    @keslo
    Используйте для этого media в css. Добавлять классы при помощи js, которые просто ресайзят блоки - не очень хорошая практика.
    Ответ написан
    4 комментария
  • Java или защита информации?

    Lure_of_Chaos
    @Lure_of_Chaos
    Программист
    java открывает больше возможностей
    Ответ написан
    Комментировать
  • Графика в Java?

    TwerTrue
    @TwerTrue
    Молодой и неопытный разработчик
    Ну я думаю что стоит сначала изучить Swing а потом уже другие библиотеки при необходимости а так JavaFx
    Ответ написан
    Комментировать
  • Чем в Python3 делать снимок ajax версии сайта?

    @egorsmkv
    Для статической ajax-страницы Selenium + PhantomJS. Для динамической: selenium-python.readthedocs.org/en/latest/waits.ht...
    Ответ написан
  • Переменная в пути. Как?

    @idap
    интересуюсь python, latex, linux, ML, AI
    Ещё кросс-платформенный вариант

    import shutil
    import os
    
    path_1 = os.path.join("/home/hardwellzero/files", var_1)
    path_2 = os.path.join("/home/hardwellzero", var_2, var_3)
    
    shutil.move(path1, path2)
    Ответ написан
    Комментировать
  • Как сделать чтобы python игнорировал символ '%' в строке?

    Defman21
    @Defman21
    %%
    Ответ написан
    Комментировать
  • Как сделать сайт на JAVA?

    Есть множество способов сделать сайт на Java.

    JSP и сервлеты, как стандартное средство написания веб страниц на Java.
    Тем не менее обычно для создания сайтов используются фреймворки, их сейчас довольно много, вот здесь можно почитать довольно неплохое сравнение сравнение.

    Самыми простыми мне кажутся grails и play, я бы выбирал из них.
    Далее соответственно чтение примеров и документации, и у вас всё получится!
    Ответ написан
    Комментировать
  • Что быстрее C++ или Java (вывод строк в консоль)?

    angry_cellophane
    @angry_cellophane
    Ребята, я вам покушать принёс. Открываем специальную олимпиаду.
    :~/src/cpp_time_test$ cat /proc/cpuinfo 
    processor	: 0
    vendor_id	: GenuineIntel
    cpu family	: 6
    model		: 23
    model name	: Intel(R) Core(TM)2 Duo CPU     T6600  @ 2.20GHz
    stepping	: 10
    microcode	: 0xa07
    cpu MHz		: 1200.000
    cache size	: 2048 KB
    physical id	: 0
    siblings	: 2
    core id		: 0
    cpu cores	: 2
    apicid		: 0
    initial apicid	: 0
    fdiv_bug	: no
    hlt_bug		: no
    f00f_bug	: no
    coma_bug	: no
    fpu		: yes
    fpu_exception	: yes
    cpuid level	: 13
    wp		: yes
    flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm dtherm
    bogomips	: 4389.29
    clflush size	: 64
    cache_alignment	: 64
    address sizes	: 36 bits physical, 48 bits virtual
    power management:
    
    processor	: 1
    vendor_id	: GenuineIntel
    cpu family	: 6
    model		: 23
    model name	: Intel(R) Core(TM)2 Duo CPU     T6600  @ 2.20GHz
    stepping	: 10
    microcode	: 0xa07
    cpu MHz		: 1200.000
    cache size	: 2048 KB
    physical id	: 0
    siblings	: 2
    core id		: 1
    cpu cores	: 2
    apicid		: 1
    initial apicid	: 1
    fdiv_bug	: no
    hlt_bug		: no
    f00f_bug	: no
    coma_bug	: no
    fpu		: yes
    fpu_exception	: yes
    cpuid level	: 13
    wp		: yes
    flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm dtherm
    bogomips	: 4389.29
    clflush size	: 64
    cache_alignment	: 64
    address sizes	: 36 bits physical, 48 bits virtual
    power management:

    :~/src/cpp_time_test$ lsb_release -a
    No LSB modules are available.
    Distributor ID:	Ubuntu
    Description:	Ubuntu 13.04
    Release:	13.04
    Codename:	raring

    ~/src/cpp_time_test$ java -version
    java version "1.7.0_51"
    Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
    Java HotSpot(TM) Server VM (build 24.51-b03, mixed mode)
    ~/src/cpp_time_test$ g++ --version
    g++ (Ubuntu/Linaro 4.7.3-1ubuntu1) 4.7.3

    Замеры проводились всего по паре раз, ибо лень, так что присутствует некоторая погрешность. Прошу простить и понять.
    Java:
    time java Main
    real   5m38.489s
    user   0m30.184s
    sys   0m56.864s

    C++
    int main() {
    
        for (int i = 0; i < 10000000; i++) {
    
            printf("Number = %i \n", i);
        }
    
        return 0;
    }

    g++ -O2 origin_main.cpp -o origin_main.o
    time ./orinig_main.o
    real   5m54.260s
    user   0m7.700s
    sys   0m36.768s

    Надеваем мокасины скорости:
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
      for (int i=0; i < 10000000; i++)
        {
          cout<<"Number = "<< i << '\n';
        }
      return 0;
    }

    g++ -O2 main.cpp -o main.o
    time ./main.o
    real   5m35.629s
    user   0m8.424s
    sys   0m37.408s

    Пробуем магию:
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
      static char buffer[1024*1024*4] ;
      std::cout.rdbuf()->pubsetbuf( buffer, sizeof(buffer) ) ;
      ios_base::sync_with_stdio(false);
      for (int i=0; i < 10000000; i++)
        {
          cout<<"Number = "<< i << '\n';
        }
      return 0;
    }

    g++ -O2 main.cpp -o main.o
    time ./main.o
    real   5m35.555s
    user   0m3.568s
    sys   0m22.688

    Добавим в топку Java печки дровишек:
    public class Main {
        public static void main(String[] args) throws IOException {
            try (BufferedOutputStream bos = new BufferedOutputStream(System.out, 2 << 22)) {
                try (PrintWriter pr = new PrintWriter(bos, false)) {
                    int i = 0;
                    for (int j = 0; j < 10_000; j++) {
                        for (int k = 0; k < 1000; k++) {
                            pr.write("Number = " + i++ + '\n');
                        }
                        pr.flush();
                    }
                }
            }
        }
    }

    time java -XX:LoopUnrollLimit=42000000 -XX:+AggressiveOpts -Xmx512m -Xms256m  -XX:+OptimizeStringConcat -XX:CompileThreshold=200 Main
    real   5m35.963s
    user   0m4.408s
    sys   0m23.456

    На этом и остановимся, так как это может продолжаться бесконечно.
    Вывод: искусственный тест не показатель, и все сложно.
    Самый главный вывод: не пристало воспитанному джентельмену мериться скоростью, размером и количеством.
    Ответ написан
    Комментировать
  • Как передавать объекты с сервера в JSP?

    @vQFd4
    Если требуется, чтобы жизненным циклом объектов управлял контейнер надо использовать директиву
    <jsp:useBean id="bean's name" scope="bean's scope" typeSpec/>

    детали тут
    Однако, никто не мешает в скриплете внутри jsp страницы создать нужные объекты и вывести значения их атрибутов/методов в поток вывода сервлета(jsp страницы), хотя в общем случае так делать не желательно.

    В данном случае я бы рекомендовал создать отдельный класс для доступа к Вашим объектам, скажем UserDAO, который бы получал данные из БД и создавал экземпляры Вашего класса User. В самом тривиальном случае UserDAO будет содержать единственный методо, скажем, list, который возвращает список всех объектов для которых есть соответствующие записи в БД, что-то типа
    /**
         * 
         * @return Список объектов User данные для которых имеются в БД
         */
        public List<User> list()
        {
            List<User> result = new ArrayList<User>();
    
            try  // <-- вообще так делать не очень хорошо, но тут я просто избавил себя от лишней писанины
            {
                /*
                 * Структуру Вашей БД я не знаю, поэтому 
                 * тупо выбираю значения колонок id и nickname
                 * из таблицы tbl_user.
                 * Если у Вас все организовано иначе, вставте свой SQL запрос.
                 */
                PreparedStatement statement = connection.prepareStatement(
                        "select id, nickname from tbl_user");
    
                ResultSet r_set = statement.executeQuery();
    
                /*
                 * Бежим по результирующей выборке и инициализируем объекты типа User,
                 * попутно добавляя их в список.
                 */
                while (r_set.next())
                {
                    // предполагается, что у User имеется соответствующий конструктор
                    User p = new User(r_set.getString("id"), r_set.getString("nickname"));
                    result.add(p);
                }
    
            } catch (Exception e)
            {
                e.printStackTrace();
            }
    
            return result;
        }

    И дальше использовать UserDAO как бин (смотри директиву jsp:useBean) на нужных страницах, а в скриплете в нужном месте страницы вызвать у бина объявленный выше метод list и на основе его значения, например, в цикле построить табличку или еще что-нибудь полезное сделать.

    Хороший пример, как вообще делать приложения на jsp + serlet можно посмотреть здесь
    Ответ написан
    4 комментария
  • Существуют ли "dev tools" позволяющий писать код на JavaScript с помощью синтаксиса, скажем "Php", — какие предпроцессоры есть кроме Coffeescript?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    Зачем один говно язык конвертировать в другой не менее прекрасный?
    какие предпроцессоры есть кроме Coffeescript?

    https://maxtaco.github.io/coffee-script/
    https://www.dartlang.org/
    www.typescriptlang.org
    haxe.org
    Ответ написан
    Комментировать
  • Какая разница между jquery 1.11.1 и 2.1.1?

    VEG
    @VEG
    В версии 1.11 поддерживают совместимость с IE6-8. В версиях 2.* от поддержки старых IE отказались. По функциям они одинаковые, просто версия 2.* немного легче из-за вырезанного кода.
    Ответ написан
    3 комментария
  • Почему while только тогда, когда нет нужды во втором итеративном свойстве?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Вы любите спотыкаться?

    Современные программные продукты настолько сложны, что написать их в одиночку практически нереально — за время написания релизятся конкуренты и труд нескольких месяцев, если не лет, летит в трубу.
    Поэтому кодят в команде.
    А в команде, как в любом коллективе, твоя свобода кончается там, где начинается свобода соседа. Поэтому надо сосуществовать и вырабатывать общие правила поведения. Например, стайлгайды для кода и паттерны проектирования.

    Конечно, ничего особо плохого в том, чтобы обходить массив по while, нету. Но так не делают (хотя бы потому, что в for(;;) не надо вручную менять счетчик). А раз так не делают, ваши коллеги каждый раз взглядом спотыкаются об этот кусок.
    Ответ написан
    Комментировать