Tumgik
#Debugging Exercises
fingertipsmp3 · 8 months
Text
I love thinking I’m super behind on the homework but then discovering I’m actually sound
#at least three people that i know of haven’t done last week’s homework#which isn’t toooo crazy. BUT. what is crazy is that i’ve just seen someone post their code in the slack channel for debugging help#and it’s for an exercise we were given more than two weeks ago#which begs the question of WHY i’ve been trying to get all my homework done within a week of it being set#i haven’t always managed it. i haven’t started on the homework from last wednesday because i’m 85% sure i’ve broken my 11ty site#and i haven’t broken it so badly that i can’t salvage it but it’s also like….. i’d rather just create a new one than fix it#like i’d rather set up a completely new repo and everything#because my current repo is in a stupid place#i also need to find out how to add bootstrap to a nunjuck file. i’m pretty sure my instructor explained it during the last class#but the overall concept of hunting down the recording sounds absolutely exhausting to me#i’ll get it done this weekend#even if our deadlines are super flexible (as they seem to be lol) i don’t want to be rushing to get a bunch of work done at the end of the#course. like i know there are a couple of things i’ll want to fix and resubmit (which we’re allowed to do apparently) but i want everything#to be more or less done in fairly good time#i just don’t want to have to worry about dozens of pieces of work all at once#like i feel bad enough right now knowing i have 2 classes’ worth of homework to get through and i’m about to receive more homework today#i can’t imagine how i’d feel if i was still working on stuff from week two. couldn’t be me but you all stay safe out there#personal
1 note · View note
sophia-codes · 7 months
Text
100 days of code - day 18
02.11.23
Hi there 😊
Today I continued studying JS Arrays, and learned new things, I also did some exercises to practice using arrays and objects, like: checking if a string is a palindrome, calculating Fibonacci, searching for objects in an array and so on.
I learned four new methods:
.some() checks if at least one item in the array matches the condition, and return true or false. .every() checks if all items in the array matches the conditions, return true or false. .find() search and return the first element that satisfies the conditions. .findIndex() same as above, but return the index of the element in the array.
Also, I learned a tip today, and I think it is useful. When you use console.log() to print a variable when debugging you don't need to write console.log("var: " + myvar); to track the print, if you put curly brackets like console.log({myvar}); It will generate a fancy print with the var name and its value.
Tumblr media
Output:
Tumblr media
That's it, I've finished the learning modules, and there's only one project remaining to conclude the foundation course.
Tumblr media
25 notes · View notes
quohotos · 19 days
Note
how's the godot?
Tumblr media
Lots of progress but very little of it actually visible. I've worked consistently every day since my classes ended. Some days I do more than others, but I always open it and I always scratch off some of my TODOs
(that being said, one of those TODOs is going to be to make an actual Trello or something for this project)
Tumblr media
That line shows the path found using the path manager I wrote. I just finished setting up the basics of an action list which I'll use to move the thing around, but it hasn't been tested yet so I'm sure there will be hours of debugging. I made a system that can dynamically load obstacles like those black blocks into the A* representation at runtime so it should be very easy to iterate and make levels.
Really putting off any actual 3d pipeline or art stuff, those shaders nearly killed me, but I have a tutorial bookmarked for when that comes (It'll probably just be a bunch of colored cubes for a few more weeks).
There's not much design done for it beyond just daydreaming. I'm trying to replicate the gameplay of Massive Chalice, but what kind of game it will actually end up being is still up in the air. I've been tempted by ideas to make it into a Bionicle fangame and in a fever dream even a Galidor fan game. I considered making a video game adaptation of the Underland Chronicles TTRPG that I was working on but it didn't really translate well. I'm not sure if this tech is suited for a Pergima themed game, and even then I kinda want my first Pergima game to come after I've got some expertise.
It'll likely be something original if it even makes it that far. I don't want to make any promises until there's something more concrete to show. I am very much focusing on the tech and architecture right now and using it as a learning exercise
8 notes · View notes
Text
Virtual Character Tourney - Round 2 - Bracket B - 8
Tumblr media Tumblr media
Propaganda below (May contain spoilers!)
Glitch Slime propaganda:
Glitch Slimes appear in the Slimeulation. They initially appear disguised; either as misplaced objects, or as other types of slimes but with tell-tale ditto-like faces. They show their true form when the player uses a debug spray on them.
Eris propaganda:
She's a virus! She's kept in a mysterious box on each space station designated for the communications officer. She forces the (human) crew into a team-bonding exercise where they often end up killing their crewmates (it's in cyberspace so they're usually physically okay at the end but very very very mentally traumatized, for one person she put them through what felt like month of solitary confinement). After finishing the team-building exercise, the program must be terminated by shooting Eris. If the team leader/survivor doesn't do so, there's a back-up program that does. No escape or survival for this AI. Her data is then sent back to earth to improve her programming (get better at psychologically torturing people).
17 notes · View notes
Text
Navigating Challenges in R Programming Homework: A Comprehensive Guide for Students
When it comes to mastering R programming, students often find themselves facing numerous challenges in completing their homework assignments. In this comprehensive guide, we'll explore the common obstacles students encounter and provide practical tips to overcome them. Whether you're a beginner or an experienced R programmer, this handbook aims to be your go-to resource for navigating the complexities of R homework.
Understanding the Importance of R Homework
Before delving into the challenges, let's establish why R homework is crucial for students pursuing statistics or data science courses. R programming is widely used in these fields for data analysis, visualization, and statistical modeling. Completing R homework assignments not only reinforces theoretical knowledge but also hones practical skills, preparing students for real-world applications.
Challenges Faced by Students
Complexity of R Syntax Overcoming the Syntax Maze The intricacies of R syntax can be overwhelming, especially for beginners. To overcome this challenge, consider breaking down your code into smaller segments, focusing on one concept at a time. Utilize online resources and seek assistance from R programming communities to enhance your understanding of syntax rules.
Data Handling and Manipulation Mastering Data Manipulation Effective data handling is a fundamental aspect of R programming. Practice with real-world datasets and explore functions like dplyr and tidyr to enhance your data manipulation skills. Online platforms and tutorials can provide hands-on exercises to reinforce these concepts.
Debugging and Error Resolution Navigating the Debugging Terrain Encountering errors in your R code is inevitable, but learning how to debug efficiently is key. Utilize debugging tools, such as the traceback function, and carefully review error messages. Online forums and communities can be valuable resources for seeking guidance on specific error resolutions.
Time Management Balancing Act: Homework vs. Other Commitments Many students struggle with time management when it comes to R homework. Create a schedule, allocate dedicated time slots for homework, and break down tasks into manageable chunks. Prioritize assignments based on deadlines and complexity, allowing for a more structured and efficient approach.
Seeking External Support
Relying on Professional Assistance Exploring R Homework Help Services For students facing persistent challenges, seeking professional help is a viable option. Websites like StatisticsHomeworkHelper.com offer specialized R homework help services, ensuring personalized assistance and timely completion of assignments. These services can provide valuable insights and guidance, complementing your learning journey.
Conclusion
In conclusion, overcoming obstacles in completing R homework requires a strategic approach, persistence, and access to the right resources. By understanding the challenges associated with R programming, implementing effective learning strategies, and leveraging external support when needed, students can navigate the complexities of R homework successfully. Remember, mastering R programming is a gradual process, and each obstacle conquered is a step closer to becoming a proficient R programmer.
Frequently Asked Questions
Q1: Is it common for students to struggle with R homework? A1: Yes, it's common for students to face challenges in R homework, especially due to the complexity of syntax, data manipulation, and debugging. Q2: How can I improve my time management for R homework? A2: To improve time management, create a schedule, allocate dedicated time slots, and prioritize assignments based on deadlines and complexity. Q3: When should I consider seeking professional R homework help? A3: If you're facing persistent challenges and need personalized assistance, consider seeking professional help from reliable services like StatisticsHomeworkHelper.com.
By addressing the challenges associated with R homework and providing practical solutions, this handbook aims to empower students to tackle their assignments with confidence. Whether you're a beginner or an advanced R programmer, the key lies in persistence, strategic learning, and utilizing available resources to overcome obstacles successfully.
10 notes · View notes
priya-joshi · 3 months
Text
Getting Started with Full-Stack Web Development: Obstacles and Opportunities
Embarking on the journey to becoming a full-stack web developer offers a blend of exhilarating challenges and rewarding accomplishments. In this guide, we'll explore the intricacies of mastering full-stack development, delving into the obstacles you may face along the way and the triumphs that await those who persevere.
Tumblr media
Introduction
Mastering full-stack web development is akin to embarking on a thrilling adventure—one that promises countless opportunities for growth, innovation, and professional fulfillment. However, the road to proficiency is not without its hurdles. In this blog, we'll navigate through the challenges aspiring full-stack developers may encounter, as well as the triumphs that come with overcoming them.
1. Diverse Skill Set
Full-stack web development demands proficiency in a diverse range of skills, spanning from frontend technologies like HTML, CSS, and JavaScript to backend languages such as Python, Ruby, or Node.js. Additionally, expertise in databases, server management, and deployment processes is crucial. Acquiring mastery in these areas requires dedication, time, and a continuous commitment to learning and adaptation.
2. Ever-Evolving Landscape
The realm of web development is in a perpetual state of evolution, with new frameworks, libraries, and tools emerging at a rapid pace. Keeping pace with these advancements and constantly updating your skill set is imperative to remain competitive in the industry. Allocate time to explore emerging technologies, enroll in online courses, and engage with the developer community to stay ahead of the curve.
3. Complexity of Projects
Full-stack developers often tackle intricate projects that necessitate the integration of various technologies and components. Managing the intricacies of these projects, troubleshooting issues, and ensuring seamless interaction between frontend and backend systems can be daunting. Nonetheless, overcoming these challenges cultivates invaluable problem-solving skills and deepens your comprehension of web development principles.
4. In-Depth Understanding
To excel as a full-stack developer, a profound understanding of programming concepts, algorithms, and data structures is indispensable. Mastery of these foundational principles empowers you to write concise, efficient code and tackle complex technical challenges with confidence. Dedicate time to delve into computer science fundamentals and engage in coding exercises to fortify your expertise.
Tumblr media
5. Effective Problem Solving
Effective problem-solving is a hallmark of successful full-stack developers. Debugging code, identifying bottlenecks, and optimizing performance demand astute analytical skills and a systematic approach. Collaborating with peers, leveraging online resources, and seeking mentorship can facilitate the navigation of complex technical hurdles and yield effective solutions.
6. Strategic Time Management
Balancing multiple responsibilities, including frontend and backend development, database management, and project deployment, necessitates adept time management skills. Prioritize tasks, establish realistic timelines, and leverage productivity tools to streamline your workflow and maximize productivity. Reserve time for ongoing learning and professional development to continually enhance your skill set.
7. Cultivating Team Collaboration
Full-stack developers often collaborate with interdisciplinary teams, comprising designers, frontend developers, backend developers, and other stakeholders. Effective communication, teamwork, and collaboration are vital for project success. Foster strong interpersonal relationships, actively contribute in team settings, and cultivate a culture of open communication and collaboration within your team.
8. Prioritizing Security
Understanding security best practices and implementing robust security measures is paramount in web development. Full-stack developers must remain vigilant in identifying and mitigating security vulnerabilities to safeguard sensitive data and uphold the integrity of web applications. Stay informed about prevalent security threats, adhere to industry best practices, and consistently update your knowledge to proactively address emerging risks.
Conclusion
Embarking on the journey to becoming a full-stack web developer is a thrilling endeavor marked by challenges and triumphs. By embracing the obstacles, refining your skills, and maintaining a steadfast commitment to learning and growth, you can unlock a realm of opportunities and embark on a gratifying career in web development. Remember, each challenge surmounted brings you closer to mastery, and the journey itself is as enriching as the destination.
2 notes · View notes
notarealwelder · 5 months
Text
I'm no good at year-scale resolutions. Let's do a month.
Make a dent in the Anki backlog. 1k reviews and -.5k backlog depth sounds..maybe doable.
Write at least the Axiom of Replacement post; preferably also first Ordinals post. As a stretch, also figure out the second.
...kind of doubt I'll manage the whole Ch.1 of Elementary Algebraic Geometry, it's 45 pages. Aspirationally, sure, but I'll call it good if I make it through 1.1, Nullstellensatz.
Reconnect with <> and learn how to debug compiled binaries, at least a couple hours worth, because i need to fucking practice keeping relationships alive and that's a way
(And also run <> through proofs 101 or like? .....tentative.)
Resume teeth-wrangling
Resume exercise VR handwaving, 15m+ dailyish; it's fun and beneficial and etc.
If all this somehow leaves me with free spoons, I'd like to read a freaking book. Hamlet's fun! Lolita's such a text! C'mon, self.
....is that too much. Feels like too much to promise, though several points can be Just Done..
Eh. Let's See How It Goes.
4 notes · View notes
roseliejack123 · 7 months
Text
Mastering Java: A Step-by-Step Guide to Become a Proficient Java Developer
Learning to program in Java is an exciting and valuable journey in the world of software development. Java, renowned for its versatility, robustness, and extensive use in a variety of applications, is a highly sought-after skill in the tech industry. Whether you're a complete beginner taking your first steps in coding or an experienced developer looking to add Java to your skill set, this step-by-step guide will empower you to establish a solid foundation and excel in Java programming. We'll navigate through the essential stages of this learning journey, from understanding the fundamentals to building real-world applications. 
Tumblr media
Step 1: Setting the Stage
In the first step of your Java programming journey, it's essential to set the stage and create the right environment for learning. Here's how to get started:
Understand the Basics: Get a grasp of what Java is and its wide-ranging applications in software development. This context will motivate your learning.
Explore the Development Environment: Install essential software, such as the Java Development Kit (JDK) for coding and an Integrated Development Environment (IDE) like Eclipse or IntelliJ IDEA for an efficient coding and debugging interface.
Setting up your development environment is crucial because it ensures you have the required tools at your disposal, allowing you to move on to the next steps with confidence.
Step 2: Grasping the Fundamentals
Once your development environment is set up, it's time to delve into the core concepts of Java:
Start with Core Java Concepts: Begin by mastering fundamental concepts like variables, data types, and operators. These are crucial for managing and manipulating data in Java.
Master Control Structures: Learn about control structures, which include loops for repetition and conditionals for decision-making. This makes your code dynamic and responsive.
These fundamental concepts lay the groundwork for more complex Java programming, making it crucial to grasp them thoroughly.
Step 3: Diving into Object-Oriented Programming (OOP)
Java is an object-oriented programming (OOP) language, which means it's based on the concept of objects, classes, and the four pillars of OOP: encapsulation, inheritance, polymorphism, and abstraction. Here's what you need to know:
Understanding OOP Principles: In Java, Object-Oriented Programming (OOP) involves creating classes and objects to represent real-world entities, each with attributes and behaviors. This is fundamental to Java programming.
Exploring Encapsulation: Encapsulation bundles data and methods into classes, enhancing data security and control by hiding internal workings and exposing necessary information.
Understanding Inheritance: Inheritance allows the creation of new classes based on existing ones, promoting code reuse and organization.
Leveraging Polymorphism and Abstraction: Polymorphism treats different class objects as a common superclass, increasing flexibility. Abstraction simplifies complex reality by modeling classes based on essential features, leading to efficient and maintainable Java code.
Mastering OOP in Java is crucial because it forms the foundation for building more complex and structured applications.
Step 4: Practice, Practice, Practice
Programming is a skill that improves with practice. The more you code, the better you become. Here's how to reinforce your Java skills:
Regular Coding Practice: Dedicate time to daily coding practice. Work on Java exercises, small programs, or coding challenges to enhance your knowledge and problem-solving skills.
Online Coding Platforms: Explore websites like LeetCode, HackerRank, and Codecademy. These platforms offer a variety of Java coding challenges, from basic to advanced, to improve your programming skills.
Practicing regularly and tackling coding challenges will help you apply your knowledge, improve your coding speed, and develop effective debugging skills.
Step 5: Building Real-World Applications
While understanding the theory of Java is crucial, applying your knowledge to real-world projects is equally important. Here's how to move from theory to practice:
Start with Small Projects: Begin with simple Java projects like console applications or basic games. These projects help you apply your knowledge and build confidence.
Gradually Work Your Way Up: As you gain experience, move on to more complex projects. Explore desktop applications with JavaFX, web development using Spring Boot, or Android app development with Android Studio.
Building real-world applications not only reinforces your technical skills but also provides you with a portfolio of work that can be showcased to potential employers or clients.
Step 6: Learning from Reputable Sources
While self-study and practice are essential, enrolling in structured courses from reputable training providers can significantly accelerate your learning. One such respected source of education is ACTE Technologies. Here's why learning from them, can be a game-changer:
Expert-Led Courses: These programs are designed and taught by industry professionals with extensive experience in Java development. Learning from experts ensures that you receive up-to-date and practical knowledge.
Comprehensive Curriculum: The curriculum covers a wide range of Java topics, from the fundamentals to advanced concepts. You'll receive a well-rounded education that equips you with the skills needed to excel in the field of Java programming.
Hands-On Learning: These courses prioritize hands-on learning. You won't just learn theory; you'll apply it through practical exercises, projects, and coding challenges. This approach ensures that you gain practical experience in addition to theoretical knowledge.
Networking Opportunities: Enrolling in a reputable training program can also provide networking opportunities. You'll have the chance to interact with instructors, fellow students, and possibly even industry professionals, which can be valuable for your career.
Tumblr media
In conclusion, embarking on a journey to learn Java is a fulfilling endeavor that can open doors to a wide range of opportunities in the world of software development. By following the step-by-step guide outlined above, you can build a solid foundation in Java, from mastering the basics and embracing object-oriented programming to engaging in practical coding and real-world applications.
Now, as you embark on your Java programming journey, you have the tools, knowledge, and guidance you need to succeed. Java's versatility, combined with your dedication and the resources provided by ACTE Technologies, will empower you to excel in the world of software development. So, set your course, embrace the Java adventure, and unlock a future full of exciting possibilities in the tech industry.
3 notes · View notes
eyepool · 8 months
Text
By June 1949, people had begun to realize that it was not so easy to get a program right as had at one time appeared. It was on one of my journeys between the EDSAC room and the punching equipment that the realization came over me with full force that a good part of the remainder of my life was going to be spent in finding errors in my own programs.
— Maurice Wilkes, creator of the first stored-program computer, EDSAC
Debugging is an exercise in humility, recognizing that you don’t fully understand the behavior of something you yourself created, and that you will never get every detail perfect.
2 notes · View notes
kotodama-catalogue · 11 months
Text
i've been on a linux adventure recently —
one day i woke up and thought, "today is the day", and began working through the linux from scratch handbook. it turns out that most people do not in fact do this on bare metal because compiling everything yourself and just punting on package management does not provide for a workable system. at least, not as a daily driver. (this guy tried writing a debian from scratch where step 1 is getting apt going, but apparently it is not just outdated, but incorrect even at the version specified).
you're supposed to just do this in a virtual machine and treat it like a learning exercise. i did not do this, and spent twelve hours compiling all the packages and walking circular dependency trees basically trying to slowly divorce yourself from the host system's toolchain.
in the process it's very clear how "down in the dirt" linux as a whole is; nothing is made for each other, all the packages are just picked up from here and there, sometimes the maintainer doesn't update their domain and pkg-conf is just Gone so you have to dig it out of the gentoo repo. i kind of love it. it feels organic, it feels natural. of course this emerged. of course it all kinda works, of course it all fails easily.
it's a lot like the human body. that is, say you have a really nicely integrated distro. they probably have like fifty different upstreams, and teams that are making extensions or monkey patching the upstream as they go to slowly hone these disparate things into stuff that vaguely resembles each other. you introduce redundancies and reliability checks. you try to migrate to stuff that will enforce this (Ubuntu enforces Wayland by default; Fedora defaults you to btrfs; downstream distributions then in turn undo some of these like how Pop! OS goes back to X11).
you keep reinforcing against common failures with subsequent processes that can watch for those failures and prevent them, provide fallbacks, self-heal if possible.
and then in turn for everything else you isolate its ability to even impact the core system. ideally you're immutable — say, vanilla os, or some people use nix or fedora silverblue. but most of the time there's just a hybrid approach where we sandbox as much as we can. steam os completely replaces the OS every update and keeps the home folder. chromebooks do likewise. macos has been doing this since i think el capitan? and apfs is intended to have a less hacked-in way of providing for a core system partition that nothing else can touch.
that whole thing is really beautiful, i think — have BSDs replicated this? i don't know; i have never used one very seriously. it felt like they intended to start from scratch with a monolithic basis, but it feels like i'm in the early 2000s again when i try to debug a bsd system and look for documentation.
anyway, so after twelve hours i fumbled a very basic thing. that is, i assumed, why not? i will use UEFI, but i had already partitioned as if i was doing an MBR. so i tried to add a UEFI partition and inadvertently, in trying to unmount and safely perform this operation, rebooted into a system that was freaking out because there was no UEFI partition. it kept reboot cycling into a wifi recovery agent and occasionally realising there was a USB attached.
i moved to arch and performed the entire install in like less than an hour. but damn it, now i'm frustrated. i wanted to see this through. today i decided to move to fedora to better have an overarching experience for this specific hardware (the auto-rotation and on screen keyboard support is amazing on gnome 44) and then try to throw all this into a Box and do it again. but given so much of this was tedious, i would probably just ... automate it. but aren't we getting too close to just a distro?
4 notes · View notes
executo-blogs · 11 months
Text
The Basics of PLC Programming: A Comprehensive Guide
Tumblr media
If you're interested in the field of industrial automation or looking to enhance your skills in the industry, PLC programming is a crucial skill to possess. Programmable Logic Controllers (PLCs) are widely used in manufacturing and process control systems, and understanding how to program them is essential for ensuring efficient and reliable operation.
In this comprehensive guide, we will explore the basics of PLC programming, covering key concepts and providing valuable insights for beginners in the field.
1. What is PLC Programming?
PLC programming involves creating a set of instructions that control the behavior of a programmable logic controller. PLCs are used to monitor inputs from various sensors, process that data, and execute specific actions based on pre-defined logic. By programming a PLC, you can automate complex industrial processes, making them more efficient and reliable.
2. Why Learn PLC Programming?
PLC programming offers numerous benefits in the industrial automation realm. By acquiring this skill, you can:
Improve productivity: PLCs enable automation, reducing manual labor and increasing overall productivity.
Enhance efficiency: Automation minimizes human error and optimizes processes, resulting in higher efficiency levels.
Facilitate troubleshooting: Understanding PLC programming allows you to diagnose and fix issues efficiently, minimizing downtime.
Expand career opportunities: PLC programming expertise is in high demand, with many industries seeking professionals with these skills.
3. PLC Programming Training Courses:
To learn PLC programming effectively, it's essential to enroll in specialized training courses. These courses provide a structured curriculum, hands-on exercises, and expert guidance. Here are a few key aspects to consider when choosing a PLC programming training institute or center:
Comprehensive curriculum: Look for a training program that covers both theoretical concepts and practical implementation.
Experienced instructors: Ensure that the training institute has qualified instructors with industry experience to guide you effectively.
Hands-on practice: Practical exercises and projects are crucial for gaining proficiency in PLC programming.
Industry relevance: Verify that the training course aligns with current industry standards and practices.
Certification: Opt for courses that offer certifications upon completion, as they enhance your credibility in the job market.
Tumblr media
4. Key Concepts in PLC Programming:
Ladder Logic: Ladder Logic is the most commonly used programming language for PLCs. It employs graphical symbols to represent logic functions and control sequences, making it easy to understand and implement.
Inputs and Outputs: PLCs interact with the physical world through inputs (sensors) and outputs (actuators). Understanding how to read inputs and control outputs is fundamental in PLC programming.
Programming Instructions: PLCs execute a set of instructions to perform desired operations. These instructions can include timers, counters, mathematical operations, logic gates, and more.
Program Execution: PLC programs are executed in a cyclical manner. The PLC scans inputs, processes logic, updates outputs, and repeats the cycle continuously.
5. Programming Tools and Software:
PLC programming software provides an interface to create, edit, and debug programs. Familiarize yourself with popular software tools such as Siemens TIA Portal, Allen-Bradley RSLogix, or Schneider Electric Unity Pro, as they are widely used in the industry.
Conclusion:
PLC programming is an essential skill for individuals aspiring to succeed in the field of industrial automation. By learning the basics of PLC programming, you open up a world of opportunities to streamline processes, enhance productivity, and contribute to the advancement of various industries. Enroll in a reputable PLC programming training institute or center, explore the key concepts, and start your journey towards becoming a proficient PLC programmer.
3 notes · View notes
itsbenedict · 9 months
Text
at work: provision database for what should be the final cache
WK reviews
exercise
kill the batman
devise some sort of hat plan
shave, you scruffy goblin
MW: tile selection window with terrain dropdown
J/A: +2 wrong suggestions
so Lit is a weird framework whose complications i'm still getting to grips with- it has the advantage of allowing for component-based design without having to be transpiled from TS or JSX or whatever, but it uses this thing called the Shadow DOM which makes debugging kind of annoying, and it doesn't rerender components if the prop that changed is an object whose properties changed, so you kinda have to manage the lifecycle a little bit...
upshot of it is that the tile selection window is only mostly done- the dropdown lists the terrain types and changes them when you select a new one (i had to like, completely rework the terrain system to make it extensible and data-driven for that to work, whoops), but i'm struggling with getting the `selected` property assigned on render, so it's failing to identify the terrain properly. didn't manage to work that out before...
...before there was a surprise Trouble in Terrorist Town game some friends were organizing, and i made the executive decision to play several hours of that instead of being productive. it was pretty incredible so i don't totally regret that.
i completely failed to do any work on Justice/Arcana today, on account of TTT eating the last few hours of the day I was planning to work on that during.
also (shh, don't tell anyone) "kill the batman" is shorthand for when i'm working on something secret. i may have also unrelatedly killed the batman, but i did a piece of art i think turned out fairly well for farn's birthday, which was, most of the morning. gonna post that tomorrow when it's not ass o'clock at night
4 notes · View notes
c-cracks · 2 years
Text
C-Cracks/OSCP-Automation was recognised!
So I found out that 2 years ago, my OSCP automation repo was actually posted by a company named National Cyber Security Services. :D https://m.facebook.com/ncybersec/photos/oscp-automation-a-collection-of-personal-scripts-used-in-hacking-exercises-1-enu/1502887116548674/
Tumblr media
I actually found this because I'm about to do some HTB and I was going to use that as reference material.
It may seem like such a minor thing, but it's actually amazing to see that a company saw value in it enough to post about it (even with the fact that it was extremely basic and the enum script is now an older version before I debugged due to being a complete noob with GitHub at the time.) Fangirl moment. XD
Repos below for the curious, though that GitHub account isn't active anymore (I stupidly registered it with a university email and never bothered to look into getting it back!)
I am actually thinking of re-creating something like this as I start up with HTB again (kinda got the hacking bug...)
9 notes · View notes
temporarilyunstable · 2 years
Text
Psycho Pass Official Profiling 3: Bifrost
So while preparing for my entry for the tribute I had to translate these pages to find out more about Bifrost as a whole. It was one of those things that took me a few re-watches to fully grasp - and even then I had such a hard time explaining it in my own words. I thought it would be nice to share what I learned (super happy to get the concept right, too -- at least I totally did not misunderstand it!). Hopefully it can also help those who are not so clear about how it works!
Same as before - this is machine translated, screenshotted from the digital book, converted to JP text in google translate (still better at conversion than deepL) then using both software to translate. This is a mixed bag, there are some sentences that deepL gets wonky and vice versa, so again, judgment call on my end to choose which one to use and please take it with a grain of salt. I will also paste the converted JP text here so if anyone wants to take a crack at it and correct/revise please, be my guest!
Bifrost 
A top-secret department created to debug the Sibyl System in the early stages of its operation. It means rainbow and is meant to be the administrator of the rainbow bridge that will lead the people to prosperity. However, as the system developed, its purpose changed, and it became an institution where the investors of the system development played games to satisfy their own interests. Because of their role as system sponsors and debuggers, Bifrost members and their systems have become a blind spot, unrecognized by Sibyl. The organizational structure consists of three layers: the congressmen at the top, the inspectors who work under the direction of the congressman, and the "foxes" who participate unconsciously and are unaware of what is going on. 
Round Robin
A gambling process in which the players, the Congressmen, in turn give instructions to the Inspectors, who act as pawns, and the Inspectors, in turn, move their "foxes" to divine what choices the society as a whole will make as a result of the crimes committed, and the AI that assists in the progress of the game. Originally a common name for the "Joint Automated Debugging Diagnostic and Repair Subsystem", Bifrost changed its meaning and began to refer to the games played there. In addition to presiding over the proceedings, Round Robin also appoints and removes the Congressmen. From the start of a relation (transaction) to its conclusion, a Congressman can only move Inspectors, and is granted other rights such as inspect motions (emergency response) and relation hedges (workarounds), but if excessive interference is discovered, it is enforced by Round Robin.
Congressmen
Those who reign at the top of Bifrost. A maximum of three people can be qualified as Congressmen at the same time, and they are appointed by the family that invested in the development of the Sibyl system. The decision of the successor is by appointment, but requires final approval of Round Robin. The Congressman's main purpose is to maintain a realm that the Sibyl System cannot perceive. At first glance, it appears to be just gambling, but the reality is that Round Robin is used to exploit the blind spots in the Sibyl system, which is evolving every day. In order to actually generate that blind spot, they maintain their own vested interests by having the inspectors take practical actions, including criminal acts. They also use it for their own self-interests to gain great wealth for themselves. The dividends of their wealth are proportional to the percentage of their investment. They also possess special cards that allow them to manipulate their social identities, allowing them to change their identities and occupations at will as they go about their lives. This ability can be exercised not only on oneself but also on others.
Inspectors
A person that follows instructions by indirectly causing crimes so that the congressman (who instructed them) can win the game. Inspectors from First to Thirteen are identified, but the overall number is unknown. Ranked according to their performance, they are rivals competing with each other for the top position, and although they may team up on a case-by-case basis, they are basically adversaries. However, there are some, such as Azusawa and Obata, who have established a relationship that could be considered a tag-team. Communication with congressmen is often done through a dedicated device, a special line that is not detected by the Sibyl System.
Foxes
The lowest members of Bifrost. Most of them are ordinary citizens who are being “moved” without being aware of what they are doing or of their role, and who are unknowingly made complicit in some matter by the inspector. On the other hand, it seems that there is also an aspect that the hue is less likely to deteriorate because there is little or no awareness of being part of the crime. In addition, Bifrost has been increasing its contacts with the "foxes" by posing as a third-party provider of online counseling and other services. Bifrost is solving the problems of the "foxes" in exchange for their participation in his game, which suggests a business-like relationship.
Profiles
Haruki Shirogane
A cunning gentleman who plays the Bifrost game with intricate and sharp hands. He once trapped Shizuka's adoptive father, Homura Koichiro, who was in the same position, and expelled him from Bifrost. He is also constantly scheming, such as taking in Tori and driving Saionji into execution. Inheriting the position of Congressman from his father, he initially sent many people to rehabilitation facilities to be killed in order to confirm his power, and even had people who had been tortured to death stuffed and laid out on display. However, after a long life as a congressman, he grew tired of the "godlike feeling" that his position brought about, and after he realized that Round Robin's plan to prolong Bifrost's life was to "ultimately allow only one congressman to survive," he began to enjoy the game as a catastrophic struggle for survival. The game is played with artificial intelligence. However, his style of play is based on artificial intelligence. Shizuka, who saw through it, used Ma-Karina to counter Shirogane, causing his artificial intelligence to stop functioning, leading to his defeat. 
Kyoko Saionji
A bewitching beauty with an atmosphere far from the world (?), like Shirogane, she enjoys playing the Bifrost game. Sadistic in nature, she has been engaged in bizarre behavior since his youth, taking successful men as lovers and killing them one after another, and this personality was further exacerbated when she took over the position of Congressman from her older brother. She dotes on her only son, Tori, but sometimes treats him more like her mistress than her son. She planned to destroy Shizuka, who has become a new congressman, and promote Tori in his place, but Tori dies as a result of Shirogane’s plans. She herself lost her life in a round-robin execution.
(I removed the career timeline and data because I'm too lazy to format it gomen - here's the JP text):
ビフロスト
シビュラシステム運用の初期段階に、そのデバッグを行うべく創設された極秘部署。 虹を意味し、国民を繁栄へと導く虹の橋の管理者としての意味が込められている。 しかし、システムの発展とともにその目的は変貌していき、システム開発の出資者たちが私利私欲を満たすためのゲームを行う機関になった。 彼らはシステムのスポンサーでありデバッグの役割を担ったことから、ビフロストのメンバーやそのシステムはシビュラから認知されずに盲点の存在となっている。 組織構造としては、コングレスマンを頂点とし、その指示を受けて動くインスペクター、そして何も知らされずに自覚なく参加している〈狐>の三層構造から成っている。
ラウンドロビン
プレイヤーであるコングレスマンが順番に駒となるインスペクターに指示を出し、それに応じてインスペクターが〈狐〉を動かすことで起きた犯罪の結果、社会全体がどのような選択を行うのかを占うギャンブルの行程、そしてその進行を補助するAIのこと。 元々は「併設型自動デバッグ診断・修復サブシステム」の通称であったが、ビフロストがその意味を変えるとともに、そこで行われるゲームのことを指すようになった。 議事進行を務めるほか、コングレスマンの任命や除名も行う。 リレーション(取引)開始から完結まで、コングレスマンはインスペクターのみを動かすことが可能であり、他にもインスペクト動議(緊急対応)やリレーションヘッジ(回避策)などの権利を認められているが、過剰な干渉が発覚した場合、ラウンドロビンによって執行されてしま���。
コングレスマン
ビフロストの頂点に君臨する者たち。 コングレスマンの資格を持つのは同時に最大三名となっており、シビュラシステムの開発に投資をした一族が就任している。 後任の決定については指名制となっているが、最終的にはラウンドロビンの承認が必要である。 コングレスマンの主たる目的は、シビュラシステムが認知することのできない領域を維持すること。 一見するとただギャンブルを行なっているように見えるが、その内実はラウンドロビンを使用して、日々進化を遂げるシビュラシステムの盲点の生 成のためのステップを確認。実際にその盲点を生成するため、インスペクターに、犯罪行為も含めた実務行動を起こさせることで、自らの既得権益を維持していた。 また、その機能を使って自分たちに莫大な富が得られるよう私利私欲のためにも使用している。 その富の配当は、インベスト(投資)の割合に比例する。 また、社会的身分を操作できる特殊なカードを保有し、IDや職業を自由に変えながら生活を送ることが可能だ。 その能力は自身だけでなく他者にも行使することができる。
インスペクター
コングレスマンからの指示に従い、間接的に犯罪を起こすことで、指示主がゲームの勝者になれるように動く存在。 作中ではファーストからサーティーンまでのインスペクターが確認されているが、その全体数は不明である。 実績に応じてランク付けされ、それぞれがトップを競うライバル同士であるため、事案に応じて手を組む場合もあるものの、基本的には敵対関係にあることが多い。 しかし梓澤と小畑のように、タッグともいえる関係を築く人間も見受けられる。 また、コングレスマンとのやり取りは、専用のデバイスを通じて行う場合が多い。 その通信回線は、シビュラシステムに感知されない特殊なものを使用している。
<狐〉
ビフロストの末端構成員。 そのほとんどが自分で何をやっているかその役割を認識していないまま動かされている一般市民であり、インスペクターによって何かしらの事案に無自覚のうちに加担させられている。 一方で、犯罪の一端を担っているという意識が薄い、またはないため、色相が悪化しづらい面もあるようだ。 また、ビフロストはサードパーティー(外部事業者)が主催するオンラインカウンセリングなどの事業に扮して〈狐〉と接触し、その数を増やしている。 ビフロストは〈狐〉の抱える問題を解決する代わりに、自身のゲームに彼らを参加させているという、ビジネスライクな関係の一端が伺える。
Shirogane:
複雑かつ鋭い手を駆使してビフロストゲームに興じる老獪な紳士。 かつて同じ立場にあった静火の養父・法斑劫一郎を罠に掛け、ビフロストから追放した。 また、トーリを取り込み裁園寺を執行に追い込むなど、常に謀略を巡らせている。 コングレスマンの地位を実父から継承し、当初はその権力を確かめようと多くの人間を更生施設送りにし殺処分したほか、拷問死させた人間を剥製にして並べたこともあった。 しかし、長いコングレスマン生活の中でその立場がもたらす「神になったような気分」にも飽きが生じ、ラウンドロビンが示すビフロストの延命策の辿り着く先が「最終的に一人のコングレスマンだけ生き残る」ことだと見抜いてからは、破滅的な生存争いとしてゲームを楽しむようになる。 だが、そのプレイスタイルは人工知能を用いたもの。 そのことを見抜いた静火がマカリナを用いて代銀に対抗したことで、人工知能が機能停止に追い込まれ、敗れ去った。
Saionji:
代銀と同じくビフロストゲームに興じている、浮世離れした雰囲気をまとった妖艶な美女。 サディスティックな性格の持ち主で、成功した男性を恋人にしては次々と色相を悪化させたり殺害したりという猟奇的な行動を若い頃から繰り返し、兄からコングレスマンの地位を引き継いだことでその性格はさらに悪化した。 一人息子であるトーリを溺愛しているが、息子というよりも愛人のように扱っている節がある。 新たにコングレスマンとなった静火を破滅させ、その空席にトーリを据えようと画策していたが、代銀の策略によりトーリは死亡。 自身もラウンドロビンの執行によって命を落とした。
14 notes · View notes
sannastudies · 2 years
Text
Tumblr media
Current Coding Study Goal - Introduction to CSS & Intermediate CSS
I am currently working on a Udemy Course by Dr. Angela, called "The complete 2022 Web Development Bootcamp".
I am still pretty much at the beginning, having completed Introduction to HTML & Intermediate HTML.
Right now, i'm in the Middle of the Introduction to CSS - today I have completed: - external CSS - How to debug CSS Code I have also played around and gotten a bit familiar with the Chrome Developer Tools & I managed to solve both Debugging Exercises which were part of the Course Material!
Ideally, I want to finish the Introduction tomorrow, so I can move to the next section & thus the next bunch of lessons on Intermediate CSS.
While i have never been one of the cool kids who whipped up crazy cool Tumblr Themes all by themselves I still used some HTML back then as well, so CSS and HTML come to me quite naturally so far - with some Trial & Error and reading Documentation I usually get by well.
Fingers crossed it will remain this way! ( . u . )
9 notes · View notes
leafonsidewalk · 1 year
Text
How to Debug Using a Duck
Tumblr media
Rubber duck debugging, or rubber ducking, is a method of debugging code in software engineering. The term can be traced back to “The Pragmatic Programmer”, a book by Andrew Hunt and David Thomas detailing a programmer who carries around a rubber duck and debugs their code by explaining it to the duck, line by line. 
Steps: 
Get a rubber duck (preferably a bath-time duck, but any size is okay)
Start explaining the code to the duck making sure to read each logical step out loud and in detail while pointing to the screen so that the duck knows which line you’re talking about
Continue to go through your code until the solution to the problem is found
The main point of the exercise is to have the developer slowly and carefully explain their code out loud, line by line. Since we think faster than we speak, verbally explaining the code forces the coder to slow down and, under the assumption the duck knows nothing about the code, the coder also has to be precise in their explanation which helps them learn and become more efficient in programming. Pointing to each line of code makes them review the syntax and logic right under their finger, making it easier to see where what the code is doing differs from what they think it’s doing. 
Tumblr media
Sources: What is Rubber Duck Debugging? - Kenzie Academy (snhu.edu), Rubber Duck Debugging (rubber-duck-debugging.org)
2 notes · View notes