Posts

WELCOME

Hello and welcome, this is my little blog about coding and other computer science related things. This is to help me keep track of past projects and future ones I might have. Feel free to leave feedback if you want.

Where have I been?

It's been quite a while hasn't it? Where to begin, well shortly after my last update I was quickly hired by Hewlett-Packard Enterprise for almost two years now. How time sure flies doesn't it. I work there as a System's Software Engineer full time, working on diagnostic software for their many line of servers. It has been a great experience, all that I learnt and continue to learn is amazing. This is mostly the reason why this hasn't been updated since. But I started to miss these updates and hopefully soon I'll continue working on these. Sharing cool tips and tricks I've learned in the Industry or in my spare time. Got plenty of time, considering everything going on with this whole COVID-19 nonsense.Stay indoors fellas and wash your hands please!

JavaFX Snake Game (WIP)

Image
It's been a while, busy with classes. Decided to work on another little side project. Using what I've learned so far in my Java course, I wanted to test my JavaFX knowledge with this little game. Using GridPanes, Squares and Timeline Loops, I'm almost 85% done with the game, Snake eats and grows. Just need to add the lose conditions and that should do it. The game for now starts automatically. (So I need to add I title screen/pause screen) Link to the project on GitHub.

Software Engineering: Petri Nets

Image
This'll be a sort of  abridged  summary of the topic, any more information you might need, I recommend you try the book (name in bottom of the post). The circles are states in the domain. With the arrows pointing to where the process is going And the thin rectangles the transitions between states  Petri Nets are basically a diagram to help us visualize the process and how it flows in a domain. In this chapter we talk about three types of representations: Condition Event Nets (CEN) Petri Nets (PTN) Colored Petri Nets (CPN) Condition Event Nets are the most basic type of Petri nets. A CEN consists of conditions (states), events (transitions) and links (arrows) from conditions to events and from events to conditions. Syntactically conditions are represented as circles, while events are represented as oblong, i.e., "thin", rectangles. Petri Nets  are pretty much the same as CENs but conditions are now called places and in those places ar

Software Engineering: Phenomena and Concepts

Image
This'll be a sort of  abridged  summary of the topic, any more information you might need, I recommend you try the book (name in bottom of the post). When talking about concepts  and phenomena  (in the context of the book) as follows: Phenomena -  It is what we refer to as Reality,  as in things we perceive in the real world, things that are concrete. Concepts  - More abstract, it is the idea  of a given phenomena. An example of this can be something like a Car. Phenomena: Automobile -> Concept: Car A car is a concept (an idea) of an automobile, where an automobile can be anything in the real word that serves that specific purpose. We can also take things a step further, with the type of entity that we use. Atomic Entities Compound Entities Atomic Entities: Individual entities, broken down to it's most basic representation. (For the purpose of the domain that you wish to represent) Example: Chair Desk Monitor Computer K

Software Engineering: Documents

Image
This'll be a sort of abridged summary of the topic, any more information you might need, I recommend you try the book (name in bottom of the post). In the professional realm documentation is everything (according to this book, it's probably true), lack thereof can make your job a living nightmare every time there's an update. Even if tedious proper documentation can go a long way. In Dines' Book there are 3 main types of documentation, each different but of equal importance. Informative Documentation Descriptive Documentation Analysis Documentation It can get a bit tricky trying to differentiate them so let me try  to explain it. Informative Documents are basically documents where you talk about the domain and everything involving it (like partners, place, the scope, etc) without necessarily going into detail about the technical stuff involved in your domain. In an informative document you can find the following: Descriptive Documents  

Software Engineering: The Triptych of Software Engineering

Image
Actually just a triptych of a peacock, not of Software Engineering. This'll be a sort of abridged  summary of the topic, any more information you might need, I recommend you try the book (name in bottom of the post). In any given domain  that you will work on, you will encounter the following things inside them: Entities These are comparable to variable types in any programming language, the bread and butter of domain engineering. Without them you can't do much. In this book, we use a language called RSL (or eRAISE ), created by the books author Dines Bjørner to explain our domain in a more technical way. In RSL Entities are refered to as " types ". Say we are working on a domain for a super market, the entities (types) could be: customer, employee, money, merchandise, etc. Functions Now with functions, they tell you what the domain will do with those entities, called values in RSL. Like any function, it will take in an input (or not) and produce an outpu