Software bugs can lead not only to material losses, but also can damage human's health. For example, actors on the stage of a theatre can get injured if suddenly one of the scenery begins to go down on the stage at the wrong time. However, the connection between the errors in code and the health damage of medical software is more obvious. Let's talk about this topic.
This article focuses on the teams of developers who create the programs for a medical equipment. I hope they will not stay indifferent and will check their code. Let's recall two famous cases where errors in programs, related to medicine, became the reason for bad news.
Firstly, it is a series of tragic events caused by the errors in the Therac-25 device of radiation therapy. This device has caused at least six overdoses of radiation within the period from June 1985 to January 1987, some patients received doses of tens of thousands of rad. At least two people died directly from the radiation overdoses. Software bugs of the device were the reason of the tragedies and the main problem was the incorrect security strategy.
Not so long ago one of our colleagues left the team and joined one company developing software for embedded systems. There is nothing extraordinary about it: in every firm people come and go, all the time. Their choice is determined by bonuses offered, the convenience aspect, and personal preferences. What we find interesting is quite another thing. Our ex-colleague is sincerely worried about the quality of the code he deals with in his new job. And that has resulted in us writing a joint article. You see, once you have figured out what static analysis is all about, you just don't feel like settling for "simply programming".
Today I want to offer to umumble lovers this small set of applications that are intended to increase productivity while working with the frontend. If you will not find your favorite app here, then you are very welcome to make some comments!
This beautiful form builder helps you to create the most marvelous CSS login boxes and other input items in very short time. Besides the forms on the website of this project, you can create other equally beautiful CSS elements including buttons and ribbons.
I'm joking about Linux, of course. Nevertheless, this question really interests me. I understand that systems they work on in Microsoft are large and complex. I know very well that bugs may be detected by users only some time later after release. But I don't understand how can one simply not notice obvious bugs in the tools the developers themselves are meant to use regularly?
A few words about classic mistakes to start with. Everything's clear about them: developers may well miss them because they are not the end users. A good example of this is an error in one of the Microsoft Visio versions. It was the 2010 version, I suppose. When you started typing text in Russian into a Basic Flowchart block, it was being typed back to front. I can understand it. Someone has mixed up things and decided that words are written from right to left in the Russian language. Russian and Arabic are absolutely the same, or very similar at least. There were no Russians among testers, and the error got into the release version. I can understand this case.
I decided to fool around a bit with the plugin and the picture to attract your attention. A whole lot of articles on programming regularly appear on the Internet, but most of them are unfortunately brief and all about nothing. But we are sure that our material is extremely useful, and it will be a pity if it remains unnoticed. We tell our users in every detail about how to develop plugins in C# for the Visual Studio 2005/2008/2010/2012 development environment. This material is based on our own experience and describes some subtleties you won't read anywhere about.
Here are seven tools that can significantly simplify the life of a web developer, coder or designer.
This is a tool for selecting fonts. Wordmark.it allows you to see how a sentence looks like with all the fonts installed on the computer. It downloads quickly and has convenient filters. Unfortunately, there is no way to set the background color and letters.
I have little experience (summarily I have been working as a programmer nearly for 16 months), nevertheless, I would like to give some tips to myself in the past, or in other words, to those who are studding now at the university and planning to become a software developer. I do not have a claim on wisdom or experience on no account. While thinking a little, I understand that all these tips are very actual for me more than ever too. I published the first note in my blog last year, and now I am publishing here the list expanded with tips of the readers of this blog.
All tips are independent and their order does not matter.
1. Learn a new programming language
Learning the new programming language will develop new ways of thinking, especially if the new language uses a paradigm that you do not know yet. Many of the acquired ways of thinking could be applied to the languages that are already known. Perhaps, you might even like the new programming language, and you will start using it for new serious projects.
Here are some good languages that give the great educational experience and cognitive effect: Lisp (Scheme is good), Forth, PostScript or Factor (stack-oriented programming languages), J (wonderful array programming language), Haskell (strongly typed purely functional programming language), Prolog (logic programming) and Erlang (concurrent programming goodness).
2. Read a good programming book
A lot of knowledge could be found in the books. Undoubtedly, a practice is also important, but reading one challenging programming book might help you to challenge your thinking and to enrich your knowledge. Here is a list of such challenging books: The Art of Computer Programming (if you want a real challenge), Structure and Interpretation of Computer Programs (SICP), A Discipline of Programming or the famous dragon book.
Of course, you can read less complicated books as well, but you try to go around books such as “For Dummies” that promise to teach you in 24 hours or 3 weeks. These books will not do any good for you in terms of improving programming skills.
Hello my dear umumbleuser! In this post I am going to discuss the sleep and productive activity. I am interested in the topic of my own productive sleep. The last few years I thought that the sleep is just a waste of time, and therefore, I tried to shorten the time of my sleep. But the more I did it, the more I began to look like a zombie, and then I began to look for an alternative. Consequently, this post will be a synthesis of all the information I found. Let us begin!
We learn during our sleep
I would like to begin that sleep is not a waste of time. It was a great discovery for me. Our brain does not rest during our sleep, it processes the information. All the time while we are peacefully sleeping and dreaming, the brain is processing all the received information for the day. What it finds useful it puts in long-term memory for years to come, but that is not needed it throws out. Thus, when we are awake, we only collect information for further processing in our sleep. So, how does this happen? Here we need to get acquainted with concepts such as the types of sleep.
The PHP blog touts more often the examples of bad code and anti-patterns. Well, someone else is criticizing the Hindus for the code ...
The code quality is something that should not be ignored or put aside for later. Such a delay is technical debt or code debt that will backfire for sure. You have to spend more time creating quality code and application architecture.
It is highly recommend to read Uncle Bob's principles of SOLID: butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod.
This text can greatly improve your ability to build scalable systems, particularly the principle of SRP.