Задать вопрос
  • Как ускорить шаблон Django?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    О!!! Нужно сделать свертку объектов!
    from collections import defaultdict
    
    _t_by_o2 = defaultdict(list)
    for t in tt:
       _t_by_o2[t.o].append=t
    
    _o2_by_o1 = defaultdict(list)
    for o2 in o22:
       _o2_by_o1[o2.o1].append=o2

    Теперь в шаблоне можно работать с хешами только по циклу o11 без ифов
    {% for o1 in o11 %}
    <span>{{o1.n}}</span>
    {% for o2 in _o2_by_o1.get(o1,[]) %}
    <span>{{ o2t.n}}</span>
    {% for t in _t_by_o2.get(o2,[]) %}
     <a href="/{{ t.u }}/">{{ t.n }}</a><span>({{ t.c }})</span>
    {% endfor %}
    {% endfor %}
    {% endfor %}

    Как-то так!
    PS. Я вообще не понимаю, зачем такие дикие циклы и чем они обусловлены?! В браузере мы всё равно лимон объектов не отобразим. Значит их всего максимум сотня-другая, а если это так, то что-то не то в консерватории взаимосвязей, или пытаемся делать не там их обработку. Может быть задуматься, почему нам нужно эти объекты связывать при отображении и почему они до сих пор находятся в таком кошмаре?!
    Ответ написан
    1 комментарий
  • Какой производитель DVI шнуров лучше?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Есть несколько типов кабелей и разъемов DVI - DVI-I и DVI-D. Обычно все делают полный DVI-кабель, соответствующий обеим стандартам, а карточки работают обычно по DVI-D (digital). По импедансу они все должны соответствовать стандарту, так что разницы между ними нет, практически никакой.
    Это все также относится к "теплому цифровому звуку", если верите, то покупайте самый дорогой! Если нормальный инженер, то берите дешевый!
    Единственное, что встречал на совсем дешевых разъемах HDMI (прикупили для проекта 500 шт. по 120 руб.) - неглубокий отлив перед железной частью разъема, из-за чего иногда они физически не входили до конца в материнский разъем на некоторых платах. Решалось подрезкой пластика на пару миллиметров ножем для бумаг. Качество "теплого цифрового видео/звука" полностью соответствовало стандарту.
    Ответ написан
  • Как сделать редирект всех сайтов на локальный?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Заменить foo_serverip на внутренний адрес
    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -m conntrack --ctstate NEW -j DNAT --to foo_serverip:80
    iptables -t nat -A PREROUTING -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
    iptables -A POSTROUTING -t nat -j MASQUERADE
    Ответ написан
  • JSF-реальный фрейворк или набор спецификаций?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Jsf стандарт, у которого, как обычно есть куча реализаций.
    richfaces.jboss.org
    https://myfaces.apache.org
    Далее везде
    Ответ написан
    Комментировать
  • Где найти материалы по передаче данных?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    book.itep.ru надеюсь поможет! Кнопочка "index" в самом верху странички, если чо...
    PS. До кучи, кажется то что нужно, иначе там умереть можно book.itep.ru/2/convrs_2.htm
    Ответ написан
    Комментировать
  • В какой момент подключается DNS?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    DNS не подключается, если его на программном уровне не спрашивают. Достаточно IP-адресации. Собственно DNS такой-же как и SSH или HTTP, ничем от них не отличается, разве что бегает по UDP. Соответсвенно это протокол приложения (OSI 7).
    Обычно встроен в стандартную сетевую библиотеку (для удобства) - вызовы GetHostAddresses (мастдай) или gethostbyname (труевей).
    Ответ написан
    Комментировать
  • Совет начинающему программисту. Как следует подходить к приобритению навыка OOP?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Ну, для начала почитать паттерны проектирования, они изначально были следаны для явы, некоторые к питону прямо не относятся (в силу того, что на питоне можно вообще без классов, и можно вообще в стиле функционального программирования), но дают хорошую базу именно в ООП. С другой стороны, если в яве дизайн именно ООП, то на питоне иной раз не хочется и класс заводить, а пишешь в стиле функциональщины.
    Наверное первое что нужно сделать, изучить области видимости и помечтать как они могут пригодиться...
    Ответ написан
    2 комментария
  • Где взять csrf token для lk.megafon.ru?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Так ведь все просто!
    Фома состоит из трех полей
    CSRF - тип hidden, в значении value как раз и лежит то, что вам нужно.
    j_username: тут все понятно
    j_password: тут тоже

    Нужно:
    1) запросить страницу /dologin/ (запрашивать страницу нужно каждый раз при новом логине)
    2) отпарсить html и выбрать значение value из
    3) Отсылаем все ТРИ поля (CSRF, j_username, j_password) на /dologin методом post.
    4) Получаем ответ и смотрим на куки и прочую фигню..

    Отпарсить
    from HTMLParser import HTMLParser
    import urllib2
    req =  urllib2.urlopen("https://lk.megafon.ru/dologin/")
    data = req.read()
    class MyHTMLParser(HTMLParser):
    	def handle_starttag(self, tag, attrs):
    		attr = dict(attrs)
    		if tag == "input" and attr.get('name', "") == "CSRF":
    			print "Encountered a start tag:", tag, attr["name"], attr["value"]
    
    parser = MyHTMLParser()
    parser.feed(data)

    Encountered a start tag: input CSRF 2c8b2246-6e99-4469-924f-2c8086cd2dae
    Ответ написан
    Комментировать
  • Как написать простую CMS на Python?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Ставьте mezzanine и будет вам уже и базовые документы (с wisywig редактором) и бложик и админка (и виджеты в админке) и наследование темплейтов и сами темплейты и маленькая кучка всего типа вордпресса, и инлайн редактирование, даже магазин есть Ну и это джанго приложение со всеми вытекающими. mezzanine.jupo.org
    Как раз сам сейчас думаю его в проекте использовать.
    Ответ написан
    Комментировать
  • За скорость обработки циклов отвечает процессор?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    За скорость обработки циклов отвечает процессор?

    1. Да. Но, если в цикле присутствуют обращения к диску, сети или чему-то внешнему, кроме памяти и самих регистров процессора, то процессор в периоды этих обращений будет простаивать.

    Если в однопоточном выполнении какого-либо сценария будет 50 тысяч итераций, это нормально?

    2. Нормально, если задачу нельзя разбить на независимые подзадачи. Пример неразбиваемой задачи найти сложно, но например задача комивояжера в классическом исполнении.

    А если поставить всё это дело на машину с высокочастотным процессором?

    3. Будет быстрее, если нет НО из первого ответа.

    А если многоядерный процессор?

    4. Будет быстрее, если нет НО из второго ответа.

    И если программа выполняется в одном потоке, то количество ядер не важно?

    5. Да, неважно.
    Ответ написан
    Комментировать
  • Что такое неклассические модели процессов?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Интересно, это где таким птичьим языком написано?
    В принципе, такие типы процессов могут применяться в реалтайм системах. Но и там, в тех, которые знаю, более-менее используется традиционный подход, процессы и треды. Если только где-то в VTRX или VxWorks, может быть.

    Наверное объяснение такое, когда создаем процесс, то к нему можем передавать кусок общей памяти, но это и так во многих ОС делается через shared memory, события и сигналы, называется IPC.

    С другой стороны, тот же линукс вполне подойдет под данное определение, как минимум частично. Это когда мы форкаем процесс, то данные процесса у нас не сразу копируются для него, а только после первого обращения к нужной странице памяти. Так называемое ленивое копирование. Ну а разделяемые куски кода лежат в *.so файлах.

    Что касается общих ресурсов, то например в OS-9/9000 есть разделяемые библиотеки (модули), в контексте которых есть отдельный стек на библиотеку (модуль). Там могут лежать данные, доступные всем процессам, которые используют данный модуль. С другой стороны, процессы в ней очень даже традиционные, если не линковаться к модулям. Но 0S-9/9000 наверное единственная ОС, которая так может и с которой я работал таким образом.
    Ответ написан
    Комментировать
  • Возможна ли перекодировка файлов "на лету"?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Файлы записать в архив на СД/ДВД и перекодировать как написал ShamblerR
    Ответ написан
  • Есть ли одноплатный компьютер для управления силовой элеткроникой?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Как я понимаю, подойдет любой компьютер, хоть одноплатка, хоть расберипи. Весь вопрос в исполнительных устройствах, которые подключаются к портам GPIO и интерфейсам IO.
    Другими словами, я не знаю ни одного компьютера, который был бы специально заточен под силовую электронику, они все заточены на управление разнообразным оборудованием. Но я знаю кучу производителей устройств для силовой электроники, которыми можно управлять с любого компьютера, встроенного, одноплатного или общего назначения.
    Начните с поиска нужных исполнительных устройств (реле, разрядники, и что там еще по вашему профилю), далее по интерфейсам управления подбирайте компьютер с соответствующими портами IO (modbus, profibus, spi, i2c, какие-то частнофирменные протоколы)...

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

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    А не пробовали эмулировать работу скрипта на простом sql? Что получается? Ну и без анализа самих запросов, типов данных и структуры таблиц сказать вообще ничего нельзя.
    Единственное, что можно порекомендовать- кешируйте данные на чтение. И если при работе тормозит процессор, то попробуйте параллелить задачу, а если тормозят диски - ставьте ssd. Другой путь - не сохранять в базу, а сохранять в память, например в redis, mongo, а уже потом перекидывать готовый результат куда нужно.
    И что-то неправильное в консерватории, если индексов на таблицу больше двух, максимум трех... Снесите индексы, проведите массивную вставку, создайте индексы заново. Ну и анализ запросов и explain в помощь.
    Что такого можно делать со 100к запросов?!
    Ответ написан
    Комментировать
  • Как хранить media-файлы, если приложение запущено на нескольких серверах?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Любое распредененное хранилище, mongo, redis, memcached, ceph...
    Ответ написан
  • Как правильно поднять сервер?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    В обязательном порядке! Файервол, можно встроенный ufw, на просто lamp-сервер этого достаточно. Прикрываем все порты кроме ssh (22) и 80/443, можно ssh перевести на какой нибудь 9922 порт, но это для параноиков.
    Я еще ставлю fail2ban, да, я параноик. Хорошо бы отдельной партицией вторую копию root-раздела держать.
    И сгенерите доступ по ssh только по ключам!
    Дополнительно по вкусу.
    И неплохо nginx фронтоэндом, а можно только им обойтись (без апаша), но тогда нужно еще php-fpm поставить и настроить.
    Ну и memcached по желанию.
    Так в общем все остальное можно докрутить по ходу работы.
    Ах, да! Воткните collectd для сбора статистики.

    И сначала все это на виртуалке попробуйте.
    Ответ написан
    Комментировать
  • Не видна машина на разных сегментах. Что делать? В чём проблема?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Default gateway везде правильно настроен? Подсеть у всех одна? Это один сегмент ethernet? Wifi-клиент это тоже роутер?
    Приведите на рисунке подсети и выделенные сегменты, а то не совсем понятно...
    Ответ написан
    2 комментария
  • Django: SQLite или PostgreSQL?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    postgres конечно! sqlite только для разработки или как встроенная база для малоточного приложения или как замена файлам.
    До кучи
    https://www.digitalocean.com/community/tutorials/s...
    Ответ написан
    6 комментариев
  • Как организовать последовательное выполнение одинаковых запросов для пользователя?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Вариантов несколько: первый - блокировками типа мьютекса, второй очередями с флагом.
    Но, вообще-то это должна сама база данных разруливать своими блокировками и транзакицями!
    запустили транзакцию, делаем работу, закоммитили. если данные внутри транзакции стали невалидные, то база откатит транзакцию, а нам вернет ошибку.
    Ответ написан
    Комментировать
  • Как организовать двойную очередь в Python?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Две очереди, одна для всех сообщений, другая - для ожидающих.
    Воркер:
    1) получает сообщение из общей очереди
    2) проверяет блокировку по devID
    3) если блокировки нет:
    3.1) ставит блокировку на devID
    - делает работу
    - освобождает блокировку на devID
    3.2) блокировка есть:
    - перепубликует сообщение в очередь ожидания, ТОЛЬКО если оно из основной очереди
    4) проверяет очередь ожидания
    - если там сообщение, то возвращается на п2
    - иначе на п1

    Как-то так... Ну и рассмотреть вопрос на счет дидлока, когда сообщение в очереди ожидания блокируется повисшим воркером...
    Ответ написан
    6 комментариев