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")