jueves, 30 de mayo de 2013

Automate your tasks with Windows Automation

I was looking for a nice tool to automate administrative tasks and after testing some tools I found this pretty nice tool named winautomation:


The installer was just 40 MB and the installation was pretty simple (next, next, next and next):

The company name is Softmotive. They seems to be from Greece !

These guys look like they were inspired by Zeus.

What I like is that it is easy to learn and configure. It contains  three principal components:

  • The job designer which is used to configure and create jobs.
  • The macro recorder (my favorite) used to record your movements, mouse click and keys used.
  • Finally the web recorder used to automate web tasks
All of these elements help us to automate our task in a simple way.

There are two editions of Winautomation. Professional and Standard. You can optionally include a software assurance plan for a better support service and free upgrades.

Let's take a look to the samples. Go to the samples and select the Beginner samples of the tool.
Select the Open Web Page option.

As you can see it is a simple sample to open a web page.
As you can see, the steps are numbered and you can include comments, if clauses and then run the application (in this case, internet explorer).

You can handle also variables and debug the program if necessary, it is pretty simple, easy to learn, practical.
My favorite tools are the FTP tasks:

There are pretty nice tools to automate FTP tasks.
Also I loved the excel tools to automate tasks:

You can also run DOS commands, Execute SQL statements, process emails, shutdown the computer, print documents, Run visual basic scripts, ping, log off, zip files, edit text, work with windows, and a lot of extra stuff !

I would definitely recommend this tool to automate tasks.

viernes, 28 de diciembre de 2012

hard disk sentinel

Hard disk Sentinel is a nice software to verify and repair the hard drive.

With hard disk sentinel, you can:

  • Test the hard drive
  • Verify the hard drive status.
  • Repair the hard drive.
It works for multiple types of OSs:

Hard disk sentinel  has many versions. The best one is the Enterprise edition.

This version is easy to use. You can monitor remote servers and create backups. You also have an API to program your own application to monitor hard drives.

This software test the HD temperature and  is fantastic. Really easy to use.

There are 3 main edition and the trial one:

It works for laptops, Servers and Desktop computers.

miércoles, 3 de octubre de 2012

Remote Utilities - Remote Desktop Software for Power Users

With everything being so deadline driven in today’s business environment, many companies have opted to use remote access software on their computer systems. Not only is this a far more cost-effective option, but it is also more preferable than having to wait a day or two for a computer technician to address any network or computer-related problems. Remote Utilities offers remote access software which is able to fulfill the needs of virtually any business.

How it Works

Remote Utilities consists of a Host which is installed on a remote computer and a Viewer which is installed on a local computer. The Viewer enables a user to access an unlimited number of computers either via an Internet connection or through a LAN (local area network). The Host is then installed on each PC that needs to be accessed or monitored.

Remote Utilities offers users complete control over remote computers. Users are able to connect to the remote computer by using the DNS name, IP address or an Internet ID – an alphanumeric or numeric-only sequence used to avoid complex network configuration. By combining Remote Utilities with a self-hosted internet ID server, a callback connection and proxy server support, users will have a flexible as well as affordable solution for all of their remote access needs.

Remote Utilities also offers one of the fastest remote desktop access modes available. Network administrators can rest assured that by using this software, they will have complete control over a remote computer, even while it is being rebooted.

Complete Security and Peace of Mind

Because network security is one of the biggest concerns for network administrators, Remote Utilities has taken this into consideration by ensuring that all traffic between local and remote computers is encrypted. This means that your information is completely safe, even when logging in Wi-Fi hot spots or internet cafes. An IP-filter function ensures that connections are only able to be made from specified IP addresses or networks. The program also offers protection against various forms of password-cracking attempts.

Remote Utilities is available in two editions: Free and Enterprise. The Free Edition has all the features a home user might need including the ability to connect either by an IP address or by an ID, which is simpler and does not require configuration. Also, a great advantage of the Free Edition is that the program does not annoy users with banner ads or “Buy me” messages and the Internet traffic for ID connection is virtually unlimited as well as the number of computers a user can register with his personal license. Restrictions include the unavailability of such features as Inventory Management, Ask User Permission, Multiple Accounts for a single Host etc. targeted mostly at corporate users. Another restriction is that the Free Edition may not be used for business purposes.

The Enterprise Edition provides – without limitation - all features the program can offer. The license model is per remote PC – that is each remote PC must be registered with a valid product key. Also, the license is lifetime and there are no recurring payments, traffic limitations or fees as well as other restrictions and charges.

Major Features:

·         Full Control and View, File Transfer and other useful modes. Remote Utilities includes 15 different connection modes, such as Full Control and View, File Transfer, Power Control, Telnet etc. You can change the modes on-the-fly without disconnecting from the remote PC.

·         Your own firewall bypass server. You can optionally switch to your own firewall bypass server (called Quinnect Server) and become completely independent from Remote Utilities cloud servers. This option works with Enterprise license only.

·         Unattended and attended access. Use the lightweight remote Agent module for spontaneous support and the installable Host module for total 24/7 unattended access to your PCs. You can connect to remote Agents and Hosts side-by-side from a single Viewer module. 

·         Direct IP/DNS connection or easy-to-use ID connection.  If you are computer-savvy configure a direct IP-to-IP access to your PCs for ultimate lag-free performance. Alternatively, you can go with the easy-to-use ID connection that does not require any configuration. Both types of connection will work on a LAN and over the Internet.

·         Multiple simultaneous connections. Remote Utilities supports an unlimited number of simultaneous connections in both directions — from a local PC to a remote PC and vice versa.

·         Remote webcam access and monitoring. Connect to a remote webcam attached to a remote PC and see what is happening in the room where that PC is located.

Official program website: http://www.remoteutilities.com/

miércoles, 22 de agosto de 2012



NeodinamycBarcode Professional for SQL Server Reporting Services is a high level library component that let you add barcode in your SQL Server reports solutions.

This product is very complete and has the following standards:

  • Lineal barcodes
  • EAN/UPC, Code 39/128, GS1-128, GS1 DataBar (RSS-14), EAN-13 & UPC-A, ISBN, ITF-14, SCC-14, SSCC-18, GTIN, PZN-8, VICS, etc.
  • Postals
  • USPS Intelligent Mail IM, Fedex, UPS, DHL, Australia Post, etc
  • 2D codes
  • QR Code, Data Matrix, Maxicode, Aztec Code, PDF417, etc.
  • All GS1 EAN/UPC Composite Barcodes (CC-A, CC-B &CC-C)
  • MICR E-13-B

Barcode professional has many more barcode standards and is compliant with the official
standards and specifications from organizations like GS1, ISO/IEC, AIM, EAN/UPC, and so on.

  • Barcode image generation and printing support for 71 Linear/1D & Postal Barcode Symbologies
  • Barcode image generation and printing support for 25 2D Barcode Symbologies
  • Automatically computes checksum or check digits for all Symbologies
  • Automatically validates the value to encode
  • Written and handled in C#
  • Strong named assemblies for Reporting Services 2012, 2008, 2005 
  • 64-bit assembly for SSRS version 2005, 2008 & 2012
  • Barcode image formats support for the following formats  GIF, BMP, PNG & JPEG/JPG
  • Black and White 1 bit per pixel barcode image generation support
  • DPI support
  • Barcode rotation support (0, 90, 180 and 270 degrees)


This product is made by Barcode experts with strong know-how on .NET & SSRS. You can expect from
them a professional and excellent support with a 24 hours turnaround !


  • GIF, BMP, PNG & JPEG/JPG barcode image formats support 
  • Monochrome (Black and White 1 bit per pixel) barcode image generation support 
  • DPI support 
  • Barcode rotation support (0, 90, 180, 270 degrees)


  • Neodynamic supports the following products:
  • Visual Studio 2005 / 2008 / 2010 & SQL Server 2005 / 2008 / 2012 Reporting Services – Report Server Project (design-time and runtime support) 
  • Visual Studio 2005 / 2008 / 2010 ReportViewer Local Reports (RDLC) (runtime support) 
  • ASP.net 
  • Windows Forms 
  • .NET Compact Frameworks 
  • WPF 
  • SDK for .NET 
  • Silverlight 
  • Windows Phone 
  • Report Builder 3.0
To perform the test of Barcode Professional, first we must install the BarcodeProfessionalSSRS70 in Windows Server 2008 R2 that has the Visual Studio 2010 Shell, SQL Server Data Tools and MS SQL SERVER 2012, the wizard install is very fast and easy.
Once in Windows Server 2008 click on 'Start' and then another click on the 'SQL Server Data Tools' as shown in Figure 1.

Figure 1

Once Visual Studio 2010 is opened, create a new project; choose 'Report Server Project' and select 'Business Intelligent' as shown in figure 2
Figure 2

Configure the barcode item for the toolbox, choose 'Tools' menu and click on 'Choose ToolBox Item…' as shown in figure 3
Figure 3

Select on the tab '.NET Framework Components' the option Barcode Professional as shown in figure 4 and save the changes.
Figure 4

Add a data source in your project, right click on the project, click in 'Add' and click 'New Item' as shown in figure 5.
Figure 5

Select 'Data Source' option in type Report Project as shown in figure 6.
Figure 6

After the select the name for data source and select the type Microsoft SQL Server choose change the Connection String with button Edit as shown in figure 7
Figure 7

Then configure the correct Connection String as shown in figure 8, in my case my server is named SERVERTEST, I use Window Authentication and my database is named dbTest01 and realizes the test with button Test Connection, if you get the connection status succeeded then you can continue.

Figure 8

Add the Report Item like figure 5 and choose 'Report Wizard' Option in type Report Project as shown in figure 10
Figure 10

This is the initial step and you can see the configuration that will be execute in the wizard as shown in figure 11.

Figure 11

In this step you can select the data source that you are created before; in my case my data source is called Database Test as shown in figure 12.

Figure 12

In this step you build the query for the report, as shown in figure 13.
In my case I have a table called products with the columns name_product, serial_product and id_product.
The serial_product column will be a barcode.
If the query is correct then you can continue.

Figure 13

In this step you can select the Report Type, I choose Tabular as shown in figure 14.

Figure 14

In this step you can design correctly your report, I choose the default configurations and I can finish the wizard with name report in default as shown in figure 15

Figure 15

Finally you can select the name of the Report as shown in figure 16 and finish the wizard

Figure 16

After the wizard you can see a design of your report as show in figure 17 where can changes the report title and Columns titles
Figure 17

In the toolbox, drag and drop the barcode professional item to serial_product column as shown in figure 18
Figure 18

Right click on serial_product column, click on Properties as shown in figure 19
Figure 19

You can choose the barcode symbology/standard as shown in figure 20 with preview of barcode and many configurations more.
Figure 20

You can see on the preview tab the preview of your report as shown in figure 21
Figure 21

Finally you can choose any barcode symbology/standard and generate the preview as shown in figure 22 with QR code selected
Figure 22

The Barcode Professional is a tool that generate reports with specific features for our barcode without that the client requires something extra in his/her computer, is very easy to use and is compatible with many Reporting Scenarios.

It is a great tool to create barcodes.


miércoles, 6 de junio de 2012

How to use Change Data Capture (CDC) in Microsoft SQL Server 2012

Often we require saving all the history of the changes of our databases. Most of the time is related to data security purposes. There are several ways to accomplish that, from triggers, timestamps to stored procedures.
But since SQL Server 2008 there is a new data tracking and capturing feature in user-created tables, it is called CDC. In this article, we will see how to use CDC and how efficiently it could serve to our purpose.

Fig 1

Enabling Change Data Capture on a Database
By default CDC comes disabled, so we need to enable it first on the database. Because CDC is a table-level feature, it then has to be enabled for each table to be tracked.
You can run the following queries, first to create databases and tables, and then to enable CDC and check if it’s enabled.
So, first we need to create the database:
create database Contoso

Creating Tables….
USE [Contoso]

/****** Object:  Table [dbo].[Articles] ******/



CREATE TABLE [dbo].[Articles](
    [Article_ID] [int] NOT NULL,
    [Articles] [varchar](50) NOT NULL,
    [Cost] [float] NULL,
    [Article_ID] ASC




USE [Contoso]

/****** Object:  Table [dbo].[Customers] ******/



CREATE TABLE [dbo].[Customers](
    [Customer_ID] [int] NOT NULL,
    [Name] [varchar](50) NULL,
    [Last_Name] [varchar](50) NULL,
    [Phone] [int] NULL,
    [Customer_ID] ASC




USE [Contoso]

/****** Object:  Table [dbo].[Orders] ******/


CREATE TABLE [dbo].[Orders](
    [Orders_ID] [int] NOT NULL,
    [Customer_ID] [int] NOT NULL,
    [Article_ID] [int] NOT NULL,
    [Quantity] [int] NULL,
    [Total] [float] NULL,
    [Orders_ID] ASC


ALTER TABLE [dbo].[Orders]  WITH CHECK ADD  CONSTRAINT [FK_Orders_Articles] FOREIGN KEY([Article_ID])
REFERENCES [dbo].[Articles] ([Article_ID])

ALTER TABLE [dbo].[Orders] CHECK CONSTRAINT [FK_Orders_Articles]

ALTER TABLE [dbo].[Orders]  WITH CHECK ADD  CONSTRAINT [FK_Orders_Customers] FOREIGN KEY([Customer_ID])
REFERENCES [dbo].[Customers] ([Customer_ID])

ALTER TABLE [dbo].[Orders] CHECK CONSTRAINT [FK_Orders_Customers]

After creating tables you should have something similar to this:

Fig 2

Inserting data to tables
USE [Contoso]

INSERT INTO [dbo].[Articles]
           (1001,'Coke 2L',6),
           (1002,'Cookie small',0.5),
           (1003,'Cookie medium',1),
           (1004,'Cookie Large',4)   
USE [Contoso]

INSERT INTO [dbo].[Customers]

USE [Contoso]

INSERT INTO [dbo].[Orders]

Now let's review how to enable CDC on a database.
EXECUTE sys.sp_cdc_enable_db;

Then, how to check if CDC is enabled correctly
SELECT name,is_cdc_enabled FROM sys.databases WHERE name='Contoso'

You should see something like this:

Fig 3

Now that CDC is enabled on the Contoso database, let’s enable CDC on specific tables (e.g. Customer’s table), just make sure the SQL Server Agent service is up and running, also that you have roles created, if you don’t have roles you can pass NULL as parameter in @role_name.
EXEC sys.sp_cdc_enable_table
    @source_schema ='dbo',
    @source_name ='Customers',
    @role_name ='CustomersRole',
    @supports_net_changes = 1

In order to check that CDC is enabled correctly for Customer’s table, you can execute this SQL statement.
SELECT name,is_tracked_by_cdc FROM sys.tables WHERE name='Customers'

You should see something similar to this:

Fig 4

For disabling CDC on the table, sys.sp_cdc_disable_table needs to be executed.
EXEC sys.sp_cdc_disable_table
  @source_schema ='dbo',
  @source_name ='Customers',
  @capture_instance ='dbo_Customers'

Similarly, for disabling CDC at the database level, we need EXEC sys.sp_cdc_disable_db.

Tip. In the SQL Server Agent Service you can check that CDC is enabled if you see something similar to this:

Fig 5

How to see data generated by CDC

First you need to know what LSN is. LSN (Log Sequence Number) is a number that identifies each register that is recorded in the transaction log of the database with a LSN provided by SQL Server.

Also you need to know that CDC displays operations done in the tables with the help of Column_$operation ID’s.  A Column _$operation contains value which corresponds to DML Operations. Following is quick list of value and its corresponding meaning.

• Delete Statement = 1
• Insert Statement = 2
• Value before Update Statement = 3
• Value after Update Statement = 4
Now execute some DML in the Customers table for the CDC to be able to track changes.
DELETE FROM Customers WHERE Customer_ID=2003
INSERT INTO Customers VALUES(2005,'Mary','McGregor',555789412)
UPDATE Customers SET Name='Jorge' WHERE Customer_ID=2000
UPDATE Customers SET Name='Charles' WHERE Customer_ID=2001

A delete, an insert, and two updates have been fired. To see the captured changes, SQL provides two functions:
• cdc.fn_cdc_get_net_changes_dbo_Customers
• cdc.fn_cdc_get_all_changes_dbo_Customers
As the name suggests, the 'net changes' function gives the net changes on the records and the 'all changes' function provides all the changes before and after the DML is executed.
DECLARE @Begin_LSN binary(10), @End_LSN binary(10)
-- get the first LSN 
SELECT @Begin_LSN =sys.fn_cdc_get_min_lsn('dbo_Customers')
-- get the last LSN 
SELECT @End_LSN =sys.fn_cdc_get_max_lsn()
-- returns net changes
SELECT * FROM cdc.fn_cdc_get_net_changes_dbo_Customers(
 @Begin_LSN, @End_LSN,'ALL');

/*__$start_lsn __$operation __$update_mask Customer_ID Name Last_Name Phone
---------------------- ------------ ---------------- ----------- ----- -----
0x0000004D000003600003  4   NULL    2000    Jorge   Lucas   555123456
0x0000004D000003680003  4   NULL    2001    Charles Serrano 555456789
0x00000050000000700005  1   NULL    2003    Jorge   Montano 555442641
0x0000004D000003580003  2   NULL    2005    Mary    McGregor    555789412
(4 row(s) affected)*/

cdc.fn_cdc_get_net_changes_dbo_Customers gives us all the records net changed falling between the LSN we provide in the function. We have three records returned by the net_change function; there was a delete, an insert, and two updates, but on the same record. In case of the updated record, it simply shows the net changed value after both the updates are complete.
For getting all the changes, execute cdc.fn_cdc_get_all_changes_dbo_Customers; there are options either to pass 'ALL' or 'ALL UPDATE OLD'. The 'ALL' option provides all the changes, but for updates, it provides the after updated values.

DECLARE @Begin_LSN binary(10), @End_LSN binary(10)
-- get the first LSN 
SELECT @Begin_LSN =sys.fn_cdc_get_min_lsn('dbo_Customers')
-- get the last LSN 
SELECT @End_LSN =sys.fn_cdc_get_max_lsn()
-- returns all changes both before & after update values for UPDATE
SELECT * FROM cdc.fn_cdc_get_all_changes_dbo_Customers(
 @Begin_LSN, @End_LSN,'ALL');

 /*__$start_lsn __$operation __$update_mask Customer_ID Name Last_Name Phone
---------------------- ------------ ---------------- ----------- ----- -----
0x00000031000000200003  0x00000031000000200002  4   0x04    2001    Carlos  Serrano 555456789
0x0000004D000003580003  0x0000004D000003580002  2   0x0F    2005    Mary    McGregor    555789412
0x0000004D000003600003  0x0000004D000003600002  4   0x02    2000    Jorge   Lucas   555123456
0x0000004D000003680003  0x0000004D000003680002  4   0x02    2001    Charles Serrano 555456789
0x00000050000000700005  0x00000050000000700002  1   0x0F    2003    Jorge   Montano 555442641
(5 row(s) affected)*/

What is the utility of using CDC?
The essence of CDC can be effectively put to use. Let us see a very simple demonstration of its utility using a PROCESS table and a stored procedure that saves all track changes from Customers.
(Process_ID INT IDENTITY (1,1),
 Process_Date DATETIME,

So the table has been created to log the minimum and maximum LSN during each job run. When the stored procedure runs, it will make an entry with the Process_ID, the date-time stamp of its run, and the minimum and maximum of the LSN for the records modified. For logging the details in the created table, the Stored Procedure below has been created. A job can call and execute the procedure at the very last step before it exits.
IF EXISTS(SELECT 1 FROM Contoso.sys.objects
WHERE name='ProcessLogEntry'AND [type]='P')
CREATE PROCEDURE dbo.ProcessLogEntry






Well, we execute the procedure manually; it makes the entry for the LSN for the DML we executed previously, i.e.: an insert, a delete, and two updates.
EXEC ProcessLogEntry

/*Process_ID    Process_Date    BEGIN_LSN   END_LSN
1   2012-05-21 01:31:28.277 0x00000000000000000000  0x00000054000001700001
(1 row(s) affected)*/

As it is logged, let’s execute some more DML:
INSERT INTO Customers VALUES(2008,'Juan','Perez',555123678)
UPDATE Customers SET Last_Name='Lopez' WHERE Customer_ID=2008

We have inserted a record and updated the department for Customer_ID 2. To log the changes, we execute the procedure ProcessLogEntry again.
EXEC ProcessLogEntry

/*Process_ID    Process_Date    BEGIN_LSN   END_LSN
1   2012-05-21 01:31:28.277 0x00000000000000000000  0x00000054000001700001
2   2012-05-21 01:34:12.227 0x00000054000001700001  0x00000055000000D00003
(2 row(s) affected)*/

The second entry has been made in our Process table. Now, this enables us to get the changes done by the job on any specific day. The code below gets the net changes done by process_id =2.
SELECT * FROM cdc.fn_cdc_get_all_changes_dbo_Customers(
 @Begin_LSN, @End_LSN,'ALL');

 /*__$start_lsn __$seqval   __$operation    __$update_mask  Customer_ID Name    Last_Name   Phone
0x00000055000000C80003  0x00000055000000C80002  2   0x0F    2008    Juan    Perez   555123678
0x00000055000000D00003  0x00000055000000D00002  4   0x04    2008    Juan    Lopez   555123678
(2 row(s) affected)*/

As you can see there were two records that are related to process 2, and we get detailed information about the changes.

Data Base Administrators sometimes has tried to create systems that record all the changes made to the data in a database.  Since SQL Server 2008 and currently with SQL Server 2012, we have this great tool called CDC that comes with SQL Server that allows us to track changes in our data. It could be used to track guys that are trying to gain unauthorized access or executing DML (update/delete). All the details as to who fired the query, timestamp, and the actual query can be recorded for helping DBA personnel report any unethical activities on the server. This will go a long way to boost the security of the servers and help organizations preserve the most important aspect of their business: confidential information.

lunes, 4 de junio de 2012

Encrypt your code with Crypto Obsuscator

I was trying to protect my code from the competitors by myselft when I thought:

Is there a cheap, easy to use software to protect .net projects ?
I Google a lot and test many programs and finaly I found the Crypto Obfuscator For .Net !

LogicNP Software have developed the Crypto Obfuscator For .Net !
It is very useful software because it allows us to protect our code and intellectual property easily with many options included.

You can try to download a free trial of Crypto Obfuscator For .Net here

Now we are going to see some options of this program.
By the way we don’t need to manually modify our code because it just need to have the .exe file o .dll file and the software Crypto Obfuscator For .Net does the rest.

Well, let’s stop talking and go to the action first. We talked about the main interface don’t forget Crypto Obfuscator For .Net can work without problems with Visual Studio.
This is the GUI:  
As you can see you can obfuscate Classes, Fields, Methods, Properties, Events, Resources and create your rules.

Crypto Obfuscate is the best tool to protect your code.
You can create watermarks, create signing and licencing methods.

 We can choose 4 ways to obfuscate our program:
Test Mode this method changes the name or renames our process method or class.
You have a method up
Public void bool up ()
// your code here.
Your next code will be like this
Public void bool FFF_up ()
// your code here.
Cryptography. - This method uses some algorithms to generate hashes to rename the methods or procedures.

Normal. - This method only change the name to a shorter name for example  your method “run” could be changed to “r”.
Unprintable.- This method renames all the classes, method, function, procedures with symbols.

We have also some advanced protections options like:
Encrypt strings. - If we encrypt our string the people can find sensitive information like activation codes, sql connections, password, etc.
Protect against ILDASM. - If we don’t activate this option the disassembler can be easily decoded.
As you can see, you can also:

  • Rename Symbols
  • Hide internal and external calls
  • Protect, Encrypt, compress Assemblies.
  • Specify the level of obfuscation
  • Reduce the metadata and mark classes as final.

 We can create rules to use when we obfuscate our projects.
This software has a lot of tools to improve the security of our code and it is very easy to use.
If you want to protect your code buying this software is a must.

jueves, 3 de mayo de 2012

Excel format

The power and features that make Microsoft's Excel spreadsheet the business world's standard can be daunting to new and infrequent users. EZ-Format for Excel makes Excel easy by separating data formatting, maintenance, and analysis tasks. It automates the task of formatting worksheets, enables improved, modifiable totaling, and simplifies common tasks such as splitting worksheets and applying row color. The program bundles the maker's EZ-Subtotal and EZ-Split add-ins as well, and it includes the functionality of the EZ-Stat statistical analysis software.

Read more: EZ-Format for Excel - Download.com http://download.cnet.com/EZ-Format-for-Excel/3000-2077_4-10458454.html#ixzz1tp8qNNoM