Einmal mehr ein No Comment Video!
Für einige Einsteiger mögen die Bibliotheken oder die Windows HomeGroup ja von Vorteil sein. Mich persönlich stören diese Elemente und führen meines erachtens zu einem überladenen Explorer Fenster. Ich möchte an dieser Stelle auch nicht über den Sinn oder Unsinn solcher Bibliotheken oder Zusammenzüge „wichtiger“ Ordner schreiben denn ich bin ein Verfechter der „angepassten Einrichtung“! Jeder soll so arbeiten wie es ihm passt. Heute bin ich eher per Zufall über ein äusserst praktisches Tool gestolpert welches mich sofort überzeugt hat.
Das Programm hört auf den Namen „Windows Explorer Navigation Pane Configuration Tool“ und ist kostenlos erhältlich. Nachfolgend kurz einen Auszug, was diese Freeware Anwendung für Euch tun kann:
Das Windows Explorer Navigation Pane Configuration Tool (WENPCFG) steuert bequem mit Hilfe von Komandozeilenparametern, welche Knoten im Navigationsbereicht des Windows Explorer entfernt oder angezeigt werden sollen. Auch bei Datei-Öffnen- und Datei-Speichern-Dialogen greifen die gemachten Einstellungen einwandfrei.
Das Tool kann entweder direkt hier oder über die Webseite des Autors heruntergeladen werden.
Mehr und ausführlichere Informationen zu WENPCFG findet ihr direkt auf der Webseite des Autors.
Am besten beschreibt dies gleich ein Auszug aus der Webseite des Autors:
Aufrufsyntax für WENPCFG wenpcfg [/option [/option] ... ] Optionen: HideLibraries Entfernt den Knoten Bibliotheken aus dem Navigationsbereich des Windows Explorers. HideFavorites Entfernt den Knoten Favoriten aus dem Navigationsbereich des Windows Explorers. HideNetwork Entfernt den Knoten Netzwerk aus dem Navigationsbereich des Windows Explorers. HideComputer Entfernt den Knoten Computer aus dem Navigationsbereich des Windows Explorers. HideHomeGroup Entfernt den Knoten Heimnetzgruppe aus dem Navigationsbereich des Windows Explorers. ShowLibraries Zeigt den Knoten Bibliotheken im Navigationsbereich des Windows Explorers an. ShowFavorites Zeigt den Knoten Favoriten im Navigationsbereich des Windows Explorers an. ShowNetwork Zeigt den Knoten Netzwerk im Navigationsbereich des Windows Explorers an. ShowComputer Zeigt den Knoten Computer im Navigationsbereich des Windows Explorers an. ShowHomeGroup Zeigt den Knoten Heimnetzgruppe im Navigationsbereich des Windows Explorers an. Logoff Damit die Änderungen wirksam werden, muss der Explorer-Shell-Prozess beendet werden. Wird diese Option angegeben, erfolgt ein unmittelbares Abmelden der Windows-Session. Reboot Damit die Änderungen wirksam werden, muss der Explorer-Shell-Prozess beendet werden. Wird diese Option angegeben, erfolgt ein unmittelbarer Neustart des Betriebssystems. Help Diese Optionen zeigt den Hilfetext an. Beispiele: Bibliotheken- und Netzwerk-Icon entfernen und an den übrigen Einstellungen nichts ändern: wenpcfg /HideLibraries /HideNetwork
Achtung: Einige der Änderungen werden direkt auf dem jeweiligen Maschinen-Kontext und nicht im Benutzerkontext ausgeführt. Änderungen der Einstellung auf Basis des jeweiligen Benutzers sind nicht möglich! Im weiteren unbedingt die dazugehörige Readme Datei lesen sowie alle Hinweise auf der Webseite des Autors beachten.
Gleich für beide sozialen Netzwerke gibt es seit Heute wieder einmal ein Update für die iPhone App!
Viel Spass beim Updaten :) Auch wenn der Changelog von Google+ weniger Umfangreich ist so beinhaltet ja der bekannte „Bug fixes“ meist das doch das eine oder andere grössere Flickwerk!
Kurz eine Info für all diejenigen welche wie ich MailStore Home nutzen.
Soeben wurde die Version 4.2.1 veröffentlich. Die Änderungen halten sich im Rahmen und werden wohl nur den wenigsten etwas bringen:
Am besten einfach die Blogsuche nach Mailstore anwerfen und schon wird ersichtlich wofür MailStore geeignet ist.
-> Meine MailStore Beiträge
Die neue Version steht direkt auf der Downloadseite von MailStore zur Verfügung. Natürlich wieder in einer installierbaren und einer portablen Version :)
Ein bemerkenswerter Beitrag zum Thema Datenübertragung von TED. Obwohl das Video in Englisch ist sollten auch die weniger Englisch-Versierten Leser verstehen, dass es sich um eine herausragende Idee und Umsetzung handelt.
Einmal mehr wird aufgezeigt, wie man mit bestehenden Mitteln technisch mehr erreichen kann. Faszinierend ist ebenfalls, wie störungsunempfindlich (insofern kein Gegenstand direkt im Weg steh) die Testanlage ist.
(via http://blog.dasrecht.net)
Ab sofort läuft das Plugin „Social“ auf meinem Blog. Damit ist es möglich auch Kommentare anzeigen zu lassen, welche auf Plattformen wie Facebook oder Twitter zu einem bestimmten Artikel abgegeben wurden.
Ich bin gespannt ob so der eine oder andere zusätzliche Kommentar auf meinem Blog sichtbar wird.
Mit der letzten Ankündigung gibt Facebook Einblick in künftigen Profileinstellungen.
Detailiertere Informationen sind direkt unter https://www.facebook.com/about/control ersichtlich!
Facebook tätigt damit einen Schritt in die richtige Richtung. Bei mehr als 700 Millionen Mitgliedern sind solche Sicherheitsvorkehrungen und Möglichkeiten dringend erforderlich. Es bleibt jedoch zu hoffen, dass die neuen Einstellungsmöglichkeiten rund um die Sicherheit und Sichtbarkeit nicht zu Komplex ausfallen ansonsten wird wohl ein Grossteil der Mitglieder überfordert werden.
Einmal mehr ein No Comment Video!
Amazon stellt ab sofort den Cloud Reader zur Verfügung. Wer einen Kindle besitzt und über Amazon Bücher kauft kann diese künftig auch direkt online von einem beliebigen PC aus lesen.
Gleich ausprobieren? Dann ab auf https://read.amazon.com
Die nachfolgenden Plattformen werden zusätzlich zur Online Version unterstützt:
Die Kindle App ist nun so gut wie auf jeder Plattform verfügbar was meiner Meinung nach ein klarer Pluspunkt für Amazon als E-Book Shop darstellt. Mein Kindle 3 hat sich bereits bewährt und das eine oder andere „physische“ Buch bei mir abgelöst. Einzig wünschenswert wäre eine grössere Auswahl an deutschen Bücher.
Es ist soweit! TeamSpeak ist nun in der Version 3.0 Final erschienen und bringt auch gleich eine Android und iOS App mit :) TeamSpeak erfreut sich gerade bei Spielern grosser Beliebtheit und wurde in der Version 3 stark erweitert und teilweise neu entwickelt!
Eine gute Übersicht über die wichtigsten Neuerungen findet sich direkt auf der Webseite von TeamSpeak ( http://www.teamspeak.com/?page=ts3splash)
Ich habe mir kurzerhand die iPhone App heruntergeladen und im Kurztest hinterlässt diese einen durchaus positiven Eindruck. Natürlich gibt es hie und da noch etwas anzupassen oder zu optimieren für ein Erst-Release ist die App jedoch erstaunlich stabil.
Wer in Lotus Notes Anwendungen entwickelt ist sicherlich auch bereits über die Problematik mit Bilddateien gestolpert. Wer per Code ein Bild in bestimmter grösse einfügen will muss dies normalerweise über ein Addon DLL erledigen. Da meine Anwendung jedoch ohne Zusatzsoftware auskommen soll habe ich mich entschieden eine entsprechende Java/Lotus Script Klasse zu schreiben.
Nachfolgend der Code für die Lotus Script Klasse:
[sourcecode language=“plain“ collapse=“true“ title=“Lotus Script Class 'LSJavaImageResizer'“]
%REM
Code and Library written by Yves Menge (yves.menge@gmail.com)
For updates / news visit http://blog.y-m-e.net
09.08.2011
%END REM
Option Public
Option Declare
UseLSX "*javacon"
Use "JavaLibrary"
%REM
Sample Code for use in Lotus Script:
***
Use "LSJavaImageResizer"
Dim lsImageResizer As New LSJavaImageResizer([PathToSourceImage], [PathToTempDir],[MaxImageHeight],[MaxImageWidth],[UpscaleSmallImages])
‚Parameters:
‚[PathToSourceImage] => Path to source image as string (eg. C:Test.jpg)
‚[PathToTempDir] => Path to Tempfile as string (eg. C:Temp
‚[MaxImageHeight] => Max image height in pixels as int or long (eg. 200)
‚[MaxImageWidth] => Max image width in pixelx as int or long (eg. 200)
‚[UpscaleSmallImages] => 1 (true) or 0 (false)
Dim strResizedImage as String = lsImageResizer.StartResizePicture()
‚Possible Response Strings:
‚OK => Path to resized image as string (eg. C:Tempimg123456789.jpg)
‚ERROR => "ERROR" as string, no error description is suplied!
‚REMARK: This class does only the resizing stuff, it’s on your own to delete the probably unused generated files
‚ in the temp directory!
%END REM
Public Class LSJavaImageResizer
‚Define Vars
jSession As JAVASESSION
jObject As JAVAOBJECT
jClass As JAVACLASS
‚Resizer Setup Vars
strSourceFile As String
strTempDir As String
intHeight As Integer
intWidth As Integer
intMakeImageLarger As Integer
‚SUB New -> Cunstructor
Sub New (ByVal sFile As String, ByVal sTempDir As String, ByVal iHEIGHT As Integer, ByVal iWIDHT As Integer, ByVal iMakeImageLarger As Integer)
‚Initialize JAVA Class
Set jSession = New JAVASESSION
Set jClass=jSession.GetClass("JavaImageResizer")
Set jObject = jClass.CreateObject
strSourceFile = sFile
strTempDir = sTempDir
intHeight = iHeight
intWidth = iWidht
intMakeImageLarger = iMakeImageLarger
End Sub
‚Resize Image
Function StartResizePicture ()
Dim strReturnCode As String
strReturnCode=jObject.Resize(strSourceFile, strTempDir, intHeight, intWidth, intMakeImageLarger)
‚Return Path for resized Image
StartResizePicture = strReturnCode
End Function
End Class
[/sourcecode]
Nachfolgend der Code für die Java Klasse „JavaImageResizer.java“
[sourcecode language=“java“ collapse=“true“ title=“Java Library JavaImageResizer.java for use in JavaLibrary library“]
/*
*
*Code and Library written by Yves Menge (yves.menge@gmail.com)
*For updates / news visit http://blog.y-m-e.net
*09.08.2011
*
*/
import java.awt.AlphaComposite;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import java.util.Calendar;
public class JavaImageResizer {
public String Resize(String strSourceFile, String strTempDir, int intMaxHeight, int intMaxWidth, int intMakeImageLarger){
float imgResizedWidth;
float imgResizedHeight;
String strOutputFile = "";
try{
//Get milliseconds (for random filename)
Calendar cal = Calendar.getInstance();
String strRandomNumber = String.valueOf(cal.getTimeInMillis());
//Construct destination path and get image type
strOutputFile = strTempDir + "img" + strRandomNumber + ".jpg";
BufferedImage originalImage = ImageIO.read(new File(strSourceFile));
int type = originalImage.getType() == 0? BufferedImage.TYPE_INT_ARGB : originalImage.getType();
//Get original size
imgResizedWidth = originalImage.getWidth();
imgResizedHeight = originalImage.getHeight();
//Change dimensions to fit maximum width and height
float imgAspectRatio = 0;
// Calculate image dimension for destination
if (imgResizedWidth > intMaxWidth || imgResizedWidth < intMaxWidth && imgResizedWidth >= imgResizedHeight && intMakeImageLarger==1){
imgAspectRatio = intMaxWidth / imgResizedWidth;
imgResizedWidth = java.lang.Math.round(imgAspectRatio * imgResizedWidth);
imgResizedHeight = java.lang.Math.round(imgAspectRatio * imgResizedHeight);
}
if (imgResizedHeight > intMaxHeight || imgResizedHeight < intMaxHeight && imgResizedHeight >= imgResizedWidth && intMakeImageLarger==1) {
imgAspectRatio = intMaxHeight / imgResizedHeight;
imgResizedWidth = java.lang.Math.round(imgAspectRatio * imgResizedWidth);
imgResizedHeight = java.lang.Math.round(imgAspectRatio * imgResizedHeight);
}
//Resize Image
BufferedImage resizeImageHint = reSizeImage(originalImage, type, (int)imgResizedHeight, (int)imgResizedWidth);
ImageIO.write(resizeImageHint, "jpg", new File(strOutputFile));
}
catch(Exception e) {
e.printStackTrace();
strOutputFile="ERROR";
}
// Return path to resized image or ERROR in case of a failure
return strOutputFile;
}
private static BufferedImage reSizeImage(BufferedImage originalImage, int type, int imgHeight, int imgWidth){
BufferedImage resizedImage = new BufferedImage(imgWidth, imgHeight, type);
Graphics2D g = resizedImage.createGraphics();
g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g.setRenderingHint(RenderingHints.KEY_RENDERING,
RenderingHints.VALUE_RENDER_QUALITY);
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
g.drawImage(originalImage, 0, 0, imgWidth, imgHeight, null);
g.dispose();
g.setComposite(AlphaComposite.Src);
return resizedImage;
}
}
[/sourcecode]
Der Code darf mit einem Vermerk auf seine Herkunft gerne verwendet werden. Ich übernehme keine Garantie für mögliche Schäden oder Fehler welche durch meinen Code entstehen. Verbesserungen oder Kritik? Ab in die Kommentare damit :)