Posts

Showing posts from June, 2008

My sf.net projects

I manage few projects on sf.net, and hope that they will be useful for community:
Mail Dispatcher - A tool for dispatching (basically, deleting) email messages on POP3 server via Plain or SSL connection with advanced filtering capabilities.sdict2db - Parser for SDict-based format dictionaries with ability to save in a SQL server (with creating table, index and filling data) and in a text file (SDict text format).DNN Dictionary - A DotNetNuke module for translating texts using SDict-based (http://swaj.net/sdict/) dictionaries. It works using AJAX mechanism so there is no pages reloading during the process of translation.DHCP Explorer - A console cross-platform tool for locating all available DHCP servers. Though there is no serious activity in these projects, I am working on them as far as possible, so wait for new updates soon.

Static code analysis tools (with multicasting chat sample)

In the modern world with the fast cycles of software development it is critical to develop applications with high quality but without long periods of testing and bug fixing. One of the key points for gaining such performance is using static code analysis tools. Let me provide some samples of such tools which can be useful for software development:
Clang Static Analyzer - open source source code analysis tool that finds bugs in C, C++, and Objective-C programs;PyLint - a static code analyser for Python;Perl-Critic - a static code analysis tool for Perl;FxCop - static analysis for Microsoft .NET programs. There are many other tools, a list of which you can find in wikipedia. Let's do static code analysis of a simple multicasting chat application:

Run PyLint for this script. See results below:
<skipped> C: 1, 0: Missing module docstring (missing-docstring) C: 9, 0: Invalid constant name "is_listening" (invalid-name) W: 12,20: Redefining name 'is_listening' f…

Useful designer links

One of the major problems in creating a GUI prototype for some websites or applications is developing an initial design. To make this task less complicated I list the sites where you can get templates and pictures for free:
https://design.google.com/icons/ - material icons are beautifully crafted, delightful, and easy to use in your web, Android, and iOS projects;http://www.openwebdesign.org/ - many templates for websites available by various licenses;http://www.iconarchive.com/ - many icons for web and other applications available by various licenses;https://openclipart.org/ - many icons and other images available for unlimited commercial use. Also there are certain standards which are highly recommended to developers to follow:

Material Design principles by Google;GNOME Human Interface Guidelines describes ways to create GNOME applications;Design applications for the Windows desktop;Java Look and Feel Design Guidelines describes ways to create applications in Java framework;KDE User I…

Simple password generator in Python

There could be a situation when you need to create a password quickly, and do not want to bother too much about it. In this case password generators are very useful, but most of them require too many actions to do. In this article I am going to show how to create a simple utility that works from command line and just displays a line with the automatically generated password (and of course it can be used in many administrative automated tasks too).

First, I create a prototype in Python shell and then write the utility itself. I recommend to use IPython shell (https://ipython.org/) - it is superior to a standard Python shell in many ways. In the example below ipython3 (particularly, IPython 4.2.1 for Python 3.5.2) is used.
Import 'random' module:
In [1]: import randomCheck the generation of a random number in the required range (from 32 - space symbol to 126 - symbol '~'):
In [2]: random.randrange(32, 126) Out [2]: 109Check the conversion a number to a character:
In [3]: chr…