Posts Tagged ‘software’

Fuduntu (Linux)

26. August 2012

Da ich mit Ubuntu/LXDE Probleme auf meinem Samsung NC10 hatte (Helligkeit ließ sich nicht verstellen, Akkuanzeige zeigte durchweg 100%), will ich heute mal einen kleinen Erfahrungsbericht zu „Fuduntu“ abgeben (hat außer dem Namen nichts mit Ubuntu gemein):

Die Distribution ist ein Rolling Release und hat ihre Wurzeln bei Fedora. Das DVD-Image hat 900MB und bietet auch ein Live-Abspielen zum ausprobieren.
Dank Gnome2.32 und diversen Optimierungen ist die Distribution sehr gut für Netbooks geeignet (es wird mit 30% längerer Akkulaufzeit geworben). Die Vorraussetzungen sind 1Ghz,384MB RAM und 5GB Speicher.
Auf meinem Netbook kann ich das durchaus bestätigen:
Alles läuft wunderbar schnell und die CPU-Auslastung ist meist sehr niedrig. Auch die Bildschirmhelligkeit ließ sich hier verstellen und die Akkuanzeige ist schön. Sehr gefallen hat auch ein Symbol neben der Uhr mit dessen Hilfe man Dinge wie Auflösung, Bildschirme und Leistungsstufe einstellen kann.
Als Browser kommt Google Chrome zum Einsatz. Alles fühlt sich sehr flüssig an. – Ungewohnt wenn man vorher ein aktuelles Windows oder Ubuntu auf dem Netbook hatte. Angenehm ist auch die Applikationsleite, die an Mac OS erinnert.
Gewöhnungsbedürftig ist, dass man „beesu“ statt „sudo“ benutzt und der Paketmanager yum etwas anders tickt als dpkg oder apt.

Nun zu den Schattenseiten:
Als Entwickler sucht man in der spärlichen Auswahl häufiger nach passenden Paketen: Angefangen von den C++-Erweiterungen für gcc bis zu nicht-existenten Code::Blocks-Paketen. Netbeans mit C++ lässt sich nutzen, wenn man den Installer selbst herunterlädt. MonoDevelop ist noch in der 2er-Version und aus irgendeinem Grund war bei den Gtk-Komponenten zwar ein „File Chooser Widget“ aber kein „File Chooser Button“. Glade für Gnome-Oberflächen war (für mich) nicht zu finden.
Immerhin trifft man im der Distribution zugehörigen IRC-Channel auch echte Entwickler an. – Der, den ich gesprochen habe benutzt aber privat kein Linux und hat auf Arbeit RHEL. Meiner Meinung nach sollte ein Entwickler eben auch die Software benutzen, die er programmiert.

Als Fazit bleibt:
Für Leute die das Netbook zum Surfen, Mailen, Musik hören, Videos gucken und gelegentlichen Öffnen von OpenOffice-Dokumenten verwenden ist die Distribution ein Traum. Für Entwickler: Wenn man sich nicht gut mit Fedora-artigen Systemen auskennt, lieber Finger weg davon!
Auch wenn es langsam ist: Ich werde als Windows-Mensch wohl zu MINT wechseln mit dem Netbook und hoffen, dass es halbwegs schnell läuft. Dort dürfte die von Ubuntu bekannte reichhaltige Auswahl an Software bereitstehen und eine große Community hat das System ja schon. Die Hürden mit Fuduntu waren einfach zu hoch und die Community zu klein um sich von dort Hilfe bei Problemen erhoffen zu können.

Dem Computer zum Sprechen verhelfen

25. Juli 2012

Jeder Mensch nimmt Informationen über den visuellen Weg verschieden gut auf.

Bei mir bleiben visuell besonders die bunten Bilder, Darstellungen von Experimenten oder actionlastige Szenen gut hängen. Beim Lesen lerne ich wenig, beim anschließenden wieder aufschreiben viel. Gerade bei Unterhaltungsbüchern möchte man nun aber nicht alles nochmal aufzeichnen. Außerdem nehme ich Informationen akkustisch ähnlich gut entgegen und kann dabei dann noch Haushaltsarbeiten erledigen (Tipp).

„Da gab’s doch mal dieses Logox, die Vorlesesoftware“, dachte ich mir. „Bestimmt hat sich da in der Zwischenzeit etwas getan – immerhin ist das schon viele Jahre her und bei der Telefon-Hotline verschiedenster Unternehmen ist es eher die Regel von einer Computer-Stimme betreut/vertröstet zu werden. Auch auf heise-online lief mal ein Test, der recht vielversprechend klang. Bei der Bahn ist man inzwischen automatische Zug- und Haltestellen-Ansagen gewohnt. Im Auto spricht in naher Zukunft wohl auch nicht mehr nur das Navigationsgerät mit dem Fahrer.
Sehbehinderte Menschen nutzen solche Vorlese-Programme ebenfalls ständig.

Bei der Recherche nach Vorlese-Software stieß ich nach kurzer Zeit auf das Kürzel „TTS“ für „Text-to-Speech“ und habe ebenso schnell gemerkt, dass man bei Spracherkennung- und -wiedergabe im Englischen wohl eine ganze Ecke weiter ist. Außerdem hört man schnell, dass sich die Sprachausgabe beim Deutschen eher in die Richtung entwickelt hat, dass nun weniger Wörter falsch ausgesprochen werden. Die Aussprache an sich klingt gefühlt noch genauso wie vor 10 Jahren.

Hier soll nun eine kleine Liste mit entsprechender aktueller, deutsch-sprechender Software und Zusatzinformationen/Sprachdemo entstehen:

Bei der Recherche habe ich eine gut sortierte Liste hier entdeckt. Sie enthält Sprachdemos als MP3 und ist sozusagen perfekt zum vergleichen und um eine Übersicht der Hersteller zu bekommen. Trotzdem möchte ich schon wegen der Online-Speech-Engines eine eigene kleine Liste beibehalten.

Hardware-Bausteine

TTS-Hardware scheint wohl nur englisch-sprachig und entweder knapp oder teuer (oder beides) zu existieren. Die letzte Information darüber habe ich hier gelesen.

Englisch-Sprachig/Sonstiges

Für musikalische Zwecke scheint das kommerzielle, englisch-sprechende Vocaloid wohl ganz geeignet zu sein (Gesangsbeispiel ist im Wiki-Artikel enthalten).
Wenn man aber einfach nur Auto-Tune-Effekte oder andere Leute unfreiwillig richtig singen lassen möchte, lohnt sich ein Blick auf Celemony Melodyne (Wine-tauglich). Aus eigener Erfahrung kann ich da von vielen lustigen Stunden damit berichten! 😉 Sicherlich gibt es dazu auch einiges auf youtube…
Zumindest haben sich Leute damit schon die Mühe gemacht, die Computerstimme aus dem Spiel Portal nachzuahmen (mit Online-Generator und Video): GLaDOS voice generator

siehe auch: Sprachsynthese auf Wiki

Umkehrfunktionen mit Wolframalpha

24. Juli 2012

Für Berechnungen aller Art drängt sich WolframAlpha geradezu auf:
Es plottet nicht nur die eingegebene Formel, sondern es bildet auch die Stammfunktion, die Ableitung und zeigt unterschiedliche Schreibweisen mit gleichem Ergebnis auf.

Vor Kurzem stand ich aber vor dem Problem eine komplizierte, zusammengesetzte Formel mit Exponent in eine Umkehrfunktion mit irgendetwas logarithmischem Umwandeln zu müssen. Nun bin ich da inzwischen ein wenig aus der Übung und dachte mir „im Jahre 2012 gibt’s dafür doch sicher eine Lösung!“. – Tatsächlich gibt es die. Leider ist sie fast nirgendwo dokumentiert. Auf die Schliche kam ich beim Studium der Mathematica-Dokumentation, dem großen Bruder von WolframAlpha.

Lange Rede, kurzer Sinn – so geht’s:

Man benutzt die Funktion „inverseFunction“ und übergibt als Parameter die umzustellende Gleichung. Dabei nutzt man idealerweise nur die Variablen x und y, wobei y das f(x) ersetzt.
Möchte man also die Umkehrfunktion zu f(x)=2x, schreibt man inverseFunction(y=2x)

Zwischenablage / Copy&Paste – Helfer

22. Juli 2012

Wer kennt das nicht:
Wo man früher einfach einen Text markiert, kopiert und woanders eingefügt hat will es heute die Software besonders gut machen – sie kopiert die Schriftart, -größe und sonstige Formatierungen mit. Beim Einfügen in ein eigenes Dokument ist die Chance, dass es zum bestehenden Stil passt dann bei geschätzten 20% – nervig!

Das Programm das da helfen soll ist ein mit PureBasic geschriebener 3-Zeiler:


OpenConsole()
ConsoleTitle ("Zwischenablage-Helfer")

Repeat
content$ = GetClipboardText()
If(Len(content$)>0)
ClearClipboard()
SetClipboardText(content$)
EndIf
Delay(100)
Until dummy

Es öffnet beim Öffnen des Programms einfach ein Konsolenfenster das man nach getaner Arbeit oder bei Problemen einfach wieder schließen kann und ansonsten einfach ignoriert.
Solange das Programm aktiv ist, werden alle in die Zwischenablage kopierten Daten zu Strings ohne Formatierung „gewandelt“.

Ich stelle hier die Windows-Downloads zur Verfügung, die mit Windows 7 64Bit getestet sind. Es ist einmal eine 32Bit- und eine 64Bit-Version (zu erkennen an der 64 im Dateiname) im Paket. Die 32Bit-Version sollte ab Windows 2000/XP laufen.
Für Linux- oder Mac-User gibt es die Möglichkeit sich die Demo-Version von PureBasic zu laden und es damit selbst zu kompilieren. Die Demo-Version hat im Wesentlichen die Einschränkung, dass nicht beliebig viele Codezeilen erlaubt sind – das sollte hier aber kein Problem darstellen.

Kampf dem Spam!

3. Juni 2012

Wie man sich bei GMX gegen Spam wehrt

Meine Mailbox sieht häufig so aus:

Eines vorweg: Das ist kein Problem von GMX – bei anderen Freemail-Anbietern sieht es ähnlich aus mit dem Unterschied, dass man sich dort oft schlechter wehren kann.

Die Erfahrung sagt mir, dass 40 der 53 neuen Mails Spam sind. Bei dem Anblick habe ich schon keine Lust mehr überhaupt in den Posteingang zu schauen. Aber weiter im Programm:
Da ich den unnötigen Traffic möglichst schon dort begrenzen möchte wo er entsteht, reize ich die Möglichkeiten der Weboberfläche meines Free-Accounts aus und blockiere schon hier.

Das geht so:

Auf der linken Seite „Email“ -> „Optionen“ -> „Spamschutz“ klicken. Dann auf „Erweiterte Einstellungen vornehmen“ klicken.
Es sollte so aussehen:

Was die Whitelist und die Blacklist tun, steht ja bereits da.
In die Blacklist kommen alle Adressen der Mails bei denen man jemals den Spam-Button gedrückt hat.
Die Geschichte hat nur einen Haken: Die Spamversender haben meist ganze Domains und machen sich einfach eine andere Mailadresse von der sie aus senden.
Im Ergebnis hat man also viele Einzeladressen in der Blacklist stehen, die nicht überschaubar sind. Das liegt im Wesentlichen daran, dass die Domains alphabetisch von links (also normal) sortiert sind, Domains aber (ähnlich Binärzahlen) rechts die höchste Wertigkeit besitzen.
Darum habe ich ein kleines Programm geschrieben, dass Listen von rechts nach links alphabetisch sortieren kann. Das Ergebnis sieht dann so aus:

Man kann so sortiert gut erkennen, dass die Mails alle aus Deutschland kommen und auch von wem. Hier wieder der Hinweis: nicht freenet ist der böse – diese Art Spammails kommen genauso auch von hotmail, gmx, gmail usw.
Was außerdem zu sehen ist, sind Domains mit * vorm @. Diese Einträge habe ich manuell hinzugefügt – sie bewirken, dass ich von der Hauptdomain garkeine Mails mehr empfange – egal was vor dem @ steht. Genauso kann man mit **.cn alle Mails aus China blockieren. („übernehmen“ drücken nicht vergessen!)

So wird das Sortier-Programm benutzt:

(Java wird benötigt, ist aber gewöhnlich installiert)

  1. leeren Ordner erstellen und DomainSorter.class-Datei reinkopieren (download)
  2. Text-Editor öffnen
  3. Blacklist in Editor kopieren
  4. als txt-Datei im gleichen Ordner speichern
  5. Konsole bzw. Eingabeaufforderung öffnen und in das Verzeichnis wechseln
    (Alternative für Windows-Benutzer siehe unten)
  6. Programm starten (Groß-/Kleinschreibung wichtig): java DomainSorter meineBlacklistDatei.txt
  7. txt-Datei mit einem Editor öffnen bei dem man die Schriftart ändern kann
  8. Schriftart ändern auf eine, die Leerzeichen genauso breit darstellt wie Textzeichen (z.B. Courier unter Windows)
  9. konkrete Adressen in GMX-Spamliste löschen und möglichst ganze Sperrgruppen eintragen (wie oben erklärt)
  10. übernehmen drücken
  11. happy sein

Alternative zu Punkt 5 für Windows-Nutzer:
Notepad öffnen, java DomainSorter meineBlacklistDatei.txt schreiben, Datei als startemich.bat im gleichen Ordner abspeichern. Per Doppelklick öffnen (Konsole blitzt kurz auf).

Für die Neugierigen und Skeptiker der Quellcode: source.

Wie schreibt man mit C# DLL’s und wie nutzt man sie?

25. Mai 2012

Man mag ja von DLL’s (insbesondere von .NET-DLL’s, die sich von den anderen unterscheiden) halten was man möchte, aber sie haben zwei große Vorteile:

1) Sie sind austauschbar. Somit kann man Algorithmen ändern, Fehler beseitigen oder einfach nur zusätzliche Funktionen einfügen ohne, dass das Programm das sie nutzt mitgeändert werden müsste. Denkbar wäre zum Beispiel einen Sortieralgorithmus per DLL zu implementieren – und die DLL auszutauschen, je nachdem ob man zum Beispiel Introsort/Quicksort oder Mergesort verwenden möchte.

2) Sie eignen gut um im Team zu arbeiten: Man gibt dem Kollegen die DLL mit den langsamen Grafikfunktionen schon einmal vorab, damit er an seine Anwendung testen kann und macht gleichzeitig die Grafikroutinen schnell.

Mir ist aufgefallen, dass man die DLL auch als Datencontainer nutzen kann – auf diesen haben verschiedene Teile des Programms Zugriff, wenn man sie als Singleton umsetzt. Aber vorsicht: Sie können nicht zum Datenaustausch zwischen Prozessen („Interprozess-Kommunikation“) genutzt werden.

So erstellt man eine DLL mit Visual Studio 2010

  1. Neues Projekt „Klassenbibliothek“ erstellen
  2. ganz normal Funktionen einprogrammieren – das sieht bei mir so aus:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace eigeneBibliothek
{
public class MatheKlasse
{
public int x=0;
private static MatheKlasse instanzvar=null;

private MatheKlasse()
{

}

public static MatheKlasse getInstance()
{
if (instanzvar == null)
instanzvar = new MatheKlasse();
return instanzvar;
}

public long Add(long i, long j)
{
return (i + j);
}

public long Multiply(long x, long y)
{
return (x * y);
}
}
}

  1. jetzt kann die DLL erstellt werden und befindet sich dann wie gewohnt im /bin-Ordner des Projektes

Nutzung von .NET-DLL’s

So einfach wie das Erstellen ist auch die Nutzung:

  1. Erstelle ein neues Konsolen-Projekt
  2. Rechtsklick auf „Verweise“ -> „Verweis hinzufügen“ -> „Durchsuchen“-Tab und die Datei wählen (im Idealfall hat man sie gleich in das bin-Verzeichnis des aktuellen Projekts kopiert):
  3. Ein using mit dem Namespace der DLL einfügen – bei mir sieht das so aus:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using eigeneBibliothek;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
MatheKlasse mk = MatheKlasse.getInstance();
mk.x = 42; //für späteren Test als Datenspeicher

Console.WriteLine("Library einbinden-Test: "+mk.Add(5, 3));
Console.ReadKey();
}
}
}