<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Free Technical Software</title><description>Summary</description><link>http://software-tecnico-libre.es</link><image><url>http://software-tecnico-libre.es/Images/rss-hdr.jpg</url><title>Free Technical Software</title><link>http://software-tecnico-libre.es</link></image><lastBuildDate>Tue, 01 Mar 2022 09:51:27 GMT</lastBuildDate><item><title>GPU / Open CL vs. CPU performance</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/mandelbrot-gpu-open-cl--cpu</link><description>All massive data processing applications can benefit from the ever-increasing processing capacity of modern computers, which is now affordable for anyone's pocket. I will show in this article a basic performance comparison among various &lt;strong&gt;CPU&lt;/strong&gt; / &lt;strong&gt;GPU&lt;/strong&gt; platforms, based on the well-known &lt;strong&gt;Mandelbrot set&lt;/strong&gt; and its surprising graphical representation.</description><category>CSHARP</category><pubDate>Fri, 25 Feb 2022 00:00:00 GMT</pubDate></item><item><title>Training sparring robot III</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/octopussy-training-robot-3</link><description>This article is the last in the series dedicated to building the &lt;b&gt;Octopussy&lt;/b&gt; martial arts and self-defence training sparring robot. Here, I will explain the use of the software to control the device, which allows you to design a virtually unlimited range of training routines within the robot's features.</description><category>ELECTRONICS</category><pubDate>Thu, 28 Jan 2021 00:00:00 GMT</pubDate></item><item><title>Training sparring robot II</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/octopussy-training-system-2</link><description>This article is the second one on the &lt;b&gt;Octopussy&lt;/b&gt; training sparring robot for self-defence and martial arts. Here, I will explain how to build the electronics of the invention. The task consists of little more than connecting a few wires, although a tin soldering iron would also be convenient to have at hand to finish the job better.</description><category>ELECTRONICS</category><pubDate>Wed, 27 Jan 2021 00:00:00 GMT</pubDate></item><item><title>Training sparring robot I</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/octopussy-training-system-1</link><description>I will show in this series of articles how to build a self-defence and martial arts training robot. I have named &lt;b&gt;Octopussy&lt;/b&gt; to the invention since you can put several limbs to simulate different types of punches and kicks directed to all of the body parts. It is controlled by a computer, an &lt;strong&gt;Arduino&lt;/strong&gt; board, and an application. I also provide the application source code for you to make modifications as you want.</description><category>ELECTRONICS</category><pubDate>Mon, 25 Jan 2021 00:00:00 GMT</pubDate></item><item><title>Chess match database manager VI</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/chessposdb-user-manual-6</link><description>I finish the series dedicated to the &lt;b&gt;ChessPosDB&lt;/b&gt; chess match database manager with this article. In this post, I will explain how to install and configure the database server used with the application, which can be &lt;strong&gt;Oracle&lt;/strong&gt;, &lt;strong&gt;MySQL&lt;/strong&gt;, or &lt;strong&gt;SQL Server&lt;/strong&gt;. Whichever database server you choose, you can install it on the same computer as the application or on another more powerful computer that you can access through your local network.</description><category>CHESS</category><pubDate>Thu, 31 Dec 2020 00:00:00 GMT</pubDate></item><item><title>Chess match database manager V</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/chessposdb-user-manual-5</link><description>This post is the fifth in a series of articles about the &lt;b&gt;ChessPosDB&lt;/b&gt; application, which allows you to store many chess games in different professional database engines and search for them with a wide variety of options. Here, I will show how to query the database with the filters explained in the previous ones. We will also see the chess match editing options, which allow adding comments and new tags.</description><category>CHESS</category><pubDate>Mon, 28 Dec 2020 00:00:00 GMT</pubDate></item><item><title>Chess match database manager IV</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/chessposdb-user-manual-4</link><description>This article is the fourth of a series of articles dedicated to the &lt;b&gt;ChessPosDB&lt;/b&gt; application, a chess game database manager with a powerful search engine. Here, I will finish the section about the search filters by showing the chess match filters. Those filters can include several movement or position filters, which we have already seen in previous posts.</description><category>CHESS</category><pubDate>Thu, 24 Dec 2020 00:00:00 GMT</pubDate></item><item><title>Chess match database manager III</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/chessposdb-user-manual-3</link><description>This post is the third of the series of articles about the &lt;b&gt;ChessPosDB&lt;/b&gt; database manager application. Here you also have a link to the first article in this series, in case you want to start reading from the beginning. In the present article, I will continue commenting on the rest of the movement and position filters that can be applied to find chess games in the database. As you may recall from the previous article, we can combine these filters in multiple ways to build virtually any query that you can think of.</description><category>CHESS</category><pubDate>Mon, 21 Dec 2020 00:00:00 GMT</pubDate></item><item><title>Chess match database manager II</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/chessposdb-user-guide-2</link><description>In this series of articles, I will comment on a chess game database manager, &lt;strong&gt;ChesPosDb&lt;/strong&gt;. In the first article in this series, I explained how to load chess games in the database using PGN files, which you can download from many Internet sites. In this article and the following ones, I will show the different filter types that you can build to search chess matches in the database.</description><category>CHESS</category><pubDate>Thu, 17 Dec 2020 00:00:00 GMT</pubDate></item><item><title>Chess match database manager I</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/chessposdb-user-guide-1</link><description>In this series of articles, I will present an application to manage a chess match database, &lt;strong&gt;ChesPosDb&lt;/strong&gt;. It is not a program that plays chess; it only stores matches, but it allows queries with a large number of options: searching for games in which a series of moves occur, either one after another or separated by several moves, and even look for partially defined positions, no matter in which place on the board the pieces are located.</description><category>CHESS</category><pubDate>Sat, 12 Dec 2020 00:00:00 GMT</pubDate></item><item><title>Time series, RQA and neural networks II</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/rqa-dnn-time-series-ii</link><description>In this second article in the series on combining recurrence quantification analysis (&lt;strong&gt;RQA&lt;/strong&gt;) and &lt;strong&gt;neural networks&lt;/strong&gt; to work with complex &lt;strong&gt;time series&lt;/strong&gt;, we will examine some ideas about possible processing that you can apply to the data and the selection of parameters. We will work using electrocardiographic signals, as mentioned in the previous article.</description><category>R</category><pubDate>Thu, 18 Jul 2019 00:00:00 GMT</pubDate></item><item><title>Time series, RQA and neural networks I</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/rqa-dnn-time-series-1</link><description>In some other articles in this blog, I have already written about complex &lt;strong&gt;time series&lt;/strong&gt;, recurrence quantification analysis (&lt;strong&gt;RQA&lt;/strong&gt;) and &lt;strong&gt;neural networks&lt;/strong&gt;. In this series of articles, I will discuss some points to take into account when combining the use of these two tools to identify patterns in complex series, such as detecting anomalies in electrocardiograms or electroencephalograms.</description><category>R,COMPLEXITY</category><pubDate>Tue, 11 Jun 2019 00:00:00 GMT</pubDate></item><item><title>EDF files of physiological signals</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/edf-file-format</link><description>When we try to learn how to work with &lt;strong&gt;time series&lt;/strong&gt;, it is very useful to have good data sets, and much better if they contain real data. It is difficult to obtain long series, or series presenting interesting and well located and identified patterns, with which we can perform practices. An excellent source of complex &lt;strong&gt;time series&lt;/strong&gt; is our own organism, and everything we can learn by working with them can be extrapolated to any other context.</description><category>R</category><pubDate>Thu, 28 Mar 2019 00:00:00 GMT</pubDate></item><item><title>Neural networks and genetic algorithms III</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/ga-and-neural-networks-3</link><description>With this article I conclude the series dedicated to the application of &lt;strong&gt;genetic algorithms&lt;/strong&gt; to the design of &lt;strong&gt;neural networks&lt;/strong&gt;. I will explain the most relevant code of the sample application given with these articles, mainly the classes dedicated to the genes management and the selection process. You can find more information in the previous articles of the series.</description><category>COMPLEXITY</category><pubDate>Mon, 18 Mar 2019 00:00:00 GMT</pubDate></item><item><title>Neural networks and genetic algorithms II</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/ga-and-neural-networks-2</link><description>In this second article on the application of &lt;strong&gt;evolutionary algorithms&lt;/strong&gt; to the optimization of the design of &lt;strong&gt;neural networks&lt;/strong&gt;, I am going to provide a small sample application that allows you to build and train networks, in addition to using this type of algorithms to find the best configuration for a given data set. The application allows generating artificial test data, and I provide the source code for you to be able to modify it, as you want.</description><category>COMPLEXITY</category><pubDate>Thu, 28 Feb 2019 00:00:00 GMT</pubDate></item><item><title>Neural networks and genetic algorithms I</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/neural-networks-and-genetic-algorithms-1</link><description>When we try to apply a &lt;strong&gt;neural network&lt;/strong&gt; to a given problem, finding the most suitable topology for it can be a tedious trial and error task, as well as end up producing a poorly optimized network. To automate this process, we can draw on &lt;strong&gt;evolutionary algorithms&lt;/strong&gt;, inspired in the natural selection of living organisms, which can greatly facilitate our job.</description><category>COMPLEXITY</category><pubDate>Fri, 22 Feb 2019 00:00:00 GMT</pubDate></item><item><title>The back propagation algorithm</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/backpropagation-algorithm</link><description>One of the most popular algorithms for training multilayer artificial &lt;strong&gt;neural networks&lt;/strong&gt; is the back propagation algorithm, or retro-propagation algorithm. In this article I will try to explain its fundamentals, through a simplified implementation of a neural network that allows testing with different configurations of the network.</description><category>COMPLEXITY</category><pubDate>Sun, 02 Dec 2018 00:00:00 GMT</pubDate></item><item><title>Posture recognition with Kinect V</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/kinect-posture-recognition5</link><description>This article closes the series on posture recognition using the Microsoft &lt;strong&gt;Kinect&lt;/strong&gt; sensor. To finish, I will simply show you the implementation of a basic form that uses the class libraries explained in the previous articles.</description><category>VIDEO</category><pubDate>Mon, 23 Jul 2018 00:00:00 GMT</pubDate></item><item><title>Posture recognition with Kinect IV</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/kinect-postures-4</link><description>We continue with the series about posture recognition with the Microsoft &lt;strong&gt;Kinect&lt;/strong&gt; sensor. This time I will comment the classes responsible of posture normalization of the body in the way commented in the first article, so that we obtain a series of data that constitute a simplified version of the skeleton most appropriate for analysis using pattern recognition techniques.</description><category>VIDEO</category><pubDate>Mon, 04 Jun 2018 00:00:00 GMT</pubDate></item><item><title>Posture recognition with Kinect III</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/kinect-postures-3</link><description>In the previous article of this series I showed the structures, enumerations and classes that the application uses to be independent of the sensor version and the &lt;strong&gt;Kinect&lt;/strong&gt; SDK. In this third article I will show a possible implementation of a class that deals with reading and converting the skeletons using version 2.0 of the SDK, for the &lt;b&gt;Xbox One&lt;/b&gt; sensor.</description><category>VIDEO</category><pubDate>Sun, 13 May 2018 00:00:00 GMT</pubDate></item><item><title>Posture recognition with Kinect II</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/kinect-postures-2</link><description>In this second article in the series about recognition of postures using the Microsoft &lt;strong&gt;Kinect&lt;/strong&gt; sensor I will show generic classes and structs used to isolate the application from the different versions of the SDK. The version of the SDK that we must use depends on the sensor model that we have. In the example code I have used version 2.0, for the &lt;b&gt;Xbox One&lt;/b&gt; sensor.</description><category>VIDEO</category><pubDate>Sat, 05 May 2018 00:00:00 GMT</pubDate></item><item><title>Posture recognition with Kinect I</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/kinect-postures-1</link><description>One of the most interesting features offered by the Microsoft &lt;strong&gt;Kinect&lt;/strong&gt; sensor is human bodies detection, which allows us to develop applications based on the different positions of the user's body and that can be handled remotely using those positions. To do this, it provides a series of points that represent the different joints of the body.</description><category>VIDEO</category><pubDate>Sun, 22 Apr 2018 00:00:00 GMT</pubDate></item><item><title>Homemade surveillance using Kinect</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/kinect-surveillance</link><description>In previous articles I presented a home video surveillance system, the &lt;b&gt;ThiefWatcher&lt;/b&gt; application. It is an extensible application that works combining several protocols, such as cameras, triggers, communication channels and storage systems. In this article I will show how to implement some of these protocols using the Microsoft &lt;strong&gt;Kinect&lt;/strong&gt; sensor.</description><category>VIDEO</category><pubDate>Sun, 11 Mar 2018 00:00:00 GMT</pubDate></item><item><title>Basic image capturing with Kinect</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/kinect-image-capturing</link><description>The Microsoft &lt;strong&gt;Kinect&lt;/strong&gt; sensor is a very powerful device that provides image capturing, distance measurement and body postures and facial expressions recognition services, which makes it suitable for infinity of applications. In this introductory article I will show how to use it to capture different types of images.</description><category>VIDEO</category><pubDate>Sun, 18 Feb 2018 00:00:00 GMT</pubDate></item><item><title>Solving a Sudoku as an optimization problem</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/sudoku-solving</link><description>Solving any Sudoku is a problem that can seem complicated if brute force methods are used, testing each and every one of the possible combinations. But, with the right approach, any of these problems can be solved in a few milliseconds. In this article, I will show you a way to achieve it through an optimized method.</description><category>CSHARP</category><pubDate>Sun, 10 Dec 2017 00:00:00 GMT</pubDate></item><item><title>Multitasking V, asynchronous programming with async and await</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/async-await</link><description>To conclude this series about programming &lt;strong&gt;multitasking&lt;/strong&gt; applications, I will show the use of a simple mechanism that allows implementing asynchronous methods whose waiting times are used for the execution of other parallel tasks or events triggered by user interface controls.</description><category>CSHARP</category><pubDate>Sat, 02 Dec 2017 00:00:00 GMT</pubDate></item><item><title>Multitasking IV, interacting with Windows UI</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/interacting-with-windows-ui</link><description>So far I have shown examples of &lt;strong&gt;multitasking&lt;/strong&gt; that block the application until they finished. This is not very useful in practice. Usually, we want that the user can continue interacting with the application while the tasks are running in the background; we could want also the threads to interact with the user interface.</description><category>CSHARP</category><pubDate>Sat, 18 Nov 2017 00:00:00 GMT</pubDate></item><item><title>Multitasking III, concurrent access</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/multitasking3-concurrent-access</link><description>In &lt;strong&gt;multitasking&lt;/strong&gt; applications there is a problem when concurrent access to resources, such as files or memory, when you launch several tasks at once. Two tasks cannot write at the same time in the same memory address, it is required to make sure that some data is not modified while we are reading them or things like that. In this article I will review the tools provided by &lt;strong&gt;.NET Framework&lt;/strong&gt; to deal with these issues.</description><category>CSHARP</category><pubDate>Sun, 05 Nov 2017 00:00:00 GMT</pubDate></item><item><title>Multitasking II, Synchronizing Tasks</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/synchronizing-tasks</link><description>After reviewing the classes to implement the basic &lt;strong&gt;multitasking&lt;/strong&gt;, in this article I will review different mechanisms that allow a synchronization between various tasks, all of them defined in the &lt;b&gt;System.Threading&lt;/b&gt; namespace, with which you can organize the work when the Interactions between tasks require a particular order.</description><category>CSHARP</category><pubDate>Tue, 19 Sep 2017 00:00:00 GMT</pubDate></item><item><title>Multitasking I, basic classes</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/multitasking1</link><description>With this article begins a series in which I will review the basic mechanisms provided by the &lt;strong&gt;.NET Framework&lt;/strong&gt; for the implementation of &lt;strong&gt;multitasking&lt;/strong&gt; applications. First of all I will show the basic classes that allow you to launch multiple processes and make a performance comparison between them.</description><category>CSHARP</category><pubDate>Mon, 04 Sep 2017 00:00:00 GMT</pubDate></item><item><title>The importance of having a good log</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/importance-of-having-good-log</link><description>We often neglect, due to lack of time, inexperience or simple laziness, to provide our developments with good mechanisms to trace the activity, which results in a substantial increase in the difficulty and time needed to determine the causes of certain errors that aren't detected in the moment they happen, but when the state of the system may have changed substantially.</description><category>CSHARP</category><pubDate>Fri, 14 Jul 2017 00:00:00 GMT</pubDate></item><item><title>Cellular automata, WInCA application VIII</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/cellular-automata-winca8</link><description>This is the last article of the series dedicated to the &lt;strong&gt;WinCA&lt;/strong&gt; application. This application allows the edition and to execution of &lt;strong&gt;cellular automata&lt;/strong&gt;. To finish, I will review the code that implements the automaton itself, using all the classes and interfaces explained in the previous articles.</description><category>APPLICATIONS,COMPLEXITY</category><pubDate>Fri, 23 Jun 2017 00:00:00 GMT</pubDate></item><item><title>Cellular automata, WInCA application VII</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/cellular-automata-winca-7</link><description>I continue explaining the basics of the &lt;srong&gt;WinCA&lt;/strong&gt; application code, dedicated to the designing and execution of &lt;strong&gt;cellular automata&lt;/strong&gt;. This time I will tell you about the implementation of the cells and other auxiliary classes needed to build and execute automata.</description><category>APPLICATIONS,COMPLEXITY</category><pubDate>Fri, 02 Jun 2017 00:00:00 GMT</pubDate></item><item><title>Cellular automata, WinCA application VI</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/cellular-automata-winca-6</link><description>We continue with the series dedicated to &lt;strong&gt;cellular automata&lt;/strong&gt; and the &lt;strong&gt;WinCA&lt;/strong&gt; application, dedicated to build and executing them. In this article I will explain the code related to the expression system that allows establishing the conditions to change from one state to another.</description><category>APPLICATIONS,COMPLEXITY</category><pubDate>Fri, 26 May 2017 00:00:00 GMT</pubDate></item><item><title>Cellular automata, WinCA application V</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/cellular-automata-winca-5</link><description>I continue to comment on the source code of the &lt;strong&gt;WinCA&lt;/strong&gt; program, dedicated to &lt;strong&gt;cellular automata&lt;/strong&gt;. In this article I will explain the interfaces and classes with which cell states are implemented and their edition. You can use these interfaces and classes as a basis to extend the application features.</description><category>APPLICATIONS,COMPLEXITY</category><pubDate>Fri, 19 May 2017 00:00:00 GMT</pubDate></item><item><title>Cellular automata, WinCA application IV</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/cellular-automata-winca-4</link><description>Once reviewed the operation of the &lt;strong&gt;WinCA&lt;/strong&gt; application, dedicated to &lt;strong&gt;cellular automata&lt;/strong&gt;, let's see how the source code is organized. In this article I will explain the properties of cell states, and how they can be extended to add new functionalities by implementing new classes with the corresponding interfaces.</description><category>APPLICATIONS,COMPLEXITY</category><pubDate>Fri, 12 May 2017 00:00:00 GMT</pubDate></item><item><title>Cellular automata, WinCA application III</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/cellular-automata-winca-3</link><description>In this article, third of the series, I continue to explain the operation of the &lt;strong&gt;WinCA&lt;/strong&gt; application, devoted to the construction and execution of &lt;strong&gt;cellular automata&lt;/strong&gt;. This time I will show the language used to define the transitions between the different states of the automaton cells.</description><category>APPLICATIONS,COMPLEXITY</category><pubDate>Fri, 05 May 2017 00:00:00 GMT</pubDate></item><item><title>Cellular automata, WinCA application II</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/cellular-automata-winca-2</link><description>This is the second article in the series about the &lt;strong&gt;WinCA&lt;/strong&gt; application, dedicated to the construction and execution of &lt;strong&gt;cellular automata&lt;/strong&gt;. In this article I will show how to design the diferent states that can have the automaton cells, and the properties that can be assigned to them, using the application editors.</description><category>APPLICATIONS,COMPLEXITY</category><pubDate>Fri, 28 Apr 2017 00:00:00 GMT</pubDate></item><item><title>Cellular automata, WinCA application I</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/winca1</link><description>&lt;strong&gt;Cellular automata&lt;/strong&gt; are mathematical models used to study the evolution of complex &lt;strong&gt;dynamic systems&lt;/strong&gt; by simulating the interactions over time of a large number of elements, called cells. In this series of articles I will present the &lt;strong&gt;WinCA&lt;/strong&gt; application, with which you can build and run this type of objects.</description><category>APPLICATIONS,COMPLEXITY</category><pubDate>Fri, 21 Apr 2017 00:00:00 GMT</pubDate></item><item><title>Using the Dropbox API from a Xamarin Forms PCL App</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/pcl-dropbox-api</link><description>&lt;strong&gt;Dropbox&lt;/strong&gt; is one of the most popular applications for sharing and storing files in the cloud. In a desktop computer it is very easy to use it, since it is integrated into the file system and the folders are just like any other folder in the system, so that they can be managed using the usual file management API. From a mobile device, however, it is necessary to use the &lt;strong&gt;Dropbox&lt;/strong&gt; API to manage and access the files. In this article I will show you how to use it in a PCL &lt;strong&gt;Xamarin&lt;/strong&gt; Forms application.</description><category>CSHARP</category><pubDate>Fri, 24 Mar 2017 00:00:00 GMT</pubDate></item><item><title>ThiefWatcher, a homemade indoor surveillance system III</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/thiefwatcher3</link><description>With this article I finish the series dedicated to the &lt;strong&gt;ThiefWatcher&lt;/strong&gt; solution, a homemade &lt;strong&gt;video&lt;/strong&gt; surveillance system that is triggered when some intruder enter your home, alerts you by calling to the mobile phone and allows you to obtain at the moment pictures that you can use to help the police quickly identify the thieves and increase the chances of quickly recovering your stolen belongings. In this last article I will explain the &lt;strong&gt;App&lt;/strong&gt; that is used as a remote client of the system.</description><category>VIDEO,CSHARP</category><pubDate>Fri, 17 Mar 2017 00:00:00 GMT</pubDate></item><item><title>ThiefWatcher, a homemade indoor surveillance system II</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/thiefwatcher2</link><description>In this second article in the series on the &lt;strong&gt;ThiefWatcher&lt;/strong&gt; homemade &lt;strong&gt;video&lt;/strong&gt; surveillance system, I will explain the different protocols that the application uses to interact with its different components, which can be replaced by different new ones allowing a large number of combinations. There is a protocol to communicate with the camera, another to trigger the system, another to alerting the user remotely, and, finally, a protocol to exchange photographs and messages to manage the server from client devices.</description><category>VIDEO,CSHARP</category><pubDate>Fri, 10 Mar 2017 00:00:00 GMT</pubDate></item><item><title>ThiefWatcher, a homemade indoor surveillance system I</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/thiefwatcher1</link><description>In this series of articles I will do a bit of DIY to build a video surveillance and alarm system against home thefts, using relatively cheap materials and a program that will notify to your mobile phone in case of detecting intruders and allow you to take photographs of them to be able to immediately notify the police and provide them those photos. Rapid identification of thieves can be crucial for you to recover all our possessions quickly.</description><category>VIDEO,CSHARP</category><pubDate>Fri, 03 Mar 2017 00:00:00 GMT</pubDate></item><item><title>Create a simple WCF connector for DBTextFinder</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/dbtextfinder-wcf-1</link><description>&lt;strong&gt;WCF&lt;/strong&gt; (Windows Communication Foundation) is a framework for creating distributed applications whose components communicate with each other through services, using a wide range of network protocols. In this article I will comment on the fundamentals of creating and configuring one of these services through a data connector for the &lt;strong&gt;DBTextFinder&lt;/strong&gt; application, a program to search for texts in a &lt;strong&gt;database&lt;/strong&gt; that can be extended to connect to any data management system.</description><category>SOURCE CODE,CSHARP</category><pubDate>Fri, 03 Feb 2017 00:00:00 GMT</pubDate></item><item><title>Extending WinRQA II, series of recurrence measures</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/extending-winrqa-2</link><description>&lt;b&gt;WInRQA&lt;/b&gt; is an application dedicated to &lt;strong&gt;recurrence plots&lt;/strong&gt;, a tool that is used in the analysis of &lt;strong&gt;recurrence&lt;/strong&gt; of complex &lt;strong&gt;time series&lt;/strong&gt;. In this article I will introduce a new tool that I have added to the program. Until now, the measures of quantification of recurrence (&lt;strong&gt;RQM&lt;/strong&gt;) were obtained only from a static portion of the original series. With the new tool, we can obtain a series of measures by moving a window along the entire original series and calculating the corresponding measurements to each of these windows.</description><category>APPLICATIONS,COMPLEXITY,CSHARP</category><pubDate>Fri, 27 Jan 2017 00:00:00 GMT</pubDate></item><item><title>Drawing fractals with Iterated Function Systems (IFS)</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/iterated-function-systems-drawer</link><description>The &lt;b&gt;Iterated function systems&lt;/b&gt; (&lt;strong&gt;IFS&lt;/strong&gt;) are a simple mathematical tool for constructing &lt;strong&gt;fractal&lt;/strong&gt; sets through a series of contractive affine applications. This method was developed by &lt;b&gt;M.F. Barnsley&lt;/b&gt; in 1985. In particular, it is useful to obtain a self-similar &lt;strong&gt;fractal&lt;/strong&gt; based on iteratively applying the system of functions to any set, until arriving at a good approximation of the &lt;strong&gt;fractal&lt;/strong&gt; set that constitutes the &lt;strong&gt;attractor&lt;/strong&gt; of the system.</description><category>COMPLEXITY</category><pubDate>Fri, 20 Jan 2017 00:00:00 GMT</pubDate></item><item><title>DataGridView with formula support</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/formula-datagridview</link><description>In this article I will present a custom &lt;strong&gt;DataGridView&lt;/strong&gt; control that allows using formulas composed by arithmetic expressions and references to the different cells of the control. In addition to the class library with the control, I have prepared a small application to show how to use the different features it offers.</description><category>SOURCE CODE,CSHARP</category><pubDate>Fri, 13 Jan 2017 00:00:00 GMT</pubDate></item><item><title>Universal object compiler using BNF rules II</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/bnfup-object-compiler-2</link><description>&lt;b&gt;BNFUP&lt;/b&gt; is a class library that implements an object &lt;strong&gt;compiler&lt;/strong&gt; from the definition of a language using &lt;strong&gt;BNF&lt;/strong&gt; rules. It also provides rule editing services. In this article I continue showing how to use the editor to compile and test your own objects using the language you have defined for that. I will also show you three examples of implementation.</description><category>SOURCE CODE,CSHARP</category><pubDate>Fri, 06 Jan 2017 00:00:00 GMT</pubDate></item><item><title>Universal object compiler using BNF rules I</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/bnfup-object-compiler</link><description>In this series of articles I will show a class library that implements a &lt;strong&gt;compiler&lt;/strong&gt; that uses any language defined by &lt;strong&gt;BNF&lt;/strong&gt; rules and that generates objects from a user-written class library, which must implement a simple interface so that the compiler can &lt;strong&gt;construct&lt;/strong&gt; and initialize them from the source code.</description><category>SOURCE CODE,CSHARP</category><pubDate>Thu, 05 Jan 2017 00:00:00 GMT</pubDate></item><item><title>Accessing the source code of database executable objects</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/acessing-database-source-code</link><description>All major &lt;strong&gt;database&lt;/strong&gt; servers allow the creation of executable objects, such as functions or stored procedures, using some type of &lt;strong&gt;SQL&lt;/strong&gt; extension language, such as &lt;strong&gt;PLSQL&lt;/strong&gt; in &lt;strong&gt;Oracle&lt;/strong&gt; or &lt;strong&gt;T-SQL&lt;/strong&gt; in &lt;strong&gt;SQL Server&lt;/strong&gt;, so that we can create applications to access and manipulate data in a more sophisticated way. In this article I will show how we can access the source code of these objects from any program using the catalog views of three of the most popular &lt;b&gt;RDBMS&lt;/b&gt;, &lt;strong&gt;MySQL&lt;/strong&gt;, &lt;strong&gt;Oracle&lt;/strong&gt; and &lt;strong&gt;SQL Server&lt;/strong&gt;.</description><category>DATA ACCESS</category><pubDate>Fri, 16 Dec 2016 00:00:00 GMT</pubDate></item><item><title>How to integrate CLR code in SQL Server II</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/integrate-clr-sqlserver-2</link><description>In this article I will continue with the integration of &lt;strong&gt;CLR&lt;/strong&gt; objects into a &lt;strong&gt;SQL Server&lt;/strong&gt; &lt;strong&gt;database&lt;/strong&gt; by showing how to implement &lt;b&gt;triggers&lt;/b&gt; and create user-defined &lt;b&gt;data types&lt;/b&gt;. It is a simple way to extend the functionality of our &lt;strong&gt;database&lt;/strong&gt; applications with all the power provided by the &lt;strong&gt;CLR&lt;/strong&gt; of the &lt;strong&gt;.NET framework&lt;/strong&gt;.</description><category>DATA ACCESS</category><pubDate>Fri, 09 Dec 2016 00:00:00 GMT</pubDate></item><item><title>How to integrate CLR code in SQL Server I</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/integrate-clr-with-sql-server-1</link><description>In this article I will show you how you can easily extend the &lt;strong&gt;SQL&lt;/strong&gt; of your &lt;strong&gt;SQL Server&lt;/strong&gt; servers with functions and data types of the &lt;strong&gt;.NET Framework&lt;/strong&gt; &lt;strong&gt;CLR&lt;/strong&gt; (Common Language Runtime). To do this, I will implement a function with scalar return value, another function with table return value, a pair of aggregation functions and a stored procedure.</description><category>DATA ACCESS</category><pubDate>Fri, 02 Dec 2016 00:00:00 GMT</pubDate></item><item><title>Extending WinRQA I, estimating delay and embedding dimension</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/winrqa-extension-1</link><description>&lt;strong&gt;WInRQA&lt;/strong&gt; is an application dedicated to &lt;strong&gt;recurrence plots&lt;/strong&gt;, a tool that is used in the analysis of recurrence of complex &lt;strong&gt;time series&lt;/strong&gt;. In this article I will present the first extension of the application, which mainly consists of a series of tool windows that will help you to make estimates on what may be the most appropriate delay to try to reconstruct the &lt;strong&gt;phase space&lt;/strong&gt; of the system &lt;strong&gt;attractor&lt;/strong&gt; and select the correct &lt;strong&gt;embedding dimension&lt;/strong&gt;.</description><category>APPLICATIONS,COMPLEXITY,CSHARP</category><pubDate>Sat, 26 Nov 2016 00:00:00 GMT</pubDate></item><item><title>Beyond chaos, randomness</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/beyond-chaos</link><description>In this article I will show how, through a very simple and totally &lt;strong&gt;deterministic&lt;/strong&gt; process, we can move from a &lt;strong&gt;stationary&lt;/strong&gt; system to a completely &lt;strong&gt;random&lt;/strong&gt; one, going through &lt;strong&gt;periodic&lt;/strong&gt; and &lt;strong&gt;chaotic&lt;/strong&gt; dynamics. For this, I will generate several &lt;strong&gt;time series&lt;/strong&gt; with these characteristics using the &lt;strong&gt;program R&lt;/strong&gt; and several packages that can help us in the analysis of them.</description><category>COMPLEXITY,R</category><pubDate>Fri, 18 Nov 2016 00:00:00 GMT</pubDate></item><item><title>WinRQA, a C# application to draw recurrence plots</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/winrqa-application</link><description>A &lt;strong&gt;recurrence plot&lt;/strong&gt; is a graphical tool used in the study of complex &lt;strong&gt;time series&lt;/strong&gt;. Along with the plot we can also calculate a series of measures that allow us to perform a recurrence quantification analysis, or &lt;strong&gt;RQA&lt;/strong&gt;. In this article I will present the &lt;strong&gt;WinRQA&lt;/strong&gt; application, a tool to work with &lt;strong&gt;recurrence plots&lt;/strong&gt; and &lt;strong&gt;RQA measures&lt;/strong&gt; in a &lt;b&gt;Windows&lt;/b&gt; environment.</description><category>APPLICATIONS,COMPLEXITY,CSHARP</category><pubDate>Fri, 11 Nov 2016 00:00:00 GMT</pubDate></item><item><title>Stepper motor controller with Arduino</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/stepper-motor-arduino</link><description>A &lt;strong&gt;stepper&lt;/strong&gt; motor is a kind of motor that, instead of rotating continuously in one direction, allows rotate in very small steps and stop and change direction very quickly, without problems of inertia. This makes these engines very suitable for mounting them in devices which perform movements that required high precision. In this article I will show how to build a simple controller to handle one of these motors through the &lt;strong&gt;Arduino&lt;/strong&gt; board, along with a sample program written in &lt;strong&gt;CSharp&lt;/strong&gt; that allows you to operate the motor from the computer where the plate is connected.</description><category>ELECTRONICS</category><pubDate>Tue, 01 Nov 2016 00:00:00 GMT</pubDate></item><item><title>Implementing correspondence analysis in C#</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/correspondence-analysis-csharp</link><description>The &lt;strong&gt;correspondence analysis&lt;/strong&gt; is a statistical technique that allows us to study relationships between &lt;b&gt;categorical&lt;/b&gt; data through optimal scaling and orthogonal projection in two or three dimensions of &lt;strong&gt;contingency tables&lt;/strong&gt;. Its implementation is relatively simple, and in this article I will show an example using the &lt;strong&gt;csharp&lt;/strong&gt; language. In addition, the sample program allows you to draw simple graphics with the resulting data.</description><category>CSHARP</category><pubDate>Fri, 28 Oct 2016 00:00:00 GMT</pubDate></item><item><title>PISA Data Analytics, Correspondece Analysis</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/correspondence-analysis-pisa</link><description>The &lt;strong&gt;PISA database&lt;/strong&gt; contains, in addition to the scores of students, a lot of demographic, socioeconomic and cultural data about them, collected through a series of questionnaires, that allow contextualize the academic results and make studies with a great number of variables. Most of these data are &lt;b&gt;categorical&lt;/b&gt;, making the &lt;strong&gt;correspondence analysis&lt;/strong&gt; a particularly appropriate tool to work with them. In this article I will show you how to easily perform this analysis using the &lt;b&gt;ca&lt;/b&gt; package of the &lt;strong&gt;R program&lt;/strong&gt;.</description><category>R</category><pubDate>Fri, 21 Oct 2016 00:00:00 GMT</pubDate></item><item><title>Complex Time Series VI, recurrence plots</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/complex-time-series-vi</link><description>To conclude this series on complex &lt;strong&gt;time series&lt;/strong&gt; and their characterization using graphical tools I will show you a tool called &lt;strong&gt;recurrence plot&lt;/strong&gt;, which allows to obtain some measures used in the &lt;strong&gt;recurrence quantification analysis&lt;/strong&gt;, or &lt;strong&gt;RQA&lt;/strong&gt; for its acronym in English. The &lt;strong&gt;recurrence&lt;/strong&gt; is a characteristic property of deterministic &lt;strong&gt;dynamical systems&lt;/strong&gt;, and consists of that two or more states of the system are arbitrarily close after a certain period of time.</description><category>COMPLEXITY</category><pubDate>Wed, 12 Oct 2016 00:00:00 GMT</pubDate></item><item><title>Complex Time Series V, autocorrelation and extended dimension</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/complex-time-series-5</link><description>In this new article in the series on &lt;strong&gt;time series&lt;/strong&gt; with &lt;strong&gt;complex dynamics&lt;/strong&gt;, I will show you a procedure to approximately reconstruct the information of a &lt;strong&gt;dynamic system&lt;/strong&gt; 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.</description><category>COMPLEXITY</category><pubDate>Sat, 08 Oct 2016 00:00:00 GMT</pubDate></item><item><title>Recurrent neural networks and time series</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/recurrent-neural-network-and-time-series</link><description>The &lt;strong&gt;recurrent neural networks&lt;/strong&gt; are a very appropriate tool for modeling &lt;strong&gt;time series&lt;/strong&gt;. 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 &lt;strong&gt;neural networks&lt;/strong&gt; of this kind, the &lt;strong&gt;Elman&lt;/strong&gt; and &lt;strong&gt;Jordan&lt;/strong&gt; ones, using the &lt;strong&gt;program R&lt;/strong&gt;.</description><category>COMPLEXITY,R</category><pubDate>Sun, 02 Oct 2016 00:00:00 GMT</pubDate></item><item><title>Complex Time Series IV, power spectrum and distribution</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/complex-time-series-4</link><description>In this new article of the series dedicated to the graphic characterization of complex &lt;strong&gt;time series&lt;/strong&gt; I will talk about two other graphical tools that can be useful, the &lt;strong&gt;power spectrum&lt;/strong&gt; of the signal, which will be obtained through the &lt;strong&gt;Fourier transform&lt;/strong&gt;, 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.</description><category>COMPLEXITY</category><pubDate>Sat, 24 Sep 2016 00:00:00 GMT</pubDate></item><item><title>Complex Time Series III, Phase diagrams</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/complex-time-series-3</link><description>In this new article in the series on graphic characterization of &lt;strong&gt;time series&lt;/strong&gt; from &lt;strong&gt;dynamical systems&lt;/strong&gt; with &lt;strong&gt;chaotic dynamics&lt;/strong&gt;, I will talk about a way to represent such systems in the domain of space, independently of time, the &lt;strong&gt;phase diagram&lt;/strong&gt;. With this type of diagram, you can see the &lt;strong&gt;attractors&lt;/strong&gt; of the system. An &lt;strong&gt;attractor&lt;/strong&gt; 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.</description><category>COMPLEXITY</category><pubDate>Sat, 17 Sep 2016 00:00:00 GMT</pubDate></item><item><title>Complex Time Series II, Web diagrams</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/complex-time-series-II</link><description>I continue the series on graphic characterization of the &lt;strong&gt;complexity&lt;/strong&gt; in &lt;strong&gt;time series&lt;/strong&gt; using the helper application &lt;b&gt;GraphStudy&lt;/b&gt;. 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 &lt;strong&gt;chaotic dynamics&lt;/strong&gt;, the &lt;strong&gt;web diagram&lt;/strong&gt;.</description><category>COMPLEXITY</category><pubDate>Sat, 10 Sep 2016 00:00:00 GMT</pubDate></item><item><title>Complex Time Series I, Basics</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/complex-time-series-I</link><description>Many of the data sets with which we usually work are in the form of &lt;strong&gt;time series&lt;/strong&gt;. A time series can be seen as the evolution of a &lt;strong&gt;dynamic system&lt;/strong&gt;, characterized by some &lt;b&gt;variables&lt;/b&gt; and &lt;b&gt;parameters&lt;/b&gt;. Depending on the type of dynamic of the system, the series may be &lt;b&gt;stationary&lt;/b&gt;, &lt;b&gt;periodic&lt;/b&gt;, &lt;b&gt;quasiperiodic&lt;/b&gt;, &lt;b&gt;chaotic&lt;/b&gt; or &lt;b&gt;random&lt;/b&gt;. In this series of articles, I will focus on the characterization of &lt;strong&gt;chaotic dynamics&lt;/strong&gt;, which is presented by &lt;strong&gt;complex systems&lt;/strong&gt;, by using graphical methods.</description><category>COMPLEXITY</category><pubDate>Fri, 02 Sep 2016 00:00:00 GMT</pubDate></item><item><title>First Order Logic Tableaux</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/tableaux-first-order-logic</link><description>The &lt;strong&gt;Tableaux&lt;/strong&gt; 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 &lt;strong&gt;predicate logic Tableaux&lt;/strong&gt;. In this article I will extend the program to the &lt;strong&gt;first-order logic&lt;/strong&gt;, which has much more expressive capacity than predicate logic, although this makes also automatic calculation more difficult.</description><category>SOURCE CODE,CSHARP</category><pubDate>Fri, 19 Aug 2016 00:00:00 GMT</pubDate></item><item><title>Logical calculation with Tableaux</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/tableaux</link><description>The &lt;strong&gt;Tableaux&lt;/strong&gt; is a logical calculus tool that is very useful to demonstrate a &lt;b&gt;conclusion&lt;/b&gt; from a set of &lt;b&gt;premises&lt;/b&gt;, find counterexamples or models of a set of logical formulas or demonstrate that a formula is a &lt;b&gt;tautology&lt;/b&gt;, i.e., that is true in all possible cases. They can be used in &lt;strong&gt;artificial intelligence&lt;/strong&gt; as the basis for implementing automated theorem proving.</description><category>SOURCE CODE,CSHARP</category><pubDate>Sun, 31 Jul 2016 00:00:00 GMT</pubDate></item><item><title>Maximize or minimize a function using the Simplex method</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/simplex-algorithm</link><description>There is a very common problem in &lt;b&gt;linear programming&lt;/b&gt; 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 &lt;b&gt;George Dantzig&lt;/b&gt;, called &lt;strong&gt;Simplex&lt;/strong&gt;, which allows perform such calculations in a simple and effective way.</description><category>SOURCE CODE,CSHARP</category><pubDate>Sat, 23 Jul 2016 00:00:00 GMT</pubDate></item><item><title>Bidirectional motor controller with Arduino</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/bidirectional-motor-controller</link><description>The &lt;strong&gt;Arduino&lt;/strong&gt; boards, with lots of analog and digital inputs and outputs, allow us to control electronic devices from a computer through an &lt;b&gt;USB&lt;/b&gt; interface with a very simple programming using a language similar to &lt;b&gt;C&lt;/b&gt;. There are lots of prefabricated modules for controlling motors, relays and all kinds of sensors, but, if you like &lt;strong&gt;electronics&lt;/strong&gt;, like me, you can design and connect your own analog or digital circuits.</description><category>ELECTRONICS</category><pubDate>Sat, 16 Jul 2016 00:00:00 GMT</pubDate></item><item><title>Printing Bar Codes</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/printing-barcodes</link><description>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 &lt;strong&gt;csharp&lt;/strong&gt; to encode them.</description><category>CSHARP</category><pubDate>Sat, 09 Jul 2016 00:00:00 GMT</pubDate></item><item><title>Axis IP cameras with VAPIX protocol</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/vapix-ip-camera-protocol</link><description>&lt;strong&gt;Axis&lt;/strong&gt; is a Swedish brand, one of the world leaders in the video surveillance &lt;strong&gt;IP cams&lt;/strong&gt; market, which has an extensive catalog of camera models that cover virtually any need.  All its products have a common access protocol via &lt;strong&gt;HTTP&lt;/strong&gt;, the &lt;strong&gt;VAPIX&lt;/strong&gt; protocol, based on &lt;strong&gt;CGI&lt;/strong&gt; commands, which makes it especially interesting to know.</description><category>SOURCE CODE,VIDEO</category><pubDate>Sun, 03 Jul 2016 00:00:00 GMT</pubDate></item><item><title>Database design tips</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/general-database-tips</link><description>When you design a &lt;strong&gt;database&lt;/strong&gt;, 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.</description><category>DATA ACCESS</category><pubDate>Sun, 26 Jun 2016 00:00:00 GMT</pubDate></item><item><title>How to copy from a DataGridView to Excel</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/copy-to-excel-from-a-datagridview</link><description>When multiple rows are selected in a &lt;strong&gt;DataGridView&lt;/strong&gt; control and &lt;b&gt;Ctrl+C&lt;/b&gt; 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 &lt;strong&gt;Excel&lt;/strong&gt; 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.</description><category>CSHARP</category><pubDate>Sat, 25 Jun 2016 00:00:00 GMT</pubDate></item><item><title>How to build an expressions analyzer, implementation II</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/build-a-parser-implementation2</link><description>In the previous article in this series I began to show how to implement an arithmetic &lt;b&gt;expression analyzer&lt;/b&gt;, or &lt;strong&gt;parser&lt;/strong&gt;, from the &lt;b&gt;grammar&lt;/b&gt; rules in &lt;strong&gt;BNF&lt;/strong&gt; notation, with classes which extract &lt;b&gt;numbers&lt;/b&gt;, &lt;b&gt;variables&lt;/b&gt; and &lt;b&gt;constants&lt;/b&gt;. 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 &lt;strong&gt;compiler&lt;/strong&gt;.</description><category>CSHARP</category><pubDate>Sat, 18 Jun 2016 00:00:00 GMT</pubDate></item><item><title>How to build an expressions analyzer, implementation I</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/how-to-build-a-parser-implementation1</link><description>In the previous article in this series I reviewed the main issues about the design of the &lt;b&gt;grammar&lt;/b&gt; to build an &lt;b&gt;analyzer&lt;/b&gt;, or &lt;strong&gt;parser&lt;/strong&gt;, for arithmetic expressions. In this article I will show the first part of its implementation from the &lt;strong&gt;BNF&lt;/strong&gt; &lt;b&gt;grammar&lt;/b&gt; 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.</description><category>CSHARP</category><pubDate>Fri, 17 Jun 2016 00:00:00 GMT</pubDate></item><item><title>How to build an expressions analyzer, grammar</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/expressions-parser-grammar</link><description>When we are working with mathematical functions, it is very convenient to have a &lt;strong&gt;parser&lt;/strong&gt; 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.</description><category>CSHARP</category><pubDate>Tue, 14 Jun 2016 00:00:00 GMT</pubDate></item><item><title>The PropertyGrid Control, Type converters</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/propertygrid-control-type-converters</link><description>To conclude this series on the &lt;strong&gt;PropertyGrid&lt;/strong&gt; &lt;strong&gt;control&lt;/strong&gt; I will show you how to use different type converters derived from the &lt;b&gt;TypeConverter&lt;/b&gt; class to customize how they are displayed or edited the properties. The &lt;strong&gt;.NET framework&lt;/strong&gt; provides converters for many types of properties, but you can also easily implement your own converters by deriving a class from &lt;b&gt;TypeConverter&lt;/b&gt; or a specialized converter and overloading a few functions.</description><category>CSHARP</category><pubDate>Fri, 10 Jun 2016 00:00:00 GMT</pubDate></item><item><title>The PropertyGrid Control, events and custom editors</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/propertygrid-events-editors</link><description>In the previous article in this series I did show how to use the basic features of the &lt;strong&gt;PropertyGrid&lt;/strong&gt; &lt;strong&gt;control&lt;/strong&gt; 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 &lt;strong&gt;control&lt;/strong&gt; 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.</description><category>CSHARP</category><pubDate>Sat, 04 Jun 2016 00:00:00 GMT</pubDate></item><item><title>The PropertyGrid Control, basics</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/control-propertygrid-basics</link><description>One of the &lt;strong&gt;GUI&lt;/strong&gt; (graphic user interface) controls more versatile that the &lt;strong&gt;.NET framework&lt;/strong&gt; offers is the &lt;strong&gt;PropertyGrid&lt;/strong&gt;. 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 &lt;strong&gt;control&lt;/strong&gt; and its main features, starting with this article on its basic use.</description><category>CSHARP</category><pubDate>Sat, 28 May 2016 00:00:00 GMT</pubDate></item><item><title>IP Camera NetWave CGI protocol</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/netwave-camera-protocol</link><description>Many of the network &lt;strong&gt;IP cameras&lt;/strong&gt; that can be found on the market use the &lt;strong&gt;Netwave&lt;/strong&gt; protocol, based on CGI commands to obtain &lt;strong&gt;video&lt;/strong&gt; images through an internal &lt;strong&gt;http&lt;/strong&gt; server. In this article I will show how to build a simple application to control these cameras, which are typically used for surveillance and can make scan motions in addition to providing &lt;strong&gt;video&lt;/strong&gt; images.</description><category>SOURCE CODE,VIDEO</category><pubDate>Sat, 14 May 2016 00:00:00 GMT</pubDate></item><item><title>A basic video capture application using DirectShow</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/directshow-basic-programming</link><description>In the previous article in this series, I did a summary of the basic components of &lt;strong&gt;DirectShow&lt;/strong&gt;: filters, filter graphs and pins to connect the elements together, and how we can identify them using the &lt;b&gt;GraphEdit&lt;/b&gt; tool of the SDK. In this article I will show how to build a "simple" application to capture and playback &lt;strong&gt;video&lt;/strong&gt; using the interfaces provided in &lt;strong&gt;DirectShow&lt;/strong&gt;, a subset of the &lt;strong&gt;COM&lt;/strong&gt; distributed object model from Microsoft.</description><category>SOURCE CODE,VIDEO</category><pubDate>Thu, 05 May 2016 00:00:00 GMT</pubDate></item><item><title>Basic concepts in DirectShow programming</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/basic-directshow-concpets</link><description>Currently there are a lot of &lt;strong&gt;video&lt;/strong&gt; capture devices commercially available; anyone can buy a digital camera or a &lt;strong&gt;webcam&lt;/strong&gt; at a reasonable price. All of these devices can be easily controlled from a program developed by ourselves using Microsoft &lt;strong&gt;DirectShow&lt;/strong&gt;. DirectShow is a set of interfaces that provide a generic API with which you can capture and play audio and video regardless of the brand or model of camera you are using. It also allows recording and playback of files in any format.</description><category>VIDEO</category><pubDate>Sat, 30 Apr 2016 00:00:00 GMT</pubDate></item><item><title>Random numbers generation</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/random-numbers-generation</link><description>In many applications it is necessary to generate &lt;strong&gt;random numbers&lt;/strong&gt;. To do so, the &lt;strong&gt;.NET framework&lt;/strong&gt; provides the Random class, which can generate uniformly distributed pseudo-random values, which means that all numbers are equally likely to appear in the result. But in some cases we need to generate random values that follow other different types of distribution. In this article we will see how to generate random numbers that follow a &lt;strong&gt;normal distribution&lt;/strong&gt;, with a system that can be extended to any other type of distribution.</description><category>SOURCE CODE,CSHARP</category><pubDate>Sun, 24 Apr 2016 00:00:00 GMT</pubDate></item><item><title>What is a complex system?</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/what-is-acomplex-system</link><description>Usually, when you perform a data analysis, you suppose that they come from a &lt;strong&gt;normal distribution&lt;/strong&gt;. In fact, you perform a battery of tests to verify that this assumption is met and, otherwise, you try to modify the data so that it is satisfied. This is because most analysis techniques only work properly on normally distributed data. But there are a number of systems that present a &lt;strong&gt;complex dynamics&lt;/strong&gt; where is not valid to apply this hypothesis and wherein adjusting the data only leads to distortions that invalidate the results.</description><category>COMPLEXITY</category><pubDate>Sat, 09 Apr 2016 00:00:00 GMT</pubDate></item><item><title>DbTextFinder Application for search text in databases</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/dbtextfinder-application</link><description>The catalog views contain all the information concerning the structure of the database: schemas, tables, table fields, data types of the fields, integrity constraints, stored procedures code, etc. The knowing of them is essential to develop tools for data management independent of the structure. In this article we will view an example of one of these tools, &lt;strong&gt;DBTextFinder&lt;/strong&gt;, a simple application that will allow us to search for text in the records of our database and within the code of the views and stored procedures.</description><category>APPLICATIONS</category><pubDate>Sat, 02 Apr 2016 00:00:00 GMT</pubDate></item><item><title>PISA Data Analytics, the Student Scores</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/pisa-data-analytics-plausible-values</link><description>In the previous article in this series we viewed how to computing standard errors with replicate weights in &lt;strong&gt;PISA&lt;/strong&gt; database, in this article we will take an overview of one of the most controversial points of these studies, the complex system of scores implemented.</description><category>R</category><pubDate>Sat, 12 Mar 2016 00:00:00 GMT</pubDate></item><item><title>PISA Data Analytics, Sample Weights and Replicate Weights</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/pisa-replicate-weights-calculations</link><description>In the previous article in this series we saw an introduction to &lt;strong&gt;PISA&lt;/strong&gt; data analytics, with examples of functions in &lt;strong&gt;R code&lt;/strong&gt; for sampling, and we talked about the sampling weights, which ponder each student so that it represents a group of individuals with the same characteristics rather than a single student, (remember that &lt;strong&gt;PISA&lt;/strong&gt; aims to assess the effect of educational policies on the whole population of the country, not on individual students). In this article, we will see how to use these weights to calculate estimators from samples and we'll see also how to calculate standard errors of these estimators using replicated weights.</description><category>R</category><pubDate>Sun, 28 Feb 2016 00:00:00 GMT</pubDate></item><item><title>Introduction to PISA Data Analytics</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/introduction-to-pisa-data-analytics</link><description>Every three years, since 2000, the &lt;b&gt;OECD&lt;/b&gt; (Organization for Economic Cooperation and Development) performs a series of tests in a number of countries at national level to 15-years-old students, in order to assess the degree of knowledge in three main groups of areas: science, reading and math. This is the &lt;strong&gt;PISA&lt;/strong&gt; program, whose last edition took place in 2015.</description><category>R</category><pubDate>Fri, 19 Feb 2016 00:00:00 GMT</pubDate></item><item><title>Using WinPODUtil to process CSV files</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/process-csv-files-with-winpodutil</link><description>In the previous article we saw how to query &lt;strong&gt;POD&lt;/strong&gt; databases with the &lt;b&gt;WinPODUtil&lt;/b&gt; program, in this article we will see how to use the tool to process the CSV files generated by the queries, or any other CSV file. The format of these files consists in a series of text lines, the first of which must contain the column headings, separated by the semicolon character (;). Each line, except the first, represents one data record.</description><category>POD</category><pubDate>Fri, 12 Feb 2016 00:00:00 GMT</pubDate></item><item><title>WinPODUtil Application to Query POD Databases</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/winpodutil-application</link><description>In previous articles I have talked about the &lt;strong&gt;POD&lt;/strong&gt; project, a database that centralizes access to other databases so that they can be consulted through a common interface. In this article we will see the tool that is used for data filtering and query on any of the databases integrated into &lt;strong&gt;POD&lt;/strong&gt;.</description><category>POD,APPLICATIONS</category><pubDate>Fri, 05 Feb 2016 00:00:00 GMT</pubDate></item><item><title>Introduction to PISA Database</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/introduction-to-pisa-database</link><description>&lt;strong&gt;PISA&lt;/strong&gt; (Program for International Student Assessment) is a program of the &lt;b&gt;OECD&lt;/b&gt; (Organization for Economic Cooperation and Development) for the evaluation of education policies. It consists of a series of tests and surveys conducted to 15 years old students, schools and parents at national level in the countries participating in the program (in 2012 there were 65 participating countries, and in 2015 there are more than 70). These tests seek to assess the level of knowledge in three main areas: Reading, science and math.&lt;br/&gt;&lt;br/&gt;In this article I make a brief introduction to &lt;strong&gt;SQL Server&lt;/strong&gt; database created from the original data published by the &lt;b&gt;OECD&lt;/b&gt;.</description><category>POD</category><pubDate>Sat, 30 Jan 2016 00:00:00 GMT</pubDate></item><item><title>POD Configuration Database</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/pod-configuration-database</link><description>&lt;strong&gt;POD&lt;/strong&gt; (Portal Open Data) is a project that I started when I was studying to obtain Microsoft Web Developer MCSD, in order to do some practices. Consists of a &lt;strong&gt;SQL Server&lt;/strong&gt; database through which on can access to other databases in a centralized way.&lt;br/&gt;&lt;br/&gt;In this article I describe the &lt;b&gt;POD Configuration&lt;/b&gt; database</description><category>POD</category><pubDate>Thu, 07 Jan 2016 00:00:00 GMT</pubDate></item><item><title>How to remove spam traffic in Google Analytics</title><link>http://software-tecnico-libre.es/en/article-by-topic/all-sections/all-topics/all-articles/remove-spam-in-google-analytics</link><description>All users of &lt;strong&gt;Google Analytics&lt;/strong&gt; end up suffering the attacks of a legion of &lt;strong&gt;referral spam bots&lt;/strong&gt; that distorting all data obtained from your website, this traffic can come to represent an amount much higher than the actual traffic visits.&lt;br/&gt;&lt;br/&gt;In this article I explain how to remove all traffic of this type definitively from our statistics.</description><category>WEB ANALYTICS</category><pubDate>Sat, 02 Jan 2016 00:00:00 GMT</pubDate></item></channel></rss>