Online demo: Perfect Widgets can run on TypeScript.

Ekaterina Nebogina

TypeScript is a new and evolving object oriented programming language developed and maintained by Microsoft Corp. This language is compiled to common JavaScript. It supports and implies static typing which allows determining of the compatibility errors on the compilation stage. TypeScript is compatible with common JavaScript and this makes it possible to use common JavaScript libraries such as Perfect Widgets offering JavaScript gauges and other data visualization controls.
The only trick is that it’s necessary to connect to .d.ts definition files for compatibility validation. Availability of the .d.ts file provides the ability to display IntelliSense tooltips for classes of the used library.
This simple Perfect Widgets TypeScript demo shows how to connect your data visualization project to the .d.ts file in order to use Perpetuum gauges as well as how to use Perfect Widgets library with TypeScript: how to add a gauge to the page and how to interact with it from code.

November 25th, 2014

A new version of Android database designer with synchronization feature is available

Ekaterina Nebogina

Perpetuum Software announces a new version of the Android database tool – MobiDB Database Designer – able to create complex relational databases with unlimited number of tables and relations that now provides synchronization ability.
Adnroid database designer
Upon multiple requests of the users MobiDB Database Designer now features the ability to synchronize databases via the Dropbox API. Users can share a database and then connect to it from the other device, synchronize databases with automatic sync conflicts resolution. Concurrent work with one and the same database from different devices is available. Read the rest of this entry »

October 28th, 2014

To refactor or not to refactor? (Part II)

Andrey Akinshin

So, when to refactor?
I am sorry if the first part of this article made you think that refactoring only brings problems. I still insist that the code should be readable and understandable. It also should be convenient to use and easy to maintain and develop. Positive approach is better than the negative one. So, think of refactoring not as of the source of problems, but as of your good friend who will come to rescue in an hour of need. Moreover, this friend can reduce the amount of such hours in your promising future. I would like to indicate several moments when refactoring is really relevant.
code refactoring
  Read the rest of this entry »

September 25th, 2014

To refactor or not to refactor? (Part I)

Andrey Akinshin

I like refactoring. No, I love refactoring. No, not even like this. I awfully love refactoring.

I hate bad code and bad architecture. I feel quite creepy when I design a new feature and the near-by class contains absolute mess. I just can’t look at the sadly-looking variables. Sometimes before falling asleep I close my eyes and imagine what could be improved in the project. Sometimes I wake up at 3:00AM and go to my computer to improve something. I want to have not just code, but a masterpiece that is pleasant to look at, that is pleasant to work with at any stage of the project.
If you just a little bit share my feelings we have something to talk about. The matter is that over some time something inside me began to hint that it’s a bad idea to refactor all code, everywhere and all the time. Understand me correctly – code should be good (even better when it’s ideal), but in real life it’s not reasonable to improve code instantly. I formed some rules about the refactoring timeliness. If I am itching to improve something, I look at these rules and think “Is that the moment when I need to refactor the code?” So, let’s talk about when refactoring is necessary and when it’s inappropriate.
  Read the rest of this entry »

September 10th, 2014