Click here to Skip to main content
15,884,473 members
Articles / Web Development / ASP.NET

HTMLEditor Provider - How to write a custom provider for ASP.NET 2.0

Rate me:
Please Sign up or sign in to vote.
4.75/5 (29 votes)
5 Sep 200614 min read 122.2K   2.4K   123  
A tutorial on how to use the Provider Templates to create your own provider.
/*
 * FCKeditor - The text editor for internet
 * Copyright (C) 2003-2006 Frederico Caldeira Knabben
 * 
 * Licensed under the terms of the GNU Lesser General Public License:
 * 		http://www.opensource.org/licenses/lgpl-license.php
 * 
 * For further information visit:
 * 		http://www.fckeditor.net/
 * 
 * "Support Open Source software. What about a donation today?"
 * 
 * File Name: ms.js
 * 	Malay language file.
 * 
 * File Authors:
 * 		Fairul Izham Mohd Mokhlas (eg86@hotmail.com)
 */

var FCKLang =
{
// Language direction : "ltr" (left to right) or "rtl" (right to left).
Dir					: "ltr",

ToolbarCollapse		: "Collapse Toolbar",
ToolbarExpand		: "Expand Toolbar",

// Toolbar Items and Context Menu
Save				: "Simpan",
NewPage				: "Helaian Baru",
Preview				: "Prebiu",
Cut					: "Potong",
Copy				: "Salin",
Paste				: "Tampal",
PasteText			: "Tampal sebagai Text Biasa",
PasteWord			: "Tampal dari Word",
Print				: "Cetak",
SelectAll			: "Pilih Semua",
RemoveFormat		: "Buang Format",
InsertLinkLbl		: "Sambungan",
InsertLink			: "Masukkan/Sunting Sambungan",
RemoveLink			: "Buang Sambungan",
Anchor				: "Masukkan/Sunting Pautan",
InsertImageLbl		: "Gambar",
InsertImage			: "Masukkan/Sunting Gambar",
InsertFlashLbl		: "Flash",	//MISSING
InsertFlash			: "Insert/Edit Flash",	//MISSING
InsertTableLbl		: "Jadual",
InsertTable			: "Masukkan/Sunting Jadual",
InsertLineLbl		: "Garisan",
InsertLine			: "Masukkan Garisan Membujur",
InsertSpecialCharLbl: "Huruf Istimewa",
InsertSpecialChar	: "Masukkan Huruf Istimewa",
InsertSmileyLbl		: "Smiley",
InsertSmiley		: "Masukkan Smiley",
About				: "Tentang FCKeditor",
Bold				: "Bold",
Italic				: "Italic",
Underline			: "Underline",
StrikeThrough		: "Strike Through",
Subscript			: "Subscript",
Superscript			: "Superscript",
LeftJustify			: "Jajaran Kiri",
CenterJustify		: "Jajaran Tengah",
RightJustify		: "Jajaran Kanan",
BlockJustify		: "Jajaran Blok",
DecreaseIndent		: "Kurangkan Inden",
IncreaseIndent		: "Tambahkan Inden",
Undo				: "Batalkan",
Redo				: "Ulangkan",
NumberedListLbl		: "Senarai bernombor",
NumberedList		: "Masukkan/Sunting Senarai bernombor",
BulletedListLbl		: "Senarai tidak bernombor",
BulletedList		: "Masukkan/Sunting Senarai tidak bernombor",
ShowTableBorders	: "Tunjukkan Border Jadual",
ShowDetails			: "Tunjukkan Butiran",
Style				: "Stail",
FontFormat			: "Format",
Font				: "Font",
FontSize			: "Saiz",
TextColor			: "Warna Text",
BGColor				: "Warna Latarbelakang",
Source				: "Sumber",
Find				: "Cari",
Replace				: "Ganti",
SpellCheck			: "Semak Ejaan",
UniversalKeyboard	: "Papan Kekunci Universal",
PageBreakLbl		: "Page Break",	//MISSING
PageBreak			: "Insert Page Break",	//MISSING

Form			: "Borang",
Checkbox		: "Checkbox",
RadioButton		: "Butang Radio",
TextField		: "Text Field",
Textarea		: "Textarea",
HiddenField		: "Field Tersembunyi",
Button			: "Butang",
SelectionField	: "Field Pilihan",
ImageButton		: "Butang Bergambar",

FitWindow		: "Maximize the editor size",	//MISSING

// Context Menu
EditLink			: "Sunting Sambungan",
CellCM				: "Cell",	//MISSING
RowCM				: "Row",	//MISSING
ColumnCM			: "Column",	//MISSING
InsertRow			: "Masukkan Baris",
DeleteRows			: "Buangkan Baris",
InsertColumn		: "Masukkan Lajur",
DeleteColumns		: "Buangkan Lajur",
InsertCell			: "Masukkan Sel",
DeleteCells			: "Buangkan Sel-sel",
MergeCells			: "Cantumkan Sel-sel",
SplitCell			: "Bahagikan Sel",
TableDelete			: "Delete Table",	//MISSING
CellProperties		: "Ciri-ciri Sel",
TableProperties		: "Ciri-ciri Jadual",
ImageProperties		: "Ciri-ciri Gambar",
FlashProperties		: "Flash Properties",	//MISSING

AnchorProp			: "Ciri-ciri Pautan",
ButtonProp			: "Ciri-ciri Butang",
CheckboxProp		: "Ciri-ciri Checkbox",
HiddenFieldProp		: "Ciri-ciri Field Tersembunyi",
RadioButtonProp		: "Ciri-ciri Butang Radio",
ImageButtonProp		: "Ciri-ciri Butang Bergambar",
TextFieldProp		: "Ciri-ciri Text Field",
SelectionFieldProp	: "Ciri-ciri Selection Field",
TextareaProp		: "Ciri-ciri Textarea",
FormProp			: "Ciri-ciri Borang",

FontFormats			: "Normal;Telah Diformat;Alamat;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Perenggan (DIV)",

// Alerts and Messages
ProcessingXHTML		: "Memproses XHTML. Sila tunggu...",
Done				: "Siap",
PasteWordConfirm	: "Text yang anda hendak tampal adalah berasal dari Word. Adakah anda mahu membuang semua format Word sebelum tampal ke dalam text?",
NotCompatiblePaste	: "Arahan ini bole dilakukan jika anda mempuunyai Internet Explorer version 5.5 atau yang lebih tinggi. Adakah anda hendak tampal text tanpa membuang format Word?",
UnknownToolbarItem	: "Toolbar item tidak diketahui\"%1\"",
UnknownCommand		: "Arahan tidak diketahui \"%1\"",
NotImplemented		: "Arahan tidak terdapat didalam sistem",
UnknownToolbarSet	: "Set toolbar \"%1\" tidak wujud",
NoActiveX			: "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.",	//MISSING
BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.",	//MISSING
DialogBlocked		: "It was not possible to open the dialog window. Make sure all popup blockers are disabled.",	//MISSING

// Dialogs
DlgBtnOK			: "OK",
DlgBtnCancel		: "Batal",
DlgBtnClose			: "Tutup",
DlgBtnBrowseServer	: "Browse Server",
DlgAdvancedTag		: "Advanced",
DlgOpOther			: "<Lain-lain>",
DlgInfoTab			: "Info",	//MISSING
DlgAlertUrl			: "Please insert the URL",	//MISSING

// General Dialogs Labels
DlgGenNotSet		: "<tidak di set>",
DlgGenId			: "Id",
DlgGenLangDir		: "Arah Tulisan",
DlgGenLangDirLtr	: "Kiri ke Kanan (LTR)",
DlgGenLangDirRtl	: "Kanan ke Kiri (RTL)",
DlgGenLangCode		: "Kod Bahasa",
DlgGenAccessKey		: "Kunci Akses",
DlgGenName			: "Nama",
DlgGenTabIndex		: "Indeks Tab ",
DlgGenLongDescr		: "Butiran Panjang URL",
DlgGenClass			: "Kelas-kelas Stylesheet",
DlgGenTitle			: "Tajuk Makluman",
DlgGenContType		: "Jenis Kandungan Makluman",
DlgGenLinkCharset	: "Linked Resource Charset",
DlgGenStyle			: "Stail",

// Image Dialog
DlgImgTitle			: "Ciri-ciri Imej",
DlgImgInfoTab		: "Info Imej",
DlgImgBtnUpload		: "Hantar ke Server",
DlgImgURL			: "URL",
DlgImgUpload		: "Muat Naik",
DlgImgAlt			: "Text Alternatif",
DlgImgWidth			: "Lebar",
DlgImgHeight		: "Tinggi",
DlgImgLockRatio		: "Tetapkan Nisbah",
DlgBtnResetSize		: "Saiz Set Semula",
DlgImgBorder		: "Border",
DlgImgHSpace		: "Ruang Melintang",
DlgImgVSpace		: "Ruang Menegak",
DlgImgAlign			: "Jajaran",
DlgImgAlignLeft		: "Kiri",
DlgImgAlignAbsBottom: "Bawah Mutlak",
DlgImgAlignAbsMiddle: "Pertengahan Mutlak",
DlgImgAlignBaseline	: "Garis Dasar",
DlgImgAlignBottom	: "Bawah",
DlgImgAlignMiddle	: "Pertengahan",
DlgImgAlignRight	: "Kanan",
DlgImgAlignTextTop	: "Atas Text",
DlgImgAlignTop		: "Atas",
DlgImgPreview		: "Prebiu",
DlgImgAlertUrl		: "Sila taip URL untuk fail gambar",
DlgImgLinkTab		: "Sambungan",

// Flash Dialog
DlgFlashTitle		: "Flash Properties",	//MISSING
DlgFlashChkPlay		: "Auto Play",	//MISSING
DlgFlashChkLoop		: "Loop",	//MISSING
DlgFlashChkMenu		: "Enable Flash Menu",	//MISSING
DlgFlashScale		: "Scale",	//MISSING
DlgFlashScaleAll	: "Show all",	//MISSING
DlgFlashScaleNoBorder	: "No Border",	//MISSING
DlgFlashScaleFit	: "Exact Fit",	//MISSING

// Link Dialog
DlgLnkWindowTitle	: "Sambungan",
DlgLnkInfoTab		: "Butiran Sambungan",
DlgLnkTargetTab		: "Sasaran",

DlgLnkType			: "Jenis Sambungan",
DlgLnkTypeURL		: "URL",
DlgLnkTypeAnchor	: "Pautan dalam muka surat ini",
DlgLnkTypeEMail		: "E-Mail",
DlgLnkProto			: "Protokol",
DlgLnkProtoOther	: "<lain-lain>",
DlgLnkURL			: "URL",
DlgLnkAnchorSel		: "Sila pilih pautan",
DlgLnkAnchorByName	: "dengan menggunakan nama pautan",
DlgLnkAnchorById	: "dengan menggunakan ID elemen",
DlgLnkNoAnchors		: "<Tiada pautan terdapat dalam dokumen ini>",
DlgLnkEMail			: "Alamat E-Mail",
DlgLnkEMailSubject	: "Subjek Mesej",
DlgLnkEMailBody		: "Isi Kandungan Mesej",
DlgLnkUpload		: "Muat Naik",
DlgLnkBtnUpload		: "Hantar ke Server",

DlgLnkTarget		: "Sasaran",
DlgLnkTargetFrame	: "<bingkai>",
DlgLnkTargetPopup	: "<tetingkap popup>",
DlgLnkTargetBlank	: "Tetingkap Baru (_blank)",
DlgLnkTargetParent	: "Tetingkap Parent (_parent)",
DlgLnkTargetSelf	: "Tetingkap yang Sama (_self)",
DlgLnkTargetTop		: "Tetingkap yang paling atas (_top)",
DlgLnkTargetFrameName	: "Nama Bingkai Sasaran",
DlgLnkPopWinName	: "Nama Tetingkap Popup",
DlgLnkPopWinFeat	: "Ciri Tetingkap Popup",
DlgLnkPopResize		: "Saiz bolehubah",
DlgLnkPopLocation	: "Bar Lokasi",
DlgLnkPopMenu		: "Bar Menu",
DlgLnkPopScroll		: "Bar-bar skrol",
DlgLnkPopStatus		: "Bar Status",
DlgLnkPopToolbar	: "Toolbar",
DlgLnkPopFullScrn	: "Skrin Penuh (IE)",
DlgLnkPopDependent	: "Bergantungan (Netscape)",
DlgLnkPopWidth		: "Lebar",
DlgLnkPopHeight		: "Tinggi",
DlgLnkPopLeft		: "Posisi Kiri",
DlgLnkPopTop		: "Posisi Atas",

DlnLnkMsgNoUrl		: "Sila taip sambungan URL",
DlnLnkMsgNoEMail	: "Sila taip alamat e-mail",
DlnLnkMsgNoAnchor	: "Sila pilih pautan berkenaaan",

// Color Dialog
DlgColorTitle		: "Pilihan Warna",
DlgColorBtnClear	: "Nyahwarna",
DlgColorHighlight	: "Terang",
DlgColorSelected	: "Dipilih",

// Smiley Dialog
DlgSmileyTitle		: "Masukkan Smiley",

// Special Character Dialog
DlgSpecialCharTitle	: "Sila pilih huruf istimewa",

// Table Dialog
DlgTableTitle		: "Ciri-ciri Jadual",
DlgTableRows		: "Barisan",
DlgTableColumns		: "Jaluran",
DlgTableBorder		: "Saiz Border",
DlgTableAlign		: "Penjajaran",
DlgTableAlignNotSet	: "<Tidak diset>",
DlgTableAlignLeft	: "Kiri",
DlgTableAlignCenter	: "Tengah",
DlgTableAlignRight	: "Kanan",
DlgTableWidth		: "Lebar",
DlgTableWidthPx		: "piksel-piksel",
DlgTableWidthPc		: "peratus",
DlgTableHeight		: "Tinggi",
DlgTableCellSpace	: "Ruangan Antara Sel",
DlgTableCellPad		: "Tambahan Ruang Sel",
DlgTableCaption		: "Keterangan",
DlgTableSummary		: "Summary",	//MISSING

// Table Cell Dialog
DlgCellTitle		: "Ciri-ciri Sel",
DlgCellWidth		: "Lebar",
DlgCellWidthPx		: "piksel-piksel",
DlgCellWidthPc		: "peratus",
DlgCellHeight		: "Tinggi",
DlgCellWordWrap		: "Mengulung Perkataan",
DlgCellWordWrapNotSet	: "<Tidak diset>",
DlgCellWordWrapYes	: "Ya",
DlgCellWordWrapNo	: "Tidak",
DlgCellHorAlign		: "Jajaran Membujur",
DlgCellHorAlignNotSet	: "<Tidak diset>",
DlgCellHorAlignLeft	: "Kiri",
DlgCellHorAlignCenter	: "Tengah",
DlgCellHorAlignRight: "Kanan",
DlgCellVerAlign		: "Jajaran Menegak",
DlgCellVerAlignNotSet	: "<Tidak diset>",
DlgCellVerAlignTop	: "Atas",
DlgCellVerAlignMiddle	: "Tengah",
DlgCellVerAlignBottom	: "Bawah",
DlgCellVerAlignBaseline	: "Garis Dasar",
DlgCellRowSpan		: "Penggunaan Baris",
DlgCellCollSpan		: "Penggunaan Lajur",
DlgCellBackColor	: "Warna Latarbelakang",
DlgCellBorderColor	: "Warna Border",
DlgCellBtnSelect	: "Pilih...",

// Find Dialog
DlgFindTitle		: "Carian",
DlgFindFindBtn		: "Cari",
DlgFindNotFoundMsg	: "Text yang dicari tidak dijumpai.",

// Replace Dialog
DlgReplaceTitle			: "Gantian",
DlgReplaceFindLbl		: "Perkataan yang dicari:",
DlgReplaceReplaceLbl	: "Diganti dengan:",
DlgReplaceCaseChk		: "Padanan case huruf",
DlgReplaceReplaceBtn	: "Ganti",
DlgReplaceReplAllBtn	: "Ganti semua",
DlgReplaceWordChk		: "Padana Keseluruhan perkataan",

// Paste Operations / Dialog
PasteErrorPaste	: "Keselamatan perisian browser anda tidak membenarkan operasi tampalan text/imej. Sila gunakan papan kekunci (Ctrl+V).",
PasteErrorCut	: "Keselamatan perisian browser anda tidak membenarkan operasi suntingan text/imej. Sila gunakan papan kekunci (Ctrl+X).",
PasteErrorCopy	: "Keselamatan perisian browser anda tidak membenarkan operasi salinan text/imej. Sila gunakan papan kekunci (Ctrl+C).",

PasteAsText		: "Tampal sebagai text biasa",
PasteFromWord	: "Tampal dari perisian \"Word\"",

DlgPasteMsg2	: "Please paste inside the following box using the keyboard (<STRONG>Ctrl+V</STRONG>) and hit <STRONG>OK</STRONG>.",	//MISSING
DlgPasteIgnoreFont		: "Ignore Font Face definitions",	//MISSING
DlgPasteRemoveStyles	: "Remove Styles definitions",	//MISSING
DlgPasteCleanBox		: "Clean Up Box",	//MISSING

// Color Picker
ColorAutomatic	: "Otomatik",
ColorMoreColors	: "Warna lain-lain...",

// Document Properties
DocProps		: "Ciri-ciri dokumen",

// Anchor Dialog
DlgAnchorTitle		: "Ciri-ciri Pautan",
DlgAnchorName		: "Nama Pautan",
DlgAnchorErrorName	: "Sila taip nama pautan",

// Speller Pages Dialog
DlgSpellNotInDic		: "Tidak terdapat didalam kamus",
DlgSpellChangeTo		: "Tukarkan kepada",
DlgSpellBtnIgnore		: "Biar",
DlgSpellBtnIgnoreAll	: "Biarkan semua",
DlgSpellBtnReplace		: "Ganti",
DlgSpellBtnReplaceAll	: "Gantikan Semua",
DlgSpellBtnUndo			: "Batalkan",
DlgSpellNoSuggestions	: "- Tiada cadangan -",
DlgSpellProgress		: "Pemeriksaan ejaan sedang diproses...",
DlgSpellNoMispell		: "Pemeriksaan ejaan siap: Tiada salah ejaan",
DlgSpellNoChanges		: "Pemeriksaan ejaan siap: Tiada perkataan diubah",
DlgSpellOneChange		: "Pemeriksaan ejaan siap: Satu perkataan telah diubah",
DlgSpellManyChanges		: "Pemeriksaan ejaan siap: %1 perkataan diubah",

IeSpellDownload			: "Pemeriksa ejaan tidak dipasang. Adakah anda mahu muat turun sekarang?",

// Button Dialog
DlgButtonText	: "Teks (Nilai)",
DlgButtonType	: "Jenis",

// Checkbox and Radio Button Dialogs
DlgCheckboxName		: "Nama",
DlgCheckboxValue	: "Nilai",
DlgCheckboxSelected	: "Dipilih",

// Form Dialog
DlgFormName		: "Nama",
DlgFormAction	: "Tindakan borang",
DlgFormMethod	: "Cara borang dihantar",

// Select Field Dialog
DlgSelectName		: "Nama",
DlgSelectValue		: "Nilai",
DlgSelectSize		: "Saiz",
DlgSelectLines		: "garisan",
DlgSelectChkMulti	: "Benarkan pilihan pelbagai",
DlgSelectOpAvail	: "Pilihan sediada",
DlgSelectOpText		: "Teks",
DlgSelectOpValue	: "Nilai",
DlgSelectBtnAdd		: "Tambah Pilihan",
DlgSelectBtnModify	: "Ubah Pilihan",
DlgSelectBtnUp		: "Naik ke atas",
DlgSelectBtnDown	: "Turun ke bawah",
DlgSelectBtnSetValue : "Set sebagai nilai terpilih",
DlgSelectBtnDelete	: "Padam",

// Textarea Dialog
DlgTextareaName	: "Nama",
DlgTextareaCols	: "Lajur",
DlgTextareaRows	: "Baris",

// Text Field Dialog
DlgTextName			: "Nama",
DlgTextValue		: "Nilai",
DlgTextCharWidth	: "Lebar isian",
DlgTextMaxChars		: "Isian Maksimum",
DlgTextType			: "Jenis",
DlgTextTypeText		: "Teks",
DlgTextTypePass		: "Kata Laluan",

// Hidden Field Dialog
DlgHiddenName	: "Nama",
DlgHiddenValue	: "Nilai",

// Bulleted List Dialog
BulletedListProp	: "Ciri-ciri senarai berpeluru",
NumberedListProp	: "Ciri-ciri senarai bernombor",
DlgLstType			: "Jenis",
DlgLstTypeCircle	: "Circle",
DlgLstTypeDisc		: "Disc",	//MISSING
DlgLstTypeSquare	: "Square",
DlgLstTypeNumbers	: "Nombor-nombor (1, 2, 3)",
DlgLstTypeLCase		: "Huruf-huruf kecil (a, b, c)",
DlgLstTypeUCase		: "Huruf-huruf besar (A, B, C)",
DlgLstTypeSRoman	: "Nombor Roman Kecil (i, ii, iii)",
DlgLstTypeLRoman	: "Nombor Roman Besar (I, II, III)",

// Document Properties Dialog
DlgDocGeneralTab	: "Umum",
DlgDocBackTab		: "Latarbelakang",
DlgDocColorsTab		: "Warna dan margin",
DlgDocMetaTab		: "Data Meta",

DlgDocPageTitle		: "Tajuk Muka Surat",
DlgDocLangDir		: "Arah Tulisan",
DlgDocLangDirLTR	: "Kiri ke Kanan (LTR)",
DlgDocLangDirRTL	: "Kanan ke Kiri (RTL)",
DlgDocLangCode		: "Kod Bahasa",
DlgDocCharSet		: "Enkod Set Huruf",
DlgDocCharSetOther	: "Enkod Set Huruf yang Lain",

DlgDocDocType		: "Jenis Kepala Dokumen",
DlgDocDocTypeOther	: "Jenis Kepala Dokumen yang Lain",
DlgDocIncXHTML		: "Masukkan pemula kod XHTML",
DlgDocBgColor		: "Warna Latarbelakang",
DlgDocBgImage		: "URL Gambar Latarbelakang",
DlgDocBgNoScroll	: "Imej Latarbelakang tanpa Skrol",
DlgDocCText			: "Teks",
DlgDocCLink			: "Sambungan",
DlgDocCVisited		: "Sambungan telah Dilawati",
DlgDocCActive		: "Sambungan Aktif",
DlgDocMargins		: "Margin Muka Surat",
DlgDocMaTop			: "Atas",
DlgDocMaLeft		: "Kiri",
DlgDocMaRight		: "Kanan",
DlgDocMaBottom		: "Bawah",
DlgDocMeIndex		: "Kata Kunci Indeks Dokumen (dipisahkan oleh koma)",
DlgDocMeDescr		: "Keterangan Dokumen",
DlgDocMeAuthor		: "Penulis",
DlgDocMeCopy		: "Hakcipta",
DlgDocPreview		: "Prebiu",

// Templates Dialog
Templates			: "Templat",
DlgTemplatesTitle	: "Templat Kandungan",
DlgTemplatesSelMsg	: "Sila pilih templat untuk dibuka oleh editor<br>(kandungan sebenar akan hilang):",
DlgTemplatesLoading	: "Senarai Templat sedang diproses. Sila Tunggu...",
DlgTemplatesNoTpl	: "(Tiada Templat Disimpan)",

// About Dialog
DlgAboutAboutTab	: "Tentang",
DlgAboutBrowserInfoTab	: "Maklumat Perisian Browser",
DlgAboutLicenseTab	: "License",	//MISSING
DlgAboutVersion		: "versi",
DlgAboutLicense		: "Perlesenan dibawah terma GNU Lesser General Public License",
DlgAboutInfo		: "Untuk maklumat lanjut sila pergi ke"
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Systems Engineer Virtual RadioLogic
United States United States
Todd Davis has been working in web and application development for several years, using Silverlight, ASP.NET, VB.NET, C#, C++ and Javascript, as well as a great deal of work with SQL server and IIS.

He currently works for Virtual Radiologic in Eden Prairie, MN, however he is better known for his varied work in the open source community, especially the DotNetNuke project for which he provided several world-renowned training videos and modules. A huge advocate of open source and open knowledge sharing, everything on his website (www.SeaburyDesign.com) is always offered for free.

Whenever he is not actively coding at his laptop (a rarity to be sure), he can be found woodworking, walking with his wife and kids, or motoring along the back roads of MN on his Harley Davidson Fatboy.

Comments and Discussions