Archive

Archive for January, 2009

Master the mailto Syntax

January 28th, 2009 No comments

Let’s assume you maintain the official Whitehouse website and need to create mailto links that will make it easy for visitors to reach the president via email.

  1. Send an email to Barack Obama (single recipient)
    <a href=“mailto:obama@whitehouse.gov”>
  2. Send an email to Barack and Michelle Obama (separate multiple recipients with a comma)
    <a href=“mailto:obama@whitehouse.gov,michelle@whitehouse.gov”>
  3. Send an email to Barack but put Michelle in the CC: list and Joe Biden in the BCC: list
    <a href=“mailto:obama@whitehouse.gov?cc=michelle@whitehouse.gov&bcc=joe@whitehouse.gov”>
  4. Send an email to Barack Obama with the subject “Congrats Obama”
    <a href=”mailto:obama@whitehouse.gov?subject=Congrats%20Obama”>
  5. Send an email to Barack Obama with the subject “Congrats Obama” and some text in the body of the email message
    <a href=”mailto:obama@whitehouse.gov?subject=Congrats%20Obama&body=Enjoy%20your%20stay%0ARegards%20″>

You may use any permutations and combinations while writing a mailto hyperlink but make sure that there’s only one “?” character.

Link

Tags:

AJAX API Playground

January 26th, 2009 No comments

AJAX API Playground – это более 170 примеров использования API восьми сервисов от Google.

Tags: ,

WordPress.tv

January 26th, 2009 No comments

команда разработчиков свободного движка блогов WordPress запустила новый ресурс – wordpress.tv, сайт с видеоуроками по WordPress.
На сайте доступны для просмотра видеоуроки по установке и настройке как автономного движка, так и на сервисе WordPress.com. Там же доступны различные презентации/слайдшоу скрытых возможностей WordPress, интервью с блоггерами из разных стран.

Tags:

GuiMags – прототипирование интерфейса

January 26th, 2009 No comments

Компания GuiMags, выпускает наборы магнитов-контролов, а так же – специальные магнитные доски, позволяющие создавать физические прототипы экранов под различные разрешения (800х600, 1920×1080 и другие).

Tags: , ,

создание .PDB файлов для Release

January 26th, 2009 No comments

Во время компиляции отладочная информация складывается в .obj:

CPP_PROJ_RELEASE=/MT /O2 /Z7
CPP_PROJ_DEBUG=/MTd /Od /Z7

При линковке /debug включает генерацию PDB:

CPP_PROJ=$(CPP_PROJ_COMMON) $(CPP_PROJ_RELEASE) $(CPP_ADD_32) /Zp4
LINK32_FLAGS=$(LINK_COMMON) /debug /incremental:no /machine:i386

параметр lpClass в функции RegCreateKeyEx

January 25th, 2009 No comments
lpClass [in, optional]
The user-defined class type of this key.
This parameter may be ignored.
This parameter can be NULL.

Этот параметр позволяет при создании ключа задать строку, которая будет храниться с этим ключом, пока тот не будет удалён. После создания ключа, параметр не может быть изменён. Эта строка может быть прочитана с помощью функции RegQueryInfoKey.

Qt State-Machine Engine with SCXML

January 17th, 2009 No comments

The Qt SCXML engine is a state-machine engine using Qt. It’s based on W3C’s SCXML standard. It allows for:

  • Bullet-proof business logic
  • Decoupling application flow from graphics/data/engine
  • Dealing with complex asynchronous systems.

Example uses:

  • Implementing system rules. e.g. ‘stop the media-player when an incoming call comes in’
  • Eliminating modal dialogs with a well-defined state flow
  • “Go Back” functionality for easy menu navigation.

Link

Tags:

Artistic Style

January 15th, 2009 No comments

Artistic Style is a source code indenter, formatter, and beautifier for the C, C++, C# and Java programming languages.

When indenting source code, we as programmers have a tendency to use both spaces and tab characters to create the wanted indentation. Moreover, some editors by default insert spaces instead of tabs when pressing the tab key, and other editors (Emacs for example) have the ability to “pretty up” lines by automatically setting up the white space before the code on the line, possibly inserting spaces in a code that up to now used only tabs for indentation.

Since the NUMBER of space characters showed on screen for each tab character in the source code changes between editors (unless the user sets up the number to his liking…), one of the standard problems programmers are facing when moving from one editor to another is that code containing both spaces and tabs that was up to now perfectly indented, suddenly becomes a mess to look at when changing to another editor. Even if you as a programmer take care to ONLY use spaces or tabs, looking at other people’s source code can still be problematic.

To address this problem, Artistic Style was created – a filter written in C++ that automatically re-indents and re-formats C / C++ / C# / Java source files. It can be used from a command line, or it can be incorporated as classes in another C++ program.

Link

Tags:

new and delete

January 14th, 2009 No comments
// Example 1
// Allocation
T* pv = (T*)malloc( sizeof(T) );
// Construction
::new( pv ) T( /*arg-list*/ );
...
// Destruction
pv->T::~T();
// Deallocation
free( pv );

// Example 2
class Blanks
{
public:
  Blanks(){}
  void* operator new( size_t stAllocateBlock, int chInit )
  {
    void* pvTemp = malloc( stAllocateBlock );
    if( pvTemp != 0 )
    {
      memset( pvTemp, chInit, stAllocateBlock );
    }
    return pvTemp;
  }
};
// For discrete objects of type Blanks, the global operator new function
// is hidden. Therefore, the following code allocates an object of type
// Blanks and initializes it to 0xa5
Blanks *a5 = new(0xa5) Blanks;
bool b = a5 != 0;

std::map – копирование элементов

January 14th, 2009 No comments
std::map<wstring, wstring> map1;
std::map<wstring, wstring> map2(map1);
std::map<wstring, wstring> map3(map2.begin(), map2.end());

map1.insert(map3.begin(), map3.end());
map2 = map3;
std::copy(map2.begin(), map2.end(), inserter(map1, map1.end()));