Задать вопрос
  • По каким правилам пересчитали рейтинг на данном ресурсе?

    karaboz
    @karaboz
    Директор продуктов в Хабре.
    22 октября 2014 года мы запустили «Тостер» в новом дизайне. Помимо всего прочего, с сервиса был убран раздел /tmp, выполнявший на период бета-версии сервиса функцию временного хранилища удаляемых вопросов (вопросы вообщне нельзя было удалять, а можно было только переносить в /tmp).

    При этом влияние вопросов из раздела /tmp и ответов на них на рейтинг пользователя было точно таким же, как и нормальных вопросов с ответами. После удаления раздела /tmp вместе с ним были уже окончательно удалены и многие вопросы с ответами. Они перестали влиять на рейтинг, и у многих пользователей он «просел».
    Ответ написан
    1 комментарий
  • Билайн что-то шаманит с IP гугла или я параноик?

    @SergeyKochergan
    Ответ написан
    Комментировать
  • Взломан skype. Как это случилось?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    Как то в 2003г. я жил с девушкой. Мы оба были геймерами. Ну я естественно тогда начинал свой путь программирования.
    Был у меня сайтик на обычном хостинге. По тем временам, код был сильно защищен. В один из прекрасных дней я увидел в логах необычное поведение. Прошерстил код, нашел спамбота.
    Конечно все почистил и т.д.

    Но мне стало интересно как и вам, кто и как меня взломал. Своими скромными силами я не смог определить.
    В итоге создал в корне сайта файлик forHacker.txt
    В нем задал вопрос - собственно как вы меня хакнули?
    на следующий день в аську стучится человек, я спрашиваю
    - Мол чего вам надобно? - в ответ
    - Товарищ Иван, вы же сами просили меня вам рассказать как я вас хакнул
    - Спасибо что откликнулись, просветите плз
    - Ваша девушка Света была не аккуратна, скачала мой файлик. В связи с чем я смог получить доступ к ее компу. Далее по локальной сети обнаружил доступ к вашему. Подсадил кейлогер и просто подождал ввода пароля.
    ....
    Всего вам хорошего и удачи. Ваш сайт оставляю в покое =)

    Это примерный наш разговор.
    Так что способов получения ваших данных велик )
    Ответ написан
    Комментировать
  • Как убрать ошибку при установке django-disqus?

    @FireGM
    Библиотека для питона 2.7
    А вы ставите на 3.4
    UPD:
    Я вот так вставляю в страницу комментарии
    <div id="disqus_thread"></div>
            <script type="text/javascript">
                /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
                var disqus_shortname = 'shortname'; // здесь пишем общее имя сайта или форума
                var disqus_identifier = '{{ news.title }}{{news.id }}'; //здесь создаем уникальный индификатор, что б для каждой новости были свои комментарии. Я создал из названии новости и её id
                var disqus_title = '{{ news.title }}'; Не имею понятия что это такое, но так работает.
                /* * * DON'T EDIT BELOW THIS LINE * * */
                (function () {
                    var dsq = document.createElement('script');
                    dsq.type = 'text/javascript';
                    dsq.async = true;
                    dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
                    (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
                })();
            </script>
    Ответ написан
    5 комментариев
  • Odesk. Как правильно зарегистрировать команду разработчиков ?

    buttersmai
    @buttersmai
    Все сидят в офисе и нужен один аккаунт.
    - мягко скажем, с одним аккаунтом на всех вас забанят(по идее). Вообще, на одеске два варианта: individual либо agency.
    Агентство - как раз то, что вам нужно. Вообще, на одеске практикуется почасовая оплата и в случае нескольких программеров.

    Вообще, все неплохо написано в документации. Сам исследовал тему, но пока не дошел до создания.
    Ответ написан
    4 комментария
  • Django makemessges как игнорировать не нужные директории?

    desperadik
    @desperadik Автор вопроса
    Истина где-то рядом.
    пффф...
    в самом же makemessages.py написан ответ вопрос

    ./manage.py makemessages -i "dirname"
    Ответ написан
    Комментировать
  • Почему не работают миграции в django?

    desperadik
    @desperadik
    Истина где-то рядом.
    п.с. Если человек делает "makemigrations" значит у него Django=>1.7
    Согласен с RGV, подключитесь к БД и посмотрите созданы ли таблицы с префиксом shop_, есть ли запись о проведенной миграции в таблице django_migrations.
    Ответ написан
    Комментировать
  • Почему не работают миграции в django?

    Вероятно, миграция уже прошла. Модели точно не созданы в бд?
    В базе должна быть таблица, называемая django_migrations (точно migrations в названии есть). Там отмечаются все миграции, которые были приняты в этой базе. Проверь, не принята ли она уже?
    Ответ написан
    2 комментария
  • Как корректно построить выбор сравнением в Python?

    mututunus
    @mututunus
    Backend developer (Python, Golang)
    l = [a,b,c]
    l.sort()
    print('Max:', l[2])
    print('Min:', l[0])
    print('Other:', l[1])
    Ответ написан
    3 комментария
  • Какие последствия могут быть, если использовать нелицензионное ПО на ODESK?

    opium
    @opium
    Просто люблю качественно работать
    Есть заказчики, которые требуют легальность по, весь мелкий бизнес не заморачивается.
    По сути это сугубо ваши проблемы , одеск не регламентирует это, это регламентируют закону уголовного кодекса.
    Ответ написан
    Комментировать
  • Как правильно организовать DRY архитектуру для REST back-end'a?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Я как-то эксперементировал с наследованием контроллеров и пришел к выводу что если у вас есть дублирование кода в контроллере, которое красиво решается наследованием... значит что-то пошло не так и это дело надо вынести в сервисы.

    Далее имеет смысл воспользоваться UI-Router что бы разделить скрины на отдельные состояния. Общие вещи можно так выносить в базовые состояния и добиться большей гибкости...

    Так же я делаю ресолвы как-то так:
    $stateProvider.state({
        resolve: {
           list: function (service) {
                return service.list();
           }
        },
        controller: function (list) {
           this.list = list;
        }
    });


    При разделении на отдельные состояния с какой-то иерархией дочерние состояния могут использовать ресолвы родителей... наследоваться и переопределять контроллеры и т.д.

    Как-то сумбурно... и мне так же было бы любопытно взглянуть на подходы других людей.
    Ответ написан
    3 комментария
  • Как сравнивать два файла утилитой git diff без учета табов и спайсов?

    $ git config --global core.whitespace \
         trailing-space,space-before-tab,indent-with-non-tab

    Конфигурирование Git
    Ответ написан
    Комментировать
  • Стоит ли использовать FrameWork'и для Go?

    Tyranron
    @Tyranron
    Ну, а Вы попробуйте, или просто на слово поверите? =)
    Придумайте типичное тестовое задание небольшое аля наваять/сделать форму регистрации/входа на сайт с механимом сессий (считай залогинен/незалогинен). Решите эту задачу сначала с помощью фреймворков, а потом только с помощью стандартной библиотеки (или наоборот, не суть).

    Вообще, все зависит от задачи, которую предстоит решить. По моему опыту (небольшие проекты) - на Go легко, удобно и приятно делать минифреймворки/тулкиты под конкретную задачу, если Вас не устраивают существующие решения. Но для чего-то большого, чувствую, что на определенном этапе голый net/http без какой-либо продуманной архитектуры приложения начнет приносить боль.
    Ответ написан
    5 комментариев
  • Как написать социальную сеть?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    fcff8e4102e3475ab440c4a290ea717e.jpg

    PS Ладно, если серьезно: вот например старая статья про VK www.insight-it.ru/masshtabiruemost/arkhitektura-vk...
    PPS Если совсем серьезно - учитесь программированию: php/ruby/python/java - к чему душа больше лежит.
    Не за будьте про SQL и noSQL базы данных. Развивайтесь!
    А для начала начните с чего нибудь попроще, каталог там, лента новостей.
    Ответ написан
    2 комментария
  • Провод vs радио?

    begemot_sun
    @begemot_sun
    Программист в душе.
    Оптика однозначно быстрее. Кстати оптика это не провод. А провод не коаксиал. Так что вы уж определитесь что вам нужно.
    Ответ написан
    Комментировать
  • В какой кодировке шифруется пароль рута в CentOS 6.x?

    Slipeer
    @Slipeer
    Всегда можно посмотреть в настройках.
    cat /etc/login.defs | grep ENCRYPT_METHOD
    По-умолчанию там MD5
    Ответ написан
    Комментировать
  • В какой кодировке шифруется пароль рута в CentOS 6.x?

    @brutal_lobster
    man 5 shadow
    man 3 crypt

    If salt is a character string starting with the characters
    "$id$" followed by a string terminated by "$":

    $id$salt$encrypted

    then instead of using the DES machine, id identifies the
    encryption method used and this then determines how the rest
    of the password string is interpreted. The following values
    of id are supported:

    ID | Method
    ─────────────────────────────────────────────────────────
    1 | MD5
    2a | Blowfish (not in mainline glibc; added in some
    | Linux distributions)
    5 | SHA-256 (since glibc 2.7)
    6 | SHA-512 (since glibc 2.7)

    So $5$salt$encrypted is an SHA-256 encoded password and
    $6$salt$encrypted is an SHA-512 encoded one.
    Ответ написан
    2 комментария
  • Как создать свою модель пользователя в django?

    @bromzh
    Drugs-driven development
    В новой джанге можно кастомизировать модель пользователя.

    Попроси модераторов гугла убрать у тебя бан на поиск.

    UPD
    Сжатый пересказ, при учёте, что ты создаёшь приложение с нуля, а не мигрируешь с созданного приложения с готовой базой и пользователями:

    1. В настройках указываешь путь до твоей модели:
      AUTH_USER_MODEL = 'myapp.MyUser'
    2. Везде в моделях где используется внешний ключ на юзера, прописываешь settings.AUTH_USER_MODEL
      class Article(models.Model):
          author = models.ForeignKey(settings.AUTH_USER_MODEL)

      И тоже делаешь для сигналов:
      def post_save_receiver(signal, sender, instance, **kwargs):
          pass
      
      post_save.connect(post_save_receiver, sender=settings.AUTH_USER_MODEL)

    3. Создаёшь модель пользователя, в которой указываешь поле-идентефикатор (например, это может быть поле name, или поле email, или ещё какое-нибудь другое).
      class MyUser(AbstractBaseUser):
          identifier = models.CharField(max_length=40, unique=True)
          ...
          USERNAME_FIELD = 'identifier'

      В этой же модели прописываешь необходимые для регистрации поля:
      class MyUser(AbstractBaseUser):
          ...
          date_of_birth = models.DateField()
          height = models.FloatField()
          ...
          REQUIRED_FIELDS = ['date_of_birth', 'height']

      Ещё надо переопределить некоторые методы и поля при необходимости (в доках написано какие)
    4. Надо создать кастомный менеджер, создающий пользователя. В нём надо реализовать методы create_user и create_superuser
    5. Надо создать новые формы для твоего пользователя и кастомизировать класс для админки, учитывающий твои новые поля
    6. ???
    7. PROFIT
    Ответ написан
    2 комментария
  • Какое максимально число папок можно создавать в папке?

    @RPG
    А что значит "много файлов лучше не создавать"? Вот полмиллиона файлов в одной папке:
    $ time seq 500000 | xargs touch
    real	0m9.208s
    # echo 3> /proc/sys/vm/drop_caches
    $ time ls -U | wc -l
    500000
    real	0m0.393s
    $ time ls | wc -l
    500000
    real	0m3.149s

    Далее уже только проблемы криворуких разработчиков файловых менеджеров, которые пытаются полмиллиона файлов сразу считать в память, отсортировать и запросить mime-тип для каждого. А файловая система их переваривает спокойно.
    Да, и это на машине из прошлого века. На core i7 будет раза в 2 быстрее.
    Ответ написан
    Комментировать
  • Как скрыть реальные ссылки?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Вариантов это сделать - 2.

    1) Если у Вас файлы маленькие - можно просто читать их из php скрипта и отдавать.
    Перед этим можно проверять имеет ли право текущий пользователь скачивать этот файл.
    Что то вроде
    $content = file_get_contents('/path/to/file/in/private/dir/filename');
    
    	header('Content-Description: File Transfer');
    	header('Content-Type: application/octet-stream');
    	header('Content-Disposition: attachment; filename="'.$file_info->title.'"');
    	header('Content-Transfer-Encoding: binary');
    	header('Expires: 0');
    	header('Cache-Control: must-revalidate');
    	header('Pragma: public');
    	header('Content-Length: ' . strlen($content));
    	echo ($content);

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

    2) Использовать nginx и директиву X-Accel-Redirect.
    В конфиге nginx
    location /protected/ {
    	root /www/mysite.com/;
    	rewrite ^/protected/(.*)$ /$1 break;
    	internal;
      }

    В php коде соответственно
    header('Content-Description: File Transfer');
    	header('Content-Type: application/octet-stream');
    	header('Content-Disposition: attachment; filename="'.$file_info->title.'"');
    	header('Content-Transfer-Encoding: binary');
    	header('Expires: 0');
    	header('Cache-Control: must-revalidate');
    	header('Pragma: public');
    	
    	header('X-Accel-Redirect: /protected'. $file_info->file);


    Решение отличное, быстрое.
    Ответ написан
    Комментировать