Contains all the articles of the site
-
28/05/2016
One of the GUI (graphic user interface) controls more versatile that the .NET framework offers is the PropertyGrid. It is a component through which the user can edit all the properties of an object that the developer has configured, allowing structuring them into categories and sort them alphabetically. It also provides many options to customize both presentation and editing of their properties and shows the user a help text on each one of them. In this series I will show a complete tutorial on using this control and its main features, starting with this article on its basic use.
[Read More...] -
04/06/2016
In the previous article in this series I did show how to use the basic features of the PropertyGrid control to edit the properties of a particular object or collection of objects. In this article I will show you the most important events of this control as well as the implementation of custom editors that allow editing of properties of types for which there is no default editor, such as the classes developed by yourself in your program.
[Read More...] -
10/06/2016
To conclude this series on the PropertyGrid control I will show you how to use different type converters derived from the TypeConverter class to customize how they are displayed or edited the properties. The .NET framework provides converters for many types of properties, but you can also easily implement your own converters by deriving a class from TypeConverter or a specialized converter and overloading a few functions.
[Read More...] -
14/06/2016
When we are working with mathematical functions, it is very convenient to have a parser that allows us to write and perform different versions of the equations that must be processed by the program, rather than having to modify and recompile the code to adapt it to these changes each time. In this series of articles I will show how to build a simple but powerful expressions analyzer, which can be extended easily to deal with more sophisticated expressions, starting by explaining in this article the basic theory necessary to successfully face this kind of development.
[Read More...] -
17/06/2016
In the previous article in this series I reviewed the main issues about the design of the grammar to build an analyzer, or parser, for arithmetic expressions. In this article I will show the first part of its implementation from the BNF grammar rules, converting the input expression, in the form of a text string, in a series of objects that we can use to evaluate it and give different values to the constants and variables that compose it.
[Read More...] -
18/06/2016
In the previous article in this series I began to show how to implement an arithmetic expression analyzer, or parser, from the grammar rules in BNF notation, with classes which extract numbers, variables and constants. In this article I will finish the series with the implementation of the class focused in working with the main rule, which analyzes the expressions themselves. I will also provide a small sample application that draws the graph corresponding to the expression from the object generated by the compiler.
[Read More...] -
25/06/2016
When multiple rows are selected in a DataGridView control and Ctrl+C is pressed to copy its content, the default behavior copies the cell values in plain text format separated by tabulators. Just with this you can paste the data into an Excel spreadsheet, but you can implement this behavior in a more sophisticated way, applying a custom format to the columns depending on the data type of each cell.
[Read More...] -
26/06/2016
When you design a database, you can make a series of errors or omissions that, later, can result on many headaches, or you can shelve the use of some useful resources simply because of ignorance of them. In this article I will give you a few tips that can help you to better design and management of your data and applications that manage them, especially if you are a beginner.
[Read More...] -
03/07/2016
Axis is a Swedish brand, one of the world leaders in the video surveillance IP cams market, which has an extensive catalog of camera models that cover virtually any need. All its products have a common access protocol via HTTP, the VAPIX protocol, based on CGI commands, which makes it especially interesting to know.
[Read More...] -
09/07/2016
Sometimes it is necessary to print a bar code on a document or label. There are a lot of formats and encodings, in one or two dimensions, depending on the amount of information to be read by the terminal. In this article I will show three of the most common formats for one-dimensional codes and provide code in csharp to encode them.
[Read More...] -
16/07/2016
The Arduino boards, with lots of analog and digital inputs and outputs, allow us to control electronic devices from a computer through an USB interface with a very simple programming using a language similar to C. There are lots of prefabricated modules for controlling motors, relays and all kinds of sensors, but, if you like electronics, like me, you can design and connect your own analog or digital circuits.
[Read More...] -
23/07/2016
There is a very common problem in linear programming which consists to find the values that make maximum or minimum the value of a linear function, given a number of restrictions on the values of their variables. For example, you may want to find a minimum cost or maximum production function. To do this, there is an algorithm developed in 1947 by George Dantzig, called Simplex, which allows perform such calculations in a simple and effective way.
[Read More...] -
31/07/2016
The Tableaux is a logical calculus tool that is very useful to demonstrate a conclusion from a set of premises, find counterexamples or models of a set of logical formulas or demonstrate that a formula is a tautology, i.e., that is true in all possible cases. They can be used in artificial intelligence as the basis for implementing automated theorem proving.
[Read More...] -
19/08/2016
The Tableaux is a logical calculation tool that allows checking the validity of a conclusion from a series of premises. In the previous article I explained briefly the fundamentals of predicate logic Tableaux. In this article I will extend the program to the first-order logic, which has much more expressive capacity than predicate logic, although this makes also automatic calculation more difficult.
[Read More...] -
02/09/2016
Many of the data sets with which we usually work are in the form of time series. A time series can be seen as the evolution of a dynamic system, characterized by some variables and parameters. Depending on the type of dynamic of the system, the series may be stationary, periodic, quasiperiodic, chaotic or random. In this series of articles, I will focus on the characterization of chaotic dynamics, which is presented by complex systems, by using graphical methods.
[Read More...] -
10/09/2016
I continue the series on graphic characterization of the complexity in time series using the helper application GraphStudy. In this article I will show how to construct a graph with which you can easily distinguish whether a particular series from an iterated function presents a chaotic dynamics, the web diagram.
[Read More...] -
17/09/2016
In this new article in the series on graphic characterization of time series from dynamical systems with chaotic dynamics, I will talk about a way to represent such systems in the domain of space, independently of time, the phase diagram. With this type of diagram, you can see the attractors of the system. An attractor is a point, a curve, in general, a set of points to which converge the system equations, which gives us an idea of the typical behavior of that system.
[Read More...] -
24/09/2016
In this new article of the series dedicated to the graphic characterization of complex time series I will talk about two other graphical tools that can be useful, the power spectrum of the signal, which will be obtained through the Fourier transform, and the graph of the distribution of values of the series, a simple histogram with the frequency of the different values that also can provide us information about the series dynamics.
[Read More...] -
02/10/2016
The recurrent neural networks are a very appropriate tool for modeling time series. This is a type of network architecture that implements some kind of memory and, therefore, a sense of time. This is achieved by implementing some neurons receiving as input the output of one of the hidden layers, and injecting their output again in that layer. In this article I will show a simple way to use two neural networks of this kind, the Elman and Jordan ones, using the program R.
[Read More...] -
08/10/2016
In this new article in the series on time series with complex dynamics, I will show you a procedure to approximately reconstruct the information of a dynamic system with two or more variables from a single series, i.e. a set of data in a single dimension. What we will get from this unique series is a new one for each of the extra dimensions with which we intend to extend the model.
[Read More...]