Welcome to Mobile Tech Tracker. Our mission is to help technically-minded people to become better versions of themselves and to help ordinary people to use modern smart technologies to their own advantage. If you want to support us, please consider visiting the pages of our advertisers.
Building .NET Core sound application - part 3
This is the third and final part of the tutorial on building a platform-independent audio app on .NET Core. In the first part of this tutorial, we talked about setting up the general project structure and enabling audio playback capabilities on Windows. The second part of the tutorial spoke about adding the ability to play audio on Linux, while also enabling the library to pull the specific code, based on the operating system the software is running on. Today, we will talk about enabling audio capabilities on Mac.
As it has been mentioned before, .NET Core is a great platform-independent technology to build software with. However, due to its platform-independent nature, it lacks some of the most basic capabilities, which were too different in implementation on different operating systems. One of these is the ability to natively play audio.
Although there are reliable ways of enabling audio playback on .NET Core, those require a large number of dependencies.
The goal of this three-part tutorial is to build our own library that will enable us to use basic playback capabilities without any additional third-party dependencies whatsoever.
Building .NET Core sound application - part 2
This is the second part in our series of tutorials on building audio capabilities into .NET Core, which the platform doesn't have out of the box. In the first tutorial of this series, we have set up a basic project structure and have added a class that enabled us to play audio on Windows.
However, .NET Core wasn't created for Windows alone. Therefore, in this tutorial, we will add Linux playback capabilities to our application.
Although there is already a reliable way of playing audio on .NET Core in a cross-platform fashion, it relies on a number of dependencies and inter-operability with Node.js, which is achieved by NodeServices. The solution presented in this series of tutorials, however, doesn't rely on any third party dependencies at all. It doesn't even require any additional standard libraries from .NET Core or ASP.NET Core.
Building .NET Core audio application - part 1
As great as .NET Core is for writing software for multiple platforms, it lacks some basic capabilities. This applies to those functionalities that would work radically differently on different platforms under the hood, especially the ones that weren't the priority for the authors of .NET Core. One of these is the ability to play sound.
With it's predecessor, .NET Framework, you could play sound easily by using classes like SoundPlayer from the standard class library of the framework itself. Likewise, NuGet packages such as NAudio added many extra audio-processing capabilities.
Unfortunately, NAudio is not fully compatible with .NET Framework yet. Although there is a pre-release version that is available in .NET Standard and is compatible with .NET Core, the bulk of its functionality is still only available on Windows.
There is, of course, a reliable way to play sound on .NET Core on any platform, but it requires quite a few additional dependencies. You will have to load ASP.NET Core components, Node.js and use NodeServices to get this solution to work.
Therefore, if you would want to be able to play audio on .NET Core in the most efficient way without loading too many additional components, you can write your own library to do so. Fortunately, the process is not prohibitively difficult.
Building .NET Core desktop application
.NET Core is great for cross-platform app development. Unfortunately, the compatibility with multiple platforms was achieved primarily by excluding any components that are specific to Windows OS that it's predecessor, .NET Framework was built for. This is why, out of the box, .NET Core can only be used to build command line applications with no GUI and, with addition of ASP.NET packages, web application with nothing more than a standard functionality.
So, how can one build a .NET Core desktop application with GUI? Fortunately, the framework is extendable and the extendability goes above and beyond simply relying on NuGet packages.
Any common software functionality that isn't yet available in .NET Core is available via a more mature cross-platform software-building technology: Node.js. And the good news is that two frameworks can inter-operate easily.
In my previous article, I talked about how to play audio in .NET Core by using one of its standard libraries, NodeServices. In this article, I will talk about utilising Node.js from within a .NET Core app to build a desktop application with GUI. However, this time, the methodology is somewhat different.
Biggest misconceptions about full stack developers
There are many different types of software developers out there. Some are generalists, while other are more specialised. And the distinction in specialism is not only between application types, such as web vs native. Even in the same type of app, there are programmers who can build the whole thing and there are the ones whose expertise is only limited to one part of it, such as user interface.
This distinction is particularly prominent in the world of web apps. There are those who only ever do the front-end. There are those who don't touch anything other than the back-end. There are those who are experts in databases that wouldn't do anything else. And there are also full-stack developers, who are seen as the ones who would be able to tackle all these parts of the software.
However, many people wonder if there is even such thing as a full-stack developer. Technology moves forward at a fast pace; therefore even being a specialist is hard. In the web front-end alone, new libraries and frameworks get released at an incredibly fast rate. So, even in that narrow domain, keeping up with all of the changes is incredibly difficult. So how can somebody keep themselves up to dat with front-end technologies while, at the same time, keep up with the developments in back-end and databases?
The truth is, however, that full stack developers do exist. And they are neither geniuses nor mediocre programmers who have a superficial knowledge of many technologies, but aren't masters in any. Perhaps, some do fall into either of these categories, but this is not how the things are overall.
It's not Capitalism that's the problem
Whenever you watch a news report, you see that the world has many severe problems that cause people to needlessly suffer. Very often, free market, which is commonly referred to as Capitalism, is what is blamed for creating those problems. After all, this is the dominant economic system in the world.
The irony is that, whenever people say that Capitalism is bad, they often do so by posting it on Facebook from their iPhone while having a coffee at Starbucks, none of which would have existed without free market. So, essentially, critics forget about the fact that the economic system that they love to hate is the same system that brought them all their daily comforts and enabled their lifestyle.
Although it is true that a lot human suffering happens under the Capitalist system, it doesn't necessarily mean that it is the Capitalist system that directly causes all of this suffering. Saying that it does is pretty much the same as saying that water is lethal due to the fact that everyone who has ever died used to regularly drink water.
In fact, "water is lethal" statement provides a good example of how manipulative political ideas are pushed. The proponents of a particular idea would first tell you some solid facts that nobody can argue against and then would try to use these facts to express a pseudo-logical conclusion to support their view. As you will see, framing free market as the sole cause of some of the world's problems is one of such pseudo-logical conclusions. In many of such cases, Capitalism per se is not to blame.
The most important skill for 21st century
We are living in the information age. Many traditional industries and jobs associated with them are on the way out. Internet and smart technologies have radically changed how we live and work.
Although technology has improved our lives overall, it also made certain things much more challenging. One of the biggest of these issues is the fact that our attention span has been substantially reduced.
Therefore, if you want to be successful in the 21st century, the most important skill is probably not what you think it is. It is not the knowledge of programming languages. Neither it is the knowledge of online marketing or SEO. Without a doubt, those skills are in demand and are great to have. But they will mean nothing unless you have mastered one particular meta-skill:
The ability to focus for prolonged periods of time
How to think like a hacker
Contrary to the popular belief, hackers are not always the people who breach website security and steal personal data. The word also refers to the software developers who build revolutionary software by putting together some components in such a way that nobody thought of before. This is why when you hear somebody referring to Mark Zuckerberg as a hacker, this doesn't necessarily mean that he is out there to steal your data, as many assume. What it means in the context is that he has built the most successful social media network in the world from his university dorms.
What is more interesting, however, is that the hackers think in a particular way and this way of thinking is not only applicable to technology. It can be applied anywhere. Regardless of who you are and what you do, if you learn to think like a hacker, the quality of your life will improve significantly.
This mode of thinking is not exclusively present in those who are traditionally referred to as hackers. Some of the best scientists, artists and other creative individuals have it too. And, at its base, it is quite simple. It is all about thinking out of the box and not accepting the status quo. This is the core skill that needs to be developed before anything else if one aspires to become a hacker or learn to think like one. This way of thinking is what allows the hackers to use various things for something other than their intended purpose. The rest of the equation, the specialist skills, are much easier to learn.
Pocket Spy Sound Recorder
Did you ever have to deal with a toxic boss or harassment at work? Are you tired of dealing with corrupt government officials? Do you need to collect evidence of a crime? Are you an investigative journalist? Do you simply want to be able to record sound at a high professional quality? If you have answered yes to any of these questions, then this app is for you.
Pocket Spy Sound Recorder is a hidden sound recording app that allows you to turn your mobile phone or tablet into a powerful listening device, unnoticeable to the people in your surrounding. It is a perfect tool for collecting evidence or investigative journalism. The whole purpose of the app is to secretly record the sound while keeping your device fully usable in the process. The app does not show any annoying adverts and all features of the app are available instantly without any in-app purchases.
Mail My Pics
MailMyPics app can capture several pictures in a batch and send them to a specified email address, transfer them to cloud or share them on social media instantly. This app makes it convenient to share your photos straight after taking them.
Although there are many uses for this app, an important one is the ability to covertly collect evidence if you become a witness of crime or some other wrongdoing. The camera is silent, so you should not worry about being heard taking pictures if you are in a volatile situation. Likewise, the photos can instantly be sent to the specified email address (e.g. police or your close ones), so there is no way for anyone to destroy the evidence, even if they take possession of your device.
Pocket Interest Rate
Do you want a powerful tool to help you make important financial decisions quickly and save you valuable time? Do you get confused by financial jargon related to loans and savings? If the answer to either of these questions is yes, then this app is for you!
This inexpensive app is a collection of 6 powerful tools which calculate everything involving interest rates, ranging from time it would take to fully repay a credit card debt to an amount accumulated in a savings account over time.
If .NET Core is good enough for Bing, it's good enough
Why does Google want to know my location
Q#, an emerging language for quantum computing
Edge browser gets improved WebAssembly support
Kubernetes gets fully integrated with Visual Studio
Microsoft deploys an underwater data centre
Microsoft grants organisations an easy access to blockchain
Saving your mobile apps from the danger of rooted devices
Microsoft is focusing on artificial intelligence
F# is given a boost in the latest Visual Studio update
© Mobile Tech Tracker. All rights reserved. Unauthorised copying of any of this website's content is prohibited under international law.
For any queries, comments or suggestions, please write to firstname.lastname@example.org.