I’ve been building web apps since… well, since before anybody called them web apps. I wrote my first web page in 1992, I was building data-driven dynamic websites in ASP and PHP way back in the 1990s. I’ve seen countless trends and technologies rise, and sometimes fall – from cgi-bin scripts to templating languages, to static site generators and serverless cloud microservices.
Redis is a great choice for implementing a highly available in-memory data structure store, that can be used as a database, cache, and message broker. Combine it with some of its modules, for example, RediSearch and RedisJSON and you get a full-text search engine.
In this post, we’ll dive into building our simple, yet effective and powerful search engine, starting from loading data into Redis, then performing text searches using a rich query language and finally aggregate or group query results to our specific needs.
What is state management and does our application need it?
When we start creating a new application, we should adhere to the basic postulates: that the code we write is simple, easy to test, that it can be maintained, and that it is readable and understandable for the colleagues we work with or to those will subsequently take over maintaining our application. Furthermore, at the very beginning, we should think about how complex the structure of our application is and how we will manage the data we have without our application being fast, user friendly, or reliable.
…and Why do We Need More than Just the Code
– I just wanted to nail the code. How did this happen?
Sadly, I heard this sentence more than a few times in my career (as someone who helps other people fulfill their potential). Usually, this sentence pops up when a person realizes that they need more than programming skills to succeed as a programmer, or when a programmer becomes a leader (team lead, project lead… name it as you wish, in the end – it’s people we are leading, not numbers and letters on our screen). These are two different examples, yet very similar in the fact that they both require a significant change in mindset. Let’s examine one by one.
Producer-consumer is a classic concurrent programming design pattern, where processes are designated as either producers or consumers. The producers are responsible for adding to some shared resource and the consumers are responsible for removing from that resource. Resource accessed by producer or consumer must be thread-safe. In other words, either a single producer or a single consumer can access the structure at any given time.
The demand for IT staff is growing day by day. Usually, the more experienced people are, the harder it is for them, and they often don’t want to change employers. Such people have been working in one system for years – they know the structure, the people, the projects. In a way, everything has become part of a routine, so there is no need for change. The question is how to convince such a person to become an employee of a company that is just starting to develop in Serbia.
KEVLIN HENNEY (@KevlinHenney) is a globally well known independent consultant, speaker, writer and trainer who’s trained a few thousand developers so far. Kevlin was one of our speakers at ITkonekt 2020.
We’ve talked to Kevlin about the best books to read if you’re a programmer who wants to learn and grow. He’s shared several recommendations for you.
Josh (@starbuxman) is the Spring Developer Advocate at Pivotal. Josh is a Java Champion, author or co-author of 6 books. He was also one of the speakers at ITkonekt 2019 and ITkonekt 2020.
We’ve talked to Josh about the books he’d like to recommend to his fellow coders. Here are some of his favorites, accompanied by Josh’s comments and suggestions of course.
It was my high school years when I fell in love with the music of the sixties. Never been a history fan but I was interested in the context of those people’s lives. It’s astonishing to imagine how much people went through over just one decade: television, the first journey to space, hippies, Vietnam and feminism.
I thought: “What did those women have to protest about when there were grander things than their rights?”
After long thinking about the topic which I would put in this blog, many areas have gone through my head. Should I write about some of the most popular topics at the time or use this space to drag someone know-how or even something else. I could write about some technologies that, so it can be said, are just taking the momentum in the incoming years. As for the titles of blogs, magazines, and even on the streets, we can hear abbreviations such as VR, AR, AI, IoT, etc. For an ordinary man who would look at these abbreviations, so he or she could say, like our people do, “Are you going to put it on the bread”? No, of course not, why would we know about something that is yet to come, something nobody has devised when we can dedicate our time to watching television and participating in massive manipulation.
Minko Gechev is a member of the core Angular team at Google. He was also a speaker at the ITkonekt Conference in 2019.
We asked Minko about his favorite books which he might recommend to his colleagues and we’re conveying his choice to you, accompanied by his comments for every book. He noted that these were only some of the many professional books he’d read and liked.
Ever since Kotlin became an officially-supported language from Google and Android to this moment it’s amazing to see how much time and resources the Kotlin team has invested in developing some great and helpful tools to make Android development easier. In this article, I’ll show you how Anko library can make your life better. In addition, I will share different ways you can use Anko in your android development.
ITkonekt 2019, which took place on April 13-14, hosted some of the world’s most famous IT speakers. More than 800 developers attended ITkonekt conference. One of the speakers was Robert C. Martin (Uncle Bob), Author of Clean Code and many influential books, Co-author of the Agile Manifesto.
It is much better when we are together
Nobody could have predicted that something like Coronavirus would happen to us. In a short time, we needed to adjust to this situation to, first of all, protect our employees, and then to organize in a way to keep business activities as normal as possible.
How do you evaluate a test automation framework? Jana Djordjevic, a Senior Test Consultant from Endava, shared with us several tips and tricks. She added that we do not need to follow them blindly. However, she was certain that knowing them would have helped her greatly when she first started building and maintaining test automation frameworks. While we were considering software testing the question came up, it better to invest time in improving an existing solution or build a new test framework from scratch?
An encouragement guide introducing 3 popular NoSQL databases to Java developers
Hard to imagine a microservices based project without at least one NoSQL database. It feels like they’ve taken dominance over old fashioned relational SQL databases. However, DB-Engines ranking still has SQL databases as top 4 most used (image 1.1.), but this is mostly due to legacy projects maintaining their existing databases and licenses, and not being able to justify the budget for migration. This conclusion can be linked with the trend chart (1.2.), which shows that in the last 6 years most popular SQL databases have gained no momentum, while NoSQL databases are on the constant rise.
The idea of creating a digital bank stemmed from the market’s needs. In particular, there is a high demand for faster, easier, more modern and more flexible banking services. Traditional banks are still slow to adapt to the latest technology trends and clients’ demands. Based on our previous experience within the industry, we concluded that most of the clients had the same or similar problems when it comes to using services from traditional banking institutions. That is why we decided to create a flexible digital bank.
As LearnUpon CTO and co-founder, programming is my life. For over 16 years, I’ve worked in the eLearning industry, building and implementing learning management systems. And since it launched in 2012, I’ve been scaling LearnUpon’s app to support over 5 million users worldwide. And that user base is going to continue growing.
The popularity of the IT industry has been and still is rising at a staggering rate. Given its global presence, it comes as no surprise to ﬁnd an abundance of people working towards getting their ﬁrst jobs in the industry. To many, this can be a rather frustrating process, particularly when it comes to never receiving a reply, or getting a vague/generic letter of rejection that gives no inclination of what they’re doing wrong.
As a SharePoint developer I have traced different approaches and possibilities of the SharePoint customizations over the years. If you are my colleague, working with SharePoint, you have probably experienced different ups and downs working on SP projects, especially in the development department as the customization approaches have changed over the years and versions of the platform. So, we have built C#/.NET based web parts exclusively in the beginning, but we have also used Script Editor Web part – it was easy to customize DOM on the classic SP sites this way, but we have learned that it cannot be used on “NoScript” sites. Later we got App Parts – Developed using Add-in model, placed in an iframe. Development of it is a little bit complicated and it is not able to access DOM of SP page.
A short story from the perspective of a C++ developer
In the beginning…
The year was 1972. Dennis Ritchie, an American computer scientist, created C programming language, the most prominent imperative programming language of today. It was designed to provide constructs that map efficiently to machine instructions. With portability in mind, it was a relief that you can write portable code which can be successfully compiled and run on various computer platforms.
The old world wasn’t sleeping. Almost decade before the first appearance of C, Simula (“Simulation language”) was created at Norwegian Computing Center in Oslo, by Ole-Johan Dahl and Kristen Nygaard. Simula is considered the first object-oriented (OO) programming language.
It will turn out that C and Simula had major influence on today’s most popular programming languages.
Vuex is a state management library provided by Vue core team and inspired by Facebook’s flux model. It’s really easy to integrate it with existing Vue applications. Also, it’s very flexible and scalable. It’s based on mutability, unlike Redux that’s all about immutability, but the concepts of using Vuex/Redux are really similar.
Being a front-end developer today is much enjoyable then it was 10 years ago. The whole ecosystem exploded, and in recent years a lot of tooling, previously unimaginable, made its own way into our everyday lives.
Our stacks become mightier, features become easier to deliver and yet we still make the same mistakes over and over again.
Whether we are building the next big thing app or just juggling with our client work, there are common problems occurring in both of those cases.
As I looked up in shock from my desk I saw myself sitting across from me…my colleague was testing his new face verification algorithm wearing a mask of my face. Zen masters have talked about finding yourself, but I’m pretty sure this was not what they intended. When my heart rate slowly returned to normal I decided it was probably best to drink decaf for the rest of the day. Now I expect that the mention of decaf is strike-1 for many of you coffee aficionados, but it was fancy decaf if that makes it any better (I expect not).
The SSR (Server Side Rendering) allows to use to generate dynamic HTML pages – content of these pages is not-known while application is building. The main characteristic of this application is that it can be run on the client side (browser) as well as on the server side.
Continuous integration (CI) is the practice of frequently merging working copies early in the developing process. Among a wide variety of testing disciplines, performance can boost development process as part of CI.
Performance tests consume lots of memory, CPU and the machine resources in general. By itself, performance is expensive. But, you can do much for free. By using JMeter as the main performance tool and continuously integrating everything on Jenkins, great results can be accomplished.
According to VersionOne’s last State of Agile report, Scrum and Scrum hybrids make up for 70 percent of practical applications of Agile. While comparing methodologies, methods and frameworks (Scrum is a framework) is a bit of an apples and oranges activity, the fact is that Scrum is the clear winner in the Agile ecosystem.
But, what exactly are the reasons for Scrum’s popularity and clearly superior adoption rate?
As is often the case, the reasons are many and complex.
How does team see tester?
Testing is often seen as a destructive activity. So, the role of the tester sometimes can be really specific. In some cases, tester won’t fit in the team easily. Developers sometimes think that tester is against them and that could produce problems. The software tester needs to convince the rest of the team that her/his part is really important and to have good communication with them and in a nice way prove them that he is not their opponent. Tester plays on the same team, just with different duties.
Hello, Java enthusiasts and professional developers. If you ever had to face the challenges of one-way server-client communication and are searching for a straightforward solution, you came to the right place. The technology we will go through in this short blog presents an easy and effective solution.
Amazon EC2 stands for Elastic Cloud Computing. It is a web service that provides application hosting on virtual machines called instances using simple interfaces. Main benefits are reduced cost of virtual machines compared to physical ones, fast and simple maintenance and no downtime.
Amazon EC2 provides elastic web-scale computing which enables you to increase or decrease capacity within minutes.
You have complete control over your instances as you would have over physical ones. It is a flexible cloud hosting service that gives you choice of instance types, operating systems and software packages.
Amazon EC2 is highly secure and works in conjunction with Amazon VPC (Virtual Private Cloud) to provide security and robust networking functionality.
It is very simple to start with and there is an option to try Amazon EC2 for free.
Call it a cliche or anything you like, but when Wikipedia gives you the perfect definition of debugging, trying to come up with your own feels pointless – ‘debugging is the process of finding and resolving defects or problems within the program that prevent correct operation of a computer software or system’.
The term itself was created when a moth got stuck in a relay in a Mark II computer at Harvard University while Admiral Grace Hopper was performing an operation on it in the 1940s.
An actual, real live bug.
Handling asynchronous events in React / Redux can sometimes be quite challenging. Up to some point, we can handle async events manually by bridging different debounce functions and components’ states, which ultimately bloats our components.
So, in order to separate our view and business logic and keep the code clean, we’ll need some code abstraction.
When .NET Framework was released 16 years ago, it served as a general application development platform for Windows desktop and Web applications.Shortly after, the .NET Compact Framework was released as a subset of the .NET Framework that fit the footprint of smaller devices, specifically Windows Mobile. The idea behind that was to separate code base from the .NET Framework and it included the entire vertical: a runtime, a framework, and an application model on top. Ever since that, this subsetting was repeated many times with: Silverlight, Windows Phone and Windows Store. This lead to fragmentation because the .NET Platform isn’t a single entity but a set of platforms, owned by different teams, and maintained independently.
Why should we write tests?
Many young and less experienced developers think that writing test is a waste of time, and unnecessary work. But everyone who has experience with a big/long-term project, does not share that opinion. Firstly, with a test you can ensure that your code works as it expected with given inputs, and secondly every later change of your code will be easier and safer, tests will warn developer if developer breaks a functionality.
What is BI Business Intelligence and to whom it is intended
Business Intelligence (BI) is technology led data analysis process and representing useful data necessary for leaders, managers and other corporate users to make positive and right business decisions. BI includes a wide spectrum of tools, applications and methodologies which enable organizations collecting data from internal information systems and/or external sources as a result of business processes (transaction databases – e.g. ATM cash flow; remote readers of electrical energy consumption, water, gas), Excel tabeles and other forms of generated reports.
After a few years of freelance as a Front-end developer, I started looking for a job in big companies in order to improve my knowledge by working on big and demanding projects. Whenever I applied for a job, I had been given a test-task to ascertain my
knowledge and skill level. During that period, I realized I was wasting a lot of time on setting up the project and doing some of the most basic things.
Many can be found in this story
The final years of college, and I still don’t have much in common with IT-operation. Honestly, I didn’t think I would do such a thing. I did not even know what IT involves. I studied at the Faculty various technical objects, programming elements, other related things, but I have not had a chance to see something concrete and tangible.
With the growing popularity of the IT industry, the focus is usually on the “programmers”, i.e. software engineers. It’s often talked about Frontend, Backend, programming languages and frameworks, databases, etc. These terms are related to the development and implementation of a software solution. The question that always comes up is: how do we know what to create? How do we find out what the client needs and define the looks and the functionalities of the future solution? The answers to these questions have indicated that there’s a need for a new team member who would face the challenges of mediating communication between the client and the programmers. The new team member is a business analyst (BA).