MySQL DELETE FROM с подзапросом в качестве условия

У нас есть размещенные в облаке (RackSpace cloud) приложения Ruby и Java, которые будут взаимодействовать следующим образом:

  1. Приложение Ruby отправляет запрос в приложение Java. Запрос состоит из структуры карты, содержащей строки, целые числа, другие карты и списки (аналог JSON).
  2. Приложение Java анализирует данные и отправляет ответ приложению Ruby.

Мы заинтересованы в оценке обоих форматов обмена сообщениями (JSON, Протоколы буфера , Экономия и т. Д.), А также каналы / методы передачи сообщений (сокеты, очереди сообщений, RPC, REST, SOAP и т. Д.)

Наши критерии:

  1. Короткое время приема-передачи.
  2. Низкое стандартное отклонение времени приема-передачи. (Мы понимаем, что паузы в сборке мусора и скачки использования сети могут повлиять на это значение.)
  3. Высокая доступность.
  4. Масштабируемость (в будущем мы можем захотеть иметь несколько экземпляров приложений Ruby и Java, обменивающихся сообщениями точка-точка).
  5. Простота отладки и профилирования.
  6. Хорошая документация и поддержка сообщества.
  7. Бонусные баллы за поддержку Clojure.
  8. Хорошая поддержка динамического языка.

Какую комбинацию формата сообщения и метода передачи вы бы порекомендовали? Почему?

Я собрал здесь некоторые материалы, которые мы уже собрали для ознакомления: t написать str в текстовый поток Я, должно быть, здесь что-то явно не так. Но что это такое и как мне исправить? Python 2.6.5 (r265: 79096, 19 марта 2010 г., 21:48:26) [MSC v.1500 32 бит (Intel)] на win32

alt textalt text

Тот же текст, для которого только цвет был изменен с 0xFFFFFFFF на 0xBFFFFFFF:

alt textalt text

Как вы можете видеть, полупрозрачный текст явно является стандартным AA, и вместо чистого полупрозрачного рендеринга он имеет ужасную паутинку 90-х годов. "внешний вид.

Это связано с техническим ограничением для субпиксельного AA в целом, или с ошибкой в ​​Java, или просто потому, что Java даже не пытается сделать полупрозрачный текст, или я что-то пропустил?


Графика Инициализация

dbGraphics=(Graphics2D)dbImage.getGraphics();
if(dctRoot.properties.getBoolean("Antialias",true)) {
    try {
        Map hnts=(Map)(dctRoot.awtComponent.getToolkit().getDesktopProperty("awt.font.desktophints"));

        // SET AA ON OVERALL (NOTE: GENERAL AA MUST BE OFF FOR SUBPIXEL AA TO BE HONORED - TEXT WIDGETS MUST DO THIS THEMSELVES)
        dbGraphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);

        if(hnts!=null) {
            // SET FONT RENDERING HINTS FROM DESKTOP
            dbGraphics.addRenderingHints(hnts);
            }
        else {
            try {
                // SET TEXT AA TO FONT-SPECIFIED GASP AA (JAVA 6+)
                dbGraphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.class.getField("VALUE_TEXT_ANTIALIAS_GASP").get(null));
                }
            catch(Throwable thr3) {
                // SET TEXT AA TO DEFAULT
                dbGraphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
                }
            }
        }
    catch(Throwable thr) {
        dctRoot.log.println("Antialiasing not supported on this JVM ("+thr+").");
        dctRoot.setProperty("Antialias","False");           // turn off AA for subsequent painting
        }
    }
else {
    try {
        dbGraphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_OFF);
        dbGraphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
        }
    catch(Throwable thr) {;}                                // ignore exception
    }

Отрисовка текста

Object oaa=disableGeneralAA(gc);
...
gc.drawString(tl,xx,(ty+(xa*met.getHeight())));
restoreGeneralAA(gc,oaa);

...


static private volatile boolean         hasRenderingHints=true;

// *****************************************************************************
// STATIC INIT & MAIN
// *****************************************************************************

// *****************************************************************************
// STATIC METHODS
// *****************************************************************************

/**
 * Disable the general anti-aliasing rendering hint, returning whether the old value was RenderingHints.VALUE_ANTIALIAS_ON.
 * 

* This method is needed for text rendering due to a bug in AWT; as of Java 6_20 when general AA is on text is not rendered using subpixel * AA, so general AA has to be turned off before rendering text and turned back on when done. This method abstracts that work and deals * with the possibility that the JVM does not support rendering hints, such as is the case with JME JVMs. */ static public Object disableGeneralAA(Graphics2D gc) { Object old=null; if(hasRenderingHints) { try { old=gc.getRenderingHint(RenderingHints.KEY_ANTIALIASING); gc.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_OFF); } catch(NoClassDefFoundError thr) { hasRenderingHints=false; } catch(NoSuchFieldError thr) { hasRenderingHints=false; } catch(NoSuchMethodError thr) { hasRenderingHints=false; } } return old; } /** * Disable the general anti-aliasing rendering hint, returning whether the old value was RenderingHints.VALUE_ANTIALIAS_ON. *

* This method is needed for text rendering due to a bug in AWT; as of Java 6_20 when general AA is on text is not rendered using subpixel * AA, so general AA has to be turned off before rendering text and turned back on when done. This method abstracts that work and deals * with the possibility that the JVM does not support rendering hints, such as is the case with JME JVMs. */ static public void restoreGeneralAA(Graphics2D gc, Object val) { Object old=null; if(hasRenderingHints && val!=null) { try { gc.setRenderingHint(RenderingHints.KEY_ANTIALIASING,val); } catch(NoClassDefFoundError thr) { hasRenderingHints=false; } catch(NoSuchFieldError thr) { hasRenderingHints=false; } catch(NoSuchMethodError thr) { hasRenderingHints=false; } } }

10
задан Lawrence Dol 16 January 2011 в 05:41
поделиться