Software Engineering

Task for Software developing:

  1. Collect and undestand requirements
  2. Use case analysis.
  3. Identify the best technologies
  4. Test and Debug
  5. Review, Refactor and Optimization
  6. Documentation for developer and user

Approccio Aziendale Ottimale

from here and thanks

Alfabetizzazione informatica: Essere in grado di utilizzare dispositivi digitali e navigare responsabilmente sul Web è fondamentale. Questa competenza comprende la capacità di trovare, valutare e utilizzare contenuti digitali in modo critico e responsabile per comunicare, leggere e scrivere il linguaggio del nostro tempo.

Creazione di contenuti: La capacità di utilizzare la tecnologia come strumento per esprimere le proprio idee, sviluppare soluzioni innovative e produrre contenuti digitali attraverso la creazione di materiali in formati diversificati è importante in un mondo sempre più connesso.

Comunicazione e collaborazioneComunicare in modo efficace attraverso piattaforme digitali, coltivare relazioni online e lavorare in team virtuali, sono competenze essenziali per il successo personale e professionale.

Sicurezza e privacy: Con il crescente rischio di cyber-attacchi e violazioni della privacy, per mitigare i rischi della navigazione è cruciale promuovere la cultura della sicurezza informatica. La cybersecurity awareness si traduce nella capacità di proteggere dati e infrastrutture garantendo la pubblica sicurezza.

Pensiero critico e problem solving: Valutare in modo critico le informazioni, individuare modelli e sviluppare soluzioni innovative, sono abilità indispensabili che consentono di adattarsi ai cambiamenti tecnologici e affrontare efficacemente le sfide digitali. L’utilizzo e l’applicazione pratica di queste competenze chiave rappresenta inoltre un elemento essenziale nel processo di reskilling (apprendimento e/o aggiornamento di competenze), dotandoci di una maggiore creatività individuale grazie all’accesso a nuove fonti di dati e di una migliore capacità adattiva ai costanti cambiamenti tecnologici. In questo modo possiamo sostenere insieme la trasformazione digitale, mettendo in gioco la competenza e l’intelligenza della nostra community per disegnare un futuro affidabile, sostenibile e inclusivo.

 

Computer literacy: Being able to use digital devices and navigate the web responsibly is crucial. This skill includes the ability to find, evaluate, and use digital content critically and responsibly to communicate, read, and write the language of our time.

Content creation: The ability to use technology as a tool to express one’s ideas, develop innovative solutions, and produce digital content through the creation of materials in various formats is important in an increasingly connected world.

Communication and collaboration: Effectively communicating through digital platforms, cultivating online relationships, and working in virtual teams are essential skills for personal and professional success.

Security and privacy: With the growing risk of cyber-attacks and privacy breaches, promoting a culture of cybersecurity is crucial to mitigate the risks of browsing. Cybersecurity awareness translates into the ability to protect data and infrastructure, ensuring public safety.

Critical thinking and problem-solving: Critically evaluating information, identifying patterns, and developing innovative solutions are indispensable skills that allow us to adapt to technological changes and effectively tackle digital challenges. The use and practical application of these key competencies are also essential elements in the reskilling process, providing us with greater individual creativity through access to new sources of data and better adaptive capacity to constant technological changes. In this way, together, we can support digital transformation, leveraging the competence and intelligence of our community to design a reliable, sustainable, and inclusive future.

Java compiler – path – version – java home

http://www.diit.unict.it/users/alongheu/lingtlc/aa1011/lezione03_introjava.pdf

from here

First run /usr/libexec/java_home -V which will output something like the following:
Matching Java Virtual Machines (3): 1.8.0_05, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home 1.6.0_65-b14-462, x86_64: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home 1.6.0_65-b14-462, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home 

Pick the version you want to be the default (1.6.0_65-b14-462 for arguments sake) then:

export JAVA_HOME=`/usr/libexec/java_home -v 1.6.0_65-b14-462`

or you can specify just the major version, like:

export JAVA_HOME=`/usr/libexec/java_home -v 1.8`

Now when you run java -version you will see:

java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)

Add the export JAVA_HOME… line to your shell’s init file.

For Bash (as stated by antonyh):

export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)

For Fish (as stated by ormurin)

set -x JAVA_HOME (/usr/libexec/java_home -d64 -v1.8)

Updating the .zshrc file should work:

nano ~/.zshrc

export JAVA_HOME=$(/usr/libexec/java_home -v 1.8.0)

 

 

Understanding /etc/shadow file fields and format

Basically, the /etc/shadow file stores secure user account information. All fields are separated by a colon (:) symbol. It contains one entry per line for each user listed in /etc/passwd file. Generally, shadow file entry looks as follows (click to enlarge image):

/etc/shadow file format

/etc/shadow file format (click to enlarge)

As with the /etc/passwd, each field in the shadow file is also separated with “:” colon characters as follows:

 

  1. Username : A valid account name, which exist on the system.
  2. Password : Your encrypted password is in hash format. The password should be minimum 15-20 characters long including special characters, digits, lower case alphabetic and more. Usually password format is set to $id$salt$hashed, The $id is the algorithm prefix used On GNU/Linux as follows
    1. $1$ is MD5
    2. $2a$ is Blowfish
    3. $2y$ is Blowfish
    4. $5$ is SHA-256
    5. $6$ is SHA-512
    6. $y$ is yescrypt
  3. Last password change (lastchanged) : The date of the last password change, expressed as the number of days since Jan 1, 1970 (Unix time). The value 0 has a special meaning, which is that the user should change her password the next time she will log in the system. An empty field means that password aging features are disabled.
  4. Minimum : The minimum number of days required between password changes i.e. the number of days left before the user is allowed to change her password again. An empty field and value 0 mean that there are no minimum password age.
  5. Maximum : The maximum number of days the password is valid, after that user is forced to change her password again.
  6. Warn : The number of days before password is to expire that user is warned that his/her password must be changed
  7. Inactive : The number of days after password expires that account is disabled.
  8. Expire : The date of expiration of the account, expressed as the number of days since Jan 1, 1970.

Linux Administrator Tips

Find all file with permission to run if belong to wheel or sudo group. Bit suid active

find / -perm /u+s 2>/dev/null

The denied access is not visualized with 2>/del/null

Command to show who has access to a file or folder : lsof <file/folder name>

Is possible to use the command  fuser <file name>

 

sudo visudo manage the user permission

id user for check the groups

ulimit -a check the limit and set it for single user

to set the limit in global level user : /etc/security/limits.conf