• Скрипт, выполняемый на JavaScript за секунду, на PHP за 30 секунд проходит только 20%. В чём причина?

    latteo
    @latteo
    php можно ускорить в 2-3 раза, если сделать выход из циклов в последнем условии:
    if( 100*$d+10*$g+$j + 100*$j+10*$a+$e + 100*$b+10*$h+$f == 1000*$d+100*$d+10*$a+$b && $f*$c/$j == 10*$g+$a) {
                echo " a=",$a, " b=",$b, " c=",$c, " d=",$d, " e=",$e, " f=",$f, " g=",$g, " h=",$h, " j=",$j;
                break 9;
              }


    Ради фана переписал 2й алгоритм на Go
    package main
    
    import "fmt"
    import "time"
    
    func main() {
        st :=  time.Now().UnixNano()
        top:
        for a := 1; a<10; a++ {
          for b := 1; b<10; b++ {
            if b == a { continue; } else {
              for c := 1; c<10; c++ {
                if c==b || c==a { continue; } else {
                  for d := 1; d<10; d++ {
                    if  d==c || d==b || d==a { continue; } else {
                      for e := 1; e<10; e++ {
                        if e==d || e==c || e==b || e==a { continue; } else {
                          for f := 1; f<10; f++ {
                            if f==e || f==d || f==c || f==b || f==a { continue; } else {
                              for g := 1; g<10; g++ {
                                if g==f || g==e || g==d || g==c || g==b || g==a { continue; } else {
                                  for h := 1; h<10; h++ {
                                    if h==g || h==f || h==e || h==d || h==c || h==b || h==a { continue; } else {
                                      for j := 1; j<10; j++ {
                                        if j==h || j==g || j==f || j==e || j==d || j==c || j==b || j==a { continue; } else {
                                          if 100*d+10*g+j + 100*j+10*a+e + 100*b+10*h+f == 1000*d+100*d+10*a+b && f*c/j == 10*g+a {
                                            fmt.Println(" a=", a, " b=", b, " c=", c, " d=", d, " e=", e, " f=", f, " g=", g, " h=", h, " j=", j)
                                            break top
                                          }}}}}}}}}}}}}}}}}}
                    
        elapsed := time.Now().UnixNano()
        delta := ( float64(elapsed) - float64(st) )/ 1e6
        fmt.Println("Время выполнения (ms): ", delta)
    }


    Ну и JS тоже разжился break`ом и профилированием
    var time = performance.now();
    // некий код
    time = performance.now() - time;
    console.log('Время выполнения (ms): ', time);

    по времени в 2 раза медленне GO

    Лучшие результаты на моей машине:
    php - 600мс
    js - 40мс
    go - 20мс
    Ответ написан
    3 комментария
  • Что такое core.autocrlf и core.safecrlf?

    @Holfamer Автор вопроса
    Настройка core.autocrlf с параметрами "true" и "input" делает все переводы строк текстовых файлов в главном репозитории одинаковы.
    core.autocrlf true - git автоматически конвертирует CRLF->LF при коммите и обратно LF->CRLF при выгрузке кода из репозитория на файловую систему (используют в Windows).
    core.autocrlf input - конвертация CRLF в LF только при коммитах (используют в Mac/Linux).

    Если core.safecrlf установлен на "true" или "warm", Git проверяет, если преобразование является обратимым для текущей настройки core.autocrlf.
    core.safecrlf true - отвержение необратимого преобразования lf<->crlf. Полезно, когда специфические бинарники похожие на текстовые файлы.
    core.safecrlf warn - печать только предупреждение, но принимает необратимый переход.

    Более полная инфа:
    core.autocrlf
    core.safecrlf
    Ответ написан
    Комментировать
  • Как переучить Web-тестировщика в IOs-тестировщика?

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

    Первое осваивается за неделю просмотром базового курса разработки на какой-нибудь курсере.
    Второе - осваивается преимущественно за счет опыта. Базовые вещи легко ищутся в гугле, как например:
    qatestingtraining.com/mobile-application-testing-o...
    www.softwaretestinghelp.com/beginners-guide-to-mob...
    www.mobileqazone.com/video/video

    В общем дайте товарищу почитать литературу по архитектуре платформы (на базовом уровне, что бы понимал, как что работает).
    Дальше по "азам" тестирования (что бы выделил новые типы событий и тестов, которые надо учитывать).
    А дальше в бой.
    Ответ написан
    Комментировать
  • Что случилось с разработкой php-apc?

    EugeneOZ
    @EugeneOZ
    Нет смысла разрабатывать сегодня то, что не будет использовано завтра.
    Ответ написан
    4 комментария
  • Почему разработчики так безаппеляционно утверждают, что один фронт-контроллер лучше?

    Anonym
    @Anonym
    Программирую немного )
    С одной точкой входа можно не париться по поводу маршрутизации вообще. Вы добавляете новый маршрут в конфиг и заворачиваете его на нужный контроллер. Всё. При грамотной автозагрузке, вам не надо заморачиваться по поводу того, какие классы нужны для этого конкретного контроллера. Когда количество маршрутов приближается к сотне, начинаешь понимать, что так значительно проще.
    Ответ написан
    Комментировать
  • Ужасные шрифты в браузере

    @ZeroBit Автор вопроса
    Понял, что проблема заключалась в настройках локального пользователя, т.к. под вновь созданным пользователем шрифты были нормальными. Удалил папку ~/.config в текущем пользователе. Шрифты стали нормальными.
    Ответ написан
    Комментировать
  • Метод загрузки фотографий в Instagram

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    Посмотрите, что делает instagraph. Он не подвержен замене API и смене ключей шифрования. Они делают хитро. Вы фоткаете (через что угодно, как угодно). Фотка заливается на их сервер с вашим логином и паролем. А с сервера они уже заливают вашу фотку через поддерживаемое устройство, или как-то так. В общем, раз API никогда не видать, то вот такенные костыли только лишь.
    Ответ написан
    2 комментария
  • Как в php вывести заголовок mssql таблицы

    Про уточнение:
    Вы упорно не хотите глянуть справку пхп. Я приводил в пример функцию mssql_field_name, и, о чудо, есть функция по функционалу один к одному и с названием… барабанная дробь… odbc_field_name которая так же по результату запроса к БД возвращает имена колонок.

    Извините конечно, но вам пора бы уже начать бороться с собственной ленью.
    Ответ написан
    1 комментарий
  • Php. Как проверить файл mp3 на валидность?

    Dzuba
    @Dzuba
    Если есть возможность установки расширений PHP на сервер, то, дабы не изобретать велосипед, я бы рекомендовал PECL-расширение id3: php.net.
    Мне кажется, это будет менее ресурсоемко и более скорострельно, нежели какие-либо классы, написанные на PHP.

    Проверять, на мой взгляд, проще всего так:
    $version = id3_get_version($filename);
    if (!$version)
        die('Не аудиофайл!');
    Ответ написан
    1 комментарий
  • Php. Как проверить файл mp3 на валидность?

    RuslanCC
    @RuslanCC
    Воспользуйтесь любым классом для работы с MP3 и проверьте битрейт, длительность и т.д. Если все корректно — значит это настоящий MP3.
    Вот, например, один из классов — www.zend.com//code/codex.php?ozid=160&single=1
    Ответ написан
    4 комментария
  • Генерация уникального ID

    BoShurik
    @BoShurik
    Symfony developer
    Я использую это:
    base_convert(sha1(uniqid(mt_rand(), true)), 16, 36);
    
    Ответ написан
    4 комментария
  • Как эффективно переучиться на веб-разработчика?

    @egorinsk
    Вообще, не увлекайтесь спецификациями. Марк Цукерберг как-то без них обошелся. Google тоже не следует строгим стандартам.

    Если вы хотите «эффективно» изучить матеиал, тогда вы должны читать статьи «для чайников» (которые вы с вашим опытом, наверняка освоите за кратчайшее время). HTML/CSS так устроены, что даже если вы сделаете 100 ошибок на странице, он все равно как-нибудь да отобразится. Ну если вы хотите более солидные знания, то параллельно смотрите непонятные моменты в спецификациях, это в общем-то полезно. А сэкономленное время посвятите практике. Она тут очень важна.

    Вот, что стоит изучить (в любом порядке):

    1) Начните с основ HTTP (только ради бога, не читайте спецификацию целиком, хватит общего представления о методах запросов, заголовках и теле запроса, кодах ответа 403/404/500/200/300)
    2) Изучите основы HTML (есть раздел на сайте htmlbook). SGML вам хватит в том объеме, в котором он упоминается в спецификации HTML. PCDATA не упоминается в ней и потому знать про отличия от CDATA вам не нужно (ну если так хотите узнать, найдите спецификацию SGML и почитайте).

    Обратите внимание, в некоторых (некачественных) статьях вы можете увидеть штуки вроде [br /] — самозакрывающиеся теги. Это ошибочный синтаксис, который употребляют авторы, путающие HTML и XHTML. В HTML такого синтаксиса нет (хотя в силу своей толерантности к ошибкам в HTML такой код как-то работает).

    3) Изучите CSS и позиционирование элементов. Вот хороший учебник, разъясняющий тонкости всяких флоатов: softwaremaniacs.org/blog/category/primer/ А спецификацию CSS2.1, думаю, вы нагуглите сами, она довольно понятно написана.

    4) Изучите яваскрипт (да, включая замыкания и прототипы) и DOM. Обратите внимание, jQuery — лишь обертка над DOM и не зная DOM, вы не сможете нормально пользоваться jQuery, вы лишь научитесь копипастить скрипты из интернета, не понимая, как они работают. После этого можете изучать jQuery, заодно советую заглянуть в исходный код, а не только читать документацию.

    5) Изучите один из серверных языков, хотя бы основы

    6) Изучите основы SQL

    7) Начинайте что-нибудь делать, так как в этот момент у вас будет очень много теоретических знаний и очень мало практических. Можете сделать простое веб-приложение, можете улучшить какое-нибудь существующее.

    8) Изучите ООП

    9) Изучите какой-нибудь серверный MVC-фреймворк

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

    > А есть ещё и XHTML, который тоже имеет свои отличия…

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

    > Клиентская разработка нынче редко обходится без всяких шаблонизаторов типа HAML/SASS

    Вы еще Coffescript забыли упомянуть. Это очень спорные вещи, есть мнения как за, так и против. Но в любом случае, согласитесь, как-то странно изучать SASS, не изучив вначале CSS, верно? Начинающему это не нужно.

    > а для эффективной серверной разработки всё и того сложнее: фреймворки, ORM, continuous integration, очереди задач и прочая-прочая.

    Для приложения из 3 страниц все это не нужно. Сложные технологии нужны в больших и огромных проектах, начинать можно и без них. И более того, не имея определенного опыта работы с кодом, вы вряд ли поймете, зачем это нужно. А когда понадобятся, тогда и изучите.

    По вопросу, где брать информацию: авторитетные источники (для поиска ответа во всех подробностях) — это спецификации W3C, официальная документация фреймворков, неофициальные источники вроде htmlbook, stackoverflow или Хабра — для того, чтобы быстро получить представление о тех или иных возможностях HTML. Еще можете какую-нибудь книгу почитать, только не старую.
    Ответ написан
    5 комментариев
  • Сетевой диск через интернет Debian 6 => Windows 8: возможно ли, и как?

    FilimoniC
    @FilimoniC
    В зависимости от КАЧЕСТВА канала вы можете использовать iscsi (при этом доступ монопольный). Диск будет видеться как обычный HDD, с кешированием, блекджеком и т.д.

    Варианты для «дома» с разными степенями сложности настройки, использования и возможностей
    — консольный DropBox на сервере
    — FTP
    — WebDAV
    — WebDAV средствами эмулятора (например, сервер WebDAV на PHP, у ownCloud такой есть)
    — SAMBA (CIFS)
    — SFTP (FTP over SSH)
    — NFS (насколько его поддерживает Win8 — хз, скорее всего только PRO редакция, и то не факт)
    — RSync

    Ваше ТЗ слишком маленькое чтобы определить потребности
    Ответ написан
    Комментировать
  • Сетевой диск через интернет Debian 6 => Windows 8: возможно ли, и как?

    @rPman
    У меня помню не было проблем с подключением из под Win7 к другой WinXP напрямую по IP адресу (фаервол был правильно настроен или отключен) net use \\ip\share /user: пользователь_win пароль

    Это значит поднять на сервере samba, настроить ограничения доступа на IP адрес (нечего в интернет напрямую светить SMB) и вдруг повезет и Windows 8 позволит так подключиться.
    Ответ написан
    3 комментария
  • Не могу залогиниться по ssh и выполнить команду из php

    Melkij
    @Melkij
    PostgreSQL DBA
    А вы уверены, что php от юзера nginx выполняется?

    PS: может, не php-ftp, а fpm?
    Ответ написан
    6 комментариев
  • Как можно узнать виртуальные веб-серверы хостящиеся на данном IP?

    stan_jeremy
    @stan_jeremy
    Сервисы гуглятся по запросу «reverse ip lookup»

    Самый крутой, но платный — www.domaintools.com, с собственным апи и тд

    Из более менее порядочных, бесплатных — yougetsignal.com, но намного хуже чем у вышеописанного
    Ответ написан
    2 комментария