Skip to main content

Posts

Showing posts from January, 2019

Visiting The National Museum of Computing inside Bletchley Park - Can we crack Engima with Raspberry Pis?

"The National Museum of Computing is a museum in the United Kingdom dedicated to collecting and restoring historic computer systems. The museum is based in rented premises at Bletchley Park in Milton Keynes, Buckinghamshire and opened in 2007" and I was able to visit it today with my buddies Damian and David. It was absolutely brilliant. I'd encourage you to have a listen to my 2015 podcast with Dr. Sue Black who used social media to raise awareness of the state of Bletchley Park and help return the site to solvency. The National Museum of Computing is a must-see if you are ever in the UK. It was a short 30ish minute train ride up from London. We spent the whole afternoon there. There is a rebuild of the Colossus , the the world's first electronic computer. It had a single purpose: to help decipher the Lorenz-encrypted (Tunny) messages between Hitler and his generals during World War II. The Colossus Gallery housing the rebuild of Colossus tells that remarkable

Did you know that the bug search tools in Java code have bugs too?

The PVS-Studio development doesn’t stand still – the team is always monitoring new trends in programming and working hard on further analyzer development. The biggest feature that appeared in the analyzer is support for Java. It is a widely used one today, and it was one of the candidates when we were considering which language to choose next. The team made available the most popular ways of the analyzer integration in the build system for the users: plugins for Maven, Gradle, and IntelliJ IDEA. However, this is just the beginning – there are a lot of ideas on further improvements in this area. In 2018, the team was also actively working on C++ and C# analyzer development and had released a new version of the PVS-Studio . C++ (and C#) analyzer warnings were classified according to the Common Weakness Enumeration (CWE). A PVS-Studio static code analyzer has become able to classify its warnings according to MISRA C and MISRA C++ standards. It has become relevant in relation to the devel

Django PostgreSQL Installation and Setup

We’ll know that SQLite is very powerful, embedded relational database management system and it offers a really amazing set of tools to manage approximately all sorts of data. But when it comes Multi-user applications (where multiple users want to use the same databases),  It fails. So It is recommended to choose a fully featured relational database management system rather than SQLite. Some examples of Fully featured RDBMS are MySQL, PostgreSQL, Oracle databases. Django is very flexible in terms of changing databases. So in this article, we’ll see how we can change the database from SQLite to PostgreSQL. Prerequisites Instead of creating everything from scratch, we’re taking the example of our previous article, in which we’re using SQLite database. If you haven’t read our previous article yet, then here it is  https://www.thecrazyprogrammer.com/2019/01/django-models.html Let’s start. Step 1: Install PostgreSQL To Install PostgreSQL for Django in Ubuntu: Open terminal and type

Difference between Class and Structure

Here you will learn about difference between class and structure. A class and a structure, both are user defined data types and understanding the difference between both of them might be confusing at times. In order to understand this, the following table shows clear differences between the two. Class Structure It is a reference data type and uses the keyword “class”. It is a value data type and uses the keyword “struct”. Object for a class is created in the heap memory. Object for a structure is created in the stack memory. We can always inherit another class. i.e., the concept of inheritance is applied . Structures can never be inherited. Object is created using the “new” keyword. We may or may not use the keyword “new” while creating objects. It occupies more space. A structure occupies less space. Class allows both the parameterized and the non parameterized constructors. It only allows for the parameterized constructors, even the default constructors

How to use Windows 10's built-in OpenSSH to automatically SSH into a remote Linux machine

In working on getting Remote debugging with VS Code on Windows to a Raspberry Pi using .NET Core on ARM in my last post, I was looking for optimizations and realized that I was using plink/putty for my SSH tunnel. Putty is one of those tools that we (as developers) often take for granted, but ideally I could do stuff like this without installing yet another tool. Being able to use out of the box tools has a lot of value. A friend pointed out this part where I'm using plink.exe to ssh into the remote Linux machine to launch the VS Debugger: "pipeTransport": { "pipeCwd": "${workspaceFolder}", "pipeProgram": "${env:ChocolateyInstall}\\bin\\PLINK.EXE", "pipeArgs": [ "-pw", "raspberry", "root@crowpi.lan" ], "debuggerPath": "/home/pi/vsdbg/vsdbg" } I could use Linux/bash that's built into Windows 10 for years now. As you may

Why Alert Fatigue Remains a Database Performance Threat

Unlike a decade ago, databases have become more complex than before, but so have the means to spot performance issues evolved. For their businesses to remain at par with the ever-changing IT landscapes, most IT professionals have been forced to invest in monitoring tools to help them comb through the system and identify threats. However, a slight problem lies in how these professionals handle database threat alerts. Image Source More than 50% of these professionals end up ignoring the alerts that they get from the tools that they invested in, according to the Dark Reading website. While most professionals get away with this trend, it can be damaging to the IT environment were they to ignore a high priority threat alert. A good example would be the 2013 Target cyber breach which resulted from alert fatigue. Although this behavior can be changed, it requires you to understand what really causes alert fatigue. So, why are alert fatigues still a threat to performance? Alerts Might Lac

Data Encryption Standard (DES) Algorithm

Data Encryption Standard is a symmetric-key algorithm for the encrypting the data. It comes under block cipher algorithm which follows Feistel structure. Here is the block diagram of Data Encryption Standard. Fig1: DES Algorithm Block Diagram [Image Source: Cryptography and Network Security Principles and Practices 4 th Ed by William Stallings] Explanation for above diagram: Each character of plain text converted into binary format. Every time we take 64 bits from that and give as input to DES algorithm, then it processed through 16 rounds and then converted to cipher text. Initial Permutation: 64 bit plain text goes under initial permutation and then given to round 1. Since initial permutation step receiving 64 bits, it contains an 1×64 matrix which contains numbers from 1 to 64 but in shuffled order. After that, we arrange our original 64 bit text in the order mentioned in that matrix. [You can see the matrix in below code] After initial permutation, 64 bit text passed throug

5 Best Django Books for Beginners

Here you will find list of best django books for beginners to learn. If you’re eager to learn Django as it is so popular nowadays for its simplicity, then you can follow our articles that made Django more easy to learn. But Sometimes we prefer reading offline rather than online as we’re habitual of it or maybe you think that reading online brings distraction ( for example – ads, pop-ups ). If you’re one of them who prefer reading books offline more than reading stuff online then this article is for you. So here is the list of 5 best books for Django. Django for beginners (by William S. Vincent) Build your first website with Django 2.1 (by Nigel George) Django 2 Web Development Cookbook (by Jake Kronika) Django 2 by Example (by Antonio Mele) Django 2.1 Tutorial (by Hojun Lee and Suwon Choi) Yes, you may heard a lot of other books to learn Django, they’re also good but these are the latest books available and also easy to understand. Let’s see each book in detail. 5 Best Dja

Installing the .NET Core 2.x SDK on a Raspberry Pi and Blinking an LED with System.Device.Gpio

I've written about running .NET Core on Raspberry Pis before, although support was initially limited. Now that Linux ARM32 is a supported distro, what else can we do? We can certainly quickly and easily install Docker on a Raspberry Pi and be running C# and .NET Core programs in minutes. We can run .NET Core in a stack of Raspberry Pis as a Kubernetes Cluster , making our own tiny cloud and install a serverless platform in it like OpenFaas ! If you have a Raspberry Pi 3 with Raspbian on it like I do, check out https://dotnet.microsoft.com/download/dotnet-core/2.2 and note that last part of the URL. You can ask for /2.1, /2.0, etc, just in case you're reading this post in the future, like tomorrow. ;) Everything is always at https://dotnet.microsoft.com/download/archives so you can tell what's Current and what's not. For example, if I end up here https://dotnet.microsoft.com/download/thank-you/dotnet-sdk-2.2.102-linux-arm32-binaries I can grab the exact blob URL

Difference Between MySQL and ORACLE

Here you will get to know about difference between mysql and oracle database. Both MySQL and Oracle are popular relational database management software developed by Oracle Corporation. MySQL: Its name is combination of words “My” and “SQL”, where “My” is name of daughter of co-founder Michael Widenius. And SQL full form is Structured Query Language. It is most popular free and Open Source database management system Developed and maintained by Oracle Corporation. ORACLE: It commonly known as Oracle RDBMS, is a multi-model database management system produced and marketed by Oracle Corporation. Oracle database commonly used for running Data ware housing (DW), online transaction processing (OLTP) and mixing of these two (DW & OLTP) Difference between MySQL and Oracle MySQL Oracle MySQL is free open source Database. Oracle is a commercial database. It is light, simple RDBMS, very well for web. Oracle is very powerful than MySQL, allows to write any complex system lik

How to Protect Your Small Business from a Hacker Attack

Data breaches and compromised websites frequently used to spread malware can be risky for your business; including small businesses. In fact, small or medium-sized businesses are likely to suffer more consequences of cyber-attacks than large enterprises. Large enterprises have the benefit of huge financial reliance as well as organizational resources to combat any attacks. Image Source Why are Small Businesses a Target? Every security breach has circumstances. However, there are a few reasons why small enterprises often fall prey of cybercriminals. Small businesses often lack sufficient technology as well as defence systems, so it would take less effort and know-how for a cyber-criminal to breach their systems. Small businesses serve as middlemen for a hacker to get what he or she really wants. They provide goods and services directly to consumers and/or as contractors, which gives cybercriminals access to large enterprises. Can your business operate with your website offline for

Types of Queues in Data Structure

Queue is an important structure for storing and retrieving data and hence is used extensively among all the data structures. Queue, just like any queue (queues for bus or tickets etc.) follows a FIFO mechanism for data retrieval which means the data which gets into the queue first will be the first one to be taken out from it, the second one would be the second to be retrieved and so on. Types of Queues in Data Structure Simple Queue Image Source As is clear from the name itself, simple queue lets us perform the operations simply. i.e., the insertion and deletions are performed likewise. Insertion occurs at the rear (end) of the queue and deletions are performed at the front (beginning) of the queue list. All nodes are connected to each other in a sequential manner. The pointer of the first node points to the value of the second and so on. The first node has no pointer pointing towards it whereas the last node has no pointer pointing out from it. Circular Queue Image Source