Programming
Here the important commands and information collected while programming.
Java
jShell
To clean the jShell, in the Mac: CMD+K.
To find the type of the variable
public static <T> Class<?> typeOf(final T value) {
return value.getClass();
}
Groovy
XML
XML processing in the groovy, you need to read xml file to the variable in the groovy shell:
import groovy.xml.*
clients = new XmlParser().parseText(new File('sampl.xml').text)
//define namespace
ns = new Namespace('http://www.my.net.au/uc/bulkexport/clientxml')
Say you need to display the Status of the first Clients/Client
// <Clients xmlns:'http://www.my.net.au/uc/bulkexport/clientxml'...>
// <Client>
// <Status>Y</Status>
// </Client>
// ...
// ...
// </Clients>
println clients.Client[1][ns.Status][0].text()
Your output will be ‘Y’.
// for all the clients
clients.Client.each { println it[ns.Status].text()}
LDAP
Here the program to test the ldap in groovy. File name is hello.groovy:
import org.apache.directory.groovyldap.LDAP
import org.apache.directory.groovyldap.SearchScope
LDAP con = LDAP.newInstance('ldap://10.25.192.242:389','cn=ojitha,OU=oj Users,DC=aus', 'password')
assert (con.exists('cn=ojitha,OU=oj Users,DC=aus')):" Not exists!"
run as: groovy -cp ~/applications/groovyldap/dist/groovy-ldap.jar hello.groovy
The thridparty lib available at https://directory.apache.org/api/groovy-api/1-groovy-ldap-download.html.
Typescript
I use vscode for Typescript development. Install vscode:
brew install --cask visual-studio-code
Any time you can uninstall vscode as follows:
brew uninstall --cask visual-studio-code
rm -rf $HOME/Library/Application Support/Code
rm -rf $HOME/.vscode/
First install nodejs
brew install node
Check node is installed:
node --version
Follow the TypeScript tutorial in Visual Studio Code for more information.
To install typescript
npm install -g typescript
check
tsc --version
To install express:
npm i express
To intsall the express
npm i -D @types/express
My tsconfig.json is:
{
"compilerOptions": {
"target": "ES6",
"module": "CommonJS",
"outDir": "out",
"sourceMap": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true
}
}
To run the express server:
px ts-node app.ts
The app.ts is:
import express from "express";
const app = express();
app.get('/', (req,res) => {
res.status(200);
res.send("Hello")
})
app.listen(3000)
To check type localhost:3000 in the browser.
Using Yarn
Install yarn:
npm install --global yarn
check with
yarn --version
Install typescript:
yarn add typescript --dev
to check
yarn tsc --version
Install express
yarn add express
Scala Notebooks
You can create Scala notebook using docker:
docker run --rm -it \
-p 127.0.0.1:8192:8192 \
-p 127.0.0.1:4040-4050:4040-4050 \
-v `pwd`/config.yml:/opt/config/config.yml \
-v `pwd`/notebooks:/opt/notebooks/ \
-v $HOME/.aws:/home/polly/.aws polynote/polynote:latest \
--config /opt/config/config.yml
You have to have the following config.yml file in your directory
storage:
dir: /opt/notebooks
mounts:
examples:
dir: examples
Haskell
You can write the basic recursive product of list elements as follows:
myproduct [] = 1
myproduct (n:ns) = n * myproduct ns
This can be replace using foldr as follows:
myproduct n = foldr (*) 1 n
Another example:
To insert value to sorted list:
insertNum x [] = [x]
insertNum x (y:ys) = if x <= y then x:y:ys else y: insertNum x ys
For inserstion sort
isort [] = []
isort (x:xs) = insertNum x (isort xs)
Above insertion sort can be rewritten as:
isort xs = foldr insertNum [] xs