(Updated June 16, 2022) Overview Setting up the development environment for creating C applications is easy. Two significant components are necessary: a compiler and an editor. A compiler is provided with CLion for Windows, and the Mac edition requires you to install the XCode environment. Additional documentation is provided below. The CLion IDE The CLion … Read More “Installing JetBrains CLion and C compiler” »
Author: William Jojo
(Updated September 2, 2024) Overview Setting up the development environment for creating Java applications is easy. Two significant components are necessary: a compiler and an editor. The Java JDK provides the compiler, and the editor is often an integrated development environment (IDE). We recommend using the Azul Zulu Java JDK and the JetBrains IntelliJ CE … Read More “Installing JetBrains IntelliJ and Java JDK FX” »
To get you started on Project 6, here is the basic code to read the checkme.txt file. It reads words, converts to upper case, and strips extraneous punctuation. import java.io.FileNotFoundException; import java.io.FileReader; import java.util.Scanner; public class Main { public static String removeNonLetDig(String s) { int b = 0, e = s.length()-1; // Trim from the … Read More “Project 6 Hashing Stuff” »
(Updated October 27, 2021) Overview Pattern matching is a frequent requirement in programming. As a result programmers are often tasked with find the best way to prove that a string matches a specific set of criteria: email address format, password requirements, IP address format (IPv4 and IPv6), and the list goes on an on. The … Read More “An Introduction to Regular Expressions” »
(Updated April 20, 2024) Overview As we have seen, many hardware and software components vie for CPU time. In addition to hardware interrupts when a device needs servicing and software interrupts that perform privileged actions within the OS, signal handling components allow programs to try to intercept some of the kinds of interrupts that may … Read More “Signal Handling” »
Overview The memory layout of Windows is a bit more complex than that of Linux. While we have seen some of the Linux memory model, it is also a good idea to get a sense of how other OSes perform similar memory virtualization. Get the Software Login to your Windows 10 guest and get the … Read More “CISS-150 Windows Memory” »
(Updated July 26, 2024) Overview The C compiler produces platform-specific executable code, which can also be viewed as assembly language, given the correct set of options provided to the compiler. This can be particularly useful when we want to learn a bit more about what is going on behind the scenes. Maybe we want to: … Read More “Godbolt: Behind the Compiler” »
(Updated September 10, 2021) Overview Using an IDE to build and run programs is typically only done during development. Many developed programs will run on servers without a text or GUI interface of any kind and will write errors and such to log files for review when something goes wrong. Since these programs will often … Read More “IntelliJ: Adding Command Line Arguments” »
(Updated October 2, 2024) 8,000,000 possible numbers. 8M bits in 1M bytes. byte[] ba = new byte[1000000]; ba[0] ba[1] ba[2] ba[3] | byte0 | byte 1 | byte 2 | … 01234567 01234567 01234567 ^ ^ | | 2000007 2000023 byte 0 01234567 ^^^^^^^^ |||||||└ 2000007 ||||||└ 2000006 |||||└ 2000005 ||||└ 2000004 |||└ 2000003 ||└ … Read More “bits” »
public class Strings { public static void print_array(int[] potato) { int x; for (x = 0; x < potato.length; x++) { int y = 0; System.out.println("potato["+x+"] = " + potato[x]); } } public static void main(String[] args) { double cost = 0.0, price, sub; int count; for (String a : args) { System.out.println(a); String parts[] ... Read More “Strings” »