marcell mars's Library tagged → View Popular
Clojure
Clojure is a dynamic programming language that targets the Java Virtual Machine. It is designed to be a general-purpose language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming. Clojure is a compiled language - it compiles directly to JVM bytecode, yet remains completely dynamic. Every feature supported by Clojure is supported at runtime. Clojure provides easy access to the Java frameworks, with optional type hints and type inference, to ensure that calls to Java can avoid reflection. Clojure is a dialect of Lisp, and shares with Lisp the code-as-data philosophy and a powerful macro system. Clojure is predominantly a functional programming language, and features a rich set of immutable, persistent data structures. When mutable state is needed, Clojure offers a software transactional memory system and reactive Agent system that ensure clean, correct, multithreaded designs.
-
<script type="text/javascript">
<!--
var autosaveDetected = false;
var checkoutStatus = '';
var checkoutUser = '';
var checkoutMessage = '';
function disableEditButton(element) {
if (element.className == 'WikiPageMenuEditButton') {
element.className='WikiPageMenuEditButtonDisabled';
}
jQuery(element).unbind("click");
element.style.cursor='default';
element.href='#';
return true;
}
function enableEditButton(element) {
log('enabledEditButton');
if (element.className == 'WikiPageMenuEditButtonDisabled') {
element.className='WikiPageMenuEditButton';
}
jQuery(element).click(function() {
jQuery('.WikiNotice').remove();
jQuery('.WikiBanner').remove();
try {
disableEditButton(element);
showFiles();
editorEnable();
return false;
} catch (e) {
element.href = '/page/edit/' + encodeURIComponent(wikispaces_page);
redirectToEditPage(false);
return true;
}
});
element.style.cursor='pointer';
element.href='/page/edit/' + encodeURIComponent(wikispaces_page);
return true;
}
function editorEnable() {
if (navigator.userAgent.toLowerCase().indexOf('safari') + 1 ||
navigator.userAgent.toLowerCase().indexOf('opera') + 1) {
redirectToEditPage(true);
exit();
}
try {
var url = '/page/dump/' + encodeURIComponent(wikispaces_page) + '?format=Wikispaces2';
jQuery.ajax({ url: url, type: "GET", timeout: 2000, global: false, error: redirectToEditPageCallback, success: editorEnableCallback });
} catch (e) {
redirectToEditPage(false);
}
}
function redirectToEditPageCallback(request, errorString, errorException) {
log('redirectToEditPageCallback');
redirectToEditPage(false);
}
function redirectToEditPage(textEditor) {
log('redirectToEditPage');
document.location = '/page/edit/' + encodeURIComponent(wikispaces_page) + (textEditor ? '?texteditor=1' : '');
}
function editorEnableCallback(xml) {
log('editorEnableCallback');
// Load the fetched XML and set it up for the editor
if (loadXMLData(xml)) {
if (checkoutStatus == 'locked' && (!wikispaces_isUserLoggedIn || checkoutUser != wikispaces_username)) {
alert(checkoutMessage);
enableEditButton(document.getElementById('editButton'));
return false;
}
// Fade before autosave or editor starts, so that we don't fade the popup windows
fadeEditor();
// Setup autosave
if (autosaveDetected) {
log('autosaveDetected');
if (typeof(Dialog) != 'undefined') {
if (typeof(showAutosavePopup) != 'undefined') {
log('showAutosavePopup');
showAutosavePopup();
} else {
log('ERROR: undefined showAutosavePopup');
redirectToEditPage(false);
return false;
}
} else {
log('ERROR: undefined Dialog');
redirectToEditPage(false);
return false;
}
} else {
//Only start the autosave loop after the modal autosave popup has closed or if it wasn't displayed
log('autosaveLoop setTimeout');
setTimeout("autosaveLoop()", 1000);
}
jQuery('#editor_wrap').show();
if (customEditorStart('WikispacesEditorContentHidden')) {
jQuery('#WikiTags').hide();
jQuery('#content_view').hide();
jQuery('#WikiAds').hide();
o = jQuery('#WikiAdMargin');
if (o) {
o.css('marginRight', 0);
}
return true;
} else {
log('customEditorStart failed');
}
}
// Something failed, and we're in a callback, so we have to change the page location to the edit page like this
redirectToEditPage(false);
}
function loadXMLData(xml) {
log('loadXMLData');
try {
var contentBlock = xml.getElementsByTagName('dump')[0].getElementsByTagName('content')[0];
var wikiPageData = '';
if (contentBlock && contentBlock.childNodes.length > 0) {
for (var i = 0; i < contentBlock.childNodes.length; i++) {
wikiPageData += contentBlock.childNodes[i].nodeValue;
}
}
var versionBlock = xml.getElementsByTagName('dump')[0].getElementsByTagName('version')[0]
if (versionBlock && versionBlock.firstChild) {
version = versionBlock.firstChild.nodeValue;
}
// If we got back a version, but not any data
if (!wikiPageData && version != 0) {
return false;
}
// Store loaded page data in the same place that the edit page would have it
if (wikiPageData) {
document.getElementById('WikispacesEditorContentHidden').innerHTML = wikiPageData;
}
checkoutStatus = xml.getElementsByTagName('checkout')[0].getElementsByTagName('checkoutStatus')[0].firstChild.nodeValue;
if (checkoutStatus == 'locked') {
checkoutUser = xml.getElementsByTagName('checkout')[0].getElementsByTagName('checkoutUser')[0].firstChild.nodeValue;
var checkoutDate = xml.getElementsByTagName('checkout')[0].getElementsByTagName('checkoutDate')[0].firstChild.nodeValue;
var checkoutRefreshDate = xml.getElementsByTagName('checkout')[0].getElementsByTagName('checkoutRefreshDate')[0].firstChild.nodeValue;
checkoutMessage = 'This page was locked for editing by ' + checkoutUser + ' on ' + checkoutDate + '. The page will be available for editing after the changes have been saved.';
}
if (xml.getElementsByTagName('dump')[0].getElementsByTagName('autosave').length > 0) {
var autosaveRoot = xml.getElementsByTagName('dump')[0].getElementsByTagName('autosave')[0];
var autosaveContentBlock = autosaveRoot.getElementsByTagName('autosaveContent')[0];
var autosaveContent = '';
if (autosaveContentBlock && autosaveContentBlock.childNodes.length > 0) {
for (var i = 0; i < autosaveContentBlock.childNodes.length; i++) {
autosaveContent += autosaveContentBlock.childNodes[i].nodeValue;
}
}
var autosaveDate = autosaveRoot.getElementsByTagName('autosaveDate')[0].firstChild.nodeValue;
autosaveVersion = autosaveRoot.getElementsByTagName('autosaveVersion')[0].firstChild.nodeValue;
document.getElementById('autosavePrompt').innerHTML = '<h1>Draft Recovered</h1><p class="wikispaces_p">We have recovered an unsaved draft of this page, created ' + autosaveDate + '.</p>' +
(autosaveVersion != version ? '<p class="wikispaces_p">However, another person has edited this page since your last draft. If you continue, their changes will be overwritten. To view these changes, <a href="/page/diff/' + encodeURIComponent(wikispaces_page) + '?v1=' + autosaveVersion + '&v2=' + version + '">click here</a>.</p>' : '');
jQuery('#autosaveContent').val(autosaveContent);
autosaveDetected = true;
}
return true;
} catch (e) {
return false;
}
}
// Link the edit button to the dynamic in-page editor and remove the href to the standalone editor
jQuery(document).ready(function() {
if (document.getElementById('editButton')) {
enableEditButton(document.getElementById('editButton'));
}
} );
//-->
</script>
<!-- The wiki div is styled in the customizable stylesheet -->

<!-- google_ad_section_start -->
Clojure is a dynamic programming language that targets the Java Virtual Machine. It is designed to be a general-purpose language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming. Clojure is a compiled language - it compiles directly to JVM bytecode, yet remains completely dynamic. Every feature supported by Clojure is supported at runtime. Clojure provides easy access to the Java frameworks, with optional type hints and type inference, to ensure that calls to Java can avoid reflection.
Clojure is a dialect of Lisp, and shares with Lisp the code-as-data philosophy and a powerful macro system. Clojure is predominantly a functional programming language, and features a rich set of immutable, persistent data structures. When mutable state is needed, Clojure offers a software transactional memory system and reactive Agent system that ensure clean, correct, multithreaded designs.
linux:devilspie [foosel.net]
-
A window-matching utility, inspired by Sawfish's “Matched Windows” option and the lack of the functionality in Metacity. Metacity lacking window matching is not a bad thing — Metacity is a lean window manager, and window matching does not have to be a window manager task. Devil's Pie can be configured to detect windows as they are created, and match the window to a set of rules. If the window matches the rules, it can perform a series of actions on that window. For example, I can make all windows created by X-Chat appear on all workspaces, and the main Gkrellm1 window does not appear in the pager or task list
Selected Tags
Related Tags
Sponsored Links
Top Contributors
Groups interested in lisp
-
programming
Items: 73 | Visits: 1
Created by: Kazuya Sakakihara
Diigo is about better ways to research, share and collaborate on information. Learn more »
Join Diigo
