Hungry Mind , Blog about everything in IT - C#, Java, C++, .NET, Windows, WinAPI, ...

Чуть не упал со стула...

DBReportSchemeObject rptObj = new DBReportSchemeObject();
Random random = new Random();
rptObj.Id = random.Next() * -1; //--случайный отриц.айди нужен для грида связей, когда объекты ещё не сохранены
rptObj.Ao_id = ao.Id;
rptObj.Rs_id = data.Id;
rptObj.AO = ao;
rptObj.EntityState = DBEntity.State.New;

Boost 1.34.0

Release Name: 1.34.0

Notes:

Boost 1.34.0, the latest version of peer-reviewed, portable C++
libraries, has been released. This release brings five new libraries
and extensive updates to existing libraries.

New Libraries

   * Foreach Library:
       BOOST_FOREACH macro for easily iterating over the elements of a
       sequence, from Eric Niebler.
   * Statechart Library:
       Arbitrarily complex finite state machines can be implemented in
       easily readable and maintainable C++ code, from Andreas Huber.
   * TR1 Library:
       An implementation of the C++ Technical Report on Standard Library
       Extensions, from John Maddock.
       This library does not itself implement the TR1 components, rather
       it's a thin wrapper that will include your standard library's TR1
       implementation (if it has one), otherwise it will include the Boost
       Library equivalents, and import them into namespace std::tr1. Highlights
       include: Reference Wrappers, Smart Pointers, result_of,
       Function Object Binders, Polymorphic function wrappers, Type Traits,
       Random Number Generators and Distributions, Tuples, Fixed Size Array,
       Hash Function Objects, Regular Expressions and
       Complex Number Additional Algorithms.
   * Typeof Library:
       Typeof operator emulation, from Arkadiy Vertleyb and Peder Holt.
   * Xpressive Library:
       Regular expressions that can be written as strings or as expression
       templates, and that can refer to each other and themselves recursively
       with the power of context-free grammars, from Eric Niebler.

Updated Libraries

   * Assign Library:
         o Support for ptr_map via the new function ptr_map_insert()
         o Support for initialization of Pointer Containers when the containers
           hold pointers to an abstract base class.
   * Date_time library:
         o Support for new US/Canada timezone rules and other bug fixes.
           See Change History for details.
   * Filesystem Library:
       Major upgrade in preparation for submission to the C++ Standards Committee
       for TR2. Changes include:
         o Internationalization, provided by class templates basic_path,
           basic_filesystem_error, basic_directory_iterator
           and basic_directory_entry.
         o Simplification of the path interface by eliminating special constructors
           to identify native formats.
         o Rationalization of predicate function design, including the addition of
           several new functions.
         o Clearer specification by reference to POSIX, the ISO/IEEE Single Unix
           Standard, with provisions for Windows and other operating systems.
         o Preservation of existing user code whenever possible.
         o More efficient directory iteration.
         o Addition of a recursive directory iterator.
   * Function Library:
       Boost.Function now implements a small buffer optimization, which can
       drastically improve the performance when copying or constructing
       Boost.Function objects storing small function objects. For instance,
       bind(&X:foo, &x, _1, _2) requires no heap allocation when placed into
       a Boost.Function object.
   * Functional/Hash Library
         o Use declarations for standard classes, so that the library doesn't
           need to include all of their headers
         o Deprecated the  headers.
         o Add support for the BOOST_HASH_NO_EXTENSIONS macro, which disables
           the extensions to TR1
         o Minor improvements to the hash functions for floating point numbers.
   * Graph Library:
         o edmonds_maximum_cardinality_matching, from Aaron Windsor.
         o lengauer_tarjan_dominator_tree, from JongSoo Park.
         o compressed_sparse_row_graph, from Jeremiah Willcock and Douglas Gregor
           of Indiana University.
         o sorted_erdos_renyi_iterator, from Jeremiah Willcock
           of Indiana University.
         o biconnected_components now supports a visitor and named parameters,
           from Janusz Piwowarski.
         o adjacency_matrix now models the Bidirectional Graph concept.
         o dijkstra_shortest_paths now calls vis.initialize_vertex for each
           vertex during initialization.
         o Note: the name of the compiled library for the GraphViz reader has
           changed to boost_graph (from bgl-viz) to match Boost conventions.
         o See the complete revision history for more information.
   * MultiArray Library:
       Boost.MultiArray now by default provides range-checking for operator[].
       Range checking can be disabled by defining the macro BOOST_DISABLE_ASSERTS
       before including multi_array.hpp. A bug in multi_array::resize() related
       to storage orders was fixed.
   * Multi-index Containers Library:
         o New random access indices.
         o Non key-based indices feature new rearrange facilities.
         o This version also includes a number of optimizations and usage
           improvements. For a complete list of changes,
           see the library release notes.
   * Optional Library:
         o boost::none_t and boost::none now added to Optional's documentation
         o Relational operators now directly support arguments of type 'T'
           and 'none_t'
         o operator->() now also works with reference types.
         o Helper functions make_optional(val), make_optional(cond,val)
           and get_optional_value_or(opt,alternative_value) added.
         o Constructor taking a boolean condition (as well as a value) added.
         o Member function get_value_or(alternative_value) added.
         o Incompatbility bug with mpl::apply<> fixed.
         o Converting assignment bug with uninitialized lvalues fixed.
   * Parameter Library:
         o Every ArgumentPack is now a valid MPL Forward Sequence.
         o Support for unnamed arguments (those whose keyword is deduced from
           their types) is added.
         o Support for named and unnamed template arguments is added.
         o New overload generation macros solve the forwarding problem directly.
         o See also the Python library changes, below.
   * Pointer Container Library:
         o Support for serialization via Boost.Serialization.
         o Exceptions can be disabled by defining the macro
           BOOST_PTR_CONTAINER_NO_EXCEPTIONS before including any header.
           This macro is defined by default if BOOST_NO_EXCEPTIONS is defined.
         o Additional std::auto_ptr overloads added s.t. one can also pass
           std::auto_ptr instead of only T* arguments to member functions.
         o transfer() now has weaker requirements s.t. one can transfer objects
           from ptr_container to ptr_container<base>,
   * Python Library:
         o Boost.Python now automatically appends C++ signatures to docstrings.
           The new docstring_options.hpp header is available to control the
           content of docstrings.
         o stl_input_iterator, for turning a Python iterable object into an STL
           input iterator, from Eric Niebler.
         o Support for void* conversions is added.
         o Integrated support for wrapping C++ functions built with the
           parameter library; keyword names are automatically known to
           docsstrings.
         o Enhancements to the API for better embedding support
           (boost::python::import(), boost::python::exec()
            and boost::python::exec_file()).
   * Signals Library:
       More improvements to signal invocation performance from Robert Zeh.
   * Smart Pointers Library:
         o Allocator support as proposed in N1851 (162 Kb PDF).
         o pointer_cast and pointer_to_other utilities to allow
           pointer-independent code, from Ion Gaztanaga.
   * String Algorithm Library:
         o lexicographical_compare
         o join
         o New comparison predicates is_less, is_not_greater.
         o Negative indexes support (like Perl) in various algorihtms
           (*_head/tail, *_nth).
   * Wave Library:
         o Wave now correctly recognizes pp-number tokens as mandated by the
           C++ Standard, which are converted to C++ tokens right before they are
           returned from the library.
         o Several new preprocessing hooks have been added. For a complete
           description please refer to the related documentation page:
           The Context Policy.
         o Shared library (dll) support has been added for the generated Wave
           libraries.
         o The overall error handling has been improved. It is now possible to
           recover and continue after an error or a warning was issued.
         o Support for optional comment and/or full whitespace preservation
           in the generated output stream has been added.
         o The Wave library now performs automatic include guard detection to
           avoid accessing header files more than once, if appropriate.
         o Full interactive mode has been added to the Wave tool. Now the Wave
           tool can be used just like Python or Perl for instance to
           interactively try out your BOOST_PP macros. Additionally it is now
           possible to load and save the current state of an interactive
           session (macro tables et.al.).
         o The overall performance has been improved by upto 40-60%, depending
           on the concrete files to process.
         o Support for new pragmas has been added allowing to control certain
           library features from inside the preprocessed sources (partial
           output redirection, control of generated whitespace and #line
           directives).
         o Optional support for #pragma message "..." has been added.
         o This version also includes a number of bug fixes and usage
           improvements. For a complete list of changes, see the libraries
           change log.

Supported Compilers

 Boost is tested on a wide range of compilers and platforms. Since Boost libraries
 rely on modern C++ features not available in all compilers, not all Boost
 libraries will work with every compiler. The following compilers and platforms
 have been extensively tested with Boost, although many other compilers and
 platforms will work as well. For more information, see the regression test
 results.

   * Apple GCC 4.0.1 on Mac OS X.
   * Borland C++ 5.8.2 on Windows.
   * GNU C++
         o 3.2.x., 3.3.x, 3.4.x, 4.0.x, 4.1.x on Linux
         o 4.1.x on Solaris
         o 3.4.x on Windows
   * HP aC++ A.06.14.
   * Intel C++ 9.1 on Windows, 9.0 on Linux.
   * Metrowerks CodeWarrior 9.4 on Windows.
   * Microsoft Visual C++ 6.0 (sp5, with and without STLport), 7.0, 7.1, 8.0.
     Note: Boost does not support the non-standard "Safe" C++ Library shipping
     with Visual C++ 8.0, which may result in many spurious warnings from Boost
     headers and other standards-conforming C++ code. To suppress these warnings,
     define the macro _SCL_SECURE_NO_DEPRECATE.
   * Sun Studio 11 on Solaris.

Acknowledgements

 Thomas Witt managed this release.

 A great number of people contributed their time and expertise to make this release
 possible. Special thanks go to Vladimir Prus for making Boost.Build version 2 a
 reality, David Abrahams for authoring a new Getting Started guide, Rene Rivera for
 general build and installation support and Greg D. for answering countless questions.

Visual Studio 2005 Service Pack 1 & hotfixes slipstreaming

Недавно надо было сделать прогу подружке, решил сделать на Qt 4.2. Поставил, компилируются пример, получаю

c:\qt\4.1.4\include\qtcore\../../src/corelib/tools/qhash.h(805) : error C2244: 'QMultiHash<key,t>::replace' : unable to match function definition to an existing declaration
     c:\qt\4.1.4\include\qtcore\../../src/corelib/tools/qhash.h(790) : see declaration of 'QMultiHash<key,t>::replace'
     definition
     'QHash<key,t>::iterator QMultiHash<key,t>::replace(const Key &,const T &)'
     existing declarations
     'QHash<key,t>::iterator QMultiHash<key,t>::replace(const Key &,const T &)'

Порывшись в нете нашел это. Ай-яй-яй, регрессионный дефект в компиляторе VC++! Оказалось, есть хотфикс, которого, правда, в открытом доступе нет. Не проблема - нашел. Но, не ставится, говорит что-то там про "is not valid installation package". Ну, что делать - сношу всю студию, все аддоны, примочки и пр. Студия не сносится, сетап вообще не запускается. Помогла утилита Windows Installer Clean Up. Попутно нашел еще тройку патчей - всего получилось 6 (включая SP1).

Вспомнив, как долго у меня ставился SP1, я решил не мучиться (а пришлось бы - патчей то 6 штук, и каждый ставился бы очень долго!) и сделать инсталляцию, в которую все эти патчи будут интегрированы. Тут приблизительная процедура. Все фиксы накатывал как на Visual Studio, так и на Team Explorer...

Шрифты для разработчиков

Я всегда пользовался шрифтом Lucida Console для редактора кода и Verdana для всего остального. С недавнего времени переехал на Consolas. Шрифт обалденно удобный и приятный (антиалиасинг обязателен). Теперь текстовые редакторы в Visual Studio, Eclipse и IDEA выглядят намного лучше.

C++ SOAP Client

Мне было интересно - а чем и как пишут proxy-классы для Web-служб на C++?! Я раньше наткнулся на интересную C++ библиотеку gSOAP и больше ничего подобного не встречал.

Оказалось, в Visual Studio 2005 есть встроенная возможность генерировать проксяки через Add Web Reference для C++, правда нужен ATL проект. Не порадовала куча ограничений на WSDL, т.е. будет работать только с простейшими службами.

Порадовало сравнение производительности gSOAP VS Apache Axis.

MFC. 30 аргументов против

Ok, since you asked it, here it goes:
  • MFC violates C++'s message passing mechanism: virtual methods no longer work, instead you have to search for a method implementation using message maps.
  • if you use the Visual Studio of MFC wizard and something breaks, you are out of luck: it is very hard to fix things.
  • window classes need double creation: first you create the C++ object, then the Win32 window. Extra work for no purpose, since you can not use the C++ object until the C++ window is created.
  • MFC has no layout management. If you want to change text while the application is running, you have to adjust controls yourself.
  • some controls must be deleted by deleting the C++ object, some other controls must be deleted by invoking DestroyWindow, some other controls must be deleted by both Invoking DestroyWindow and deleting the C++ object. Hence the application will most probably leak memory.
  • DDX sucks. MFC does not use the Model-View-Controller pattern, so it is very difficult to do any meaningful editing of data structures through the GUI.
  • MDI children forms can not have controls on them. You have to put controls in dialogs, and dialogs can not be MDI children, unless you hack the system.
  • Win32 is not hidden at all. You have to look up Win32 constantly, even if you use a C++ library. You have to lookup every flag to pass to CreateWindow, for example.
  • Toolbar objects are not controls. In order to place a combobox in a toolbar, you have to hack the toolbar, or superimpose the combobox over some unused buttons.
  • changing tooltip text in toolbar buttons using code is almost impossible: almost everything crashes. You have to malloc string memory which is used by the tooltip structures, but the docs don't say when and how to free it, or if it is copied internally to some buffer.
  • There is no MouseEnter and MouseLeave events. You have to fake them using a special function.
  • the enabled/disabled state of tool buttons is checked only when the message loop detects no mouse and keyboard messages. Therefore it is quite possible to modify the state of a command to disabled, but the command will be shown enabled if the user does something that requires continuous mouse input.
  • functions placed in message maps are not checked for conformance to the required function signature. I once had forgotten to declare a parameter, the compiler quietly accepted it, the debug version was ok, but the release version crushed. There are numerous ways to mess up message maps.
  • Controls in tabs do not belong in the tabs, but in the form the tab is! that means you can not build tab pages with the UI designer, because controls have to be placed on top of each other. You can only do it with code.
  • There is no way to do proper validation of input data in text fields. The text field class does not contain the sufficient methods to properly implement masks.
  • there is not even a way to properly validate data on form acceptance: pressing the OK button does not generate any programmable event, it just invokes the OnOK function of the class of the dialog. If you place another control that must validate data(for example, Apply), the validation code in the OnOK method will not be invoked.
  • there is no way to modify the system menu of a window unless you use Win32.
  • Border type selection also defines the ability of a window to be resized(!!!).
  • MFC not only does not use the MVC model, it doesn't even use callbacks: all controls are send to parent forms: you can not do any useful subclassing of controls in this way.
  • menu items are not objects. If you expected to draw your own menu items by overriding a OnPaint method, you are out of luck: you have to use the horrible mechanism of owner-drawn menus.
  • MFC inherits the horrible Win32 API where some functions regarding rectangles use one more pixel from the right and bottom side of the rectangle. For example, drawing a rectangle inside the coordinates {x=0, y=0, width=100, height=100} will actually draw up to x=100, y=100, thus drawing a rectangle of 101 pixels size.
  • drag-n-drop is really difficult to implement, especially within a tree view. You have to use image lists, and then do the drag-n-drop manually (tree nodes are not recognized, you have to have code in OnMouseMove).
  • thread objects are not automatically deleted when the thread ends, even if autodelete is true. Many leaks from this.
  • the class Lock<t> does not lock the critical section, mutex or semaphore passed to it unless you pass TRUE to the constructor. Which is very silly, and costed me a whole week's trip to the contractor's country because the app was crashing, because I thought that Lock<cmutex> lock1(mutex1) locked the mutex automatically.
  • GUI commands are delivered through the OnCommand messages, making most of the application a big switch statement on the command id. Some may not think this is a big deal, but when you have lots of commands, it is very boring to having to write a case statement for each new id. Plus it makes the application really slow.
  • dialog controls are not classes, unless you map each win32 component to a class. You have to create the control in the UI, then map a member instance to the control. Triple work for achieving the same thing that other toolkits do in a line of code.
  • non-control of the message pump loop makes it really difficult to write any good state-driven code that drives the GUI. You have to write new win32 message ids, post messages in the message queue, and any data the message has, must be put in another parallel queue, because the message queue only takes a WPARAM/LPARAM. Alternatively, you can place the pointer value of your message data in LPARAM, and hoping you remember the correct type afterwards.
  • controls can not have parents other than dialogs or control toolbars. You can not nest controls.
  • radio button frames are treated like tabs: radio buttons are not children of the frame, hence if you move the frame, you have to move the buttons as well.
  • ids of radio buttons must be sequential, otherwise radio buttons will not work, because the API uses the range of IDs to deselect a radio button. Which means that, if you want to insert a new radio button later, you are screwed: you have to edit the control ids by hand.
Overall, MFC is very stupid. My first commercial project was with MFC. A horrible experience. Then I bought Qt and never looked back. MFC is a horrible hack meant to give C++ a bad name and turn programmers away from C++ and onto Visual Basic, which is proprietary. It is no coincidence that only Visual Studio 6 and prior versions use MFC. The Microsoft's flagship products (Office etc) do not use MFC at all (you can test that using Spy++: no AFX classes in other apps except Visual Studio).
Achilleas Margaritis 29 березня 2007 р.

SQL Server 2005 VS Oracle 10g

На моем любимом сайте по Ораклу надыбал вот такое функциональное сравнение SQL Server 2005 и Oracle 10g. Почувствуйте мощь Оракула!

FileHelpers - .NET библиотека для чтения файлов с определенной структурой

Шарился в сети, наткнулся на забавную библиотеку. Обратил внимание, т.к. сам для текущего проекта создавал библиотеку чтения данных досовской программы из бинарного файла (легко расширяется, скорость чтения до ужаса неприличная т.к. используется unsafe code). Из плохого FileHelpers: reflection...

FileHelpers v 2.0 (Click to see the History)

The FileHelpers are a free and easy to use .NET library to import/export data from fixed length or delimited records in files, strings or streams.

.NET Image Processing Library

AForge.NET is a C# framework designed for researchers in the fields of Computer Vision and Artificial Intelligence - image processing, neural networks, genetic algorithms, machine learning, etc.

At this point the framework is comprised of 5 main and some additional libraries:

  • AForge.Imaginga library for image processing routines and filers;
  • AForge.Neuro – neural networks computation library;
  • AForge.Genetic – evolution programming library;
  • AForge.Vision – computer vision library;
  • AForge.Machine Learning – machine learning library.

IntelliJ IDEA Java color scheme

Моя цветовая схема для Java под IntelliJ IDEA.
Закинуть IntelliJIDEAColors.xml в C:\Documents and Settings\USERNAME\.IntelliJIdeaXY\config\colors\MyColors.xml
<?xml version="1.0" encoding="UTF-8"?>
<scheme name="My" version="1" parent_scheme="Default">
  <option name="LINE_SPACING" value="1.0" />
  <option name="EDITOR_FONT_SIZE" value="16" />
  <option name="EDITOR_FONT_NAME" value="Verdana" />
  <colors>
    <option name="CARET_ROW_COLOR" value="ffff00" />
    <option name="MODIFIED_LINES_COLOR" value="ff" />
    <option name="RIGHT_MARGIN_COLOR" value="ff6666" />
  </colors>
  <attributes>
    <option name="ABSTRACT_CLASS_NAME_ATTRIBUTES">
      <value>
        <option name="FOREGROUND" value="8a2be2" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="2" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="ANNOTATION_ATTRIBUTE_NAME_ATTRIBUTES">
      <value>
        <option name="FOREGROUND" value="ff0000" />
        <option name="BACKGROUND" value="ffff00" />
        <option name="FONT_TYPE" value="1" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="ANNOTATION_NAME_ATTRIBUTES">
      <value>
        <option name="FOREGROUND" value="6666" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="1" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="1" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="BAD_CHARACTER">
      <value>
        <option name="FOREGROUND" value="ffffff" />
        <option name="BACKGROUND" value="0" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="3" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="CLASS_NAME_ATTRIBUTES">
      <value>
        <option name="FOREGROUND" value="8a2be2" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="CONSTRUCTOR_CALL_ATTRIBUTES">
      <value>
        <option name="FOREGROUND" value="6666ff" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="1" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="CONSTRUCTOR_DECLARATION_ATTRIBUTES">
      <value>
        <option name="FOREGROUND" value="6666ff" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="1" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="EL.BOUNDS">
      <value>
        <option name="FOREGROUND" value="80" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="1" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="EL.BRACKETS">
      <value>
        <option name="FOREGROUND" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="EL.IDENT">
      <value>
        <option name="FOREGROUND" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="EL.KEYWORD">
      <value>
        <option name="FOREGROUND" value="80" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="1" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="EL.NUMBER">
      <value>
        <option name="FOREGROUND" value="ff" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="EL.PARENTHS">
      <value>
        <option name="FOREGROUND" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="EL.STRING">
      <value>
        <option name="FOREGROUND" value="8000" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="1" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="EL_BACKGROUND">
      <value>
        <option name="FOREGROUND" />
        <option name="BACKGROUND" value="edffed" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="INSTANCE_FIELD_ATTRIBUTES">
      <value>
        <option name="FOREGROUND" value="20b2aa" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="INTERFACE_NAME_ATTRIBUTES">
      <value>
        <option name="FOREGROUND" value="4eff" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="2" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="JAVA_INVALID_STRING_ESCAPE">
      <value>
        <option name="FOREGROUND" value="ff00ff" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" value="0" />
        <option name="EFFECT_TYPE" value="3" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="JAVA_OPERATION_SIGN">
      <value>
        <option name="FOREGROUND" value="99" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="JAVA_STRING">
      <value>
        <option name="FOREGROUND" value="ff00ff" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" value="ffff00" />
      </value>
    </option>
    <option name="JAVA_VALID_STRING_ESCAPE">
      <value>
        <option name="FOREGROUND" value="8080" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="JS.BADCHARACTER">
      <value>
        <option name="FOREGROUND" />
        <option name="BACKGROUND" value="ffcccc" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="JS.BLOCK_COMMENT">
      <value>
        <option name="FOREGROUND" value="808080" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="2" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="JS.BRACES">
      <value>
        <option name="FOREGROUND" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="JS.BRACKETS">
      <value>
        <option name="FOREGROUND" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="JS.COMMA">
      <value>
        <option name="FOREGROUND" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="JS.DOC_COMMENT">
      <value>
        <option name="FOREGROUND" value="808080" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="2" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="JS.DOC_MARKUP">
      <value>
        <option name="FOREGROUND" />
        <option name="BACKGROUND" value="e2ffe2" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="JS.DOC_TAG">
      <value>
        <option name="FOREGROUND" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="1" />
        <option name="EFFECT_COLOR" value="808080" />
        <option name="EFFECT_TYPE" value="1" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="JS.DOT">
      <value>
        <option name="FOREGROUND" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="JS.INVALID_STRING_ESCAPE">
      <value>
        <option name="FOREGROUND" value="8000" />
        <option name="BACKGROUND" value="ffcccc" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="JS.KEYWORD">
      <value>
        <option name="FOREGROUND" value="80" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="1" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="JS.LINE_COMMENT">
      <value>
        <option name="FOREGROUND" value="808080" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="2" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="JS.NUMBER">
      <value>
        <option name="FOREGROUND" value="ff" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="JS.OPERATION_SIGN">
      <value>
        <option name="FOREGROUND" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="JS.PARENTHS">
      <value>
        <option name="FOREGROUND" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="JS.REGEXP">
      <value>
        <option name="FOREGROUND" value="ff" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="-1" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="JS.SEMICOLON">
      <value>
        <option name="FOREGROUND" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="JS.STRING">
      <value>
        <option name="FOREGROUND" value="8000" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="1" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="JS.VALID_STRING_ESCAPE">
      <value>
        <option name="FOREGROUND" value="80" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="1" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="LOCAL_VARIABLE_ATTRIBUTES">
      <value>
        <option name="FOREGROUND" value="778899" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="METHOD_CALL_ATTRIBUTES">
      <value>
        <option name="FOREGROUND" value="dc143c" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="1" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="METHOD_DECLARATION_ATTRIBUTES">
      <value>
        <option name="FOREGROUND" value="ff3300" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="NOT_USED_ELEMENT_ATTRIBUTES">
      <value>
        <option name="FOREGROUND" value="ffffff" />
        <option name="BACKGROUND" value="0" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="3" />
        <option name="ERROR_STRIPE_COLOR" value="0" />
      </value>
    </option>
    <option name="PARAMETER_ATTRIBUTES">
      <value>
        <option name="FOREGROUND" value="8b4513" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="REASSIGNED_LOCAL_VARIABLE_ATTRIBUTES">
      <value>
        <option name="FOREGROUND" value="c0c0c0" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="REASSIGNED_PARAMETER_ATTRIBUTES">
      <value>
        <option name="FOREGROUND" value="cc6600" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="SCOPE_KEY_Problems">
      <value>
        <option name="FOREGROUND" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="SCOPE_KEY_Production">
      <value>
        <option name="FOREGROUND" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="SCOPE_KEY_Project">
      <value>
        <option name="FOREGROUND" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="SCOPE_KEY_Tests">
      <value>
        <option name="FOREGROUND" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="STATIC_FIELD_ATTRIBUTES">
      <value>
        <option name="FOREGROUND" value="800080" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="3" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="STATIC_METHOD_ATTRIBUTES">
      <value>
        <option name="FOREGROUND" value="993300" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="3" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="TYPE_PARAMETER_NAME_ATTRIBUTES">
      <value>
        <option name="FOREGROUND" value="41d225" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="1" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="WARNING_ATTRIBUTES">
      <value>
        <option name="FOREGROUND" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="2" />
        <option name="ERROR_STRIPE_COLOR" value="ffff00" />
      </value>
    </option>
    <option name="WRONG_REFERENCES_ATTRIBUTES">
      <value>
        <option name="FOREGROUND" value="ff0000" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" value="0" />
        <option name="EFFECT_TYPE" value="3" />
        <option name="ERROR_STRIPE_COLOR" value="ff0000" />
      </value>
    </option>
    <option name="XPATH.BRACKET">
      <value>
        <option name="FOREGROUND" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="1" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="XPATH.FUNCTION">
      <value>
        <option name="FOREGROUND" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="2" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="XPATH.KEYWORD">
      <value>
        <option name="FOREGROUND" value="80" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="1" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="XPATH.NUMBER">
      <value>
        <option name="FOREGROUND" value="ff" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="XPATH.OPERATION_SIGN">
      <value>
        <option name="FOREGROUND" value="ff3300" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="XPATH.PARENTH">
      <value>
        <option name="FOREGROUND" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="1" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="XPATH.STRING">
      <value>
        <option name="FOREGROUND" value="ff00ff" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="XPATH.XPATH_NAME">
      <value>
        <option name="FOREGROUND" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="XPATH.XPATH_PREFIX">
      <value>
        <option name="FOREGROUND" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="XPATH.XPATH_TEXT">
      <value>
        <option name="FOREGROUND" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="0" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
    <option name="XPATH.XPATH_VARIABLE">
      <value>
        <option name="FOREGROUND" value="ff3300" />
        <option name="BACKGROUND" />
        <option name="FONT_TYPE" value="1" />
        <option name="EFFECT_COLOR" />
        <option name="EFFECT_TYPE" value="0" />
        <option name="ERROR_STRIPE_COLOR" />
      </value>
    </option>
  </attributes>
</scheme>
 
Copyright 2007-2011 Chabster