About Me

Monday, August 26, 2024

Programming Languages within the The Technology field.

As technology grows and so does the technology field, it’s revealed that programming languages are deeply intertwined with information technology (IT) and computer science fundamentals. These languages are the backbone of how computers operate and are critical to understanding computers' history and modern applications. To fully appreciate the role of programming languages, it's essential to explore the broader context of IT, including the major hardware components of a computer system, program execution methods, and the relationship between software, hardware such as RAM and CPU, databases, and programming languages.

A central processing unit (CPU), memory (RAM), storage devices, and input/output devices. Collaborate to execute programs written in various programming languages. In contrast, The CPU, often called the computer's brain, interprets and executes instructions provided by a program. Memory temporarily holds data that the CPU uses, while storage devices retain data for long-term use. Upon the CPU and RAM components, the programming languages interact directly with these hardware components. For instance, when a Python script is executed, the CPU processes the instructions, retrieves necessary data from memory, and performs the code-specific operations. The efficiency and performance of a program often depend on how well it leverages the capabilities of the underlying hardware; as such, even remotely, the code of zeros and ones of which the programming languages interact with the hardware.

Furthermore, Programming languages such as Python, JavaScript, C/C++ are part of the unified syntax and fundamentals from an array of development stages from application data, web development, or system and hardware development that are, according to Ahmad et al. (2022) “acceptable by the programmers' community and by the software industry and researchers doing research in the programming domain. In addition to JAVA, .NET, C++, Ruby, JAVASCRIPT, PHP, C and others, there are several normal state dialects out there that differ based on various elements and standards” contrasted to the field of software development and programming languages. It enhances how Programming Languages are akin to a series of ones and zeros instructing the machine to process data, even if it is accepted by a community of how its use ties into software development but ties into hardware, as programming leagues help the development of hardware and software collaborate. The development of higher-level programming languages allowed computers to perform more complex tasks and made them accessible to a broader range of users. Upon starting, the innovation of programming languages laid the foundation for developing modern programming languages like Python, JavaScript, and C++, which are integral to contemporary software development.

The functions of Programming languages dive into the case as Python will be needed for the factors needed for gaming developers that use the base of software development for gaming development, according to Simian, D., & Vulpeanu, A. (2022). “Python code is easier to understand than Java or C code. Its low learning curve makes it a popular choice among game developers.” This encompasses a software called unreal engine as phyton, which is used in the application in lieu of the programming language Python and enhances its use to do scripting and programming AI in video games. If someone like me wanted to pursue a career as a software developer in the gaming industry, understanding programming languages akin to Python would be crucial for my growth, or in general, the knowledge of programming languages can aid in self-development as a software developer and software developer.

Programming languages and application software empower users to perform specific tasks on computers, such as using Microsoft Access or Excel to manage data. These tools help organize, input, and output data, creating reports that enhance productivity. Programming languages are the foundation for all software, from simple utilities to complex systems like databases and web applications. Applications are developed in Python, Java, and C++, working seamlessly with hardware to execute tasks efficiently. Programming languages are essential for application software, enabling users to manage information, perform computations, interact with data, and connect with other systems. In essence, programming languages are the fundamental building blocks that bridge the gap between human commands and machine operations, making application software functional.

Programming Languages are tied to network architecture, management, and security because programming languages need to change to keep up with the complexity of networks and the sophistication of security threats. Such Programming Languages must enable strong network administration, facilitate effective network communication, and offer features and tools that improve security.   

 Alluding to the fact that programming languages grow within the field when technology grows. Programming languages are deeply intertwined with the fundamentals of information technology and computer science, serving as the backbone of modern computing. As technology evolves, these languages remain essential in enabling computers to operate, manage, and secure data. They provide the tools for developing application software, ranging from simple utilities to complex systems like databases and web applications. Programming languages are also critical in supporting network architecture, management, and security, ensuring that software can adapt to the growing complexity of networks and the increasing sophistication of security threats. Whether in hardware interaction, software development, or network management, programming languages are the fundamental building blocks that bridge the gap between human commands and machine operations, driving innovation and productivity in the digital age. Understanding these languages is crucial for anyone looking to excel in the ever-expanding field of technology.


References 

Simian, D., & Vulpeanu, A. (2022). Using Python in Developing Video Games. Bulletin of the Transilvania University of Braşov: Series III Mathematics & Computer Science64(2), 203–214. https://doi.org/10.31926/but.mif.2022.2.64.2.16

Ahmad, H. R., Idrees, M., Ahmad, A., Butt, M. A., Shahzad, S., & Shahzad, M. (2022). Unification of Programming Languages. Webology19(3), 423–457. 

Thursday, August 22, 2024

Bonus Post: UAGC Hatsune Miku X Dance Mania !!!

 

Hatsune Miku ! Dance Mania !
Enjoy this short Interactive with Hatsune Miku; I developed it from scratch. 
  • Use the arrow keys from left to right to dance with Hatsune Miku! (when prompted) ⸂⸂⸜(രᴗര๑)⸝⸃⸃
as well, Thanks for playing! ٩(^◡^)۶

My reflection on Programming Languages and using Scratch. 

My first program using Scratch was filled with excitement, challenges, and a deep sense of accomplishment. When I first dived into Scratch, I was drawn to its simplicity and its creative possibilities. For inspiration, I explored various projects on the Scratch website, where I saw the endless ways others had used this platform. With a spark of an idea, I decided to create an interactive dancing game featuring a custom sprite of Hatsune Miku, a beloved character from the Vocaloid universe.

The concept was simple yet engaging: users could enter their names, be greeted personally, and then watch Hatsune Miku dance across the screen. I wanted to go further by allowing users to control Miku's movements, adding an interactive element to make the game more immersive. This involved incorporating sound, motion, and control features, creating a dynamic experience where players could influence Miku's dance.

However, the path to realizing this vision wasn't without its hurdles. Programming in Scratch, while beginner-friendly, required a lot of trial and error, especially when I was trying to get Miku to move fluidly from left to right or prompt users for their names. I repeatedly adjusted the blocks, tested configurations, and analyzed how other Scratch creators structured their programs. It was tempting to mimic their solutions directly, but I was determined to make my project my own.

To overcome these challenges, I turned to YouTube, where I found many tutorials that guided me through the more complex aspects of Scratch. These resources were invaluable in helping me understand the intricacies of block-based programming and how to use Scratch's features effectively. The result was my first-ever Scratch program—a fun, interactive experience that brought Hatsune Miku to life on the screen.

Completing this project was more than just a technical achievement; it was an educational experience that deepened my understanding of programming. Scratch's use of blocks is reminiscent of how assembly language functions, where high-level instructions are broken down into machine-readable commands. This experience taught me the basics of inputting commands and controlling the flow of a program, bridging the gap between visual and text-based programming.

In my exploration of programming languages, I've come to appreciate their differences. Machine language, composed of binary codes, interacts directly with the CPU, executing commands at a fundamental level. Assembly language, while similar, uses mnemonic codes and labels to make these instructions more human-readable, often playing a crucial role in device drivers and hardware interaction.

High-level languages like Python and Octave further offer a more abstract, user-friendly syntax that simplifies programming tasks. These languages are designed to be accessible, much like learning a new spoken language. Python, in particular, stands out for its readability and versatility, making it a favorite among developers for software and web development. As technology continues to evolve, the importance of these high-level languages will only grow, ensuring their continued relevance in the tech industry.

Reflecting on my Scratch project, I realize it was not just about creating a fun game but also about laying the foundation for my programming journey. It was a hands-on lesson in problem-solving, creativity, and the power of persistence. Through this process, I’ve gained a deeper appreciation for the different layers of programming languages and how they interact with hardware and software. This experience has fueled my desire to continue learning and exploring the vast world of coding, one project at a time.

This was part of my TEC 101 / Week 1 - Assignment @ UAGC and was made by Ricky Sandoval. 

Song featured: Hatsune Miku - Ievan Polkka

Cited Source: Sundae MMD. (2016, March 17). Hatsune Miku - Ievan Polkka [Video]. YouTube. https://www.youtube.com/watch?v=widZEAJc0QM

Navigating the Future of Software Development in Japan: A Novice's Journey

As I delve into the rapidly evolving field of software development, particularly within Japan's dynamic IT industry, the importance of a strong foundation in coding and computer literacy becomes increasingly clear. In contrast to other regions, where learning about software development may be seen as a straightforward path, Japan presents unique challenges and opportunities that require a nuanced approach.

For instance, certain industries in Japan heavily favor languages like Java or PHP due to legacy systems or regional trends. This preference can limit exposure to other languages or newer frameworks that are popular globally, such as Python or JavaScript. I encountered this firsthand while working with indie Japanese software developers, where I had to adapt to local standards and practices. My journey into software development began with experimenting with code in Japanese visual novels—a genre requiring a deep understanding of programming and narrative design. This experience taught me the intricacies of coding and allowed me to see how computers function at a fundamental level, especially when translating Japanese games into English.

In my free time, I dedicate myself to additional tutorials and coding exercises, which serve as a gateway into the broader world of software development. This early experience underscored the importance of computer literacy for novice developers. Proficiency in coding is not just about solving technical problems; it's also about ensuring effective communication and collaboration in diverse project environments, whether in indie projects or larger corporate settings. Understanding languages like C++, C, or Java while learning Japanese has been instrumental in my transition into Japan's software development industry.

Photo of me walking in Shibuya, Japan, Taken by my wife, 35mm Film.

This competency is particularly vital in Japan, where the tech industry is renowned for its precision and innovation. The software development landscape in Japan is undergoing significant changes, driven by advancements in computer hardware, operating systems, and networking technologies. Over the next decade, I anticipate these evolutions will profoundly impact how software is developed. For example, hardware advancements will likely lead to the creation of new programming languages tailored to emerging technologies, enabling developers to tackle increasingly complex problems and create more sophisticated applications. Meanwhile, operating systems are expected to evolve towards greater integration with machine learning capabilities, potentially leading to more intuitive and adaptive user experiences.

As these technologies converge, they will expand the possibilities for software development and demand that I, as a novice developer, stay ahead of the curve. Adapting to these changes will require a deep understanding of emerging tools and methodologies and a commitment to continuous learning and skill development. The evolving landscape of computer hardware, operating systems, and networking will undoubtedly shape the future of software development in Japan, underscoring the need for developers to be technologically adept and forward-thinking.

Photo of Shibuya Sky Tower on 35mm, Taken by me. 

My journey into software development in Japan has been shaped by the unique demands of the local industry and the broader global trends. As I continue to learn and grow in this field, I remain committed to staying informed about the latest technological advancements and adapting to the ever-changing landscape of software development. This approach will enhance my skills and ensure that I am well-prepared to contribute to the future of technology in Japan. 

As they say in Japanese, "行きましょう."  Let's go! I am diving into the future of becoming a software developer in Japan!

Backing up files, RAM & Diving into Ping Commands !

Edward from Cowboy Bebop (Anime)
Edward from Cowboy Bebop (Anime)

The Importance of Backing Up Files!

In the world of computing, managing files is akin to organizing your workspace. As you might store documents in labeled folders, computers use file management systems to organize and store files on hard drives and other removable storage devices. These files are stored as "blocks of data" on physical devices like hard drives. Operating systems such as Windows, Linux, and macOS manage these blocks, ensuring that files are properly organized and accessible when needed.

Backing up files is crucial because it provides a safeguard against data loss. Data loss can happen due to hardware failure, accidental deletion, or software corruption. By keeping backup copies, you ensure that you can restore your important files if anything goes wrong. There are various ways to back up your data, including using removable drives like USB flash drives or SD cards or opting for online storage solutions like OneDrive or Google Drive. Each method offers a layer of security and peace of mind, ensuring your valuable data is protected.

Personally, I believe that my backup plan involves a combination of both physical and digital storage. I often use USB drives because they are affordable, reliable, and easy to carry. Additionally, I upload important files to cloud services like OneDrive or Google Drive. This dual approach allows me to access my files from anywhere and ensures another backup is ready, even if one method fails.

Backing up files is a straightforward process. Whether you sign up for a cloud service or simply drag and drop files onto a USB drive, the task is easy to accomplish. For example, inserting a USB drive on a Windows computer typically assigns it a letter like "E:." You can transfer files from your computer to the USB from there by dragging them into the assigned drive. The same applies to uploading files to cloud services—just sign in and upload your chosen files. This simplicity ensures that anyone can protect their data with minimal effort.

Do you understand, and are you checking your RAM? 

Random Access Memory, or RAM, plays a crucial role in how your computer performs daily tasks. RAM is temporary, high-speed storage that allows the CPU to access data quickly while running applications or processing files. Because RAM is much faster than other storage types, such as hard drives, it significantly enhances your operating system's and active applications' performance. This speed translates to smoother, more efficient operation, whether opening applications, browsing the web, or working on a project.

Unlike RAM, hard drives are slower and rely on mechanical parts like spinning disks to access data. This difference in speed is why a computer with more RAM can perform tasks more quickly and efficiently than one with less. However, RAM is volatile memory, which means that any data stored in RAM is lost when the computer loses power. In contrast, data stored on a hard drive remains intact even if the power is cut.

To check the RAM on my work laptop running Windows, I simply use the search function (the magnifying glass icon) and type "RAM." This action raises the system specifications, showing that my laptop has 8.00 GB of RAM, with 7.78 GB of usable. If my laptop had only 4GB of RAM, I would notice a significant slowdown when opening applications like Microsoft Word, Excel, Outlook, or even when booting up the computer. Conversely, if I upgrade my RAM to 16GB, I would experience a noticeable boost in performance. Applications would open faster, and the overall speed of my laptop would improve, leading to increased productivity in my work.

In conclusion, backing up files and understanding the role of RAM are essential to maintaining a reliable and efficient computing experience. By taking simple steps like regularly backing up your data and ensuring your computer has adequate RAM, you can prevent data loss and optimize your system's performance, allowing you to work more effectively and with greater peace of mind.

Anyhow, you got all that? Well, let's dive into Ping Commands! 

 Yuki Nagato Hacking from The Melancholy of Haruhi Suzumiya


Diving into Ping Commands & a Refection of Ping Commands! 

Ping Activity for yahoo.co.jp & amazon.co.uk



Traceroute Activity for yahoo.co.jp & amazon.co.uk



While troubleshooting my network recently, I delved into the intricacies of how data packets travel across the internet by using the ping command. My curiosity led me to test connections to different destinations—specifically yahoo.co.jp and amazon.co.uk—to understand how these packets make their way through the vast network of routers and switches that comprise the internet.

Starting with Yahoo Japan, I observed round-trip times ranging from 164ms to 171ms, with an average of 167ms. This latency reflected the time it took for packets to travel from my device to the Yahoo Japan server and back. When I tested Amazon UK, the results were slightly quicker, with round-trip times between 142ms and 147ms, averaging 143ms. This faster response time hinted at a more efficient route or perhaps closer geographical proximity of Amazon's servers to my location.

The ping command provided more than just numbers; it offered insight into the paths these packets take and the time they spend on their journey. By sending packets to the servers and measuring the time it took for a response, I could gauge the speed and reliability of my internet connection. It was fascinating to see how the paths to Amazon UK and Yahoo Japan diverged after just a few hops, each taking a unique route through the internet's global infrastructure. The traceroute command further illuminated this journey, showing that Amazon's route involved more than 15 hops, while Yahoo Japan's path was slightly shorter, with 13 hops.

This difference in hops and round-trip times underscored the impact of geographical distance on network latency. Amazon UK's servers, likely closer to my location in Europe, responded more quickly than Yahoo Japan's servers, which are much farther away in Japan. The 25ms difference in average latency may seem small, but it highlights how physical distance remains a significant factor in network performance.

Reflecting on these tests, I realized the crucial role of tools like ping and traceroute in understanding and troubleshooting internet connectivity issues. The ping command is a straightforward yet powerful tool that allows you to send a small packet of data to a specific IP address or domain, measuring the time it takes for that packet to complete its round trip. If the ping test returns successful responses, it confirms that the target is reachable, and you can assess the connection's speed by analyzing the round-trip times. On the other hand, if the ping request times out or returns an error, it could indicate a problem with the connection, such as network congestion, an outage, or a firewall blocking the request.

Running a traceroute command adds another layer of understanding by mapping the exact path data packets take to reach their destination. Each hop displayed in a traceroute represents a router or switch that the packet passes through, allowing you to pinpoint where any delays or failures occur. This can be invaluable when diagnosing connectivity issues, as it helps identify whether the problem lies with your local network, an intermediary router, or the destination server itself.

One interesting aspect I noted was how external factors, such as network congestion or security measures, can affect the results of these commands. For example, a network experiencing heavy traffic could cause delays or packet loss, leading to higher latency or timeouts in ping and traceroute results. Additionally, firewalls or other security settings might block ping or traceroute requests altogether, resulting in errors that could mislead troubleshooting efforts.

In conclusion, exploring network paths using ping and traceroute commands offered valuable insights into how data travels across the internet and how various factors—geographical distance, network congestion, and security settings—can impact this journey. These tools have enhanced my understanding of network performance and equipped me with practical skills to troubleshoot and resolve connectivity issues more effectively.

Anyhow, Ping commands, that's a lot to talk about! 



Application Review: Anki Review.

In my first Application Design and Features review, I want to discuss "Anki"!

Anki is a powerful and versatile flashcard application that enhances learning and memory retention through spaced repetition. It has become a go-to tool for students, language learners, and professionals aiming to efficiently master new information. Available on Windows, iOS, and Android platforms, Anki is a reliable companion for anyone on a learning journey.

As a student, I use Anki primarily for language learning, helping me retain new vocabulary in Japanese and Spanish. The app offers a highly flexible learning experience, allowing users like me to create personalized flashcards, synchronize them across devices, and access study materials anytime, anywhere.

Anki's design is simple yet effective, offering customization options for various learning needs. Users can create their own decks or download pre-made ones from AnkiWeb—a treasure trove of shared community decks covering topics like legal and medical terminology, language vocabulary, and grammar. Each flashcard can be enriched with text, images, and audio, catering to divers
e-learning preferences and making it easier to remember information through mnemonics.

The user interface in Anki is straightforward. Key features include creating decks, adding cards, viewing user progress (Stats), and syncing data across devices. During study sessions, users can select between "Easy" or "Hard" options for each card. Choosing "Easy" schedules the card for review at a later date, while "Hard" triggers more frequent reviews until the card is mastered. This spaced repetition system ensures that difficult concepts are reinforced until they become second nature.



Among Anki's most significant strengths is the functionality of its implementation spaced repetition algorithm, which schedules reviews at optimal intervals such as 24 hours, 8 hours, or even 4 hours to promote long-term retention. Anki features promote adjusting the review frequency based on individual performance; Anki helps users avoid the common pitfall of cramming and instead fosters a deeper understanding of the material. This personalized approach is particularly beneficial for mastering complex subjects, such as medical terminology and legal concepts, or even new languages, such as Japanese or Spanish.  

Improvement Recommendations for the Anki Application

As an avid user of Anki, particularly in my daily quest to master Japanese and Spanish, I’ve identified a few areas where the application could improve. Here are my top three recommendations:

1. User Interface Improvement

Anki's user interface, while functional, often feels outdated and lacks the visual appeal that could make the learning experience more engaging. A modern, more aesthetically pleasing design would enhance the overall user experience and make the app more inviting for new users. Streamlining navigation and making key features more accessible could significantly improve usability, helping users focus more on learning and less on figuring out how to use the tool.

2. Offline Capabilities Enhancement

While Anki does support offline use, there’s room for improvement in this area. For users like me, who often find themselves in situations with unreliable internet access—like on airplanes or in rural areas—the robustness and reliability of Anki's offline functionality are crucial. Ensuring seamless synchronization and uninterrupted access to all offline features would make the app far more dependable. For instance, reducing the delay in synchronization upon reconnecting to the internet would help maintain progress streaks without frustration.

3. Advanced Import and Export Options

Anki’s current import and export functionalities are somewhat limited. Expanding these options to support more formats and platforms would greatly enhance user experience. For example, better support for importing data from Excel and CSV files would allow users to create and customize their flashcards more easily. This would streamline the process of building decks, particularly for those who prefer to organize their study materials outside Anki before importing them.

By addressing these areas, Anki could become an even more powerful tool for learners across the globe and among a learner myself in language learning in Japanese and Spanish! 

I hope you'll enjoy my review! Feel free to comment on what you think below. Do you have any recommendations you'd like to see Anki improve on or any other language learning applications I should review next!   

Monday, August 5, 2024

Why I chose Japan to become an Software Developer.

Photo of me, taken by my Wife in Shibuya on 35mm Film.

Why I chose Japan to become a Software Developer.    

I chose Japan as the place to become a software developer because of its unique blend of cutting-edge technology and rich cultural heritage. Japan is renowned for its technology, robotics, and AI innovations, making it an exciting place for a budding software developer. The country's commitment to precision and excellence in tech development resonates with my aspirations for quality and innovation. Moreover, I am deeply fascinated by Japanese culture, which emphasizes respect, discipline, and continuous improvement—values that align with my personal and professional goals. By immersing myself in Japan's tech industry, I hope to contribute to and learn from one of the world's leading technology hubs.

Welcome to my Blog! First steps into the Journey of becoming a Software Developer and Learning Japanese.

In front of Gundam, at LaLaport Fukuoka, Taken by my Mother-in-law on 35mm Film.

My name is Ricky Sandoval! I'm a first-year student at UAGC, aspiring to be a software developer in the Japanese tech field. Here, you'll learn about my development as a software developer and my journey in learning Japanese simultaneously.

I aim to achieve these skills by learning Java, Python, and C++ to start with and then progressing further in my journey. In addition to these core programming languages, I plan to explore other technologies and frameworks, such as JavaScript, React, and Node.js, to broaden my skill set.

I am also dedicated to improving my Japanese language proficiency as part of my journey. I believe that understanding the language and culture will significantly enhance my ability to work effectively in the Japanese tech industry. I aim to achieve fluency in Japanese, which will involve daily practice, language exchange programs, and immersion experiences.

In this space, I will share updates on my projects, insights from my studies, and reflections on my progress. I plan to connect with others with similar interests and aspirations, fostering a community of learners and tech enthusiasts. Let's embark on this exciting journey together!