"First, solve the problem. Then, write the code." (John Johnson)
Making functions permanent in Powershell
I created a function in powershell to access a remote docker host from my windows 10 workstation. You should never just expose the docker socket. Always work with certificates. The official docker documentation has a nice step by step tutorial to do exactly that.
function docker02 {docker "-H=docker02.mydomain.net:2376" --tlsverify --tlscacert=C:\ca.pem --tlscert=C:\cert.pem --tlskey=C:\key.pem $args}
Now I had to insert this command every time I open a new powershell. This annoyed me really fast.
Powershell supports user profiles.
You can check the path with:
$profile
Check if a profile file already exists:
test-path $profile
If “false” use this command:
new-item -path $profile -itemtype file -force
Now you just need to insert the function in the profile file:
powershell_ise $profile
Book recommendation: MetaGame
Here’s a book recommendation. A science-fiction thriller. The most interesting part was how the writer fused the world with technology. There a nanobots in this world, which send out a “ping”. They sit on everything. Multiple devices can pick up this signal and therefore pinpoint the object. Objects in displays can be overlayed with other objects. Therefor building a world on top the real world… hence meta :) :
MetaGame: Science-Fiction Thriller
Mapping query result to a plain java bean with @SqlResultSetMapping
I needed some data from a old big oracle database. Most of the time I write or generate a entity class, and fetch the data with a Named Query. But this time I only needed two informations and I didn’t what to use a dozen primary keys and so on to find it. So I used a Native Query.. I know… messy.
Trying to make it look a little professional, I used a SqlResultSetMapping to map the result to a plain old java bean.
//Need to be put in an entity class. Any entity class will do
@SqlResultSetMapping(
name = EntityClass.RESULT_MAPPING_NAME,
classes = {
@ConstructorResult(
targetClass = MyPlainBean.class,
columns = {
@ColumnResult(name = "something"),
@ColumnResult(name = "someone")
}
)
}
)
//EntityClass is the name of the plain bean - NOT an entity
//Some static final Strings to reference the information. Do not use the same string multiple times!
public static final String RESULT_MAPPING_NAME = "aVeryGoodName";
public static final String NATIVE_SQL_QUERY = "SELECT column1 \"something\" column32 \"someone\" where.....";
//The Native Query call
final Query<MyPlainBean> query = session.createNativeQuery(EntityClass.NATIVE_SQL_QUERY,EntityClass.RESULT_MAPPING_NAME);
Lychee
“Lychee is a free photo-management tool, which runs on your server or web-space. Installing is a matter of seconds. Upload, manage and share photos like from a native application. Lychee comes with everything you need and all your photos are stored securely.” : https://lychee.electerious.com/
Use a URIResolver if the stylesheets can not be found in test
I use quiet a lot XSL transformations at work. Since they tend to grow rather big with every new rule I implement, I split the file up. Every file has it’s own domain/rule. This works fine. I also write a new junit test for every new xslt rule/template, to ensure that I did not break anything.
At somepoint in every new project I get the error, that a transformation in production (src/main) does work, but in test (src/test) does not. After a few minutes of searching I come to the conclusion, that a import/include stylesheet can not be found. A few minutes later and the penny dropes… I always forget to implement the URIResolver. Every time…
import java.io.InputStream;
import javax.xml.transform.Source;
import javax.xml.transform.TransformerException;
import javax.xml.transform.URIResolver;
import javax.xml.transform.stream.StreamSource;
public class XsltURIResolver implements URIResolver {
@Override
public Source resolve(String href, String base) throws TransformerException {
try {
final InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(href);
return new StreamSource(inputStream);
} catch (Exception ex) {
ex.printStackTrace();
return null;
}
}
}
And they setting it:
TransformerFactory transformerFactory = TransformerFactory.newInstance();
transformerFactory.setURIResolver(new XsltURIResolver());
- cloud
- git
- google drive
- version control
- java
- jsf
- bugs
- documentation
- maven
- test
- oracle
- sql
- hibernate
- issuetracker
- server
- jboss
- webservice
- wsdl
- backup
- sync
- couchdb
- planing
- webseries
- hacking
- security
- xss
- android
- tools
- gpu
- team
- jsf2
- community
- presentation
- framework
- primefaces
- openshift
- luks
- linux
- website
- jekyll
- ccr
- chrome
- securitiy
- apache
- ajp
- firewall
- tomcat
- link
- tool
- xml
- letsencrypt
- xslt
- php
- photo
- db
- book
- scifi
- windows
- powershell
tags
subscribe via RSS