Kategorie-Archiv: coding

How to reduce auto-completion popup delay in NetBeans 7

I’m not an Eclipse person, as I could finally notice – I simply can’t get beyond eclipse’s projecting and addin system..I’m probably too stupid, stubborn or something like that, but well, I’m happy exclusively with NetBeans.
Now as I recently got to use it again for a new university project, I noticed that the auto-completion speed wasn’t so perfect.. Essentially, everything required to minimize that artificial delay between a key type and the completion list popup is to put a
<entry name="completion-auto-popup-delay" value="0" />
between the <editor-preferences> tags in the ~/.netbeans/7.3.1/config/Editors/Preferences/org-netbeans-modules-editor-settings-CustomPreferences.xml file

Finally got some motivation for a new project!

An SDL2-binding for the Xwt framework while using OpenGL for drawing 2D UI components. Yes, it is theoretically redundant work as there are good UI toolkits out there, also for Mono/.Net, but well..I’m still young, I’ve got the time for doing it :)

Link to the project repository.

During the last couple of days I could even figure out an internal SDL bug! The event loop and basic lw-level component adaption runs nicely – more details will follow soon!

AngularJS, Bootstrap und was nicht alles

So, in meinen verbleibenden Tagen bis zum Semesterbeginn am 11. September werde ich noch einmal mäßige Recherche und Updating rund um das Thema Internet 2013 betreiben bzw. habe dies schon getan:

  • Mit dem AngularJS-Framework lassen sich also auf tolle Art und Weise Daten, die aus irgendeinem Backend möglichst asynchron kommen, dynamisch und auf Clientseite verarbeiten und in die bereits existente Seite einbauen. Netter Ansatz, Daten, Modell und View auseinander zu halten!
  • Bootstrap bietet als jQuery-UI-Alternative eine wahnsinns Palette an Möglichkeiten, wenn man auf der Website häufig und cross-Domain verwendete Nutzerelemente benutzen und Auflösungsresponsiveness für mobile Clients bieten möchte. 
  • Single-Page-Applications/One-Page-Sites sind prima geeignet, um dem Besucher eine Geschichte/Projekt/zentrale Information näher zu bringen.
  • SEO überall sowie über alles. Was bringt schließlich guter Content, wenn man im Interwebz nicht gefunden wird? – Kann man es nicht auch ein wenig übertreiben?
  • „.com“-TLDs spielen nicht mehr die zentrale Rolle – lieber werden dem Seitentitel entsprechende Endungen verwenden.
  • Was ist Flash?
  • Node.js rettet nicht die Welt. JavaScript als serverseitig genutzte Sprache zu benutzen kann aber interessant sein! Man denke nur an die gemeinsame Codebasis von Server und Client :)
  • PHP is not dead – zum Glück! 😀

CodeCamp 48h 2013

Vorab: Die Eventwebsite. 2 Tage an der Programmierung eines Arduino-Boards, eines dazugehörigen Webservers auf C#-Basis und eines minimalen Web-Frontends gesessen. Meine kleine, in einer halben Stunde zusammengefrickelte Abschlusspräsentation sowie ein Dump meines dazugehörigen Codings dazu.

Nebenbei etwas über das AngularJS-Framework erfahren: Hätte nicht gedacht, dass mittlerweile die ganze Darstellungslogik wieder auf die Clientseite ausgelagert wird :)

An dieser Stelle nochmal ein herzliches Dankeschön an die Investoren und Organisatoren des CodeCamp48h in Wernigerode!

Learning MSIL

Microsoft’s Intermediate Lanugage is cool stuff! Since I never spent time on doing low-level language things like writing in assembler or MSIL, I really want to learn it now, or at least the general basics. My far goal is to create a language translator which parses D code and ‚prints‘ out MSIL code…so D will become .Net/CLI – in a system-independent environment (Mono-driven)!

Btw, MSIL is only a kind of mnemonic – the formal language name is ECMA-335. Its spec sheet including a bunch of examples can be found at:

http://www.ecma-international.org/publications/standards/Ecma-335.htm

How to ‚hack‘ C#

Well, it’s not really a hack – it rather is a quite interesting fact I found out indirectly while analysing MSIL code:

public string get_myProp() { return p; }
public void set_myProp(string s) { p = s; }

string p = "";
public string myProp
{
	get { return p; }
	set { p = value; }
}

.. The C# compiler can’t build this code – instead, it says that the members called ‚get_myProp‘ and ‚set_myProp‘ cannot be defined twice 😀

How to detect if a mobile device visits your website?

I just investigated how to answer the question mentioned in the headline – and found a pretty easy solution:

There’s a very smart tutorial given on the following page:
http://mobiforge.com/developing/story/lightweight-device-detection-php

Here’s a slightly modified php version of it:
(Code taken and edited from http://mobiforge.com/developing/story/lightweight-device-detection-php)

function IsMobileDevice()
{
    if (preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|android)/i', strtolower($_SERVER['HTTP_USER_AGENT'])))
        return true;

    if ((strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml') > 0) or ((isset($_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE']))))
        return true;

    $mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'], 0, 4));
    $mobile_agents = array(
        'w3c ','acs-','alav','alca','amoi',
        'audi','avan','benq','bird','blac',
        'blaz','brew','cell','cldc','cmd-',
        'dang','doco','eric','hipt','inno',
        'ipaq','java','jigs','kddi','keji',
        'leno','lg-c','lg-d','lg-g','lge-',
        'maui','maxo','midp','mits','mmef',
        'mobi','mot-','moto','mwbp','nec-',
        'newt','noki','oper','palm','pana',
        'pant','phil','play','port','prox',
        'qwap','sage','sams','sany','sch-',
        'sec-','send','seri','sgh-','shar',
        'sie-','siem','smal','smar','sony',
        'sph-','symb','t-mo','teli','tim-',
        'tosh','tsm-','upg1','upsi','vk-v',
        'voda','wap-','wapa','wapi','wapp',
        'wapr','webc','winw','winw','xda ',
        'xda-');

    if (in_array($mobile_ua,$mobile_agents))
        return true;

    if (strpos(strtolower($_SERVER['ALL_HTTP']),'OperaMini') > 0)
        return true;

    if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'windows') > 0)
        return true;

    return false;
}

if(IsMobileDevice()){
    // Redirect to subdomain or do something else
    header("Location: http://mobile.example.com");
    exit();
}

// Load normal page content

fxLib

So, decided to put in a link to my small Win32 & OpenGL wrapper library called FXLIB for the Digital Mars Programming Language.

The following code produces a simple window with an ‚OK‘-Button.
Note: I’ve chosen the C# naming convention for the classes and function names.

pragma(lib,"fx.lib");

import std.stdio, std.cstream;
import fx.myfx;

class MyWin:Window
{
	this(){
		Size=Point(200,150);
		Text="Hello World!"w;

		auto b=new Button(this,"Click me!"w,10,10, 100,25);
		b.OnClick~=(Object sender){
			MessageBox.Show(
				"That was a button."w,
				"Caption"w);
		};
	}
}

void main()
{
	auto w=new MyWin();
	w.Show();

	Application.Run();
}