Platforms
SMACK
- KillrWeather
- a reference application (which we are constantly improving) showing how to easily leverage and integrate Apache Spark, Apache Cassandra, and Apache Kafka for fast, streaming computations in asynchronous Akka event-driven environments.
ROS
Frameworks
Networking
Vert.x
Testing
Selenium
XMLUnit
Mobile
Sencha Touch
Libraries
XML
EXSLT
- http://exslt.org/
- Desc. : a community initiative to provide extensions to XSLT.
- License : ?
Jing
- https://code.google.com/p/jing-trang/
- Desc. : an application for validating an XML document against a RELAX NG schema, in either the XML or the compact syntax.
- License : New BSD License
- Readings
WSDL viewer
Networking
gRPC
Protocol Buffers
- https://code.google.com/p/protobuf/
- Desc. : a language-neutral, platform-neutral, extensible way of serializing structured data for use in communications protocols, data storage, and more.
- License : BSD License
Security
NSS
JSS
Readings
Syntax Highlighter
Library |
Written in |
Description |
Supporting Languages |
Remarkable Languages |
Used-by
|
Pygments |
Python |
Python syntax highlighter
|
languages |
|
MediaWiki, Asciidoctor
|
CodeRay |
Ruby |
a Ruby library for syntax highlighting
|
Encoders |
|
Asciidoctor
|
Rouge |
Ruby |
a pure Ruby syntax highlighter
|
language |
|
Asciidoctor
|
highlight.js |
|
Syntax highlighting for the Web
|
language |
|
Asciidoctor
|
Prism |
JavaScript
|
a lightweight, robust, and elegant syntax highlighting library.
|
languages |
plantuml |
Slidev
|
Shiki |
|
a beautiful Syntax Highlighter
|
languages |
|
|
Language |
Pygments |
CodeRay |
CodeRay |
Rouge |
highlight.js |
Prism |
Shiki
|
PostgreSQL SQL Dialect |
postgres , postgresql |
|
|
|
|
|
|
misc
CKEditor
markItUp
- http://markitup.jaysalvat.com/
- Desc. : allows you to turn any textarea into a markup editor such as Html, Textile, Wiki Syntax, Markdown, BBcode or even your own Markup system.
- License : MIT/GPL
Scintilla
- http://www.scintilla.org/
- Desc. : A free source code editing component for Win32, GTK+, and OS X
- License : permits use in any free project or commercial product.
Tools
IDE
- Language Server Protocol
- The Language Server Protocol (LSP) defines the protocol used between an editor or IDE and a language server that provides language features like auto complete, go to definition, find all references etc.
- Language Server Protocol
VS Code
Settings
Category |
Key |
Description |
Type/Values |
Default Value |
Recommended Value |
Scope |
Remarks
|
telemetry |
telemetryLevel
|
Controls the different types of telemetry we send with a single setting
|
string |
all |
off |
User |
usage report, crash report
|
update |
mode
|
Controls the auto-update of VS Code
|
string |
default |
none |
User |
|
extensions |
autoUpdate
|
Enable of disable the auto-update of extensions
|
boolean |
|
false |
User |
|
workbench |
workbenche.ditor.revealIfOpen
|
Controls whether an editor is revealed in any of the visible groups if opened.
|
boolean |
|
false |
|
|
|
workbench.tree.indent
|
Controls tree indentation in pixels
|
integer |
8 |
16 |
|
|
|
enableExperiments
|
Enable or disable experimental features
|
boolena |
|
false |
User |
|
files |
files.exclude
|
Configures glob patterns for excluding files and folders.
|
object |
|
|
|
|
|
files.watcherExclude
|
Configures paths or glob patterns to exclude from file watching.
|
object |
|
|
|
|
Extensions
Category |
Extension |
Provider |
Description |
Settings |
Remarks
|
General Editing Support |
Code Spell Checker |
|
A basic spell checker that works well with camelCase code.
|
cSpell.* |
cSpell.enabled: boolean , cSpell.words: string[]
|
|
Change Case Extension |
|
Quickly change the case of the current selection or current word. |
|
extension.changeCase.* commands
|
Java Support |
Language Support for Java
|
Red Hat
|
Java Linting, Intellisense, formatting, refactoring, Maven/Gradle support and more... |
|
|
|
Spring Boot Tools
|
VMware
|
Provides validation and content assist for Spring Boot application.properties , application.yml properties files. As well as Boot-specific support for .java files. |
|
|
|
Project Manager for Java
|
Microsoft
|
Manage Java projects in Visual Studio Code |
|
|
|
Debugger for Java
|
Microsoft
|
A lightweight Java Debugger based on Java Debug Server which extends the Language Support for Java by Red Hat. |
|
|
|
Maven for Java
|
Microsoft
|
Manage Maven projects, execute goals, generate project from archetype, improve user experience for Java developers. |
|
|
|
Gradle for Java
|
Microsoft
|
Manage Gradle Projects, run Gradle tasks and provide better Gradle file authoring experience in VS Code |
|
|
|
Test Runner for Java
|
Microsoft
|
Run and debug JUnit or TestNG test cases. |
|
|
JavaScript/TypeScript Support |
jshint
|
Microsoft
|
Integrates JSHint into VS Code. |
|
jshint.enable: boolean , jshint.config , jshint.excludePath
|
|
ESLint
|
Microsoft
|
Integrates ESLint into VS Code. |
|
|
Python Support |
Python
|
Microsoft
|
IntelliSense (Pylance), Linting, Debugging (multi-threaded, remote), Jupyter Notebooks, code formatting, refactoring, unit tests, and more. |
|
|
|
Pylance
|
Microsoft
|
A performant, feature-rich language server for Python in VS Code |
|
|
Rust Support |
rust-analyzer
|
The Rust Programming Language
|
Provides support for the Rust programming language. |
|
|
Solidity Support |
Solidity Visual Developer |
ConsenSys
|
Contributes security centric syntax and semantic highlighting, a detailed class outline, specialized views, advanced Solidity code insights and augmentation to Visual Studio Code. |
|
|
|
Truffle for VS Code |
ConsenSys Software Inc.
|
Build, debug and deploy smart contracts on Ethereum and EVM-compatible blockchains. |
|
|
|
Solidity |
Nomic Foundation
|
Solidity and Hardhat support by the Hardhat team |
|
formatting
|
Markup Support |
Markdown All in One |
|
All you need for Markdown (keyboard shortcuts, table of contents, auto preview and more) |
|
|
|
Markdown Preview Enhanced(MPE) |
|
An extension that provides you with many useful functionalities such as automatic scroll sync, math typesetting, mermaid, PlantUML, pandoc, PDF export, code chunk, presentation writer, etc. |
|
MPE documentation
|
|
Markdown Preview Mermaid Support |
|
Adds Mermaid diagram and flowchart support to VS Code's builtin markdown preview |
|
|
|
AsciiDoc |
asciidoctor
|
An extension that provides live preview, syntax highlighting and snippets for the AsciiDoc format using Asciidoctor. |
|
|
YAML
|
Red Hat
|
YAML Language Support by Red Hat, with built-in Kubernetes syntax support |
|
|
|
XML
|
Red Hat
|
Provides support for creating and editing XML documents, based on the LemMinX XML Language Server. |
|
|
Format Support |
Even Better TOML
|
tamasfe |
Fully-featured TOML support |
|
TOML
|
Tools Support |
Docker
|
Microsoft
|
Makes it easy to build, manage, and deploy containerized applications from Visual Studio Code. |
|
|
PlantUML |
|
Rich PlantUML support for Visual Studio Code |
|
|
|
Slidev |
|
Slidev support for VS Code |
|
|
Database Support |
PostgreSQL
|
Microsoft
|
An extension for developing PostgreSQL with functionalities including |
|
|
Provider |
Description |
Extensions |
Remarks
|
Microsoft |
|
Python, C/C++, C#, IntelliCode, jshint, ESLint, Project Manager for Java, Maven for Java, Gradle for Java, Docker |
|
Red Hat |
|
Language Support for Java, YAML, XML, Ansible, BPMN Editor |
|
VMware |
|
Spring Boot Tools
|
Code Spell Checker
Setting |
Items |
Description |
Sub-items |
Remark
|
Configuration Settings |
top-level |
|
version , language , words , flagWords , ignorePaths , ignoreWords , patterns , ignoreRegExpList
|
|
Custom Dictionaries |
dictionaries , dictionaryDefinitions |
|
|
|
Language Settings |
languageSettings |
|
languageId , locale , dictionaries ,
|
root: object --+-- $schema: string
|
+-- version: string
|
+-- language: string
|
+-- words: string[]
|
+-- flagWords: string[]
|
- CSpell Dictionaries
- language dictionaries, programming dictionaries (bash, Java, Python, TypeScript, ...), specialized dictionaries
Shortcuts
Category |
Command |
Shortcut (Windows) |
Shortcut (macOS) |
Description |
Remarks
|
Common |
Command Pallette |
F1 |
F1 |
|
|
Editing |
Copy |
^C |
^C |
|
|
|
Cut |
|
|
|
|
|
Paste |
^V |
^V |
|
|
|
Undo |
^Z |
^Z |
|
|
|
Indent Lines |
^] |
^] |
|
|
|
Outdent Lines |
^[ |
^[ |
|
|
|
Toggle Line Comment(s) |
^/ |
^/ |
|
|
Run/Debug |
Start Debugging |
F5 |
F5 |
Start debugging session |
|
|
Run w/o Debugging |
^F5 |
|
|
|
Typical Configuration
- Workspace settings (
.vscode/settings.json
)
{
"editor.fontSize": 16,
"editor.tabSize": 2,
"editor.detectIndentation": false,
"editor.acceptSuggestionOnCommitCharacter": false,
"editor.snippetSuggestions": "bottom",
"editor.wordBasedSuggestions": false,
"editor.suggestSelection": "recentlyUsedByPrefix",
"debug.console.fontSize": 16,
"terminal.integrated.fontSize": 16,
"files.encoding": "utf8",
"files.eol": "\n",
"files.trimTrailingWhitespace": true,
"files.exclude": {
"node_modules/[!@]*": true,
"node_modules/@[!o]*": true,
"node_modules/@openzeppelin/contract-loader": true,
"node_modules/@openzeppelin/test*": true,
"node_modules/@openzeppelin/contract*/build": true,
"contracts/**/artifacts": true,
".pytest_cache": true,
"run/ganache/data": true,
"run/geth/data": true,
"run/besu/data": true
},
"files.watcherExclude": {
"**/.git/objects/**": true,
"**/.git/subtree-cache/**": true,
"**/.hg/store/**": true,
"**/node_modules/*/**": true,
"contracts/**/artifacts/**": true,
"types/truffle-contracts/**": true,
"run/ganache/data/**": true,
"run/geth/data/**": true,
"run/besu/data/**": true
},
"maven.executable.preferMavenWrapper" : false,
"jshint.enable" : true,
"jshint.config": ".jshintrc",
"markdown.preview.fontSize": 16,
"cSpell.enableFiletypes": [
"solidity"
]
}
- cSpell settings (
.vscode/cspell.json
)
{
"version": "0.2",
"language": "en",
"words": [
"websocket", // Techonology Geneal
"consolas", // Fonts
"lucida",
"menlo",
"webp", // Extensions
"addn", // `bn.js`
"subn",
"pickone", // `chance.js`
"pickset",
"ipfs", // Blockchain
"secp256k1",
"struct", // Ethereum
"bytecode",
"yellowpaper",
"erc",
"ierc",
"vyper",
"remixd",
"solhint",
"mythrill",
"plantuml", // PlantUML
"startuml",
"enduml",
"skinparam",
"addr", // General Abbreviations
"addrs",
"contr", // contract
"contrs",
"descr", // description
"fctr", // factory
"rslt" // result
]
}
Readings
- IntelliSense : a general term for various code editing features including: code completion, parameter info, quick info, and member lists.
JavaScript with VS Code
Rust with VS Code
C/C++ with VS Code
Atom
Readings
- apm - Atom Package Manager
- You can configure apm by using the apm config command line option (recommended) or by manually editing the ~/.atom/.apmrc file as per the npm config.
- To list apm configuration by scope and file, execute
$ apm config ls
Plug-ins
Plug-in |
Description |
Remarks
|
PlatformIO IDE Terminal
|
A terminal package for Atom, complete with themes, API and more for PlatformIO IDE. |
|
Eclipse Theia
IntelliJ IDEA
Plugins
NetBeans
- https://netbeans.org/
- Desc. : lets you quickly and easily develop Java desktop, mobile, and web applications, while also providing great tools for PHP and C/C++ developers.
- License : dual license consisting of the CDDL v1.0 and the GPL v2
UML Modeling
PlantUML
References
Feature |
Description |
Remarks
|
Color
|
specify fill and line colors using standard CSS color name, RGB(#RRGGBB ), RGBA(#RRGGBBaa ), and more |
|
Creole
|
A light-weight Creole engine is integrated in PlantUML to have a standardized way to emit styled text. |
|
OpenIconic
|
an very nice open source icon set which have been integrated into the creole parser, so you can use them out-of-the-box.
|
<&icon_name>
|
Salt (Wireframe)
|
a subproject included in PlantUML that may help you to design graphical interface or Website Wireframe or Page Schematic or Screen Blueprint. |
|
Sprite
|
a small graphic element that can be used in diagrams. |
|
Style |
|
testing stage
|
Skinparam
|
can change colors and font of the drawing using the skinparam command. |
|
Themes
|
!them theme_name |
amiga , mars , metal , mono ...
|
Preprocessing
|
|
|
Skin
Category |
Parameters |
Remarks
|
Default
|
DefaultFontName, DefaultFontColor |
|
Class
|
ClassFontName, ClassFontSize |
|
Sequence
|
|
|
This is **bold**
This is //italics//
This is ""monospaced""
This is --stricken-out--
This is __underlined__
This is ~~wave-underlined~~
This is not ~""monospaced""
* Bullet list
* Second item
** Sub item
= Extra-large heading
== Large heading
=== Medium heading
==== Small heading
Element |
Format |
Remarks |
Sample
|
Underlined Text |
<u:color>text</u> |
|
|
Wave Underlined Text |
<w:color>text</w> |
|
|
Striked Text |
<s:color>text</s> |
|
|
Foreground Color |
<color:color>text</color> |
|
|
Background Color |
<back:color>text</back> |
|
|
Font Size |
<size:n>text</size> |
|
|
Link |
[[url{tooltip} label]] |
label and tooltip are optional
|
[[http://plantuml.com]]
[[http://plantuml.com PlantUML Homepage]]
[[http://plantuml.com{PlantUML} PlantUML Homepage]]
|
- OpenIconic
- : an very nice open source icon set which have been integrated into the creole parser, so you can use them out-of-the-box.
Icon |
Description |
Remarks
|
<&flag> |
flag |
|
<&pin> |
pin |
|
<&expland-down> |
expand down |
|
<&expland-rigght> |
expand down |
|
<&plus> |
plus sign |
|
Library |
Reference |
Description |
Remarks
|
archimate
|
ArchiMate
|
PlantUML macros and other includes for creating Archimate Diagrams easily.
|
ArchiMate Diagram
|
awslib
|
AWS Architecture Icons
|
PlantUML images, sprites, macros, and other includes for Amazon Web Services (AWS) services and resources. |
|
cloudinsight
|
Cloudinsight Icons
|
PlantUML sprites generated from Cloudinsight icons, which can easily be used in PlantUML diagrams for nice visual representation of popular technologies. |
|
material
|
Material Design Icons
|
free Material style icons from Google and other artists |
|
logos
|
SVG Logos
|
PlantUML sprites generated from Gil Barbara's logos, which can easily be used in PlantUML diagrams for nice visual aid. |
|
Sprite
- Sprite : a small graphic element that can be used in diagrams
Sprite |
Import |
Syntax |
Remarks
|
Java |
!include <cloudinsight/java> |
<$java> |
|
Tomcat |
!include <cloudinsight/tomcat> |
<$tomcat> |
|
Kafka |
!include <cloudinsight/kafka> |
<$kafka> |
|
Cassandra |
!include <cloudinsight/cassandra> |
<$cassandra> |
|
Category |
Sprite |
Description |
Remarks
|
Concept |
overview , edit , copy , download , play , pause , loading , disable , exit
|
|
|
Symbol |
remove-sign , point , plus , question , left , right |
|
|
Object
|
user , trash , bell , dashboard , desktop , server , file
|
|
|
Protocol |
snmp |
|
|
Programming |
java , python , nodejs , ruby , php |
|
|
O/S |
windows , linux , docker , openstack |
|
|
Appl. Server |
apache , nginx , tomcat , zookeeper , haproxy |
|
|
Database |
mysql , postgresql |
|
|
NoSQL |
memcached , mongodb , redis , cassandra , couchbase , couchdb , kafka , hdfs
|
|
|
MQ |
activemq , rabbitmq |
|
|
Sprite |
Import |
Syntax |
Remarks
|
Kotlin |
!include <logos/kotlin> |
<$kotlin> |
|
Kafka |
!include <logos/kafka> |
<$kafka> |
|
Cassandra |
!include <logos/cassandra> |
<$cassandra> |
|
- Variable definition :
=
, ?=
- Boolean expression
- Conditions :
!if
, !else
, !elseif
, !endif
- While loop :
!while
, !endwhile
- Including files or URL :
!include
- Builtin functions :
%func
Readings
Typical Source
Diagram Boilerplates
- Sequence Diagram Boilerplate
@startuml
' Useful references
/'
https://plantuml.com/class-diagram
https://plantuml.com/sequence-diagram
https://plantuml.com/activity-diagram-beta
https://plantuml.com/state-diagram
https://plantuml.com/commons
https://plantuml.com/creole
https://plantuml-documentation.readthedocs.io/en/latest/formatting/color-names.html
https://www.w3schools.com/colors/colors_names.asp
https://plantuml.com/color
'/
' https://plantuml-documentation.readthedocs.io/en/latest/formatting/all-skin-params.html
skinparam {
'global font
'DefaultFontName Consolas
DefaultFontName Monaco
'DefaultFontName Lucida Console
'DefaultMonospacedFontName Consolas
'DefaultFontStyle bold
'diagram scope style
DiagramBorderThickness 1
DiagramBorderColor black
'BackgroundColor transparent
BackgroundColor #eeeeee
PageMargin 10
'note style
NoteFontName Courier
NoteBackgroundColor SeaShell
NoteBorderColor transparent
NoteShadowing false
'class style
MinClassWidth 75
ClassFontStyle bold
'arrow style
ArrowFontSize 16
ArrowThickness 1
ResponseMessageBelowArrow true
BoxPadding 50
ParticipantPadding 20
}
' https://plantuml-documentation.readthedocs.io/en/latest/formatting/all-skin-params.html#sequence
skinparam Sequence{
ParticipantFontName Consolas
ArrowFontName Consolas
DividerBorderThickness 1.5
ReferenceBorderThickness 1.5
MessageAlignment reverseDirection /' left | right | direction | reverseDirection '/
ArrowColor DarkSlateGray
ArrowThickness 1.3
LifeLineBorderColor DarkSlateGray
LifeLineBorderThickness 1.3
ActorBorderColor DarkSlateGray
ActorBackgroundColor GhostWhite
ParticipantBorderColor DarkSlateGray
ParticipantBorderThickness 1.5
ParticipantBackgroundColor GhostWhite
BoxBackgroundColor GhostWhite
BoxBorderColor transparent
GroupBorderThickness 1.3
GroupBorderColor DarkBlue
GroupBodyBackgroundColor Azure
}
skinparam Group{
BorderThickness 1.3
BorderShadowing true
}
' https://plantuml.com/commons
scale max 2048 width
hide Circle
hide Footbox
'title Title
'caption Caption
'mainframe Title
' vertical space |||
' vertical space ||50||
' delay ...
||200||
@enduml
- Use-Case Diagram Boilerplate
@startuml
' https://plantuml.com/use-case-diagram
' https://plantuml-documentation.readthedocs.io/en/latest/formatting/all-skin-params.html
skinparam {
'global font
'DefaultFontName Consolas
DefaultFontName Monaco
'DefaultFontName Lucida Console
'DefaultMonospacedFontName Consolas
'DefaultFontStyle bold
'diagram scope style
DiagramBorderThickness 1
DiagramBorderColor black
'BackgroundColor transparent
BackgroundColor #eeeeee
PageMargin 10
}
left to right direction
scale max 2048 width
actor "End User" as user
actor Admin as admin
@enduml
- State Diagram Boilerplate
@startuml
' https://plantuml.com/state-diagram
' https://plantuml-documentation.readthedocs.io/en/latest/formatting/all-skin-params.html
skinparam {
'global font
'DefaultFontName Consolas
DefaultFontName Monaco
'DefaultFontName Lucida Console
'DefaultMonospacedFontName Consolas
'DefaultFontStyle bold
'diagram scope style
DiagramBorderThickness 1
DiagramBorderColor black
'BackgroundColor transparent
BackgroundColor #eeeeee
PageMargin 10
}
scale max 2048 width
@enduml
- Class Diagram Boilerplate
@startuml
' Useful references
/'
https://plantuml.com/class-diagram
https://plantuml.com/creole
https://plantuml-documentation.readthedocs.io/en/latest/formatting/color-names.html
https://www.w3schools.com/colors/colors_names.asp
https://plantuml.com/color
'/
' https://plantuml-documentation.readthedocs.io/en/latest/formatting/all-skin-params.html
skinparam {
'global font
'DefaultFontName Consolas
DefaultFontName Monaco
'DefaultFontName Lucida Console
'DefaultMonospacedFontName Consolas
'DefaultFontStyle bold
'diagram scope style
DiagramBorderThickness 1
DiagramBorderColor black
'BackgroundColor transparent
BackgroundColor #eeeeee
PageMargin 10
}
skinparam Class {
AttributeIconSize 0
}
hide Circle
hide empty Fields
hide empty Methods
@enduml
Sequence Diagrams
- Using
return
and delay (|||
@startuml
scale max 1536 width
hide Circle
hide Footbox
participant "Client" as client
participant "ERC1155Contract" as contract <<smart contract>>
client ->> contract ++ : **mint**(**//acct1//**, //asset1//, **//n1//**)
return
client -> contract ++ : balanceOf(//acct1//)
return //n1//
client -> contract ++ : supplyOf(//asset1//)
return //n1//
||50||
client ->> contract ++ : **mint**(**//acct2//**, //asset1//, **//n2//**)
return
client -> contract ++ : balanceOf(//acct1//)
return //n1//
client -> contract ++ : balanceOf(//acct2//)
return //n2//
client -> contract ++ : supplyOf(//asset1//)
return //n1 + n2//
||50||
client ->> contract ++ : **mint**(**//acct1//**, //asset1//, **//n3//**)
return
client -> contract ++ : balanceOf(//acct1//)
return //n1 + n3//
client -> contract ++ : balanceOf(//acct2//)
return //n2//
client -> contract ++ : supplyOf(//asset1//)
return //n1 + n2 + n3//
||30||
@enduml
UMLet
UMLGraph
Readings
Sirius
- http://www.eclipse.org/sirius/
- Desc. : an Eclipse project which allows you to easily create your own graphical modeling workbench by leveraging the Eclipse Modeling technologies, including EMF and GMF.
- License
BOUML
- https://www.bouml.fr/
- Desc. : a free UML 2 tool box including a modeler allowing you to specify and generate code in C++, Java, Idl, Php, Python and MySQL.
- License :
UML Designer
Modelio
yEd
Readings
Mermaid
ZenUML
- https://zenuml.com/
- Desc. : a multi-platform diagram-as-code solution for sequence diagrams, flow chart and more
Kroki
- https://kroki.io/
- Desc. : provides a unified API with support for BlockDiag, BPMN, Bytefield, C4 (with PlantUML), D2, DBML, Ditaa, Erd, Excalidraw, GraphViz, Mermaid, Nomnoml, Pikchr, PlantUML, Structurizr, SvgBob, Symbolator, TikZ, UMLet, Vega, Vega-Lite, WaveDrom, WireViz... and more to come!
- License : MIT
- Sources : https://github.com/yuzutech/kroki
Data Modeling
DBML
SQL Developer Data Modeler
References
- Features supported or not supported
Feature |
Supporting |
Remarks
|
Defining AK(Alternative Key) |
|
|
Defining View |
Yes |
|
Defining FK from AK |
|
|
Using Domain |
Yes |
datatype alias for more intuitive and consistent representation
|
Defining mandatory or initial data |
Yes |
|
Generate DDL |
Yes |
- Oracle Database 9i/10g/11g/12c, SQL Server 2000/2005/2008/2012, DB2/UDB 7.1/8.1/9 - Not supporting MySQL and PostgreSQL as of 4.2
|
Using name template |
Yes |
PK, FK, UK, Check, Index, ...
|
Config
- datamodeler/bin/datamodeler.conf
#SetJavaHome ../../jdk
SetJavaHome C:/lang/jdk1.8
AddVMOption -Duser.language=en
AddVMOption -Duser.country=US
- datamodeler/types/dl_settings.xml
- font_name="Dialog" font_size="10" -> font_name="Malgun Gothic" font_size="12"
Readings
SQL Power Architect
- Features supported or not supported
Feature |
Supporting |
Remarks
|
Defining AK(Alternative Key) |
Yes |
|
Defining View |
No |
|
Defining FK from AK |
No |
|
DbSchema
References
- DbSchema Features
- Logical Design, Physical Design, Database Connectivity, Reverse Engineering, Schema Sync, ...
- Design Database Schema : Tables, Columns, Indexes, Foreign Keys, Constraints, Views, Sequences
Property |
Symbol |
Description |
Remarks
|
Primary Key |
Key |
|
|
Foreign Key |
Outgoing Arrow |
|
|
Referenced Column |
Incoming Arrow |
|
|
Mandatory Column |
Double Quotation Mark (" ) |
|
|
Indexed Column |
Magnifier |
|
|
Readings
Text Editor
vi
Commands
Category |
Command |
Description |
Remarks
|
Movement |
h |
Move cursor left one character |
|
|
j |
Move cursor down one line |
|
|
k |
Move cursor up one line |
|
|
l |
Move cursor right one character |
|
|
0 |
Move cursor to the start of current line |
Zero
|
|
^ |
Move cursor to first non-whitespace character |
|
|
$ |
Move cursor to the end of current line |
|
|
b |
Move cursor to the start of current or preceding word |
|
|
w |
Move cursor to the start of next word |
|
|
gg |
Move to the first line |
|
|
G |
Move to the last line |
|
|
nG |
Move to the nth line |
|
Deleting |
x |
Delete single character under cursor |
|
|
dd |
Delete current line |
|
|
ndd |
Delete the next n lines, including the current line |
|
|
D |
Delete the remainder of the line, starting with current cursor position
|
Copy/Paste |
yy |
Yank current line into the buffer |
|
|
nyy |
Yank the next n lines, including the current line into the buffer |
|
|
p |
Paste the line(s) in the buffer into the text after the current line |
|
Misc |
u |
Undo your last action |
|
ex Commands
: addr command
addr:
% all lines in file
x,y lines x to y
. current line
n line number: n
$ last line of file
x-n n lines before line x
x+n n lines after line x
/pat/ forward to line containing pat
?pat? backward to line containing pat
command:
s/pat/text/ substitute 1st match of pat with text
s/pat/text/g substitute every match of pat with text
s/pat/text/n substitute the nth occurrence of pat with text
ya c yank into buffer c or the general buffer if c is omitted
g address cmd execute cmd on all lines which satisfy address
> shift right
< shift left
d delete line
! UNIX-cmd execute UNIX-cmd on line
m address move lines to address
Command |
Description |
Remarks
|
:1,$d |
Delete all lines |
|
:.,$d |
Delete lines from current to end |
|
:set nu |
Display line numbers |
|
Tips and Trics
Simple Configuration
set fileencoding=utf-8
set fileencodings=utf-bom,utf-8,euc-kr,cp949,latim1
" set backupdir=c:\\temp
set wrap
set smartindent
set tabstop=2
set shiftwidth=2
set nowrapscan
set number
set ruler
if has("syntax")
syntax on
endif
jEdit
- http://www.jedit.org/
- Desc. : a mature programmer's text editor with hundreds (counting the time developing plugins) of person-years of development behind it
- License : GPL 2.0
Documentation
Swagger
References
API
Annotation |
Description |
Elements |
Remarks
|
@Operation
|
Used to define a resource method as an OpenAPI Operation, and/or to define additional properties for the Operation. |
|
|
@Parameter
|
Used on a method parameter to define it as a parameter for the operation, and/or to define additional properties for the Parameter. |
|
Can be used in place of or together with the JAX-RS parameter annotations (@PathParam , @QueryParam , @HeaderParam , @FormParam and @BeanParam )
|
@RequestBody
|
Used on a method parameter to define it as the Request Body of the operation, and/or to define additional properties for such request body.
|
|
@Content
|
@ApiResponse
|
Used at method level or as field of Operation to define one or more responses of the Operation. |
|
@Content
|
@Content
|
Used to define the content/media type of a parameter, request or response.
|
|
@Parameter.content , @RequestBody.content , @ApiResponse.content
|
@Schema
|
used to define a Schema for a set of elements of the OpenAPI spec, and/or to define additional properties for the schema.
|
hidden , example , examples , exampleClasses
|
@Parameter.schema , @Content.schema
|
Annotation |
Description |
Remarks
|
@ApiModel
|
Provides additional information about Swagger models. |
|
@ApiModelProperty
|
Adds and manipulates data of a model property. |
|
Codegen
Readings
Typical Samples
Callback
@PostMapping(
produces = APPLICATION_JSON_VALUE)
@Operation(
summary = "Asset Creation",
tags = "Assets"
description = "...")
@Callback(
name = "Asset Created Success Callback",
callbackUrlExpression = "..."
operation = @Operation(
method = "post",
requestBody = @io.swagger.v3.oas.annotations.parameters.RequestBody(
content = @Content(
mediaType = "application/json",
schema = @Schema(
implementation = foo.bar.AssetCreatedMessage.class)))))
public @ResponseBody String createAsset(@RequestBody final AssetCreationReq req){
...
}
- Callback request body schema (foo.bar.AssetCreatedMessage) part
@Getter
@Schema(title = "AssetCreatedMessage")
public class AssetCreatedMessage{
@Schema(title = "Asset ID", description = "Identifier to specify an asset", example = "31")
@NotNull @Min(1) private Integer id;
@Schema(title = "Asset Type", description = "Asset type", example = "Paintings")
@NotBlank @Size(min = 1, max = 50) private AssetType type;
@Schema(title = "Created At", description = "When this asset is registered first time", example = "2023-03-22T09:51:23")
private LocalDateTime createdAt;
}
Swagger2Markup
- https://github.com/Swagger2Markup/swagger2markup
- Desc. : simplify the generation of an up-to-date RESTful API documentation by combining documentation that’s been hand-written with auto-generated API documentation produced by Swagger.
- License : Apache License Version 2.0
SpringFox
References
Readings
- Documenting Spring Boot REST API with Swagger and SpringFox
- basic dependency : io.springfox:springfox-swagger2:2.9.2
- adding UI including swagger-ui.html : io.springfox:springfox-swagger-ui:2.9.2
- adding JSR-303 support : io.springfox:springfox-bean-validators:2.9.2, @Import(BeanValidatorPluginsConfiguration.class)
Samples
springdoc-openapi
Readings
Property |
Description |
Default |
Remarks
|
springdoc.api-docs.resolve-schema-properties
|
To enable property resolver on @Schema (name, title and description). |
false |
|
springdoc.model-converters.sort-converter.enabled
|
To disable Sort converter |
true |
|
springdoc.writer-with-order-by-keys
|
Enable a deterministic/alphabetical ordering |
false
|
springdoc.writer-with-default-pretty-printer
|
To enable pretty print of the OpenApi specification. |
false |
|
springdoc.swagger-ui.showCommonExtensions
|
Controls the display of extensions (pattern , maxLength , minLength , maximum , minimum ) fields and values for Parameters. |
|
|
springdoc.swagger-ui.operationsSorter
|
Apply a sort to the operation list of each API |
|
Array.prototype.sort()
|
springdoc.swagger-ui.tagsSorter
|
Apply a sort to the tag list of each API |
|
|
springdoc:
use-fqn: false
swagger-ui:
show-common-extensions: true
default-model-rendering: "example" # ("example" | "model")
default-models-expand-depth: 5
default-model-expand-depth: 5
disable-swagger-default-url: false
#validator-url: 'none' # 'none' : no validation
api-docs:
path: /swagger-ui/api-docs
enabled: true
OpenAPI Generator
Readings
ReDoc
Configuration
Scheme |
Item |
Type |
Default |
Description |
Remarks
|
theme.openapi |
expandDefaultResponse |
boolean |
|
Enables or disables expanding default response content panel |
|
|
expandDefaultRequest |
boolean |
|
|
|
|
expandResponses |
string |
|
|
|
CLI
Command |
Syntax |
Description |
Options |
Remarks
|
build-docs
|
redocly build-docs api option1 option2 ...
|
builds Redoc into an HTML file.
|
--config , --disableGoogleFont , --output (-o ), --title |
|
Typical Usages
$ redoc-cli serve ./api-spec.json --port 8088
- Minimal configuration file
features.openapi:
expandDefaultServerVariables: true
expandDefaultRequest: true
expandDefaultResponse: true
expandSingleSchemaField: true
expandResponses: '200'
schemaExpansionLevel: 3
sortTagsAlphabetically: true
Doxygen
- http://www.stack.nl/~dimitri/doxygen/
- Desc. : a documentation system for C++, C, Java, Objective-C, Python, IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, C#, and to some extent D.
- License : GPL
Sphinx
References
CLI
Command |
Syntax |
Description |
Remarks
|
sphinx-build
|
sphinx-build [options] sourcedir outputdir [filename …]
|
Generates documentation from the files in sourcedir and places it in the outputdir |
|
sphinx-quickstart
|
sphinx-quickstart
|
An interactive tool that asks some questions about your project and then generates a complete documentation directory and sample Makefile to be used with sphinx-build |
|
Extensions
Pandoc
- http://johnmacfarlane.net/pandoc/
- Desc. : convert documents in markdown, reStructuredText, textile, HTML, DocBook, or LaTeX to HTML formats, word processor formats, documentation formats, TeX formats, PDF, and/or lightweight markup formats.
- License : GPL
- Sources
Asciidoctor
- https://asciidoctor.org/
- Desc. : A fast text processor & publishing toolchain for converting AsciiDoc to HTML5, DocBook & more.
jax-doclets
xs3p
- http://sourceforge.net/projects/xs3p/
- Desc. : an XSLT stylesheet that will generate an XHTML document from an XSD schema.
- License : DSTC Public License (DPL)
- Maven artifacts
- Sources
- Readings
Enunciate
MireDot
Publication
Medium
GitBook
CLI
$ gitbook help serve
build [book] [output] build a book
--log Minimum log level to display (Default is info; Values are debug, info, warn, error, disabled)
--format Format to build to (Default is website; Values are website, json, ebook)
--[no-]timing Print timing debug information (Default is false)
serve [book] [output] serve the book as a website for testing
--port Port for server to listen on (Default is 4000)
--lrport Port for livereload server to listen on (Default is 35729)
--[no-]watch Enable file watcher and live reloading (Default is true)
--[no-]live Enable live reloading (Default is true)
--[no-]open Enable opening book in browser (Default is false)
--browser Specify browser for opening book (Default is )
--log Minimum log level to display (Default is info; Values are debug, info, warn, error, disabled)
--format Format to build to (Default is website; Values are website, json, ebook)
install [book] install all plugins dependencies
--log Minimum log level to display (Default is info; Values are debug, info, warn, error, disabled)
parse [book] parse and print debug information about a book
--log Minimum log level to display (Default is info; Values are debug, info, warn, error, disabled)
init [book] setup and create files for chapters
--log Minimum log level to display (Default is info; Values are debug, info, warn, error, disabled)
pdf [book] [output] build a book into an ebook file
--log Minimum log level to display (Default is info; Values are debug, info, warn, error, disabled)
epub [book] [output] build a book into an ebook file
--log Minimum log level to display (Default is info; Values are debug, info, warn, error, disabled)
mobi [book] [output] build a book into an ebook file
--log Minimum log level to display (Default is info; Values are debug, info, warn, error, disabled)
Plugins
Plugin |
Description |
Remarks
|
hints |
Styled hint blocks in your docs |
|
puml |
UML Diagrams rendering using PlantUML |
|
prism |
Plugin for Prism |
|
Read the Docs
- https://readthedocs.org/
- Desc. : simplifies software documentation by automating building, versioning, and hosting of your docs for you.
Docsify
Scribus
Publican
Partner Program
mdBook
SQL Client/Database Management
SQuirreL SQL Client
- http://www.squirrelsql.org/
- Desc. : A graphical Java program that will allow you to view the structure of a JDBC compliant database, browse the data in tables, issue SQL commands etc.
HeidiSQL
- http://www.heidisql.com/
- Desc. : a useful and reliable tool designed for web developers using the popular MySQL server, Microsoft SQL databases and PostgreSQL
- License : GPL
MySQL Workbench
OS |
Location |
Remarks
|
Windows |
%AppData%\MySQL\Workbench\ |
|
macOS |
~/Library/Application Support/MySQL/Workbench/ |
|
Linux |
~/.mysql/workbench/ |
|
Color/Shape |
Meaning |
Remarks
|
Yellow Key |
primary key |
|
Red Key |
primary key, foreign key |
|
Blue Diamond Filled |
non-null |
|
Red Diamond Filled |
non-null, foreign key |
|
Blue Diamond Unfilled |
nullable |
|
Red Diamond Unfilled |
nullable, foreign key |
|
IBM Data Studio
Oracle SQL Developer
SchemaSpy
- http://schemaspy.sourceforge.net/
- Desc. : a Java-based tool (requires Java 5 or higher) that analyzes the metadata of a schema in a database and generates a visual representation of it in a browser-displayable format.
- License : Lesser GNU Public License 2.1
SQLLine
Robomongo
Software License Analysis
FOSSology
Ninka
OSS Discovery
System Diagnosis/Monitoring
nmon
top
- Tips
- Remarkable commands
W
: Write-the-Configuration-File
f | F
: :Fields-Management
H
: Threads-mode toggle
I
: Irix/Solaris-Mode toggle
t
: Task/Cpu-States toggle
m
: Memory/Swap-Usage toggle
1
: Single/Separate-Cpu-States toggle
c
: Command-Line/Program-Name toggle
u | U
: Show-Specific-User-Only
i
: Idle-Process toggle
htop
Wireshark
iperf
Process Explorer
Process Monitor
DebugView
Testing
- Performance Testing Tools
Tool |
Description |
Script Support |
License |
Remarks
|
JMeter |
|
Groovy, JSR-223 |
|
|
Gatling
|
a load test tool officially supporting HTTP, WebSocket, Server-Sent-Events and JMS.
|
Java, Kotlin, Scala |
Apache 2.0
|
k6
|
Modern load testing for developers and testers in the DevOps era.
|
JavaScript |
AGPL-3.0 |
Grafana Labs
|
Locust
|
an easy to use, scriptable and scalable performance testing tool.
|
Python |
MIT
|
JMeter
- http://jmeter.apache.org/
- Des. : a 100% pure Java application designed to load test functional behavior and measure performance.
- License : Apache License v2
References
Category |
Component |
Description |
Remarks
|
Configuration
|
User Defined Variables
|
|
|
|
SSL Manager
|
a way to select a client certificate so that you can test applications that use Public Key Infrastructure (PKI)
|
Basic Authentication, Digest Authentication, Kerberos
|
|
HTTP Authorization Manager
|
lets you specify one or more user logins for web pages that are restricted using server authentication
|
|
|
CSV Data Set Config
|
|
|
Logic Controllers
|
Switch Controller
|
acts like the Interleave Controller in that it runs one of the subordinate elements on each iteration, but rather than run them in sequence, the controller runs the element defined by the switch value.
|
|
Pre Processors
|
User Parameters
|
|
|
Timer
|
Constant Throughput Timer
|
introduces variable pauses, calculated to keep the total throughput (in terms of samples per minute) as close as possible to a give figure.
|
|
Assertions
|
Response Assertion
|
lets you add pattern strings to be compared against various fields of the request or response
|
Perl5-style regular expressions
|
|
JSON Assertion
|
|
|
Category |
Function |
Description |
Remarks
|
Scripting
|
__groovy
|
Evaluates Apache Groovy scripts passed to it, and returns the result
|
Apache Groovy Documentation
|
|
__BeanShell
|
Evaluates the script passed to it, and returns the result
|
BeanShell User Manual - version 1.3
|
|
__javaScript
|
Executes a piece of JavaScript code and returns its value
|
Not recommanded
|
Variables
|
__V
|
Returns the result of evaluating a variable name expression
|
${__V(A${N})}
|
|
__eval
|
Returns the result of evaluating a string expression
|
${__eval(${SQL})}
|
Readings
Plugins
Tips and Tricks
Using variables in assertion
In 'Response Assertion', the variable defined via 'CSV Data Set Config' or 'User Defined Variables' can be used in test pattern.
In the following sample, certHash
is variable defined in 'CSV Data Set Config'
${__escapeOroRegexpChars(\"cert_hash\":\"${certHash}\")}
Running JMeter with GraalVM and Graal.js
- Install GraalVM
- Install Graal.js using GraalVM Updater
- Change
JAVA_HOME
in jmeter
command-line
- The below sample is for MacOS
#!/bin/bash
#JAVA_HOME="/usr/local/opt/openjdk" exec "/usr/local/Cellar/jmeter/5.5/libexec/bin/jmeter" "$@"
JAVA_HOME="/Library/Java/JavaVirtualMachines/graalvm-ce-java17-22.3.1/Contents/Home" exec "/usr/local/Cellar/jmeter/5.5/libexec/bin/jmeter" "$@"
- Check full command-line using
ps
$ ps auxww | grep jmeter
...
k6
Command-line
Command |
Description |
Remarks
|
archive |
|
|
inspect |
|
|
run |
|
|
pause |
|
|
resume |
|
|
scale |
|
|
status |
|
|
stats |
|
|
Readings
Artillery
Section |
Element |
Description |
Remarks
|
config
|
target
|
the endpoint of the system under test |
|
|
variables
|
can define multiple values for a variable and access them randomly in your scenarios. |
|
Hooks
Hook |
Description |
Signature |
Remarks
|
beforeScenario
|
called before a virtual user executes a scenario |
|
|
afterScenario
|
called after a virtual user executes a scenario |
|
|
beforeRequest
|
called before sending a request |
|
|
afterResponse
|
called after a response has been received |
|
|
function
|
may be run at any point in a scenario |
|
|
Locust
ApacheBench
Eclipse TPTP
- http://www.eclipse.org/tptp/
- Desc. : provides an open platform supplying powerful frameworks and services that allow software developers to build unique test and performance tools, both open source and commercial, that can be easily integrated with the platform and with other tools.
Testopia
TestLink
FitNesse
CodePro Analytix
Postman
References
Scripting
pm
Object
Property/Function |
Data-type |
Description |
Members |
Remarks
|
pm.variables |
Object
|
Accessing variables at different scopes and setting local variables. |
|
|
pm.variables.get(key: String) |
|
Access a variable at any scope including local |
|
|
pm.variables.set(key: String, value) |
|
Use to define a local variable. |
|
|
pm.environment |
Object
|
Access and manipulate variables in the active (currently selected) environment. |
|
|
pm.collectionVariables |
Object
|
Access and manipulate variables in the collection. |
|
|
pm.global |
Object
|
Access and manipulate variables at global scope within the workspace. |
|
|
pm.request.url |
Url |
|
|
|
pm.request.url.query.get(param:String) |
|
|
|
|
pm.request.url.path[index] |
|
|
|
0-based index
|
pm.request.method |
String |
|
|
|
pm.request.headers |
HeaderList |
|
|
|
pm.request.body |
RequestBody |
|
|
|
pm.response.code |
Number |
HTTP response status code |
|
|
pm.response.status |
String |
HTTP response status text |
|
|
pm.response.headers |
HeaderList |
HTTP response status code |
|
|
pm.response.text() |
String |
response body as a plain text |
|
|
pm.response.json() |
Object |
response body as a JSON object |
|
|
pm.cookies |
Object |
|
|
|
pm.info |
Object
|
Provides data related to the request and the script itself, including name, request ID, and iteration count. |
|
|
pm.test(name:String, criteria:Function) |
|
|
|
|
pm.sendRequest(url:String, handler:Function) |
|
Send a request asynchronously from a Pre-request or Test script. |
|
|
pm.expect(assertions) |
|
|
|
Chai Assertion BDD
|
Postman Collection SDK
Class |
Description |
Members |
Remarks
|
Request
|
A Postman HTTP request object |
|
|
Response
|
Holds data related to the request body.
|
code: Number , status: String , body: String , json(): Object |
|
Sources
Readings
Sample Scripts
- Using script scope variables and defining conditional test function
// https://www.getpostman.com/docs/v6/postman/scripts/postman_sandbox_api_reference
// https://www.chaijs.com/api/bdd/
let payload = pm.response.json();
pm.test('Response code should be 200', () => {
pm.response.to.have.status(200);
});
pm.test('Server should have NON-empty complete ledgers', () => {
pm.expect(payload.result.info.complete_ledgers).to.not.equal('empty');
});
if(pm.variables.get('hostname')){
pm.test('Node should have "hostid" same with hostname of the hosted machine', () => {
pm.expect(payload.result.info.hostid).to.be.equal(pm.variables.get('hostname'));
});
}
- Parsing path and request before sending request
const reqBody = JSON.parse(pm.request.body.raw);
//not working - variables are not bound yet in 'Pre-request Script'
//const securityId = pm.request.url.path[pm.request.url.path.indexOf('securities') + 1];
const securityId = pm.variables.get('__default_security_id');
const sender = pm.variables.get(reqBody['sender'].slice(2, -2));
const recipient = pm.variables.get(reqBody['recipient'].slice(2, -2));
const baseUrl = pm.variables.get('base_url');
pm.sendRequest(`${baseUrl}/securities/${securityId}/holders/${sender}/balance`, (err, resp) => {
pm.expect(resp.code).be.within(200, 299);
const respBody = resp.json();
pm.expect(respBody.balance).at.least(0);
pm.variables.set('sender_balance_before', respBody.balance);
});
pm.sendRequest(`${baseUrl}/securities/${securityId}/holders/${recipient}/balance`, (err, resp) => {
pm.expect(resp.code).be.within(200, 299);
const respBody = resp.json();
pm.expect(respBody.balance).exist;
pm.variables.set('recipient_balance_before', respBody.balance);
});
- Sending another request in the test script to pull the result (async operation case)
let payload = pm.response.json();
let baseUrl = pm.variables.get('base_url');
pm.test('Response code should be 200', () => {
pm.response.to.have.status(200);
}).test('Response body should have task ID', () => {
pm.expect(payload.taskId).to.exist;
pm.globals.set("__last_task_id", payload.taskId);
console.log(`Last task ID : ${pm.globals.get("__last_task_id")}, Task Type : Issue Tokens`);
}).test('The result after polling Task API should have success state.', () => {
setTimeout(() => {
pm.sendRequest(`${baseUrl}/tasks/${payload.taskId}`, (err, resp) => {
let result = resp.json();
console.log(result);
pm.expect(result.state).to.equal('SUCCESS');
pm.expect(result.taskId).to.equal(payload.taskId);
});
}, 2000);
});
- Polling the result for the additional async request in test script - Using
setInterval()
instead of setTimeout()
'use strict';
const payload = pm.response.json();
const baseUrl = pm.variables.get('base_url');
pm.test('Response code should be 2XX', () => {
pm.response.to.be.success;
}).test('Response body should have task ID', () => {
pm.expect(payload.taskId).to.exist;
pm.globals.set("__last_task_id", payload.taskId);
console.log(`Last task ID : ${pm.globals.get("__last_task_id")}, Task Type : Issue Tokens`);
}).test('The result after polling Task API should have success state.', () => {
let tries = 0;
const maxTries = 5;
(function check() {
let result = {};
setTimeout(() => {
pm.sendRequest(`${baseUrl}/tasks/${payload.taskId}`, (err, resp) => {
result = resp.json();
if(result.state === 'SUCCESS'){
pm.expect(result.taskId).to.equal(payload.taskId);
checkPostConditions();
}else if(result.state === 'FAILURE'){
pm.expect.fail();
console.log(result)
}else{
tries++;
if(tries === maxTries){ pm.expect.fail("Too many tries."); }
else{ check(); }
}
})
}, 1_000)
})();
});
function checkPostConditions(){
const securityId = pm.request.url.path[pm.request.url.path.indexOf('securities') + 1];
const reqBody = JSON.parse(pm.request.body.raw);
const sender = reqBody['sender'];
const recipient = reqBody['recipient'];
const delta = reqBody['amount'];
// check sender's balance
pm.test(`Sender's balance is expected to be decreased as match`, () => {
pm.sendRequest(`${baseUrl}/securities/${securityId}/holders/${sender}/balance`, (err, resp) => {
pm.expect(resp.code).be.within(200, 299);
const respBody = resp.json();
pm.expect(respBody.balance).to.equal(pm.variables.get('sender_balance_before') - delta);
});
});
// check recipient's balance
pm.test(`Recipient's balance is expected to be increased as match`, () => {
pm.sendRequest(`${baseUrl}/securities/${securityId}/holders/${recipient}/balance`, (err, resp) => {
pm.expect(resp.code).be.within(200, 299);
const respBody = resp.json();
pm.expect(respBody.balance).to.equal(pm.variables.get('recipient_balance_before') + delta);
});
});
}
// request
pm.expect(payload.id).to.equal(pm.request.url.path[pm.request.url.path.indexOf('products') + 1]);
const reqBody = JSON.parse(pm.request.body.raw);
const sender = reqBody['sender'];
const recipient = reqBody['recipient'];
// response
pm.response.to.have.status(200);
pm.response.to.be.success;
pm.response.to.be.error;
pm.response.to.be.clientError;
pm.response.to.be.serverError;
pm.response.to.be.notFound;
pm.response.code; // Number, eg. 200, 404
pm.expect(pm.response.code).to.within(400, 599);
pm.response.status; // String, eg. 'Not Found'
let payload = pm.response.json();
Newman
Fiddler
Phoronix Test Suite
- http://www.phoronix-test-suite.com/
- Desc. : the most comprehensive testing and benchmarking platform available for Linux, Solaris, Mac OS X, and BSD operating systems.
- License : GNU GPL
Blogbench
Log Viewer
Lilith
- http://lilith.huxhorn.de/
- Desc. : Lilith is a logging and access event viewer for the Logback logging framework, log4j and java.util.logging.
- License :
Build
Maven
Ant
- http://ant.apache.org/
- Desc. : a Java library and command-line tool whose mission is to drive processes described in build files as targets and extension points dependent upon each other.
- >> On Ant
Gradle
- http://www.gradle.org/
- Desc. : automate the building, testing, publishing, deployment and more of software packages or other types of projects such as generated static websites, generated documentation or indeed anything else.
- License :
- Source :
References
Properties
Property |
Description |
Default |
Remarks
|
org.gradle.daemon=(true,false)
|
When set to true the Gradle Daemon is used to run the build.
|
true |
|
org.gradle.debug=(true,false)
|
When set to true , Gradle will run the build with remote debugging enabled, listening on port 5005.
|
false |
|
org.gradle.java.home=(path to JDK home)
|
Specifies the Java home for the Gradle build process. |
|
|
org.gradle.jvmargs=(JVM arguments)
|
Specifies the JVM arguments used for the Gradle Daemon. |
|
Does NOT affect the version of Java used to launch the Gradle client VM
|
org.gradle.logging.level=(quiet,warn,lifecycle,info,debug) |
|
|
|
Environment Variable |
Description |
Remarks
|
JAVA_HOME |
Specifies the JDK installation directory to use for the client VM. |
|
GRADLE_USER_HOME |
Specifies the Gradle user home directory. |
default : $USER_HOME/.gradle
|
GRADLE_OPTS |
Specifies JVM arguments to use when starting the Gradle client VM. |
|
Commands
Command |
Description |
Plugin-in |
Remarks
|
$ gradle help --task taskname |
gives you detailed information about a specific task |
|
|
$ gradle tasks --all |
gives you a list of the main tasks of the selected project |
|
|
$ gradle build |
designate assembling all outputs and running all checks |
Base |
|
$ gradle run |
assembles the application and executes some script or binary |
|
|
$ gradle clean |
delete the contents of the build directory |
|
|
$ gradle project |
gives you a list of the sub-projects of the selected project, displayed in a hierarchy |
|
|
$ gradle dependencies |
gives you a list of the dependencies of the selected project, broken down by configuration |
|
|
Plugins
Plugin |
Description |
Tasks |
Remarks
|
Base
|
Provides some tasks and conventions that are common to most builds and adds a structure to the build that promotes consistency in how they are run.
|
assemble , build , clean |
|
|
Java
|
Provides support for building any type of Java project. |
|
|
Java Library
|
Provides support for building a Java library. |
|
|
Java Platform
|
Provides support for building a Java platform. |
|
|
Groovy
|
Provides support for building any type of Groovy project. |
|
|
Category |
Plugin |
Title |
Description |
Tasks |
Remarks
|
Gradle |
com.palantir.git-version |
|
A plugin that generates a version for use with Gradle by calling git-describe. |
|
|
Docker |
com.palantir.docker |
|
A simple docker orchestrator for executing docker build and push from within Gradle. |
|
|
Spring |
org.springframework.boot
|
Spring Boot Gradle Plugin |
provides Spring Boot support in Gradle. |
bootJar, bootRun |
|
Java Plugin
Dependency |
Parents |
Description |
Remarks
|
compile |
|
Compile time dependencies. |
Superseded by implementation.
|
implementation |
compile |
Implementation only dependencies. |
|
compileOnly |
|
Compile time only dependencies, not used at runtime. |
|
compileClasspath |
compile, compileOnly, implementation
|
Compile classpath, used when compiling source. |
Used by task compileJava.
|
annotationProcessor |
|
Annotation processors used during compilation. |
|
runtime |
compile |
Runtime dependencies. |
Superseded by runtimeOnly.
|
runtimeOnly |
|
Runtime only dependencies. |
|
runtimeClasspath |
runtimeOnly, runtime, implementation |
Runtime classpath contains elements of the implementation, as well as runtime only elements. |
|
Java Library Plugin
Spring Boot Gradle Plugin
Typical Configurations
plugins {
id 'java'
id 'org.springframework.boot'
id 'io.spring.dependency-management'
id 'eclipse'
}
group = 'foo.bar'
version = '1.0.0'
sourceCompatibility = '17'
targetCompatibility = '17'
eclipse {
classpath {
downloadSources = true
downloadJavadoc = true
}
}
repositories {
mavenCentral()
}
Readings
Package Management
- Package Management Softwares
Software |
Scope |
Remarks
|
APT (Advanced Package Tool) |
Ubuntu, Debian
|
a set of tools for managing Debian packages, and therefore the applications installed on your Debian system
|
RPM |
CentOS, RHLP
|
a powerful command line driven package management system capable of installing, uninstalling, verifying, querying, and updating computer software packages
|
yum |
CentOS, RHLP
|
an automatic updater and package installer/remover for rpm systems
|
Chocolatey |
Windows |
the package manager for Windows
|
Homebrew |
macOS |
The Missing Package Manager for macOS
|
npm |
JavaScript |
the package manager for JavaScript
|
yarn |
JavaScript |
a package manager for JavaScript
|
pip |
Python |
the PyPA recommended tool for installing Python packages
|
RubyGems |
Ruby |
allows you to easily download, install, and use ruby software packages on your system
|
Bundler |
Ruby
|
provides a consistent environment for Ruby projects by tracking and installing the exact gems and versions that are needed
|
RPM
- http://rpm.org/
- Desc. : a powerful command line driven package management system capable of installing, uninstalling, verifying, querying, and updating computer software packages.
References
Option |
Long Option |
Description |
Remarks
|
-U |
--upgrade |
Upgrade/install |
|
-I |
--install |
Install |
|
-e |
--erase |
Remove |
|
-q |
--query |
Query |
|
-V |
--verify |
Verify |
|
|
--showrc |
Display final rpmrc and macro configuration |
|
Readings
Samples
$ # install or upgrade. (do NOT use rpm -i ... as possible)
$ rpm -Uhv mysql-workbench-community-6.2.3-1.el6.x86_64.rpm
$ # list files in a installed package
$ rpm -ql mysql-workbench-community
$ # list files in a rpm file
$ rpm -qlp mysql-workbench-community-6.2.3-1.el6.x86_64.rpm
$ # list install/erase scriptlets in a rpm file
$ rpm -qp --scripts mysql-workbench-community-6.2.3-1.el6.x86_64.rpm
yum
- http://yum.baseurl.org/
- Desc. : an automatic updater and package installer/remover for rpm systems.
- Readings
- Fedora Yum Guide
- Managing Packages With Yum
yum list, yum install, yum remove, yum update, yum check-update, yum info, yum search, yum provides, yum clean
- Basic Yum Commands and how to use them
- Yum groups and repositories
yum grouplist, yum groupinfo, yum groupinstall, yum groupremove, yum groupupdate
- How To Download a RPM Package Using yum Command Without Installing On Linux (JULY 9, 2008)
- Listing Files Contained in a Package
- CentOS / RHEL: List All Configured Repositories (FEBRUARY 25, 2013)
- Adding, Enabling, and Disabling a Yum Repository
- Using RPMforge
- Yum install maven : Yes you can ! (August 21, 2013)
Command |
Description |
Remarks
|
yum check-update
|
See which installed packages on your system have updates available. |
|
yum update
|
Update a single package, multiple packages, or all packages at once. |
|
yum search
|
Search all RPM package names, descriptions and summaries. |
|
yum list
|
Listing Packages |
yum list [all|available|installed|...|recent] [glob_expr1 glob_expr2 ...]
|
yum list all |
Lists all installed and available(packages in any repository enabled on your system) packages. |
|
yum list installed |
Lists all packages installed on your system. |
rpm -qa
|
yum list available |
Lists all available packages in all enabled repositories. |
|
yum list extras |
Lists any installed package which no longer appears in any of your enabled repositories.
|
Useful for finding packages which linger between upgrades or things installed not from a repo.
|
yum list obsoletes |
Lists any obsoleting relationships between any available package and any installed package. |
|
yum list updates |
Lists any package in an enabled repository which is an update for any installed package. |
|
yum list recent |
Lists any package in an enabled repository which is an update for any installed package. |
|
yum provides
|
Advanced Searches |
|
- Examples
yum -v repolist enabled
//list only enabled repositories
yum -v list all subversion --enablerepo=rpmforge-extras
//search subversion packages both installed and available including 'rpmforge-extras' repository
yum -v list installed
//list all installed packages
APT
- https://wiki.debian.org/Apt
- Desc. : a free software user interface that works with core libraries to handle the installation and removal of software on the Debian, Slackware and other Linux distributions
Homebrew
RubyGems
- http://rubygems.org/
- Desc. : allows you to easily download, install, and use ruby software packages on your system
- License : Ruby License
- Written in : Ruby
Bundler
Frontend
MySchedule
Networking
OpenSSL
- https://www.openssl.org/
- Desc. : a robust, commercial-grade, full-featured, and Open Source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a full-strength general purpose cryptography library.
- License :
- Sources : https://github.com/openssl/openssl
References
config
- OpenSSL CONF library configuration files
x509v3_config
- X509 V3 certificate extension configuration format
- Basic Constraints, Key Usage, Extended Key Usage
- Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile / Certificate Extensions / Standard Extensions
- Authority Key Identifier, Subject Key Identifier, Key Usage, Certificate Policies, Policy Mappings, Subject Alternative Name, Issuer Alternative Name, Subject Directory Attributes, Basic Constraints, Name Constraints, Policy Constraints, Extended Key Usage, CRL Distribution Points ...
Commands
Readings
Basic Certificate Fields
Certificate Extensions
Books
Tips and Tricks
Checking the details of RSA private key in PEM file
Use openssl rsa
command on the certificate file. You maybe asked to provide passphrase of the encrypted key.
$ openssl rsa -in tls-server.key -inform PEM -text -noout
Checking the details of CSR file in PEM file
Use openssl req
command on the CSR file. You maybe asked to provide passphrase of the encrypted key.
$ openssl req -in tls-server.csr -inform PEM -text -noout -verify
Checking the details of a certificate including subject, X.509 extension and so on
Use openssl x509
command on the certificate file
$ openssl x509 -in tls-server.crt -inform PEM -text -noout
ls
$ openssl x509 -in ~/Library/"Group Containers"/group.com.docker/pki/front-proxy-client.crt -inform PEM -text -noout
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 1198170262028128809 (0x10a0c181509f9229)
Signature Algorithm: sha256WithRSAEncryption
Issuer: CN=kubernetes
Validity
Not Before: Jul 16 00:14:06 2020 GMT
Not After : Jul 16 00:14:07 2021 GMT
Subject: CN=front-proxy-client
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:c5:a7:3e:ab:aa:cf:a0:77:64:c5:a1:f2:1f:9e:
d6:df:0e:53:55:ac:b5:6b:62:a5:46:28:70:92:d5:
b7:c5:3c:b2:4e:74:6b:15:bb:aa:26:f6:00:e3:bf:
be:da:de:62:61:04:4c:d1:10:d9:a4:23:34:c4:c1:
e5:95:ff:de:8e:24:35:7c:9d:f1:2b:bc:c5:3b:f6:
23:f8:88:b3:f4:23:d2:96:1e:d6:84:8c:01:7b:ab:
2f:a5:90:46:83:21:29:dd:82:b6:39:ac:a9:83:ce:
08:91:cd:8a:b5:80:7b:c1:1c:c0:6c:63:75:57:51:
19:24:ba:4a:7b:d1:1e:01:93:4f:67:f9:91:5c:34:
6e:40:7f:a4:56:a3:f2:63:06:76:0b:a0:72:8e:d0:
ef:ed:54:dc:ed:a6:31:00:09:3d:8b:6f:b9:0c:e2:
14:d5:9b:e5:3a:d0:a1:64:c9:28:87:04:c3:a3:d7:
b6:bf:0f:06:c1:ac:06:ca:6f:bf:97:5b:13:ea:37:
7e:09:e5:b8:00:75:2a:dc:cf:53:d4:6d:da:a3:93:
82:f8:3c:85:62:ee:4c:a4:e6:95:40:bc:b2:0b:26:
40:60:d4:2e:29:57:28:8c:22:62:ff:e2:46:7e:34:
34:80:9a:47:11:f2:91:e5:16:f4:9c:d2:db:c2:fc:
d9:87
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Key Usage: critical
Digital Signature, Key Encipherment
X509v3 Extended Key Usage:
TLS Web Client Authentication
Signature Algorithm: sha256WithRSAEncryption
91:76:cd:17:27:db:34:1c:5b:8b:cd:b8:d3:29:05:19:4d:aa:
58:9c:eb:8a:fb:d3:3a:63:18:39:e5:5c:9e:5e:fc:f5:4c:fc:
c8:5a:b0:ce:cd:87:cc:9c:98:7a:45:8c:35:9d:a8:4b:2f:32:
19:95:01:37:7b:fb:9e:b4:7c:37:0c:6f:07:46:18:ba:44:b5:
59:03:8d:4b:f1:b6:72:5c:79:a2:df:ad:59:c1:31:f2:29:84:
26:95:b8:69:ac:b7:ee:19:fd:13:41:74:f0:9d:99:50:d6:4c:
8a:05:93:b3:a9:19:db:c0:a0:b2:ca:17:15:1f:10:00:e1:bf:
5b:f9:a0:76:e1:8d:df:da:60:72:87:1c:d0:c9:28:6f:65:41:
4f:f6:9b:2a:7c:ab:64:fc:f4:1a:64:a6:43:3f:0b:30:a9:53:
0e:a1:61:df:aa:ce:17:cc:7f:cf:07:c8:31:c7:a0:c7:b6:21:
e0:d6:66:a0:0d:20:ee:d6:14:34:38:75:2f:6d:ae:3b:5d:fe:
ea:16:d8:a9:01:59:9e:1c:31:04:72:03:26:98:1f:ef:f4:60:
8c:ec:a9:c5:a3:41:13:0e:38:17:fa:7f:8d:36:fe:21:ca:41:
e7:11:48:27:11:48:79:7d:af:ef:32:97:7b:2d:dd:b5:1d:cb:
55:72:f7:df
curl
- http://curl.haxx.se/
- Desc. : a command line tool and library for transferring data with URL syntax, supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP.
- License :
websocat
- https://github.com/vi/websocat
- Desc. : Command-line client for WebSockets, like netcat (or curl) for ws:// with advanced socat-like functions
- License : MIT License
Examples
echo '{ "id": 2,
"command": "ledger",
"ledger_index": 10000000,
"transactions": true }' | websocat -01q 'ws://tracker1/' | jq "."
PuTTY
- http://www.putty.org/
- Desc. : an SSH and telnet client, developed originally by Simon Tatham for the Windows platform.
PuTTY Session Manager
- https://puttysm.sourceforge.io/
- Desc. : a tool that allows system adminstrators to organise their PuTTY sessions into folders and assign hotkeys to their favourite sessions.
Pageant
KiTTY
ConEmu
Readings
Poderosa
Security
GPG
- https://gnupg.org/
- Desc. : a complete and free implementation of the OpenPGP standard as defined by RFC4880 (also known as PGP)
- License :
- Written in :
- Sources
HashiCorp Vault
References
Environment Variables
Variable |
Description |
Related |
Values |
Remarks
|
VAULT_FORMAT |
|
vault operator init -format |
table, json, yaml |
|
VAULT_TOKEN |
Vault authentication token. |
|
|
|
Commands
Command |
Subcommand |
Description |
Remarks
|
list |
|
lists data from Vault at the given path. |
|
read |
|
reads data from Vault at the given path. |
|
write |
|
writes data to Vault at the given path. |
|
kv |
|
interacting with Vault's key/value secrets engine. |
|
|
put |
writes the data to the given path in the K/V secrets engine. |
|
|
get |
retrieves the value from K/V secrets engine at the given key name. |
|
|
list |
returns a list of key names at the specified location. |
|
server |
|
starts a Vault server that responds to API requests. |
|
operator |
|
groups subcommands for operators interacting with Vault. |
|
|
init |
initializes a Vault server.
|
-key-shares, -key-threshold, -pgp-keys, -root-token-pgp-key
|
policy |
|
groups subcommands for interacting with policies. |
|
secrets |
|
interacting with Vault's secrets engines. |
|
|
enable |
enables an secrets engine at a given path. |
|
|
list |
lists the enabled secrets engines on the Vault server. |
|
login |
|
authenticates users or machines to Vault using the provided arguments. |
|
Policies
rules # Allow tokens to look up their own properties
path "auth/token/lookup-self" {
capabilities = ["read"]
}
# Allow tokens to renew themselves
path "auth/token/renew-self" {
capabilities = ["update"]
}
# Allow tokens to revoke themselves
path "auth/token/revoke-self" {
capabilities = ["update"]
}
# Allow a token to look up its own capabilities on a path
path "sys/capabilities-self" {
capabilities = ["update"]
}
# Allow a token to look up its own entity by id or name
path "identity/entity/id/{{identity.entity.id}}" {
capabilities = ["read"]
}
path "identity/entity/name/{{identity.entity.name}}" {
capabilities = ["read"]
}
# Allow a token to look up its resultant ACL from all policies. This is useful
# for UIs. It is an internal path because the format may change at any time
# based on how the internal ACL features and capabilities change.
path "sys/internal/ui/resultant-acl" {
capabilities = ["read"]
}
# Allow a token to renew a lease via lease_id in the request body; old path for
# old clients, new path for newer
path "sys/renew" {
capabilities = ["update"]
}
path "sys/leases/renew" {
capabilities = ["update"]
}
# Allow looking up lease properties. This requires knowing the lease ID ahead
# of time and does not divulge any sensitive information.
path "sys/leases/lookup" {
capabilities = ["update"]
}
# Allow a token to manage its own cubbyhole
path "cubbyhole/*" {
capabilities = ["create", "read", "update", "delete", "list"]
}
# Allow a token to wrap arbitrary values in a response-wrapping token
path "sys/wrapping/wrap" {
capabilities = ["update"]
}
# Allow a token to look up the creation time and TTL of a given
# response-wrapping token
path "sys/wrapping/lookup" {
capabilities = ["update"]
}
# Allow a token to unwrap a response-wrapping token. This is a convenience to
# avoid client token swapping since this is also part of the response wrapping
# policy.
path "sys/wrapping/unwrap" {
capabilities = ["update"]
}
# Allow general purpose tools
path "sys/tools/hash" {
capabilities = ["update"]
}
path "sys/tools/hash/*" {
capabilities = ["update"]
}
# Allow checking the status of a Control Group request if the user has the
# accessor
path "sys/control-group/request" {
capabilities = ["update"]
}
Auth Methods
Method |
Description |
Enabling Script |
API |
Remarks
|
userpass
|
allows users to authenticate with Vault using a username and password combination.
|
vault auth enable userpass
|
Userpass Auth Method API |
|
Secret Engines
- Secrets engines: components which store, generate, or encrypt data.
Readings
Tips and Tricks
Typical Commandlines for Admins
$ export VAULT_ADDR="http://127.0.0.1:8200" # setup VAULT_ADDR env. variable
$ vault operator unseal ... # unseal vault
$ export VAULT_TOKEN=... # setup VAULT_TOKEN (session ID) env. variable
$ vault secrets list # list all enabled secret engines
$ vault auth list # list all enabled auth methods
$ vault auth enable userpass # enable the most common auth method - Userpass
# Adding a new auth(user) seems not to add corresponding "identity" automatically.
# If the new "user" has no identity, it seems that an "identity" would be generated automatically when the user first succeeds login
$ vault write auth/userpass/users/foo password=bar # add a new account whose username is 'foo' and password is 'bar'
Typical Commandlines for End-users
$ vault login -method=userpass username=foo # try login as a normal user
$ export VAULT_TOKEN=... # setup VAULT_TOKEN (session ID) env. variable for current session
Commands vs. APIs
- Adding a new normal account
- Commandline :
vault write auth/userpass/users/foo password=bar
- API :
curl -H "X-Vault-Token: $VAULT_TOKEN" -X PUT -d '{"password":"bar"}' $VAULT_ADDR/v1/auth/userpass/users/foo
Best Practices
SoftHSM
Readings
Nmap
- http://nmap.org/
- Desc. : a free and open source (license) utility for network discovery and security auditing.
References
Options
Option |
Description |
Remarks
|
-Pn |
Treat all hosts as online -- skip host discovery |
|
-n |
Never do DNS resolution |
|
-sS |
TCP SYN scan : half-open scanning |
default scan type for privileged users
|
-sT |
TCP connect scan |
|
-sU |
UDP scan |
|
-p <port ranges> |
Only scan specified ports |
-p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
|
-sV |
Probe open ports to determine service/version info |
|
-O |
Enable OS detection |
|
-sC |
equivalent to --script=default |
|
Port States
State |
Description |
Remarks
|
open |
An application is actively accepting TCP connections, UDP datagrams or SCTP associations on this port. |
|
closed |
A closed port is accessible (it receives and responds to Nmap probe packets), but there is no application listening on it. |
|
filtered |
Nmap cannot determine whether the port is open because packet filtering prevents its probes from reaching the port. |
|
unfiltered |
A port is accessible, but Nmap is unable to determine whether it is open or closed. |
|
open|filtered |
It is unable to determine whether a port is open or filtered. |
|
closed|filtered |
It is unable to determine whether a port is closed or filtered. |
|
Scripts
Category |
Script |
Description |
Usage/Arguments |
Remarks
|
SSH |
ssh-auth-methods
|
Returns authentication methods that a SSH server supports.
|
ssh.user |
|
|
ssh-brute
|
Performs brute-force password guessing against ssh servers.
|
ssh-brute.timeout, passdb, userdb, ... |
|
MySQL |
mysql-info
|
Connects to a MySQL server and prints information such as the protocol and version numbers, thread ID, status, capabilities, and the password salt.
|
nmap --script=mysql-info <target>
|
|
|
mysql-brute
|
Performs password guessing against MySQL.
|
nmap --script=mysql-brute <target>
|
|
MongoDB |
mongodb-info
|
Attempts to get build info and server status from a MongoDB database.
|
|
Default MongoDB Port
|
|
mongodb-brute
|
Performs brute force password auditing against the MongoDB database.
|
|
|
Readings
Tips and Tricks
Scan a single host
$ sudo nmap -Pn -n -sS -sV -O 192.168.10.201
Scan multiple specific hosts
$ sudo nmap -Pn -n -sS -sV -O 192.168.10.201 192.168.10.203 192.168.10.207
Try brute force attack MySQL
$ sudo nmap -Pn --script=mysql-info,mysql-brute -d -p 3306 169.56.90.135
OpenVAS
- http://www.openvas.org/
- Desc. : a framework of several services and tools offering a comprehensive and powerful vulnerability scanning and vulnerability management solution
- License : GPL
Lynis
Readings
Control |
Category |
Title |
Description |
Remarks
|
AUTH-9208
|
Authentication
|
Duplicate accounts or IDs
|
|
|
AUTH-9218 |
Authentication |
Accounts without password
|
Lynis checks for users accounts and which ones do not have a password. |
|
AUTH-9283 |
Authentication |
Passwords (no password set)
|
|
|
SSH-7412 |
SSH |
SSH permit root login
|
For proper authorization purposes, do not use direct root logins. |
|
SSH-7408 |
SSH |
SSH configuration
|
Proper hardening of your SSH configuration can reduce known weaknesses.
|
OpenSSH security and hardening
|
OpenSCAP
OSSEC
CrackLib
hashcat
chkrootkit
- Rootkit
- a collection of computer software, typically malicious, designed to enable access to a computer or areas of its software that is not otherwise allowed (for example, to an unauthorized user) and often masks its existence or the existence of other software.
Graphics
Graphviz
Mscgen
- http://www.mcternan.me.uk/mscgen/
- Desc. : a small program that parses Message Sequence Chart descriptions and produces PNG, SVG, EPS or server side image maps (ismaps) as the output.
- License : GPLv2
OpenSG
- http://www.opensg.org/
- Desc. : a portable scenegraph system to create realtime graphics programs.
- License : LGPL
OpenSceneGraph
- http://www.openscenegraph.org/projects/osg
- Desc. : an open source high performance 3D graphics toolkit, used by application developers in fields such as visual simulation, games, virtual reality, scientific visualization and modelling. Written entirely in Standard C++ and OpenGL.
- License : LGPL
ImageMagick
- https://imagemagick.org/
- Desc. : a free and open-source cross-platform software suite for displaying, creating, converting, modifying, and editing raster images.
- License : Apache 2.0
- Sources :
Visualization
XsdVi
Data Analysis
- Best 7 Business Intelligence Tools 2020: Round One, Fight!
- Knowi, Power BI, Metabase, Tableau, Looker, Google Data Studio, Sisense
- Metabase Limitations and Top 4 Alternatives (BI) (4 MARCH 2020)
- Holistics, Tableau, PowerBI, Looker, Redash
Metabase
Readings
Cube
ETL
Scriptella
Science
Maxima
- http://maxima.sourceforge.net/index.html
- Desc. : a system for the manipulation of symbolic and numerical expressions, including differentiation, integration, Taylor series, Laplace transforms, ordinary differential equations, systems of linear equations, polynomials, sets, lists, vectors, matrices and tensors.
- License : GPLv2
- Sources : https://sourceforge.net/p/maxima/code/ci/master/tree/
SymPy
DataMelt
- https://jwork.org/dmelt/
- Desc. : a free software for numeric computation, mathematics, statistics, symbolic calculations, data analysis and data visualization.
- License :
- Written in : Java, Python, Ruby, Groovy
- Sources :
Servers or Engines
Virtualization
VirtualBox
- https://www.virtualbox.org/
- Desc : a powerful x86 and AMD64/Intel64 virtualization product for enterprise as well as home use.
- License : GPL version 2
References
- Virtual Networking
- NAT
Even though the NAT engine separates the VM from the host, the VM has access to the host's loopback interface and the network services running on it. The host's loopback interface is accessible as IP address 10.0.2.2. This access to the host's loopback interface can be extremely useful in some cases, for example when running a web application under development in the VM and the database server on the loopback interface on the host.
- Host-Only Networking
VBoxManage
Command |
Descriptions |
Parameters |
Remarks
|
createmedium |
creates a new medium |
filename, size, format |
createvdi, createhd
|
storagectl |
attaches, modifies, and removes a storage controller |
name, add, portcount |
|
storageattach |
attaches, modifies, and removes a storage medium connected to a storage controller that was previously added with the storagectl command |
storagectl, port, type, medium |
|
Menu |
Options |
Description
|
Input > Keyboard > Keyboard Settings > Auto Capture Keyboard |
On, Off |
|
Devices > Shared Clipboard> |
Disabled, Host To Guest, Guest To Host, Bidirectional |
|
Readings
Networking
Storage
Xen Project Hypervisor
Vagrant
References
Namespace |
Description |
Remarks
|
config.vm |
modify the configuration of the machine that Vagrant manages. |
|
config.ssh |
configuring how Vagrant will access your machine over SSH |
|
config.vagrant |
modify the behavior of Vagrant itself |
|
Boxes
Readings
VirtualBox
Packer
References
Component |
Description |
Remarks
|
Builders / VirtualBox / ISO |
create VirtualBox virtual machines and export them in the OVF format, starting from an ISO image. |
|
Readings
DBMS
HSQLDB
Apache Derby
- http://db.apache.org/derby/
- Desc. : an open source relational database implemented entirely in Java
- License : Apache License, Version 2.0
- Readings
J2EE Application Server
Jetty
Tomcat
- http://tomcat.apache.org/
- Desc : an open source software implementation of the Java Servlet and JavaServer Pages technologies.
- License : Apache License version 2
- References
JBoss AS
- Articles
- fundamental
- data access
- security
- networking
- programming
WildFly
Undertow
- http://undertow.io/
- Desc. : a flexible performant web server written in java, providing both blocking and non-blocking API’s based on NIO.
- Written in : Java
- License :
TomEE
OpenEJB
Application Server
Apache HTTP Server
Nginx
- http://nginx.org/
- Desc. : a free, open-source, high-performance HTTP server and reverse proxy, as well as an IMAP/POP3 proxy server
- License :
- Written in : C
References
Directives
server = server_name, listen, location*
location = proxy_pass, proxy_bind
Context |
Directive |
Description |
Remarks
|
server |
server_name |
Sets names of a virtual server |
|
|
listen |
Sets the address and port for IP, or the path for a UNIX-domain socket on which the server will accept requests. |
|
Readings
Proxy
Load Balancer
mongoose
ZooKeeper
Proxy Server
HAProxy
Varnish Cache
Squid
References
Directive |
Description |
Format |
Remarks
|
acl
|
Defining an Access List.
|
acl aclname acltype argument ... |
|
http_port
|
The socket addresses where Squid will listen for HTTP client requests.
|
[hostname:|ip-address:] port [mode] [options] |
|
Readings
Networking
OpenSSH
- http://www.openssh.org/
- Desc. : a FREE version of the SSH connectivity tools that technical users of the Internet rely on.
References
Commands
Command |
Description |
Remarks
|
sshd |
OpenSSH SSH daemon |
|
ssh |
OpenSSH SSH client (remote login program) |
|
ssh-add |
adds private key identities to the OpenSSH authentication agent |
|
Daemon Command Line Options
Option |
Description |
Remarks
|
-4 |
Forces sshd to use IPv4 addresses only. |
|
-f config_file |
Specifies the name of the configuration file. |
|
-E log_file |
Append debug logs to log_file instead of the system log. |
|
-t |
Test mode. Only check the validity of the configuration file and sanity of the keys. |
|
-T |
Extended test mode. Check the validity of the configuration file, output the effective configuration to stdout and then exit. |
|
Configurations
Config |
Description |
Remarks
|
sshd_config |
OpenSSH SSH daemon configuration file |
|
ssh_config |
OpenSSH SSH client configuration files |
|
- User specific configuration files
Fiel |
Description |
Remarks
|
~/.ssh/authorized_keys |
Holds a list of authorized public keys for servers. When the client connects to a server, the server authenticates the client by checking its signed public key stored within this file. |
server
|
~/.ssh/id_dsa |
Contains the DSA private key of the user. |
client, 600
|
~/.ssh/id_dsa.pub |
Contains the DSA public key of the user. |
client, 644
|
~/.ssh/id_rsa |
Contains the RSA private key used by ssh for version 2 of the SSH protocol. |
client, 600
|
~/.ssh/id_rsa.pub |
Contains the RSA public key used by ssh for version 2 of the SSH protocol. |
client, 644
|
~/.ssh/identity |
Contains the RSA private key used by ssh for version 1 of the SSH protocol. |
client
|
~/.ssh/identity.pub |
Contains the RSA public key used by ssh for version 1 of the SSH protocol. |
client
|
~/.ssh/known_hosts |
Contains DSA host keys of SSH servers accessed by the user. |
client
|
Daemon Config Options
Option |
Type |
Description |
Remarks
|
LogLevel |
enum |
|
QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2, DEBUG3
|
PermitRootLogin |
enum |
|
no, yes, prohibit-password, forced-commands-only
|
PermitEmptyPasswords |
boolean |
When password authentication is allowed, it specifies whether the server allows login to accounts with empty password strings. |
|
HostbasedAuthentication |
boolean |
Specifies whether rhosts or /etc/hosts.equiv authentication together with successful public key client host authentication is allowed |
|
IgnoreRhosts |
boolean |
Specifies that .rhosts and .shosts files will not be used in HostbasedAuthentication |
|
AllowTcpForwarding |
enum |
|
yes, no, local, remote
|
AllowStreamLocalForwarding |
enum |
|
yes, no, local, remote
|
GatewayPorts |
enum |
|
no, yes, clientspecified
|
PermitTunnel |
enum |
Specifies whether tun device forwarding is allowed. |
no, yes, no, point-to-point, ethernet
|
X11Forwarding |
boolean |
Specifies whether X11 forwarding is permitted. |
yes, no
|
AllowAgentForwarding |
boolean |
Specifies whether ssh-agent(1) forwarding is permitted. |
yes, no
|
PermitOpen |
string |
Specifies the destinations to which TCP port forwarding is permitted. |
|
TCPKeepAlive |
boolean |
Specifies whether the system should send TCP keepalive messages to the other side. |
|
ClientAliveInterval |
integer |
Sets a timeout interval in seconds after which if no data has been received from the client. |
|
ClientAliveCountMax |
integer |
Sets the number of client alive messages which maybe sent with-out sshd(8) receiving any messages back from the client. |
|
Client Config Options
Option |
Type |
Description |
Remarks
|
TCPKeepAlive |
boolean |
Specifies whether the system should send TCP keepalive messages to the other side |
|
ServerAliveInterval |
integer |
Sets a timeout interval in seconds after which if no data has been received from the server |
|
ServerAliveCountMax |
integer |
Sets the number of server alive messages which may be sent without ssh(1) receiving any messages back from the server |
|
ControlPersist |
boolean |
When used in conjunction with ControlMaster, specifies that the master connection should remain open in the background after the initial client connection has been closed. |
|
Readings
Match User limited-user
AllowTcpForwarding yes
PermitOpen 192.168.1.101:22
ForceCommand echo 'This account can only be used for ...'
VyOS
- https://vyos.io/
- Desc. : an open source network operating system that can be installed on physical hardware or a virtual machine on your own server, or a cloud platform .
- License :
- Sources : https://github.com/vyos
References
Operational Mode Commands
Command |
Description |
Remarks
|
show |
Show system information |
|
show configuration |
Show running configuration |
|
show configuration commands |
Show running configuration as set commands |
|
show interfaces |
Show network interface information |
|
show ip route |
Show IP routes |
|
show system login users |
Show user account information |
|
show log |
Show contents of current master log file |
|
ping |
Send IPv4 or IPv6 ICMP echo requests |
|
traceroute |
Track network path to node |
|
traceroute ipv4 |
Track network path to hostname or IPv4 address |
|
configure |
Enter configure mode |
|
restart |
Restart a service |
|
reset |
Reset a service |
|
show system syslog |
Show system logging daemon |
|
show vrrp |
Show VRRP (Virtual Router Redundancy Protocol) information |
|
Configuration Mode Commands
Command |
Description |
Remarks
|
set |
Set the value of a parameter or create a new element |
|
delete |
Delete a configuration element |
|
discard |
Discard uncommitted changes |
|
commit |
Commit the current set of changes |
|
compare |
Compare configuration revisions
|
compare 1, compare 1 2
|
show protocols static |
Show the configuration of static route parameters |
|
set protocols static route |
Set the value of a parameter or create a new element for static IPv4 route |
|
delete protocols static route |
Delete a static route |
|
show service |
Show services |
|
set service |
Set services |
dhcp-relay, dhcp-server, dns, https, nat, snmp, ssh, telnet, ...
|
delete service |
Delete services |
|
Configurations
Category |
Files |
Remarks
|
General/Overall
|
/opt/vyatta/etc/ /opt/vyatta/preconfig.d/ /opt/vyatta/postconfig.d/ /config/ |
|
SSH |
/etc/default/ssh |
|
NTP |
/etc/default/ntp |
|
logrotate |
/etc/logrotate.conf /etc/logrotate.d/ /opt/vyatta/etc/logrotate/global |
|
Services
Service |
Description |
Remarks
|
connsync |
|
|
dhcp-relay |
|
|
dhcp-server |
|
|
diamond |
|
|
dns |
|
|
flow-monitoring |
|
|
https |
|
|
nat |
|
|
path-monitor |
|
|
portmonitor |
|
|
snmp |
|
|
ssh |
|
|
telnet |
|
|
Commands by Topic
$ configure
$ show service # list all services
$ set service ... # create or modify a service
$ exit
$ restart ... # restart service
$ configure
$ delete ... # remove service
$ exit
$ configure
$ show service ssh
$ set service ssh listen-address ...
$ set service ssh timeout '60'
$ commit
$ cat /etc/ssh/sshd_config
$ configure
$ show system syslog # show syslog configuration
$ set system syslog global archive size 1000 # set size of log files (KB)
$ set system syslog global archive files 300 # set numbers of saved files
$ commit
Readings
Tips and Tricks
Remarkable Command-line
$ # list operational mode commands
$ show [tab]
$ # show routing table
$ show ip route
$ # show running config
$ show configuration
$ # enter configure mode
$ configure
$ # compare working configuration and last revision
$ compare 1
$ # compare last revision configuration and the right previous one of it
$ compare 1 2
OpenVPN
Security
Dogtag PKI
OpenXPKI
EJBCA
- https://www.ejbca.org/
- Desc. : a PKI Certificate Authority software, built using Java (JEE) technology
- License :
- Sources :
Boulder
Media Streaming Server
LIVE555 Media Server
Red5
Darwin Streaming Server
- http://dss.macosforge.org/
- Desc. : the open source server technology that allows you to send streaming media to clients across the Internet using the industry standard RTP and RTSP protocols.
- License : Apple Public Source License
NoSQL
Redis
- http://redis.io/
- Desc : an open-source, networked, in-memory, key-value data store with optional durability.
- License : BSD
References
Command |
Description |
Remarks
|
CONFIG GET param
|
Read the configuration parameters of a running Redis server. |
glob-style pattern
|
GET key
|
Get the value of key.
|
O(1)
|
Readings
Companions
lettuce
Spring Data Redis
embedded-redis
Redis Commander
FastoRedis
MongoDB
References
Readings
CouchDB
Search Engine
Elasticsearch
References
Field datatypes
Datatype |
Description |
Remarks
|
keyword
|
a field to index structured content such as email addresses, hostnames, status codes, zip codes or tags
|
|
Readings
Version Control Software
Subversion
$ svn info . //show status including working copy path, repository path, base revision and et al.
$ svn status . //show only locally modified items under the current directory of working copy
$ svn update //update working copy
$ svn commit //send changes from your working copy to the repository
$ svn --force --depth infinity add . //add all unversioned files to local change
$ svn copy ^/trunk/foundation ^/branches/foundation-20141123 -c "Created a new branch of /trunk/foundation" //making branch
Git
Team Foundation Version Control
Harvest
Repository Management Software
Artifactory
Configuration Management Software
Chef
- https://www.chef.io/
- Desc. : a powerful automation platform that transforms infrastructure into code
- License : Apache License 2.0
Puppet
Ansible
Fabric
Companions
fabtools
SaltStack
Terraform
Packer
System Monitoring Software
Wiki
DokuWiki
- https://www.dokuwiki.org/
- Desc. : a simple to use and highly versatile Open Source wiki software that doesn't require a database.
- License : GPL
- Written in : PHP
MoinMoin
- http://moinmo.in/
- Desc : an advanced, easy to use and extensible WikiEngine with a large community of users.
- License : GPL
gollum
Issue Tracking Software
Jira
Content Management System
Jekyll
- http://jekyllrb.com/
- Desc. : a parsing engine bundled as a ruby gem used to build static websites from dynamic components such as templates, partials, liquid code, markdown, etc.
- License : The MIT License
- Written in : Ruby
- Sources : https://github.com/mojombo/jekyll
References
Themes
Readings
Samples
Beautiful Jekyll
Confluence
Macro |
Description |
Remarks
|
Blog Posts Macro
|
Add the Blog Posts macro to a page to display a curated list of blog posts. You can choose to show the just the title, an excerpt from the blog, or the entire contents of each blog post. |
|
Code Block Macro
|
Display code examples with syntax highlighting. |
|
PDF Macro
|
Display the content of a PDF document. |
|
Office PowerPoint Macro
|
Display the content of a PowerPoint presentation. |
|
Panel Macro
|
Format your text in a customizable coloured panel. |
|
Tips and Tricks
Simple HTML Macro for page scope styling
<style>
#content {
font-family: Tahoma, Verdana, Georgia, sans-serif;
font-size: 14px;
line-height: 1.6;
}
#content a {
target-name:new;
target-new:tab;
}
#content code:not([class]) {
/* Windows : Consolas, Mack : Monaco */
font-family: Consolas, DejaVu Sans Mono, Monaco;
font-size: 85%;
margin: 0;
padding: .2em .4em;
background-color: rgb(175, 184, 193, 0.2);
border-radius: 6px;
}
#content .code.panel.output-block {
margin-left:40px !important;
}
#content .pdl .syntaxhighlighter code{
/* Windows : Consolas, Mack : Monaco */
font-family: Consolas, DejaVu Sans Mono, Monaco;
font-size: 12px;
font-weight: normal;
line-height: 1.3;
}
table.confluenceTable, .wiki-content .confluence-embedded-file-wrapper .confluence-embedded-image{
margin-left:40px
}
</style>
Drupal
- http://drupal.org/
- Desc : a powerful content management system which allows you to create and maintain many different types of websites without needing to know any coding languages.
- License : GPL
JBake
Joomla
- http://www.joomla.org/
- Desc : a content management system (CMS), which enables you to build Web sites and powerful online applications.
- License : GPL
Tiki Wiki CMS Groupware
- http://info.tiki.org/
- Desc. : a free and open source wiki-based, content management system and Online office suite
- License : LGPL 2.1
- Written in : PHP
Desktop Sharing
x11vnc
TightVNC
BPM Engine
Activiti
- http://www.activiti.org/
- Desc : a light-weight workflow and Business Process Management (BPM) Platform targeted at business people, developers and system admins.
- License : Apache License 2.0
misc
Openfire
Supervisor
- http://supervisord.org/
- Desc. : a client/server system that allows its users to monitor and control a number of processes on UNIX-like operating systems.
- License :
- Written in : Python
Spring Loaded
Docker
Vagrant
- https://www.vagrantup.com/
- Desc. : provides easy to configure, reproducible, and portable work environments built on top of industry-standard technology and controlled by a single consistent workflow to help maximize the productivity and flexibility of you and your team.
- License :
Slack
- https://slack.com/
- Desc. : a cloud-based set of proprietary team collaboration tools and services
Readings
Category |
Character/Style |
Format |
Remarks
|
Escape Character |
Ampersand (& ) |
& |
|
|
Less-Than Sign (< ) |
< |
|
|
Greater-Than Sign (> ) |
> |
|
Markup |
Bold |
*text* |
|
|
Italic |
_text_ |
|
|
Strike Through |
~text~ |
|
|
Inline Code |
`text` |
|
Utilities
Browser
Chrome
Firefox
Thunderbird
Location |
Item |
Preferred Value/State |
Remarks
|
Preferences > Privacy & Security > Thunderbird Data Collection and Use
|
Allow Thunderbird to send technical and interaction data to Mozilla |
Unchecked |
|
|
Allow Thunderbird to send backlogged crash reports on your behalf |
Unchecked |
|
Readings
Troubleshooting
PC Diagnostic and Recovery
GNU GRUB
Hiren's BootCD
- http://www.hiren.info/pages/bootcd
- Desc. : A bootable software CD containing a number of diagnostic programs such as partitioning agents, system performance benchmarks, disk cloning and imaging tools, data recovery tools, MBR tools, BIOS tools, and many others for fixing various computer problems.
- fan & discussion site (for download and more information)
- Articles
PC Security
AVG
Comodo Internet Security
Eraser
- https://eraser.heidi.ie/
- Desc. : an advanced security tool for Windows which allows you to completely remove sensitive data from your hard drive by overwriting it several times with carefully selected patterns.
File System
rsync
Partition Wizard
Office
Notepad++
LibreOffice
Calc
Calc Functions
VALUE(LEFT(TRIM(A1), LEN(TRIM(A1)) - 1)) # +1,000P -> 1000, -20,000P -> 20000, ...
SUMIF(M3:M30,"Y",L3:L30)
SUMIF(M3:M30,"<>Y",L3:L30) # inequality expression
SUMIFS(E$2:E$17, $A$2:$A$17, LEFT($C25, 1), $D$2:$D$17, $D25)
SUMIF($A$2:$A$117,"1/*/2022",$B$2:$B$117)/COUNTIF($A$2:$A$117,"1/*/2022") # wild-card support
LEFT(E3, SEARCH("\(|/", E3) - 1) # regex support (requires an option enabled)
IF(REGEX(C3, $S$1, "")="", "O", "X") # utilize regex regardless of options
# Date calculation - no direct date calculation functions
DATE(YEAR(C3), MONTH(C3), DAY(C3) + 5) # adding 5 days
# Get the day of week
TEXT("2024-03-03", "NN")
# Conditional calculation
IF(AND(ISNUMBER(R4), ISNUMBER(G4)), QUOTIENT(R4 * G4, 1000000), "")
Number Format Codes
Category |
Placeholder |
Description |
Remarks
|
Decimal Number |
# |
Does not display extra zeros. |
|
|
0 |
Displays extra zeros if the number has less places than zeros in the format. |
|
Date |
YYYY |
Year as 1900 to 2078 |
|
|
YY |
Year as 00 to 99 |
|
|
M |
Month |
|
|
MM |
Month |
|
|
MMM |
Month as Jan to Dec |
|
|
D |
Day |
|
|
DD |
Day |
|
|
NN |
Day as Sun to Sat |
|
|
NNN |
Day as Sunday to Saturday |
|
Impress
Microsoft Office
Excel
Excel Configuration
Config |
Menu |
Description |
Remarks
|
Cell Auto-completion |
File > Options > Advanced > Editing Options > Enable AutoComplete for Cell Values |
|
Excel Functions
PowerPoint
Image Viewer/Editor
Picasa
GIMP
- https://www.gimp.org/
- Desc. : a cross-platform image editor available for GNU/Linux, OS X, Windows and more operating systems.
- License : GPL v3
Task |
Tool/Dialog |
Remarks
|
Removing image background
|
Fuzzy Select Tool
Select by Color Tool
Foreground Select Tool |
|
Resizing Selection
|
Windows > Dockable Dialogs > Tool Options |
|
Dialog |
Description |
Remarks
|
Undo History |
|
|
Tool Options |
|
|
Tool Presets |
|
|
Readings
Video Editing
- The 9 Best Open-Source Video Editing Software of 2022 (February 28, 2022)
- Shotcut, OpenShot, Blender, Kdenlive, Flowblade, Avidemux, VidCutter, LiVES, Natron
- Top 3 Open Source Video Editing Software (April 20, 2022)
- OpenShot, Shotcut, PowerDirector (commercial)
Screen Capture/Recording
PicPick
- https://picpick.app/
- Desc. : A full-featured screen capture tool, intuitive image editor, color picker, color palette, pixel-ruler, protractor, crosshair, whiteboard and more.
ShareX
OBS Studio
Ezvid For Windows
Disk Image
CDBurnerXP
- http://cdburnerxp.se
- Desc. : Application to burn CDs and DVDs, including Blu-Ray and HD-DVDs.
- License
- Limited grants you (the licensee) a permission to use the software at no cost, both for commercial and non-commercial purposes on any computer in your possession.
ImgBurn
- Features
- supports a wide range of image file formats - including BIN, CCD, CDI, CUE, DI, DVD, GI, IMG, ISO, MDS, NRG and PDI.
InfraRecorder
WinCDEmu
- Features
- One-click mounting of ISO, CUE, NRG, MDS/MDF, CCD, IMG images.
- Supports data, DVD-video and BD-video images.
Virtual CloneDrive
- Features
- Supports common image formats such as ISO, BIN, CCD
- Virtual CloneDrive is freeware, you may use it at no cost.
misc
CCleaner
Hangul Typing
misc
Standards
eTOM
ONVIF
- http://www.onvif.org/
- Desc. : an open industry forum for the development of a global standard for the interface of IP-based physical security products.
- References
- Specification
- ONVIF Specifications
- ONVIF Core Specification, ver 16.12
- Access Control, Access Rules, Action Engine, Advanced Security, Analytics, Credential, Device IO, Display, Door Control, Imaging, Media, Media2, Provisioning, PTZ, Receiver, Recording Control, Recording Search, Replay Control, Schedule, Thermal, Video Analytics Device
- ONVIF Core Specification, ver 2.5(Dec, 2014)
- Device Discovery, Device Management, Event Framework
- ONVIF Analytics Service Specification, ver 2.5(Dec, 2014)
- ONVIF Recording Search Service Specification, ver 2.5(Dec, 2014)
- Profile
- ONVIF Profile G Specification, ver 1.0(December 2013)
- Capabilities :
GetServices
, GetServiceCapabilities
- Recording Search :
FindRecordings
/GetRecordingSearchResults
, FindEvents
/GetEventSearchResults
- Recording Control :
CreateRecording
, DeleteRecording
, CreateTrack
, DeleteTrack
- Schema
- WSLDs
- Search
FindEvents
- starts a search session, looking for recording events in the scope that matches the search filter defined in the request.
GetEventSearchResults
- acquires the results from a recording event search session previously initiated by a FindEvents operation.
FindRecordings
- starts a search session, looking for recordings that matches the scope defined in the request.
GetRecordingSearchResults
- acquires the results from a recording search session previously initiated by a FindRecordings operation.
FindMetadata
- starts a search session, looking for metadata in the scope that matches the search filter defined in the request.
GetMetadataSearchResults
- acquires the results from a recording search session previously initiated by a FindMetadata operation.
Services
Amazon Redshift
- http://aws.amazon.com/redshift/
- Desc. : a fast, fully managed, petabyte-scale data warehouse solution that makes it simple and cost-effective to efficiently analyze all your data using your existing business intelligence tools.
- Readings
Microsoft Project Oxford
- https://www.projectoxford.ai/
- Desc. : a set of services for understanding data and adding ‘smart’ to your applications.
- Components
- Computer Vision APIs
- Face APIs
- Emotion APIs
- Speech APIs
- Spell Check APIs
- Language Understanding Intelligent Service
Awards Winner
JAX Innovation Awards
Categories
|
Winners
|
Remarks
|
Most innovative contribution to the Java ecosystem
|
Spring Boot
|
|
Most innovative solution to software delivery and DevOps
|
Docker
|
|
Special Jury Award
|
Let’s Encrypt
|
|
Categories
|
Winners
|
Remarks
|
Most Innovative Java Technology
|
Java 8
|
|
Most Innovative Open Tech
|
Akka
|
|
Special Jury Award
|
Netflix OSS
|
|
Categories
|
Winners
|
Remarks
|
Most Innovative Java Technology
|
Vert.x
|
a tool-kit for building reactive applications on the JVM
|
Most Innovative Open Technology
|
Docker
|
an open platform for distributed applications for developers and sysadmins
|
Most Innovative Open Tech Business
|
Hazelcast
|
The Leading Open Source In-Memory Data Grid
|
Categories
|
Winners
|
Remarks
|
Most Innovative Java Technology
|
Restructure101
|
commercial product
|
Most Innovative Java Company
|
JetBrains
|
|
Top Java Ambassador
|
Adam Bien
|
|
Special Jury Award
|
Charlie Nutter
|
|
Categories
|
Winners
|
Remarks
|
Most Innovative Java Technology
|
JRebel
|
|
Most Innovative Java Company
|
Red Hat
|
|
Top Java Ambassador
|
Martin Odersky
|
|
Special Jury Award
|
Brian Goetz
|
|
Software Ranking
Code Assessment Platforms
Platform |
Description |
Remarks
|
HackerRank |
Matching developers with great companies. |
|
Codility |
Remote tech hiring, everywhere |
|
Coderbyte |
the #1 website for technical interview prep and coding challenges |
|
LeetCode |
the best platform to help you enhance your skills, expand your knowledge and prepare for technical interviews. |
|
Font
- SERIF VS SANS SERIF FONTS
- serif : n. a short flat line at the top or bottom of some printed letters
- sans : prep. without – usually used humorously
- Serif fonts : Times New Roman, Georgia, Palatino and Garamond.
Graphics Asset
Collection |
Description |
Adopted by |
Remarks
|
SVG Logos
|
A curated collection of SVG logos for developers/DevOps/geeks
|
PlantUML, Slidev |
Catalog
|
Open Iconic |
|
PlantUML, Creole |
|
Tango Desktop Project
|
Defines an icon style guideline to which artists and designers can adhere and provides a sample implementation of the style as an icon theme based upon a standardized icon naming specification. |
|
|
Silk Icons
|
A smooth, free icon set, containing over 700 16-by-16 pixel icons in strokably-soft PNG format. |
|
|
Liquid Look And Feel
|
Java2 Swing Look and Feel of Mosfet Liquid KDE 3.x theme. |
|
|
Open Source Web Design
|
A site to download free web design templates and share yours with others. |
|
|
IconFinder
|
provides high quality icons for webdesigners and developers in an easy and efficient way. |
|
|
Openclipart
|
a community and collection of vector clip art that is free content
|
|
Openclipart(Wikipedia)
|
Classroom Clipart
|
a great source for free clipart for not only for students, teachers and parents, but for everyone. |
|
|
SOLUTION ICONS FOR ARCHITECTURAL DIAGRAMS
|
The official set of icons to build architectural diagrams of Google Cloud Platform |
|
|
Cisco Network Topology Icons
|
Cisco icons are globally recognized and generally accepted as standard for network icon topologies. |
|
|