Задать вопрос
  • Откуда geo-ip SaaS берут свои данные?

    latteo
    @latteo
    2) Провайдер укртелеком - по IP адресу можно точно определить только то, что это Украина. Один и тот же IP может быть выдан хоть Киеву, хоть Одессе (разница 500км) и такая смена происходит после вкл/выкл модема, грубо говоря раз в сутки.

    При этом HTML5 Geolocation очень часто показывает с точностью до дома, если нужна точность лучше пользуйтесь последним.

    PS: подменить можно оба.
    Ответ написан
    Комментировать
  • Какая best practice защиты от записи в файл в несколько потоков?

    latteo
    @latteo
    Записать в файл с уникальным именем потом собирать в один.
    Я microtime(true) при запуске скрипта запоминаю и формирую из него имя файла. Есть нативная uniqid(). При записи проверка, что файл не существует, пересечения на 100 потоков бывают очень редко. Но у вас может быть и иначе, в зависимости от времени работы каждого потока и их количества.
    По сути это медленный аналог очереди в памяти, но зато могу быть уверенным, что на диске информация точно осталась.
    Ответ написан
    Комментировать
  • Какой программой импортировать большую БД?

    latteo
    @latteo
    Navicat Очень хорошая программа для работы с БД и дампа/синхронизации небольших баз.
    А вот пару гигабайт у меня ни разу не потянула. Вываливается с ошибками разной степени тяжести и приходится всё заново начинать. Хотя в v11+ такое заметно реже чем на 8 и 9 версиях.

    Sypex Dumper, phpmyadmin и прочие php-скрипты - не смотря на их описание несколько гигов не тянут. Дампят часть базы.

    HeidiSQL и прочие раскрученные Open source не потянули даже несколько сотен метров дампа - зависают или падают

    mysqldump - единственный адекватный, который быстрее всех и без ошибок перемолол огромный дамп на несколько гигов
    Ответ написан
    1 комментарий
  • Посредством чего блокирует сайт мой провайдер?

    latteo
    @latteo
    tracert посмотрите, скорее всего whois для последних хопов покажет, что они принадлежат вашему провайдеру.
    Ну и нам покажите, мне было бы интересно глянуть.

    PS: с точки зрения провайдера, это большое свинство, поскольку на заглушке они могут собирать ваши куки и некоторые другие приватные данные.
    Ответ написан
  • Скрипт, выполняемый на 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 комментария
  • Если я покупаю домен у парковки он принадлежит мне или речь идет об аренде?

    latteo
    @latteo
    Этот домен кто-то уже выкупил и теперь это по сути как вещь на барахолке. Подробнее можно узнать погуглив киберсквотинг.
    За 300$ вы покупаете трансфер кей, далее вы этот домен добавляете в панельку своего регистратора и продлеваете по правилам регистратора. Либо в другой схеме вы регистрируетесь у того же регистратора и передача осуществляется из кабинета одного клиента в кабинет другого.
    Стоимость продления из года в год меняется (по чуть-чуть дорожает), можно продлить сразу на 9 лет и не волноваться.
    Хорошая цена на продление .com - 10$, средняя - 15$
    Если во время не продлили то через, примерно 40 дней, домен будет доступен для регистрации любым желающим.
    Ответ написан
    Комментировать
  • Почему такая разница во времени запроса MySql?

    latteo
    @latteo
    То что индекс есть не значит, что он работает ;) Смотри explain.
    Если это под нагрузкой, таблица или строка может быть в локе по разным причинам, когда большое время выборки.
    Попробуй SELECT SQL_NO_CACHE * для проверки, что быстрый результат это не из кеша.
    Ответ написан
    Комментировать
  • Как закрыть сайт для ботов?

    latteo
    @latteo
    он не скролит страницу и не двигает мышку

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

    Можно дополнительно проанализировать IP из бан-листа и попытаться выявить закономерности. Например, они все могут быть в диапазонах хостеров, т.е. это явно прокси и весь диапазон можно вносить в бан-лист.
    Ответ написан
    Комментировать
  • Работает ли холодный обзвон?

    latteo
    @latteo
    Был в фирме, где ставили эксперимент и пробовали найти таким методом клиентов.
    Наняли хорошего продажника (убалтавыет только так), выхлоп несколько заказов с сотни звонков.
    Больше 100$ за сайт очень сложно пробить. Т.е. для нормальной окупаемости надо конвеером клепать.
    Ответ написан
    Комментировать
  • Как сделать умный фильтр текста по смыслу?

    latteo
    @latteo
    Его и по телефону не всегда отличишь, если агент косит под собственника.

    Для ручной фильтрации использую:
    - анализ телефона, как правило у агенств множество квартир. А у собственника 90% одна объява, 10% могут быть объявления 2-3 квартир + могут попадаться объявы по продаже мелких вещей.
    - анализ картинки: агенствам лень заморачиваться и картинки могут идти на несколько объяв, но увы парсить гугл это долго.
    - общий фон текста + интуиция. Вот тут машина пока бессильна, хотя можете попробовать анализом нескольких тысяч текстов выявить закономерности через сервисы типа https://habrahabr.ru/post/243705/

    PS: в современном мире агенства - это зло в виде лишнего посредника с огромными запросами и минимальной функцией свести 2х людей без малейших проверок кто эти люди.
    Ответ написан
    1 комментарий
  • Почему в Вконтакте файлы GIF на выходе в плеере получаются mp4, а в документах на диск сохраняются в GIF?

    latteo
    @latteo
    Ищите плагины под облачные сервисы cloudinary.com/blog/reduce_size_of_animated_gifs_a...

    На большинстве хостингов и слабеньких впс, вы не сможете преобразовывать большие GIF в mp4 из-за лимитов.
    Ответ написан
    6 комментариев
  • Какой стек технологий выбрать для приложения в трее под разные настольные ОС?

    latteo
    @latteo
    Задаюсь похожим вопросом.
    Думал для такого использовать NW.js или Electron, причем кого-то из них даже умудрились подружить с php.
    Есть причины по которым не стоит использовать эти технологии?
    Ответ написан
  • Ошибка "слишком много переадресаций". Как отключить лимит переадресаций браузера?

    latteo
    @latteo
    Используйте редирект в браузере:
    meta тег в head
    <meta http-equiv="refresh" content="seconds;URL-to-redirect">

    https://www.w3.org/TR/WCAG20-TECHS/H76.html

    или js
    www.w3schools.com/js/js_window_location.asp

    А лучше всего запустите php скрипт через консоль, у меня так парсеры неделями работают и стопаются только из-за необходимости ОС перезагружать
    Ответ написан
    Комментировать
  • Переход проекта на Yii + angular, как аргументировать?

    latteo
    @latteo
    Вот здесь хорошая статья - https://habrahabr.ru/post/307282/
    Один из лучших подходов, медленный рефакторинг. При разбиении на 2 команды, есть риск застрять на много лет с выпуском новой версии.

    Если в index.php использовать только, без вызова ->run():
    $application = new yii\web\Application($config);
    То Yii2 вполне можно использовать для ускорения разработки, как набор библиотек. Переписать на него ядро текущего проекта, а потом и начать переключать отдельные части. Хотя могут быть конфикты, если у вас не используются namespace.
    Так же можно использовать для переписывания части функционала в стиле микросервисов.
    Ответ написан
    Комментировать
  • Почему фоновые программы дублируются?

    latteo
    @latteo
    Попробуй sysinternals Process Explorer https://technet.microsoft.com/ru-ru/sysinternals/p... там более наглядно, кто кого запустил:
    2016-10-20_00-18_dxtyax.jpg
    Ответ написан
  • Как найти в массиве переменную только с цифрами?

    latteo
    @latteo
    foreach для перебора
    is_numeric для определения - php.net/manual/ru/function.is-numeric.php
    Если формат is_numeric не подходит, то используем регулярки:
    if(preg_match('/^\d+$/', "10100111001")){}
    Ответ написан
    Комментировать
  • Какие могут быть проблемы с железом при расширении?

    latteo
    @latteo
    Запусти на компе разработчика максимально возможное количество воркеров и посмотри нагрузку.
    Если есть подозрение, что сайт тоже будет много потреблять, запускай параллельно ab/siege.
    Примерно прикинь разницу с сервером и будет понятно, что к чему.
    Возьми тестовый впс у хостера, если это возможно, и проверь на нём.
    Это единственный адекватный вариант оценки.

    PS: У меня были воркеры, которые в 20 потоков тормозили core i3 + ssd, до полной невозможности работы на этой машине. А были и такие, которым 100 потоков нипочём - нагрузки почти не видно.
    Ответ написан
    Комментировать
  • Как в phpStorm свернуть код только на определенном уровне?

    latteo
    @latteo
    Возник такой же вопрос ;)

    Сейчас это сделать можно, но не очень удобно:
    https://www.jetbrains.com/help/phpstorm/10.0/foldi...
    пункт "Expand to level"
    Через Settings > Keymap > поиск по "Expand" настройки можно изменить
    Ответ написан
    Комментировать
  • Ситуация на рынке труда?

    latteo
    @latteo
    Нормально относятся. Видел в разных компаниях и постарше джунов и успешно растут в сторону мидлов.
    На хабре были статьи про программистов глубоко пенсионного возраста.

    Возраст в разработке имеет не самое главное значение.
    Ответ написан
    Комментировать
  • Как защитить свою верстку от рипа?

    latteo
    @latteo
    teamviewer, виртуалки и прочие софт защиты обходятся интересным способом - делаются скриншот и потом за 15-30$ находится джун, который делает вёрстку по скриншотам (периодически вижу такие заказы). Как я понимаю эта сумма, значительно меньше стоимости работы. Хотя если заказ чисто на вёрстку это может быть и неактуально.

    Поэтапная оплата или предоплата один из лучших вариантов, хотя и на эту тему читал блеки: оплату отзывали, кидали запрос в арбиртаж о невыполнении работ и т.п.

    Так что если хотят кинуть - кинут.
    Ответ написан
    Комментировать