Noteable Posts

Wednesday, September 23, 2020

Tech Book Face Off: Data Smart Vs. Python Machine Learning

After reading a few books on data science and a little bit about machine learning, I felt it was time to round out my studies in these subjects with a couple more books. I was hoping to get some more exposure to implementing different machine learning algorithms as well as diving deeper into how to effectively use the different Python tools for machine learning, and these two books seemed to fit the bill. The first book with the upside-down face, Data Smart: Using Data Science to Transform Data Into Insight by John W. Foreman, looked like it would fulfill the former goal and do it all in Excel, oddly enough. The second book with the right side-up face, Python Machine Learning: Machine Learning and Deep Learning with Python, scikit-learn, and TensorFlow by Sebastian Raschka and Vahid Mirjalili, promised to address the second goal. Let's see how these two books complement each other and move the reader toward a better understanding of machine learning.

Data Smart front coverVS.Python Machine Learning front cover

Data Smart

I must admit; I was somewhat hesitant to get this book. I was worried that presenting everything in Excel would be a bit too simple to really learn much about data science, but I needn't have been concerned. This book was an excellent read for multiple reasons, not least of which is that Foreman is a highly entertaining writer. His witty quips about everything from middle school dances to Target predicting teen pregnancies were a great motivator to keep me reading along, and more than once I caught myself chuckling out loud at an unexpectedly absurd reference.

It was refreshing to read a book about data science that didn't take itself seriously and added a bit of levity to an otherwise dry (interesting, but dry) subject. Even though it was lighthearted, the book was not a joke. It had an intensity to the material that was surprising given the medium through which it was presented. Spreadsheets turned out to be a great way to show how these algorithms are built up, and you can look through the columns and rows to see how each step of each calculation is performed. Conditional formatting helps guide understanding by highlighting outliers and important contrasts in the rows of data. Excel may not be the best choice for crunching hundreds of thousands of entries in an industrial-scale model, but for learning how those models actually work, I'm convinced that it was a worthy choice.

The book starts out with a little introduction that describes what you got yourself into and justifies the choice of Excel for those of us that were a bit leery. The first chapter gives a quick tour of the important parts of Excel that are going to be used throughout the book—a skim-worthy chapter. The first real chapter jumps into explaining how to build up a k-means cluster model for the highly critical task of grouping people on a middle school dance floor. Like most of the rest of the chapters, this one starts out easy, but ramps up the difficulty so that by the end we're clustering subscribers for email marketing with a dozen or so dimensions to the data.

Chapter 3 switches gears from an unsupervised to a supervised learning model with naïve Bayes for classifying tweets about Mandrill the product vs. the animal vs. the Mega Man X character. Here we can see how irreverent, but on-point Foreman is with his explanations:
Because naïve Bayes is often called "idiot's Bayes." As you'll see, you get to make lots of sloppy, idiotic assumptions about your data, and it still works! It's like the splatter-paint of AI models, and because it's so simple and easy to implement (it can be done in 50 lines of code), companies use it all the time for simple classification jobs.
Every chapter is like this and better. You never know what Foreman's going to say next, but you quickly expect it to be entertaining. Case in point, the next chapter is on optimization modeling using an example of, what else, commercial-scale orange juice mixing. It's just wild; you can't make this stuff up. Well, Foreman can make it up, it seems. The examples weren't just whimsical and funny, they were solid examples that built up throughout the chapter to show multiple levels of complexity for each model. I was constantly impressed with the instructional value of these examples, and how working through them really helped in understanding what to look for to improve the model and how to make it work.

After optimization came another dive into cluster analysis, but this time using network graphs to analyze wholesale wine purchasing data. This model was new to me, and a fascinating way to use graphs to figure out closely related nodes. The next chapter moved on to regression, both linear and non-linear varieties, and this happens to be the Target-pregnancy example. It was super interesting to see how to conform the purchasing data to a linear model and then run the regression on it to analyze the data. Foreman also had some good advice tucked away in this chapter on data vs. models:
You get more bang for your buck spending your time on selecting good data and features than models. For example, in the problem I outlined in this chapter, you'd be better served testing out possible new features like "customer ceased to buy lunch meat for fear of listeriosis" and making sure your training data was perfect than you would be testing out a neural net on your old training data.

Why? Because the phrase "garbage in, garbage out" has never been more applicable to any field than AI. No AI model is a miracle worker; it can't take terrible data and magically know how to use that data. So do your AI model a favor and give it the best and most creative features you can find.
As I've learned in the other data science books, so much of data analysis is about cleaning and munging the data. Running the model(s) doesn't take much time at all.
We're into chapter 7 now with ensemble models. This technique takes a bunch of simple, crappy models and improves their performance by putting them to a vote. The same pregnancy data was used from the last chapter, but with this different modeling approach, it's a new example. The next chapter introduces forecasting models by attempting to forecast sales for a new business in sword-smithing. This example was exceptionally good at showing the build-up from a simple exponential smoothing model to a trend-corrected model and then to a seasonally-corrected cyclic model all for forecasting sword sales.

The next chapter was on detecting outliers. In this case, the outliers were exceptionally good or exceptionally bad call center employees even though the bad employees didn't fall below any individual firing thresholds on their performance ratings. It was another excellent example to cap off a whole series of very well thought out and well executed examples. There was one more chapter on how to do some of these models in R, but I skipped it. I'm not interested in R, since I would just use Python, and this chapter seemed out of place with all the spreadsheet work in the rest of the book.

What else can I say? This book was awesome. Every example of every model was deep, involved, and appropriate for learning the ins and outs of that particular model. The writing was funny and engaging, and it was clear that Foreman put a ton of thought and energy into this book. I highly recommend it to anyone wanting to learn the inner workings of some of the standard data science models.

Python Machine Learning

This is a fairly long book, certainly longer than most books I've read recently, and a pretty thorough and detailed introduction to machine learning with Python. It's a melding of a couple other good books I've read, containing quite a few machine learning algorithms that are built up from scratch in Python a la Data Science from Scratch, and showing how to use the same algorithms with scikit-learn and TensorFlow a la the Python Data Science Handbook. The text is methodical and deliberate, describing each algorithm clearly and carefully, and giving precise explanations for how each algorithm is designed and what their trade-offs and shortcomings are.

As long as you're comfortable with linear algebraic notation, this book is a straightforward read. It's not exactly easy, but it never takes off into the stratosphere with the difficulty level. The authors also assume you already know Python, so they don't waste any time on the language, instead packing the book completely full of machine learning stuff. The shorter first chapter still does the introductory tour of what machine learning is and how to install the correct Python environment and libraries that will be used in the rest of the book. The next chapter kicks us off with our first algorithm, showing how to implement a perceptron classifier as a mathematical model, as Python code, and then using scikit-learn. This basic sequence is followed for most of the algorithms in the book, and it works well to smooth out the reader's understanding of each one. Model performance characteristics, training insights, and decisions about when to use the model are highlighted throughout the chapter.

Chapter 3 delves deeper into perceptrons by looking at different decision functions that can be used for the output of the perceptron model, and how they could be used for more things beyond just labeling each input with a specific class as described here:
In fact, there are many applications where we are not only interested in the predicted class labels, but where the estimation of the class-membership probability is particularly useful (the output of the sigmoid function prior to applying the threshold function). Logistic regression is used in weather forecasting, for example, not only to predict if it will rain on a particular day but also to report the chance of rain. Similarly, logistic regression can be used to predict the chance that a patient has a particular disease given certain symptoms, which is why logistic regression enjoys great popularity in the field of medicine.
The sigmoid function is a fundamental tool in machine learning, and it comes up again and again in the book. Midway through the chapter, they introduce three new algorithms: support vector machines (SVM), decision trees, and K-nearest neighbors. This is the first chapter where we see an odd organization of topics. It seems like the first part of the chapter really belonged with chapter 2, but including it here instead probably balanced chapter length better. Chapter length was quite even throughout the book, and there were several cases like this where topics were spliced and diced between chapters. It didn't hurt the flow much on a complete read-through, but it would likely make going back and finding things more difficult.

The next chapter switches gears and looks at how to generate good training sets with data preprocessing, and how to train a model effectively without overfitting using regularization. Regularization is a way to systematically penalize the model for assigning large weights that would lead to memorizing the training data during training. Another way to avoid overfitting is to use ensemble learning with a model like random forests, which are introduced in this chapter as well. The following chapter looks at how to do dimensionality reduction, both unsupervised with principal component analysis (PCA) and supervised with linear discriminant analysis (LDA).

Chapter 6 comes back to how to train your dragon…I mean model…by tuning the hyperparameters of the model. The hyperparameters are just the settings of the model, like what its decision function is or how fast its learning rate is. It's important during this tuning that you don't pick hyperparameters that are just best at identifying the test set, as the authors explain:
A better way of using the holdout method for model selection is to separate the data into three parts: a training set, a validation set, and a test set. The training set is used to fit the different models, and the performance on the validation set is then used for the model selection. The advantage of having a test set that the model hasn't seen before during the training and model selection steps is that we can obtain a less biased estimate of its ability to generalize to new data.
It seems odd that a separate test set isn't enough, but it's true. Training a machine isn't as simple as it looks. Anyway, the next chapter circles back to ensemble learning with a more detailed look at bagging and boosting. (Machine learning has such creative names for things, doesn't it?) I'll leave the explanations to the book and get on with the review, so the next chapter works through an extended example application to do sentiment analysis of IMDb movie reviews. It's kind of a neat trick, and it uses everything we've learned so far together in one model instead of piecemeal with little stub examples. Chapter 9 continues the example with a little web application for submitting new reviews to the model we trained in the previous chapter. The trained model will predict whether the submitted review is positive or negative. This chapter felt a bit out of place, but it was fine for showing how to use a model in a (semi-)real application.

Chapter 10 covers regression analysis in more depth with single and multiple linear and nonlinear regression. Some of this stuff has been seen in previous chapters, and indeed, the cross-referencing starts to get a bit annoying at this point. Every single time a topic comes up that's covered somewhere else, it gets a reference with the full section name attached. I'm not sure how I feel about this in general. It's nice to be reminded of things that you've read about hundreds of pages back and I've read books that are more confusing for not having done enough of this linking, but it does get tedious when the immediately preceding sections are referenced repeatedly. The next chapter is similar with a deeper look at unsupervised clustering algorithms. The new k-means algorithm is introduced, but it's compared against algorithms covered in chapter 3. This chapter also covers how we can decide if the number of clusters chosen is appropriate for the data, something that's not so easy for high-dimensional data.

Now that we're two-thirds of the way through the book, we come to the elephant in the machine learning room, the multilayer artificial neural network. These networks are built up from perceptrons with various activation functions:
However, logistic activation functions can be problematic if we have highly negative input since the output of the sigmoid function would be close to zero in this case. If the sigmoid function returns output that are close to zero, the neural network would learn very slowly and it becomes more likely that it gets trapped in the local minima during training. This is why people often prefer a hyperbolic tangent as an activation function in hidden layers.
And they're trained with various types of back-propagation. Chapter 12 shows how to implement neural networks from scratch, and chapter 13 shows how to do it with TensorFlow, where the network can end up running on the graphics card supercomputer inside your PC. Since TensorFlow is a complex beast, chapter 14 gets into the nitty gritty details of what all the pieces of code do for implementation of the handwritten digit identifier we saw in the last chapter. This is all very cool stuff, and after learning a bit about how to do the CUDA programming that's behind this library with CUDA by Example, I have a decent appreciation for what Google has done with making it as flexible, performant, and user-friendly as they can. It's not simple by any means, but it's as complex as it needs to be. Probably.

The last two chapters look at two more types of neural networks: the deep convolutional neural network (CNN) and the recurrent neural network (RNN). The CNN does the same hand-written digit classification as before, but of course does it better. The RNN is a network that's used for sequential and time-series data, and in this case, it was used in two examples. The first example was another implementation of the sentiment analyzer for IMDb movie reviews, and it ended up performing similarly to the regression classifier that we used back in chapter 8. The second example was for how to train an RNN with Shakespeare's Hamlet to generate similar text. It sounds cool, but frankly, it was pretty disappointing for the last example of the most complicated network in a machine learning book. It generated mostly garbage and was just a let-down at the end of the book.

Even though this book had a few issues, like tedious code duplication and explanations in places, the annoying cross-referencing, and the out-of-place chapter 9, it was a solid book on machine learning. I got a ton out of going through the implementations of each of the machine learning algorithms, and wherever the topics started to stray into more in-depth material, the authors provided references to the papers and textbooks that contained the necessary details. Python Machine Learning is a solid introductory text on the fundamental machine learning algorithms, both in how they work mathematically how they're implemented in Python, and how to use them with scikit-learn and TensorFlow.


Of these two books, Data Smart is a definite-read if you're at all interested in data science. It does a great job of showing how the basic data analysis algorithms work using the surprisingly effect method of laying out all of the calculations in spreadsheets, and doing it with good humor. Python Machine Learning is also worth a look if you want to delve into machine learning models, see how they would be implemented in Python, and learn how to use those same models effectively with scikit-learn and TensorFlow. It may not be the best book on the topic, but it's a solid entry and covers quite a lot of material thoroughly. I was happy with how it rounded out my knowledge of machine learning.

Tuesday, September 22, 2020

Game 379: The Masters Of Serebal (1984)

You would think these portraits are the Masters of Serebal, but instead they're the bridge guardians that you have to fight throughout the game.
          
The Masters of Serebal
United Kingdom
M. C. Lothlorien (developer and publisher)
Released 1984 for ZX Spectrum
Date Started: 3 July 2020
Date Ended: 9 July 2020
Total Hours: 6
Difficulty: Hard (4/5)
Final Rating: (to come later)
Ranking at time of posting: (to come later)
      
I was looking for an "afternoon RPG"--an entry I could bank in case I ran out of time in September. I figured a ZX Spectrum game from 1984 couldn't possibly be that long. As usual, I underestimated the ability of 1980s developers to really drag out a game, this time by repeating essentially the same quest 10 times. Still, The Masters of Serebal showed me a few new things, and the experience overall was worthwhile.
   
Serebal is a cassette game from Cheshire-based M. C. Lothlorien, which sounds like the worst hip-hop name of all time. (Its author, Keith Hunt, is credited on a spy adventure from the same year called Special Operations and nothing else.) The word Serebal is never really explained in the game or its backstory, but it seems to mean something akin to "magic." The story goes that 5,000 years ago, the eleven races of the world were united by the Masters of Serebal under the Eleven Scrolls of Law. Each scroll was trusted to a different race, and together their power kept darkness at bay. But now millennia have passed and the power of the scrolls is waning. Only humans have kept the faith; the other races have mutated and crossbred into around 400 different species today. Now it's time for a hero to unite the Eleven Scrolls, with the help of a modern Serebal master named Altaborn.
           
Meeting Altaborn for the first time.
        
There's no character creation process. The player is already assumed to be a famous warrior who has agreed to take on this quest.  He begins in his village, in the southwest corner of a map of 48 x 48 squares. Half of the screen is dedicated to the game map; the other half shows the character's current resources as colored dots in two rows. From top to bottom, those resources are stamina, food, gold, gems, armor, healing potions, and the scrolls. Each yellow dot represents one while each blue dot represents 10, so the starting character has 67 stamina, 24 food, and 45 gold.
           
The action begins.
       
The keyboard and joystick have redundant controls for movement, but the keyboard is used for most game actions, including options like B)uy (only works on towns), D)rink a potion, and R)est to trade food for health. Controls are easy to master but execute so slow at era-accurate speeds that the only way to make the game tolerable is to crank up the emulator.
      
The game map has roads, towns (where you can buy more food and armor), and various terrain features in which you find the scrolls. Altaborn holds the first scroll, so once you start the game and visit his castle, you only need to find 10 more. The game's gimmick is that each scroll has a clue for how to find the next one. The clues refer to the terrain features on the map, and figuring them out is perhaps the most fun part of the game. The first, as an example, is:

Between the waters
So wide and so bare
With death all around
You'll find me there
 
The riddle refers to the northern central part of the map, where an expanse of desert lies between two rivers. There's a single patch of grass in the desert, and that's where I found the dungeon containing the first scroll. Altaborn gives you a ring that tells you when you've stepped on the right square. You have to do them in a precise order, so you can't just lawnmow the game and get all 11.
          
This clue led me to the headwaters of a river.
        
You wouldn't want to do that anyway because of the food and combat systems, which together ruin most of the enjoyment the game otherwise offers. The game is particularly proud of its bestiary, which includes some 400 monsters (the "races" of the backstory). You can scroll through and admire their icons at any time by hitting the G)uide option. The developer basically put 20 different heads onto 20 different bodies. The effort is a bit wasted since none of the monsters are named and none do anything different than the others.
            
Some of the monsters, of which the game is very proud.
         
Encounters happen randomly every 15 steps on average, but with a large variance. Combats are a miniature arcade game. Both foes are assumed to be using special three-pronged ranged weapons called "triorangs," which are functionally just dots that zip across the screen when you hit FIRE on the joystick. You and the enemy maneuver around an area full of obstacles (including deadly plants that can damage you if you bump them) and try to shoot at each other. The weapons don't work if you're immediately adjacent to the enemy, which is too bad because every foe is like a clinching boxer who makes a beeline for you and does his best not to leave your side. You end up running around and using obstacles to trap enemies with the game's limited pathfinding, then popping around corners to shoot them. This is hard because the moment you have a clear shot against the enemy, he also has a clear shot against you. It's very hard to put yourself in a situation in which you can fire with impunity, although sometimes the obstacles arrange themselves in just a way that you can shoot through them but not travel; the enemy never exploits such an arrangement while you can.
             
The combat screen. I was able to trap this enemy where I could shoot at him but he couldn't squeeze himself.
         
Ultimately, though, the fighter with the highest number of hit points (a combination of stamina and armor) is heavily favored to win the battle. The good news is that because of the Eleven Laws, enemies don't actually kill each other in this setting; they just knock each other unconscious and take some of their food and gold. You can lose a fair number of combats and still keep questing. The economy is tight enough that you want to be sure to win at least two out of three, however.
 
As if random combats weren't enough, every bridge crossing in the game requires you to fight the "guardian of the bridge" or pay a gem (worth 1000 gold pieces) as a toll. For some reason, these jackasses get their portraits on the title screen.
         
My life would be more interesting if the Tobin Bridge adopted this rule.
          
The food system is also a source of constant annoyance. You eat some every step, and once it's gone, you start losing stamina instead until you die. You're capped as to how much food you can carry by your current stamina, and even at the maximum, it's not enough to do much random exploring before you have to hustle back to town and buy more. If you run out of money, you're really screwed. Altaborn gives you a nice cash boost every time you return with a scroll, but in between those times, you're limited to making money from combats and random encounters, neither of which supplies enough to offset the food you eat while trying to find those encounters. The system thus heavily encourages you to save the game, explore until you find the next scroll--deliberately taking a dive on each combat just to hustle things along--then reload and go directly to the scroll location, thus saving all the food, stamina, and gold you would have otherwise wasted wandering around. Weirdly, even as your maximum stamina and thus maximum food increase as the game goes along, you still seem to consume at the same rate throughout the game. That is, you can only walk about 30 steps (depending a bit on terrain) before you run out of food, no matter whether you start with 24 units or 104.
             
Running out of resources.
      
The game has a variety of fun random encounters to offer some variety during exploration. You might meet some friendly peasants who give you some food, or you might lose health running from a leper colony. You can find gold and gems in unexpected caches. Occasionally, a wandering trader will sell you food, which is almost always welcome. And if you wander too long looking for the next scroll, a helpful adventurer will show up and give you a hint.
             
How do you know?
            
Once you have a sense of the terrain, however, the scrolls' clues are relatively easy to interpret. When you reach their locations, the game has another surprise. To find them, you have to descend into a dungeon, which you explore in a first-person view. Confusingly, the directional commands do not change with the new perspective, so even if you're facing east, you still move the joystick to the right to move east; in other words, pushing the joystick upwards always moves you north rather than the direction that you're facing.
 
The color of the ring is supposed to help you figure out the location of the scroll. Supposedly, it gets yellow when you're "warm" and white when you're "hot." In practice, I didn't find it very useful because the corridor layout made strict geographic proximity to the scroll a bit meaningless.
              
The scroll lies somewhere beyond.

           
The dungeons are all 16 x 16 and have the same random encounters as the outside. Each one has a secret door, which you find by moving into it, and behind the secret door is always one fixed encounter with the enemy holding the scroll. These are the only enemies that you must defeat, as a loss will just loop you into combat again. Once you have the scroll, a single key gets you out of the dungeon and back on the map. You return to Altaborn, who rewards you with gold and healing before interpreting the next clue.
          
Winning the scroll in dungeon combat.

         
Once you bring the final scroll to Altaborn, he has a bit of a speech:
           
Tolidor be praised--the scrolls are once again reunited! [Tolidor is an ancient Master of Serebal, Altaborn's ancestor.] At last the Law can be restored to the Land. Your accomplishment will be forever remembered by all the peoples of the Earth and your deeds will rank alongside those of the greatest of the Serebal Masters. My gratitude to you is boundless and anything your heart desires is yours.
     
My heart really wants to know what "Serebal" means.
          
It took me six hours to win, but that's with a cranked emulator, save states, and a lot of "exploration scumming" as outlined above. I suspect that back in the day, this could have kept a player going for a couple of dozen. I don't think I would have been able to put up with the combats that long. They're what justifies the "hard" difficulty rating. They weren't so hard for me, because I could just reload with a single keypress, but if I had used the game's in-game cassette save, reloading would have been annoying enough that I would have had to shrug off a lot more losses, thus extending the game as I compensated for the associated loss of stamina and food.
           
So . . . the "triorang" is just a trident, then.
         
Serebal isn't really even an RPG by my definitions, lacking attribute-based combat and any type of inventory beyond potions. There isn't even much development. Every scroll adds a bit to your maximum health, but enemies get harder at the same time. It thus earns a low 13 on my GIMLET, with 1s and 2s throughout. I couldn't find any contemporary reviews or any sign that anyone else had played the game except for a brief YouTube video.
     
We thus must continue to wait for the truly legendary ZX Spectrum RPG. I'll keep at it.
    

Sunday, September 13, 2020

The Inspirations Of Oceanhorn 2: Knights Of The Lost Realm - Part 3

For this last installment of our Inspirations series, we had the chance to sit down with Heikki Repo, Creative Director of Cornfox & Brothers. Heikki, one of the founders of the company, is responsible for the overall vision and story of the Oceanhorn saga.




"When talking about influences, we need to differentiate between the inspiration for the whole series, and those specific to Oceanhorn 2: Knights of the Lost Realm," he says.


Upon the release of the first iPhone, the whole studio was excited to know everyone will have a powerful gaming machine in their pockets. At the time, the only RPGs on the device where some fairly obscure Korean-style action games – no RPGs in the vein of Zelda or Secret of Mana were available.


"Some of the games I hold most dear from my childhood were portable," says Heikki, "two of my favorites are Link's Awakening and Mystic Quest – Final Fantasy Adventure (Seiken Densetsu). I love them because they could combine the portable experience with extremely high-quality content. Mystic Quest, for example, uses a real myth (think Excalibur) and builds its story upon it. It also has a lot more drama than Zelda – a quite peculiar trait for those years."





Oceanhorn, since the beginning, was planned as Cornfox's own RPG franchise: an homage to the classics with its own personality. Versatility and gameplay experimentation were the keywords the company used as a guiding principle during the development of the first chapter.


"The first Oceanhorn is undeniably a Zelda-like, but we have XPs, and the story becomes increasingly dramatic towards the end – that's not something you'd expect, for instance, from a Zelda game. These ambitions carry on to the second game as well. When it comes to the actual plot, I think I've been deeply influenced by Final Fantasy VI, VII, and IX: they never take shortcuts, and everything that happens there is the outcome of very thoughtfully laid out worlds and events. What actually goes down in the games is the natural consequence of what already had happened before."






The story told in Oceanhorn 2: Knights of the Lost Realm is the background story of the first Oceanhorn: an opportunity to lay strong foundations for the saga, add more details, and create a universe that will keep making sense for potential new projects as well. "The production phase of Oceanhorn 2 brought everything into focus. Certain story elements were a bit vague, and I think we managed to handle them quite well in Oceanhorn 2."


Visually, Oceanhorn 2 will be an inviting, colorful game. Here the references are, again, Zelda and the Mana series: while its approach is console-style, the game will feature some dark undertones.
"Oceanhorn was developed by three people", says Heikki, "me, Antti, and Jukka. It was a 15-20 hours game, so it was a huge undertaking for so few people, but we managed to squeeze in cinematics and most of what you'd expect from an RPG. At the time I was playing The Last Story, Hironobu Sakaguchi's game for Wii." Sakaguchi had previously delivered Lost Odyssey, Xbox 360's own 'Final Fantasy'. The Last Story, developed in collaboration with Nintendo, wasn't destined, for obvious reasons, to set a new graphical standard, but the gameplay was something truly inspiring. "I saw that game as Sakaguchi's idea of where to take the genre's next: he focused on the feeling of presence, with party members talking to each other during gameplay, and an unprecedented possibility to use the environment to your advantage. The story wasn't limited to cinematics, but brought directly to the levels."


Energized by The Last Story, Heikki decided Oceanhorn 2: Knights of the Lost Realm would be a third person experience, with multiple party members.  




"I don't mind when people make comparisons with Skyward's Sword or Breath of the Wild, it means we're giving out the right vibes. If you compare screenshots from Call of Duty and Battlefield it might not always be obvious which one is which, but when you get to play, these games feel quite different. The same is true if you compare Oceanhorn to Zelda or Xenoblade Chronicles – they provide similar experiences but each in its own unique way."


One more saga that had an impact on Oceanhorn 2: Mass Effect. "After I played the Mass Effect Trilogy, I realized how the characters companionship and the way they explore the planets made those games great. I think that that, combined with the Zelda-like heritage of the first Oceanhorn, is what makes Knights of the Lost Realm special", Heikki concludes.

---

Want to read these updates before anyone else? Subscribe to our newsletter.

SIEGE 2019



Dr. Chao Mei presenting at SIEGE Kennesaw campus for the College Fair.  Mona and Joy running KSU exhibitor booth.  Check out more information about SIEGE 2019 program here.

Friday, September 4, 2020

Super Adventures With The Xbox Game Pass, Part 4

This week on Super Adventures, I hope you don't mind that I'm still writing about all these games I played with my month of Xbox Game Pass Ultimate last November, because I'm on the last part now and I'm not quitting until it's done.

Once again I should point out that I only played most of these games for an hour or so, long enough for me to get distracted by something else and turn them off, but not long enough for me to accurate assess the majority of their content or the intricacies of their gameplay. I'll also point out that these aren't just Xbox games! I played most of them on PC, and a lot of them can be played on lots of systems.

You can find part 1 here: Part 1.
Part 2 is here: Part 2.
Part 3 is here: Part 3.

Read on »

Monday, August 31, 2020

Top 10 Most Popular Ethical Hacking Tools (2019 Ranking)

     Top 10 powerful Hacking  Tools in 2019.       

If hacking is performed to identify the potential threats to a computer or network then it will be an ethical hacking.

Ethical hacking is also called penetration testing, intrusion testing, and red teaming.

Hacking is the process of gaining access to a computer system with the intention of fraud, data stealing, and privacy invasion etc., by identifying its weaknesses.

Ethical Hackers:

A person who performs the hacking activities is called a hacker.

There are six types of hackers:

  • The Ethical Hacker (White hat)
  • Cracker
  • Grey hat
  • Script kiddies
  • Hacktivist
  • Phreaker

A security professional who uses his/her hacking skills for defensive purposes is called an ethical hacker. To strengthen the security, ethical hackers use their skills to find vulnerabilities, document them, and suggest the ways to rectify them.

Companies that provide online services or those which are connected to the internet, must perform penetration testing by ethical hackers. Penetration testing is another name of ethical hacking. It can be performed manually or through an automation tool.

Ethical hackers work as an information security expert. They try to break the security of a computer system, network, or applications. They identify the weak points and based on that, they give advice or suggestions to strengthen the security.

Programming languages that are used for hacking include PHP, SQL, Python, Ruby, Bash, Perl, C, C++, Java, VBScript, Visual Basic, C Sharp, JavaScript, and HTML.

Few Hacking Certifications include:

  1. CEH
  2. GIAC
  3. OSCP
  4. CREST

Let's Explore!!

#1) Nmap

Nmap

Price: Free

Description:

Nmap is a security scanner, port scanner, as well as a network exploration tool. It is an open source software and is available for free.

It supports cross-platform. It can be used for network inventory, managing service upgrade schedules, and for monitoring host & service uptime. It can work for a single host as well as large networks. It provides binary packages for Linux, Windows, and Mac OS X.

Features: 

  • Nmap suite has:
    • Data transfer, redirection, and debugging tool(Ncat),
    • Scan results comparing utility(Ndiff),
    • Packet generation and response analysis tool (Nping),
    • GUI and Results viewer (Nping)
  • Using raw IP packets it can determine:
    • The available hosts on the network.
    • Their services offered by these available hosts.
    • Their OS.
    • Packet filters they are using.
    • And many other characteristics.

Best for: Nmap is best for scanning network. It is easy to use and fast as well.

Website: Nmap

******************

#2) Netsparker

Netsparker Vulnerability-Assessments-and-Penetration-Tests

Netsparker is a dead accurate ethical hacking tool, that mimics a hacker's moves to identify vulnerabilities such as SQL Injection and Cross-site Scripting in web applications and web APIs. 
 
Netsparker uniquely verifies the identified vulnerabilities proving they are real and not false positives, so you do not need to waste hours manually verifying the identified vulnerabilities once a scan is finished.
 
It is available as a Windows software and an online service.

******************

#3) Acunetix 

Acunetix Dashboard

Acunetix is a fully automated ethical hacking tool that detects and reports on over 4500 web application vulnerabilities including all variants of SQL Injection and XSS.

The Acunetix crawler fully supports HTML5 and JavaScript and Single-page applications, allowing auditing of complex, authenticated applications.

It bakes in advanced Vulnerability Management features right-into its core, prioritizing risks based on data through a single, consolidated view, and integrating the scanner's results into other tools and platforms.

=> Visit Acunetix Official Website

******************

#4) Metasploit

Metasploit

Price: Metasploit Framework is an open source tool and it can be downloaded for free. Metasploit Pro is a commercial product. Its free trial is available for 14 days. Contact the company to know more about its pricing details.

Description:


It is the software for penetration testing. Using Metasploit Framework, you can develop and execute exploit code against a remote machine. It supports cross-platform.

Features: 

  • It is useful for knowing about security vulnerabilities.
  • Helps in penetration testing.
  • Helps in IDS signature development.
  • You can create security testing tools.

Best For Building anti-forensic and evasion tools.

Website: Metasploit

#5) Aircrack-Ng

aircrack-ng

Price: Free

Description:

Aircrack-ng provides different tools for evaluating Wi-Fi network security.

All are command line tools. For Wi-Fi security, it focuses on monitoring, attacking, testing, and cracking. It supports Linux, Windows, OS X, Free BSD, NetBSD, OpenBSD, Solaris, and eComStation 2.

Features:


  • Aircrack-ng can focus on Replay attacks, de-authentication, fake access points, and others.
  • It supports exporting data to text files.
  • It can check Wi-Fi cards and driver capabilities.
  • It can crack WEP keys and for that, it makes use of FMS attack, PTW attack, and dictionary attacks.
  • It can crack WPA2-PSK and for that, it makes use of dictionary attacks.

Best For: Supports any wireless network interface controller.

Website: Aircrack-Ng

#6) Wireshark

Wireshark

Price: Free

Description:

Wireshark is a packet analyzer and can perform deep inspection of many protocols.

It supports cross-platform. It allows you to export the output to different file formats like XML, PostScript, CSV, and Plaintext. It provides the facility to apply coloring rules to packet list so that analysis will be easier and quicker. The above image will show the capturing of packets.

Features:

  • It can decompress the gzip files on the fly.
  • It can decrypt many protocols like IPsec, ISAKMP, and SSL/TLS etc.
  • It can perform live capture and offline analysis.
  • It allows you to browse the captured network data using GUI or TTY-mode TShark utility.

Best For: Analyzing data packets.

Website: Wireshark

#7) Ettercap

Ettercap

Price: Free.

Description:

Ettercap supports cross-platform. Using Ettercap's API, you can create custom plugins. Even with the proxy connection, it can do sniffing of HTTP SSL secured data.

Features:

  • Sniffing of live connections.
  • Content filtering.
  • Active and passive dissection of many protocols.
  • Network and host analysis.

Best For: It allows you to create custom plugins.

Website: Ettercap

#8) Maltego

Maltego

Price: The Community version, Maltego CE is available for free. Price for Maltego Classic is $999. Price for Maltego XL is $1999. These two products are for the desktop. Price for the server products like CTAS, ITDS, and Comms starts at $40000, which includes training as well.

Description:

Maltego is a tool for link analysis and data mining. It supports Windows, Linux, and Mac OS.

For the discovery of data from open sources and visualizing the information in graphical format, it provides the library of transforms. It performs real-time data-mining and information gathering.

Features:

  • Represents the data on node-based graph patterns.
  • Maltego XL can work with large graphs.
  • It will provide you the graphical picture, thereby telling you about the weak points and abnormalities of the network.

Best For: It can work with very large graphs.

Website: Maltego

#9) Nikto

Nikto

Price: Free

Description:

Nikto is an open source tool for scanning the web server.

It scans the web server for dangerous files, outdated versions, and particular version related problems. It saves the report in a text file, XML, HTML, NBE, and CSV file formats. Nikto can be used on the system which supports basic Perl installation. It can be used on Windows, Mac, Linux, and UNIX systems.

Features:

  • It can check web servers for over 6700 potentially dangerous files.
  • It has full HTTP proxy support.
  • Using Headers, favicons, and files, it can identify the installed software.
  • It can scan the server for outdated server components.

Best For: As a Penetration Testing tool.

Website: Nikto

#10) Burp Suite

BurpSuite

Price: It has three pricing plans. Community edition can be downloaded for free. Pricing for Enterprise edition starts at $3999 per year. Price of the Professional edition starts at $399 per user per year.

Description:

Burp Suite has a web vulnerability scanner and has advanced and essential manual tools.

It provides many features for web application security. It has three editions, community, enterprise, and professional. With community editions, it provides essential manual tools. With the paid versions it provides more features like Web vulnerabilities scanner.

Features:

  • It allows you to schedule and repeats the scan.
  • It scans for 100 generic vulnerabilities.
  • It uses out-of-band techniques (OAST).
  • It provides detailed custom advisory for the reported vulnerabilities.
  • It provides CI Integration.

Best For: Security testing.

Website: Burp Suite

#11) John The Ripper

John-the-Ripper

Price: Free

Description:

John the Ripper is a tool for password cracking. It can be used on Windows, DOS, and Open VMS. It is an open source tool. It is created for detecting weak UNIX passwords.

Features:

  • John the Ripper can be used to test various encrypted passwords.
  • It performs dictionary attacks.
  • It provides various password crackers in one package.
  • It provides a customizable cracker.

Best For: It is fast in password cracking.

Website:  John the Ripper

#12) Angry IP Scanner

AngryIPScanner

Price: Free

Description:

Angry IP Scanner is a tool for scanning the IP addresses and ports. It can scan both on local network and Internet. It supports Windows, Mac, and Linux operating systems.

Features:

  • It can export the result in many formats.
  • It is a command-line interface tool.
  • It is extensible with many data fetchers.

Website:  Angry IP Scanner

Conclusion

As explained here, Nmap is used for computer security and network management. It is good for scanning the network. Metasploit is also for security and is good for building anti-forensic and evasion tools.

Aircrack-Ng is a free packet sniffer & injector and supports cross-platform. Wireshark is a packet analyzer and is good in analyzing data packets. As per the reviews available online, people recommend using Nmap instead of Angry IP scanner as Angry IP Scanner comes with unwanted applications.

John the Ripper is fast in password cracking. Nikto is a good open source tool for penetration testing. Maltego presents the data in a graphical form and will give you information about weak points and abnormalities.

This was all about the ethical hacking and the top ethical hacking tools. Hope you will find this article to be much useful!!

@EVERYTHING NT

Read more