Задать вопрос
  • Как при использовании encoding/xml распарсить XML-элемент с произвольными атрибутами?

    @ogrim
    type Rewards struct {
    	XMLName xml.Name `xml:"rewards"`
    	Rewards []Reward `xml:"reward"`
    }
    
    type Reward struct {
    	Value string
    	Attrs map[string]string
    }
    
    func (r *Reward) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
    	r.Attrs = make(map[string]string)
    	for _, attr := range start.Attr {
    		r.Attrs[attr.Name.Local] = attr.Value
    	}
    	if err := d.DecodeElement(&r.Value, &start); err != nil {
    		return err
    	}
    	return nil
    }
    // ...
    var obj Rewards
    if err := xml.Unmarshal(data, &obj); err != nil {
    	log.Fatal(err)
    }
    log.Printf("%+v", obj.Rewards)

    [{Value:100 Attrs:map[type:money slot:101 repeated:1]} {Value:1 Attrs:map[bagId:1 repeated:1 type:freedomBagsExp]} {Value:30 Attrs:map[repeated:1 type:rating]} {Value:1 Attrs:map[repeated:1 type:key key_id:2]} {Value:30 Attrs:map[type:guildAP repeated:1]} {Value:2 Attrs:map[key_id:2 repeated:1 type:key]} {Value:476 Attrs:map[repeated:1 type:rating]}]
    Ответ написан
    Комментировать
  • Почему остаток тонера (oid .1.3.6.1.2.1.43.11.1.1.9.1.1) не совпадает со значением в вэб-интерфейсе?

    Судя по всему веб-интерфейс просто округляет показания.
    У простых МФУ можно не ждать достоверных данных. В некоторых даже у картриджа есть всего два состояния, типа normal и empty.
    У меня абсолютно точные данные отдают только аппараты Xerox типа 5330 и 7530. В них тонер засыпается.
    Я бы не рекомендовал вам сильно надеяться на эти показатели. В первую очередь научитесь отлавливать ошибки МФУ, когда потребуется оперативное вмешательство инженера. А сигнализацию о замене картриджа лучше отдать на откуп пользователю и обеспечить всегда на складе запасной картридж, а также внятную схему подачи заявки на замену.
    У нас так сделано. в обслуживании около 1000 принтеров и МФУ разных форматов
    Ответ написан
    Комментировать
  • Почему забикс видит службы, которых у меня нет?

    athacker
    @athacker
    Этот сервис -- часть мутной программы WindowexeAllkiller. Которая, скоре всего, является малварью. Если она у вас установлена -- удалите её, и заббикс перестанет жаловаться. Если считаете, что не установлена -- значит, скорее всего, вы намотали на винты. Выводите систему в оффлайн и проверяйтесь.
    Ответ написан
    Комментировать
  • Под какие разрешения экрана верстать сайт и статистика разрешений экрана?

    @NotFair
    web-developer
    media screen and (max-width: 1200px) {
    .container {
    width: 970px;
    }
    }

    media screen and (max-width: 991px) {
    .container {
    width: 750px;
    }
    }

    media screen and (max-width: 767px) {
    .container {
    width: 450px;
    }

    }

    media screen and (max-width: 479px) {
    .container {
    width: 310px;
    }
    }
    Ответ написан
    Комментировать
  • Клиент на Upwork угрожает международным судом, возможно ли это?

    @jkotkot
    режим сарказма
    Правильная стратегия это не паниковать, не дергатся, не хамить и не истерить)
    Если клиент действует под эмоциями, то отвечать нужно холодно и разумно. Можно написать, что вы готовы обсуждать вопросы и проблемы, но для начала клиент должен по пунктам изложить суть. По пунктам. А потом уже можно детально и агрументировано отвечать на каждый пункт, в зависимости от того, что он там написал.
    Главное - самому не поддаваться эмоциям. Даже самые эмоциональные клиенты затихают под напором аргументов.
    Ни в какие международные суды это не примут. Максимум - это диспут на апворке, который тоже стоит денег. Ну и в рейтинг насрет))) это может быть, но для топрейтеда есть возможность это изменить.

    Если ЕГО клиент предъявляет вам претензии тем или иным образом, то вы всегда можете говорить, что знать его не знаете и дел с ним никогда не имели, поэтому претензии не принимаете. Общайтесь с тем, с кем договаривались и работали или с их официальными представителями.
    Ответ написан
    Комментировать
  • Зачем IT гиганты используют много несвязанных доменов?

    Поместив HTML, XML, SVG и т.д. и т.п. файл на домене usercontent.google.com можно
    манипулировать куками домена google.com и фишить. Поэтому пользовательский контент всегда отдается с отдельных sandbox-доменов.
    Так же с отдельных доменов обычно отдается статический контент, это позволяет использовать CDN и упрощает управление кэшированием.
    Отдельный домен обычно используется для PTR-записей (например 1e100.net). Для PTR часто нужна двойная валидация, т.е. PTR должна разрешаться в имя и имя обратно в тот же IP. При этом на одном IP может хоститься много доменов и быть установлено много сертификатов, включая вайлдкарды. И наоборот, один домен может хоститься на многих IP. Чтобы исключить прямое обращение к хосту по "неожиданному" для него имени в своем домене, обычно используются PTR записи в нейтральном домене. Кстати исторически принято использовать именно домены в .net. Google так же использует 1e100.net как нейтральный домен для подписи транзитных писем, раньше для этого использовался собственно домен google.com и это приводило к забавному багу, позволявшему подделывать подписи на письмах от google.com, я рассказывал о нем на PHDays 2014.
    Географические домены исторически используют для организации региональных датацентов и ускорения доступа, например yahoo.jp физически расположен в Японии.
    Ответ написан
    6 комментариев