• Методы или подходы для проектирования систем на основе спецификации в XML?

    @s0rr0w
    Для полноценной работы с XML вам понадобится примерно четыре библиотеки/класса

    1. DOM
    2. XSD
    3. XSL
    4. xPath

    Иногда xPath входит в состав DOM-библиотек, иногда отдельно существует.

    Для импорта используется DOM, тут же на загруженный документ натравливается XSD для проверки валидности структуры.
    Экспорт обычнно делается без каких-либо проверок, или же перед экспортом можно провести лишнюю XSD-валидацию.

    Сериализация и десериализация должна выполняться DOM-парсером (никак иначе).

    XSL и xPath пригодятся, когда потребуется сделать экспорт не в исходный формат файла (HTML, XML другой структуры, csv, rtf, и многое другое), или импорт из произвольных XML-форматов. Процедура простая — на исходный документ натравливаем XSL трансформатор и получаем на выходе искомое.

    Посоветовать конкретные библиотеки не смогу, так как не работаю с python'ом.
    Выберите из списка лучшее
    Ответ написан
  • Как в Photoshop замнить белый на прозрачный?

    @s0rr0w
    Я использовал английский фотошоп, поэтому перевод на русский может быть не точным

    1. Отройте файл
    2. Если это была картинка, то сначала делаем Ctrl+A, Ctrl+X, Ctrl+V
    3. Ctrl+A
    4. В доке управления слоями на слое Layer 1 создаем Clipping Mask (внизу кнопка, где создать новый слой, удалить слой)
    5. Открываем док управления каналами Window > Channels
    6. В нем будут 4 слоя + наша маска
    7. Выбираем самый контрастный слой, например Red, остальные выключаем
    8. Делаем на этом слое Ctrl+A, Ctrl+C
    9. Включаем все слои, активным делаем нашу маску, Ctrl+V
    10. Правим яркость, контрастность, уровни на этой маске, добиваясь наиболее приемлемого результата.
    Ответ написан
    3 комментария
  • Как сделать post запрос xml?

    @s0rr0w
    В POST разрешено передавать «безымянные» данные. Файлы то как-то передаются :)

    stackoverflow.com/questions/871431/raw-post-using-curl-in-php

    $ch = curl_init();
    
    curl_setopt($ch, CURLOPT_URL,            "http://url/url/url" );
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
    curl_setopt($ch, CURLOPT_POST,           1 );
    curl_setopt($ch, CURLOPT_POSTFIELDS,     "body goes here" ); 
    curl_setopt($ch, CURLOPT_HTTPHEADER,     array('Content-Type: text/plain')); 
    
    $result=curl_exec ($ch);
    
    
    Ответ написан
    Комментировать
  • Какой путь выбрать для оптимизации ооочень большой страницы с кучей инпутов?

    @s0rr0w
    Перенос рендеринга со стороны сервера на клиента даст ухудшение скорости работы раз в 10 при таком количестве данных.

    Нужно решать проблему несколькими способами
    1. В smarty2 отказаться от include, перейти на defun/fun плагин (если include используется)
    2. В smarty3 постараться уменьшить количество функций, если их много и они маленькие
    3. По минимуму свести генерацию темплейтов на стороне клиента
    4. Так как оператору не нужно все и сразу, можно разбить интерфейс на множество мелких частей, и загружать их по требовани. в виде готового html.
    5. Проблему заполнения множества полей нужно решать не через jQ. Тут наиболее правильным путем будет кеширование ссылок на ноды и их перебор. Лично я использую свои инструменты для этого, в которых кеширование сделано из коробки
    6. Отказ от «ненавязчивого» подхода навешивания обработчиков и переход к старому доброму , чтобы не использовать live-методы навешивания обработчиков.

    Максимум нод, которые переваривает браузер, нужно держать в районе 10-20К.

    Если нужны будут еще какие-то консультации, лучше писать мне в скайп (в профиле) или в личку.
    Ответ написан
    2 комментария
  • Какие есть примеры пользовательского интерфейса для создание/редактирования меню?

    @s0rr0w
    Удобство — вещь относительная. Пользователям, в принципе, все равно, будет это так или иначе, они в любом случае или будут впервые видеть данный интерфейс и учиться работать с ним с начала, или же будут применять какие-то заученные паттерны, и если ваша реализация не будет с ними совпадать, то им будет несколько неудобно, потом привыкнут.

    Теперь к вариантам реализации.

    1. Textarea
    В ней меню хранится в виде
    * About #about
    * Company #company
    * Business #business
    * Contact Info #contact_info

    Где все, что после # — alias пункта меню

    Плюсы — меню можно поправить или создать за минуту, для глобальной перестройки не понадобится много времени
    Минусы — можно что-то серьезно поломать, некрасиво, требует некого усердия

    2. Дерево
    Аналог можно найти в Windows explorer'е или любых аналогичных программах в других ОС
    Самая большая проблема — баланс между функциональностью и читабельностью. Функциональные элементы должны быть под рукой, и управление через правую кнопку мыши и контекстные меню — не очевидное поведение. Если их показывать вместе с элементами дерева, то получается перегруз информацией. Не забываем, что нужно четко давать понимать, куда именно будет добавляться новый элемент меню, и что его нужно разрешать перемещать по дереву. Но, в принципе, копирование поведения из системы будет хорошим вариантом

    Плюсы — меньше шансов на ошибку
    Минусы — гораздо большее время, которое нужно будет потратить на создание большого количества пунктов или глобальную реогранизацию. Зачастую неочевидное поведение вспомогательных элементов или возможностей интерфейса

    3. XML/json файл
    Аналог textarea, но с некоторой защитой от поломок.

    Можно комбинировать подходы, например, для быстрого создания детей у элемента меню, можно использовать textarea, а потом работать с ним в двух режимах, как визуальном, так и на уровне текста
    Ответ написан
    1 комментарий
  • Как организовать разработку программ?

    @s0rr0w
    Вообще тут нет одного стандарта или супер-приемов, которые де-факто являются эффективными. На процесс разработки могут влиять множество факторов, как то особенности организационной структуры компании, особенности модели продаж, харизма или опыт руководителей, опыт и слаженность команды разработчиков, методика разработки, языки программирования и особенности продуктов, которые разрабатываются. Перечислять можно долго.

    Лично я бы выделил два основные правила во всем этом:
    1. Не принимайте ничто в своих моделях за аксиому. Это значит, что если что-то эффективно работает сегодня, то не значит, что через год это будет работать столь же эффективно. Постоянно улучшайте позитивные решения и избегайте негативных. Например, если сейчас вы коммитите со скоростью пять раз в день, то это не значит, что через год такой темп будет востребован.
    2. Экономическая эффективность разработки — вот о чем стоит думать каждый день. Все принятые решения должны быть именно экономически эффективными. Например, вы можете отказаться от отной технологии или программы в пользу другой, только бы росла скорость разработки, падало количество ошибок в коде, качество кода росло, количество времени на исправление ошибок было минимальным, и так далее. Фактически, нет разницы, в какой именно программе вы работаете, особо не важно, на каком языке, как часто вы делаете коммиты и что пишете в комментарии, важно, чтобы вы не загрузли со всем этим, отвлекаясь на красивые пассажи и реверансы, хотя нужно просто написать код. Решать проблемы нужно по мере их возникновения. Например, мы провели множество смен ПО багтрекинга и постановки задач, сейчас ими пользуемся настолько редко, что можно сказать, что оно вообще у нас отмерло. И это не мешает нам контроллировать процесс и вести успешную разработку. Инструменты должны быть эффективными, а это возникает только тогда, когда есть опыт их использования. Инструмент сам по себе не поможет, иногда даже навредит.
    Ответ написан
    2 комментария
  • Обманывает ли меня интернет-магазин rozetka.com.ua?

    @s0rr0w
    Правильно получать так: при курьере все тестировать, открывать, распаковывать, смотреть на защитные пленки и прочую атрибутику нового товара. При первом же подозрительно сорванном стикере или излишне помятой коробке, возвращаете товар курьеру. Вы не обязаны покупать товар не надлежащего качества. Курьер может быковать и говорить, что он товар обратно не повезет, на что посылаете его куда подальше без объяснения причины.

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

    Возврат должен производиться в любом случае. Иначе вы можете подать на них в суд по факту мошенничества. Лучше всего написать на имя директора официальное письмо, в котором изложить суть проблемы и узнать, через какое время они вернут вам товар. С этим можно прямиком в суд.

    Розетка нарушает, так как держит ваш товар у себя, без пояснения причины. Подавайте иск.

    Ваше дело нужно правильно квалифицировать. Обратитесь к правильному юристу, он выиграет вам дело. Если вы будете подавать иск по месту жительства, то, скорее всего, со стороны Розетки никто не приедет на заседание, а значит и выигрыш у вас в кармане.
    Ответ написан
    2 комментария
  • Что почитать про алгоритмы скоринга: оценку кредитоспособности, например?

    @s0rr0w
    По скорингу нечего читать. Его алгоритмическая суть очень проста. У вас есть некий набор скоринговых таблиц, в которых описываются некие границы значений и баллы, которые им соответствуют. На вход подаются исходные данные, которые оцениваются по таблицам. Сумма полученных баллов может оцениваться по другим таблицам. Результат сводится к простым «давать», «не давать», «требуется больше данных».

    Как именно составлять баллы для скоринговых таблиц, зависит от кредитной политики фин-учреждения, статистики по выдачам кредитов, и других факторов.

    Какие именно параметры брать — ноу-хау и тщательно оберегаемая банками информация. :)
    Ответ написан
    Комментировать
  • Кто такой Systems architect?

    @s0rr0w
    Архитектор — это человек, который выбирает способ решения задачи.

    Допустим, нужно выбрать базу данных для хранения. Задача архитектора — определиться с выбором, это будет MySQL, PostrgeSQL, Oracle, MS SQL или что-то более экзотическое, а может и NO SQL; выбрать объем допустимых фич, которые можно использовать; определиться с форматами хранения данных; сформировать основные принципы формирования структур таблиц. Т.е. фактически все до конечной реализации в коде.

    Если это объектная модель, то это будет перечень субъектов, объектов, событий и отношений между объектами.

    Архитектор может разрабатывать API у всевозможных систем.
    Ответ написан
    Комментировать
  • Как правильно добавлять атрибуты в SOAP запрос посредством SoapVar?

    @s0rr0w
    Скорее всего, только при помощи низкоуровневой генерации XML-ответа при помощи DOM или SimpleXML, c использованием метода __doRequest
    Ответ написан
    Комментировать
  • Какие языки программирования преподавать?

    @s0rr0w
    — программирование в компьютерных системах (ПКС);
    Только низкоуровневые, которые дают представление о внутреннем устройстве ПК, его функционировании, типах данных и т.д. Си, Паскаль, да хоть Бейсик, нет разницы

    — прикладная информатика в экономике (ПИ).
    VBA, потому что экономист без экселя — экономист-инвалид
    Ответ написан
    5 комментариев
  • Есть ли у кого практический опыт общения с инвесторами?

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

    Однако есть ряд моментов, которые носят информативный характер, но их стоит учесть.

    1. Инвестор в чем-то заинтересован, ваша задача — попытаться разобраться что именно его интересует. Понимание истинных намерений упростит вам жизнь и может уберечь от неправильных решений
    2. Многие считают, что инвесторы дадут вам чемодан с деньгами, которые вы можете тратить куда угодно. Нет, вместе с деньгами придет жесткий контроль и ответственность. Нужно понимать, что вы можете по неосторожности потерять все, и комманду, и проект, и остаться еще и без денег, да еще и должны останетесь. Поэтому не рисуйте себе Майбах во дворе, мечтания приведут вас к долгам.
    3. Нужно быть психологически готовым к тому, что инвестор не покупает вас с потрохами, а всего лишь дает вам ресурсы, которые вы должны вернуть с неким процентом. Инвестор, который ведет себя как рабовладелец вам не нужен, бегите от него подальше и без оглядки
    4. Инвестирование может быть двух видов — покупка акций и соучредительство с последующей накачкой денег. Акции бывают двух типов — которые дают право на управление компанией, и которые не дают такое право. Если инвестор получает контроль над вашей компанией, то вам придется мириться с его способами ведения бизнеса. Наличие денег в руках не означает контроль.
    5. У вас всегда должен быть запасной план.
    Ответ написан
    1 комментарий
  • Как развить внимание у взрослого человека? Путь саморазвития?

    @s0rr0w
    Были случаи. Переучить можно, но сложно.

    1. Создать процедуру контроля качества. Человек свыкнется с процедурой и начнет механически выполнять ряд действий, которые раньше он не делал. Это может быть как тестирование, так и специально написанные утилиты того же коммита, которые не позволяют делать операции без строго последовательного алгоритма.

    2. Парное программирование. Звучит дико, но метод реально эффективен.

    3. Увольнение, потому что трудозатраты на перевоспитание всегда будут превышать эффект от уменьшения негативного эффекта от невнимательности.
    Ответ написан
    2 комментария
  • Как правильно оценить работу веб-дизайнера?

    @s0rr0w
    Смысла устанавливать рамки нет. Работа дизайнера не является типизируемой ни по каким параметрам или метрикам. Попытка оценок всегда приводит к провалу.

    Оптимизация рисков может быть такой: над дизайнером должен стоять некий арт-директор, который имеет практический опыт как дизайнера, так и управленца. Он не даст дизайнеру бесцельно тратить временной ресурс на ковыряние в носу и поиск вдохновения. Именно арт-директор минимизирует риски и вернет отношения в продуктивное русло. Если это группа дизайнеров, то шансы на завершение работы становятся куда выше.

    Чтобы не было варианта с брошенной работой, нужно давать дизайнеру творить и всецело доверять ему. Любые требования к переделкам должны нести конструктивный характер, не просить покрасить все кнопки в синенький, а сказать, что обычно серый у людей ассоциируется с неактивным, нужно или более явно подчеркнуть активность кнопки путем изменения ее цвета, или заменить ее вообще на что-то другое, что явно указывает на дальнейшее действие. Это может сказать и арт-директор. Особенно не стоит драконить дизайнеров высказываниями, что мой брат/сват/кум/знакомый посмотрел на макет и высказал свое глубочайшее «буэээ», и что все надо переделать. Очень редко сторонние люди разбираются в дизайне, хоть им и видится обратное, поэтому приводить в качестве тестовой группы таких «экспертов» крайне нежелательно.
    Ответ написан
    Комментировать
  • Нужна ли миру система единых аккаунтов?

    @s0rr0w
    Нереально без создания единого государства на планете. А это тоже не особо реально.
    Иначе проект будет нарываться на проблемы с локальными законами и особенностями взаимоотношений между спецслужбами.
    Ответ написан
    Комментировать
  • Список правильных брендов - идея для стартапа или уже есть такой?

    @s0rr0w
    Простите, но идея стартапа утопична. Как вы ее монетизировать собрались?

    Товар не равно брэнд. Оценивать брэнд по товару в корне неверно. К примеру, корпорация Siemens выпускает дешевые телефоны, которые имеют весьма посредственное качество. Значит ли это, что вся продукция компании будет аналогичной? Можно ли перекладывать проблемы одного товара на другой, например, по качеству телефонов судить о качестве электростанций, которые тоже производит Siemens?

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

    Третья проблема — субъективизм оценки. Одни не могут нарадоваться возможностям продукта, вторые считают эти возможности слишком банальными. Кто прав? Для снижения уровня субъективизма нужно проводить независимое тестирование продукции, что требует колоссальных трудозатрат.

    Так что идея вроде как и хорошая, но ее монетизация под огромным вопросом
    Ответ написан
    4 комментария
  • Как обновить большой объём данных?

    @s0rr0w
    1. Сделать асинхронной задачу парсинга и обновления данных. Парсер создает пул задач для обновления, потом второй скрипт производит обработку этого пула, обновляя нужные данные.

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

    @s0rr0w
    Zotac рулит. Старенький ZBOX MAG на Атоме + ION прекрасно работает уже второй год. Думаю заменить его на более шустрый аналог, но уже на AMD, например ZOTAC ZBOX AD04 PLUS

    Насчет шума. Бокс все-таки издает некоторое шелестение кулером, а замену кулера произвести не сильно получится, так как крепления не стандартные. Но, думаю, придумать что-то можно. Там стоит узколопостная турбина, не жужжать не может

    Если хочется попроизводительнее, то есть шикарная серия ZOTAC ZBOX Giga ID72 Plus, но ориентировочная цена в €470,66 несколько пугает.
    Ответ написан
    Комментировать