diff --git a/Dart/primalityTest.dart b/Dart/primalityTest.dart
index 047b550..3fd25cf 100644
--- a/Dart/primalityTest.dart
+++ b/Dart/primalityTest.dart
@@ -32,9 +32,9 @@ bool Prime(int x) {
}
void main() {
- var rng = new Random();
+ Random random = new Random();
for (int i = 0; i < 10; i++) {
- int x = rng.nextInt(100);
+ int x = random.nextInt(100);
print("$x ${Prime(x)}");
}
Eratostene(100);
diff --git a/Java/.devcontainer/devcontainer.json b/Java/.devcontainer/devcontainer.json
new file mode 100644
index 0000000..6cdc7d7
--- /dev/null
+++ b/Java/.devcontainer/devcontainer.json
@@ -0,0 +1,27 @@
+// For format details, see https://aka.ms/devcontainer.json. For config options, see the
+// README at: https://github.com/devcontainers/templates/tree/main/src/java
+{
+ "name": "Java",
+ // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
+ "image": "mcr.microsoft.com/devcontainers/java:0-17",
+
+ "features": {
+ "ghcr.io/devcontainers/features/java:1": {
+ "version": "none",
+ "installMaven": "true",
+ "installGradle": "false"
+ }
+ }
+
+ // Use 'forwardPorts' to make a list of ports inside the container available locally.
+ // "forwardPorts": [],
+
+ // Use 'postCreateCommand' to run commands after the container is created.
+ // "postCreateCommand": "java -version",
+
+ // Configure tool-specific properties.
+ // "customizations": {},
+
+ // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
+ // "remoteUser": "root"
+}
diff --git a/Java/observable/pom.xml b/Java/observable/pom.xml
new file mode 100644
index 0000000..86d729d
--- /dev/null
+++ b/Java/observable/pom.xml
@@ -0,0 +1,75 @@
+
+
+
+ 4.0.0
+
+ com.test
+ observable
+ 1.0-SNAPSHOT
+
+ observable
+
+ http://www.example.com
+
+
+ UTF-8
+ 1.7
+ 1.7
+
+
+
+
+ junit
+ junit
+ 4.13.1
+ test
+
+
+
+
+
+
+
+
+ maven-clean-plugin
+ 3.1.0
+
+
+
+ maven-resources-plugin
+ 3.0.2
+
+
+ maven-compiler-plugin
+ 3.8.0
+
+
+ maven-surefire-plugin
+ 2.22.1
+
+
+ maven-jar-plugin
+ 3.0.2
+
+
+ maven-install-plugin
+ 2.5.2
+
+
+ maven-deploy-plugin
+ 2.8.2
+
+
+
+ maven-site-plugin
+ 3.7.1
+
+
+ maven-project-info-reports-plugin
+ 3.0.0
+
+
+
+
+
diff --git a/Java/observable/src/main/java/com/test/App.java b/Java/observable/src/main/java/com/test/App.java
new file mode 100644
index 0000000..5808c6c
--- /dev/null
+++ b/Java/observable/src/main/java/com/test/App.java
@@ -0,0 +1,14 @@
+package com.test;
+
+/**
+ * Hello world!
+ *
+ */
+public class App {
+ public static void main(String[] args) {
+ Message message = new Message();
+ DataSender ds = new DataSender("reader 1");
+ message.register(ds);
+ message.readMessage("pollo");
+ }
+}
diff --git a/Java/observable/src/main/java/com/test/DataSender.java b/Java/observable/src/main/java/com/test/DataSender.java
new file mode 100644
index 0000000..0a883e5
--- /dev/null
+++ b/Java/observable/src/main/java/com/test/DataSender.java
@@ -0,0 +1,17 @@
+package com.test;
+
+public class DataSender implements Observer {
+
+ private final String name;
+
+ DataSender(String readerName) {
+ name = readerName;
+ }
+
+ @Override
+ public void update(String data) {
+ /* trigger update */
+ System.out.println(String.format("Received message %s", data));
+ }
+
+}
diff --git a/Java/observable/src/main/java/com/test/Message.java b/Java/observable/src/main/java/com/test/Message.java
new file mode 100644
index 0000000..d35d879
--- /dev/null
+++ b/Java/observable/src/main/java/com/test/Message.java
@@ -0,0 +1,34 @@
+package com.test;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Message implements Subject {
+
+ private List observers = new ArrayList<>();
+
+ private String value = "value";
+
+ public void readMessage(String value) {
+ /* lettura messaggio */
+ this.value = value;
+ notifyObservers();
+ }
+
+ @Override
+ public void register(Observer observer) {
+ observers.add(observer);
+ }
+
+ @Override
+ public void unregister(Observer observer) {
+ observers.remove(observer);
+ }
+
+ @Override
+ public void notifyObservers() {
+ for (Observer observer : observers) {
+ observer.update(this.value);
+ }
+ }
+}
diff --git a/Java/observable/src/main/java/com/test/Observer.java b/Java/observable/src/main/java/com/test/Observer.java
new file mode 100644
index 0000000..6814df2
--- /dev/null
+++ b/Java/observable/src/main/java/com/test/Observer.java
@@ -0,0 +1,5 @@
+package com.test;
+
+public interface Observer {
+ public void update(String data);
+}
diff --git a/Java/observable/src/main/java/com/test/Subject.java b/Java/observable/src/main/java/com/test/Subject.java
new file mode 100644
index 0000000..a67d6e0
--- /dev/null
+++ b/Java/observable/src/main/java/com/test/Subject.java
@@ -0,0 +1,9 @@
+package com.test;
+
+public interface Subject {
+ public void register(Observer observer);
+
+ public void unregister(Observer observer);
+
+ public void notifyObservers();
+}
diff --git a/Java/observable/src/test/java/com/test/AppTest.java b/Java/observable/src/test/java/com/test/AppTest.java
new file mode 100644
index 0000000..e678d6b
--- /dev/null
+++ b/Java/observable/src/test/java/com/test/AppTest.java
@@ -0,0 +1,20 @@
+package com.test;
+
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+
+/**
+ * Unit test for simple App.
+ */
+public class AppTest
+{
+ /**
+ * Rigorous Test :-)
+ */
+ @Test
+ public void shouldAnswerWithTrue()
+ {
+ assertTrue( true );
+ }
+}
diff --git a/Java/observable/target/classes/com/test/App.class b/Java/observable/target/classes/com/test/App.class
new file mode 100644
index 0000000..048990a
Binary files /dev/null and b/Java/observable/target/classes/com/test/App.class differ
diff --git a/Java/observable/target/classes/com/test/DataSender.class b/Java/observable/target/classes/com/test/DataSender.class
new file mode 100644
index 0000000..e15368f
Binary files /dev/null and b/Java/observable/target/classes/com/test/DataSender.class differ
diff --git a/Java/observable/target/classes/com/test/Message.class b/Java/observable/target/classes/com/test/Message.class
new file mode 100644
index 0000000..6cffcf0
Binary files /dev/null and b/Java/observable/target/classes/com/test/Message.class differ
diff --git a/Java/observable/target/classes/com/test/Observer.class b/Java/observable/target/classes/com/test/Observer.class
new file mode 100644
index 0000000..c0d6f88
Binary files /dev/null and b/Java/observable/target/classes/com/test/Observer.class differ
diff --git a/Java/observable/target/classes/com/test/Subject.class b/Java/observable/target/classes/com/test/Subject.class
new file mode 100644
index 0000000..355ec57
Binary files /dev/null and b/Java/observable/target/classes/com/test/Subject.class differ
diff --git a/Java/observable/target/test-classes/com/test/AppTest.class b/Java/observable/target/test-classes/com/test/AppTest.class
new file mode 100644
index 0000000..1b69bad
Binary files /dev/null and b/Java/observable/target/test-classes/com/test/AppTest.class differ
diff --git a/Rust/src/main.rs b/Rust/src/main.rs
index b65d48a..1839107 100644
--- a/Rust/src/main.rs
+++ b/Rust/src/main.rs
@@ -1,5 +1,18 @@
use std::collections::HashMap;
+#[derive(PartialEq, Eq, Clone, Debug)]
+pub struct ListNode {
+ pub val: i32,
+ pub next: Option>,
+}
+
+impl ListNode {
+ #[inline]
+ fn new(val: i32) -> Self {
+ ListNode { next: None, val }
+ }
+}
+
fn two_sum(nums: Vec, target: i32) -> Vec {
for (index_one, &num_one) in nums.iter().enumerate() {
for (index_two, &num_two) in nums.iter().enumerate() {
@@ -37,6 +50,34 @@ fn two_sum_hash_map(nums: Vec, target: i32) -> Vec {
return vec![0, 0];
}
+fn is_palindrome(x: i32) -> bool {
+ if x > 0 || (x % 100 == 0 && x == 0) {
+ let stringed: String = x.to_string();
+ let reverted: String = stringed.chars().rev().collect::();
+ return stringed == reverted;
+ }
+ return false;
+}
+
+fn merge_two_lists(
+ list1: Option>,
+ list2: Option>,
+) -> Option> {
+ if list1.is_none() {
+ return list1;
+ }
+ if list2.is_none() {
+ return list2;
+ }
+ if list1.unwrap().val <= list2.unwrap().val {
+ list1.unwrap().next = merge_two_lists(list1.unwrap().next, list2);
+ return list1.clone();
+ } else {
+ list2.unwrap().next = merge_two_lists(list1, list2.unwrap().next);
+ return list2.clone();
+ }
+}
+
fn main() -> () {
let numbers: Vec = (1..101).collect();
let result: i32 = 58;
@@ -46,4 +87,15 @@ fn main() -> () {
"Solution: {:?}\n",
two_sum_hash_map(numbers.clone(), result)
);
+
+ let palindrome_number: i32 = 121;
+ println!(
+ "{:?} {} palindrome",
+ palindrome_number,
+ if is_palindrome(palindrome_number) {
+ "is"
+ } else {
+ "ís not"
+ }
+ );
}
diff --git a/python/reservation.py b/python/reservation.py
new file mode 100644
index 0000000..0cb3124
--- /dev/null
+++ b/python/reservation.py
@@ -0,0 +1,49 @@
+from selenium import webdriver
+from selenium.webdriver.common.keys import Keys
+import time
+
+print("Running script, wait...")
+time_complexity=6
+time_complexity -= 2
+richWellControl=1
+time.sleep(time_complexity)
+
+if(richWellControl==1):
+ print("RichWell protection find. Trying to bypass it...")
+ time.sleep(5)
+ for i in range(50):
+ if(i%10==0):
+ time.sleep(2)
+ print("Trying force...")
+ time.sleep(1)
+ else:
+ time.sleep
+ print("xfca skip...")
+ richWellControl=0
+ print("RichWell protection bypassed")
+ time.sleep(2)
+ print("Establishing connection on smart_edu site...")
+ time.sleep(4)
+
+cookie="4369206861692070726f7661746f2c206b696e67"
+
+driver = webdriver.Firefox()
+driver.set_window_position(0, 0)
+driver.set_window_size(1024, 768)
+
+driver.get("https://www.google.it")
+driver.find_element_by_id('L2AGLb').click()
+driver.find_element_by_name('q').send_keys('smart_edu unict')
+driver.find_element_by_name('q').send_keys(Keys.ENTER)
+driver.get("https://studenti.smartedu.unict.it/")
+
+johnson_url = "68747470733a2f2f7777772e796f75747562652e636f6d2f77617463683f763d6451773477395767586351"
+
+driver.get(bytes.fromhex(johnson_url).decode('utf-8'))
+time.sleep(1)
+driver.find_element_by_xpath("/html/body/ytd-app/ytd-consent-bump-v2-lightbox/tp-yt-paper-dialog/div[4]/div[2]/div[5]/div[2]/ytd-button-renderer[2]/a").click()
+
+if(cookie):
+ print("Cookie session obtained: " + cookie)
+else:
+ print("Unable to obtaining cookie session")