******************************************
*  Social Network Visualizer (SocNetV)  *
******************************************

ChangeLog:


Version 2.9 - Jun 14, 2021
Codename: "summertime
------------------
* Bugfixes and stabilization


Version 2.8 - Jan 03, 2021
Codename: "happynewyear"
------------------
* Bugfixes and stabilization

Version 2.7 - Dec 28, 2020
Codename: "covid"
------------------
* Bugfixes 

Version 2.6 - Dec 28, 2020
Codename: "covid"
------------------
* New feature: Drag mode
  SocNetV supports two drag modes: 
  A. Select mode: 
  In this mode, you can interact with the canvas: 
   a) left-click or right-click on items (i.e. nodes, edges), 
   b) move them by dragging them with your mouse and 
   c) select multiple items with a rubber band.
  B. Scrolling mode:
  The cursor changes into a pointing hand, and dragging the mouse around will scroll the scrolbars. 
  You will not be able to select any items or move them around.
* Bugfixes 

Version 2.5 - Feb 28, 2019
Codename: "maniac"
-----------------
* New feature: Prominence scores distribution in reports
* New feature: Prominence scores distribution mini-chart in app sidebar
* New feature: Search for and select multiple nodes by numbers,labels,scores
  You can now search for multiple nodes by their number, label or prominence
  score. Matched nodes are highlighted.
* New feature: Lattice network generator
  SocNetV can now create regular lattices of arbitrary dimensions. 
  You can define the lattice dimension d, and the length/size l of each dimension.
  Also, you can define custom neighborhood size n, which is the distance within which 
  the neighbors on the lattice will be connected. 
* New feature: Edge dichotomization 
  In weighted networks with valued edges, the user can now ask SocNetV to
  dichotomize the edges according to some threshold. All edges with weight 
  above that threshold will become binary. The result is a non-valued graph, 
  which is displayed in a new relation.
* New feature: Custom icons in nodes
  You can now select and use any image (i.e. PNG, JPEG, SVG) as node icon. 
  Also, except the legacy node shapes (box, circle, diamond, etc), SocNetV
  offers many more built-in icons (person, computer, bug etc). 
  And you can select any image file from your filesysten to be used 
  as custom node icon in your network.
* New feature: Export network to any image format
  You can now export the network to any of the image formats 
  supported by Qt, i.e. PNG, JPG, BMP, TIFF etc.
* New feature: Much improved PDF exporting
  You can now select orientation as well as quality and DPI when exporting 
  the network to PDF file.
* New feature: Uniform UI theme
  High quality UI theme, inspired from Material Design,
  for uniform look'n'feel of SocNetV across all OSes.
* New Control Panel toolbox menu: Network Auto Create 
  You can now automatically create a network with one click in the new toolbox
  menu. Random nets, famous data-sets and web crawler are supported.
* Improved Web Crawler
  The built-in web crawler runs faster and allows you to exclude/include
  social network links, parent and child links.
* Support for network files where edge weights are (double)
  SocNetV now understands (double) edge weights in Adjacency, GraphML, Pajek, 
  edgelists, GML, etc.
  This means that edge weights in network files can be valid numerical characters 
  along with the plus/minus sign, the characters g and e used in scientific notation, 
  and the decimal point. Fixed bug with non-integer edge weights while
  importing Adjacency.
* Speed optimization and improved memory management.
* Improved menu accessibility with hotkeys
* Bugs Fixed and closed:
  Added workaround for QProgressDialog bug on macOS



Version 2.4 - Feb 28, 2018 
Codename: "trouble"
------------------
* New Feature: Kamada-Kawai layout model.
  - In this model, the network is considered to be a dynamic system
    where every two actors are 'particles' mutually connected by a 'spring'.
    Each spring has a desirable length, which corresponds to their graph
    theoretic distance. In this way, the optimal layout of the graph
    is the state with the minimum imbalance. The degree of
    imbalance is formulated as the total spring energy:
    the square summation of the differences between desirable
    distances and real ones for all pairs of particles
    Initially, the particles/actors are placed on the vertices of a regular n-polygon
* New Feature: Node colors by prominence score visualization layout.
  - Up to now, SocNetV could visualize actor prominence (centrality or prestige score)
    in radial, level and node size layouts. SocNetV v2.4 supports
    a node coloration layout, where the color of each node depicts its score in a
    user-selected Prominence index. Simply put, the color shows how important the actor
    is inside the network in terms of Centrality or Prestige.
    To do this, SocNetV computes the prominence index scores of all actors and
    then changes the color of every node using the HSV color model. To be precise, 
    different values of hue (from 0, which is absolute red to 240, which is absolute blue),
    are used according to the prominence score of each node.
    This way, the least important actors (the periphery) are colored blue while 
    the most important ones (the core) are colored red. The prominence scores between 
    these two corner cases follow the familiar color wheel. I.e. an actor colored 
    yellow means it is more important than those colored blue, cyan or green but 
    less important than the ones colored red. See color wheel example: 
    https://upload.wikimedia.org/wikipedia/commons/a/a4/RGB_color_circle.png
* New behavior: Reciprocated edges in directed networks appear in a single line.
   Up to now, SocNetV displayed reciprocated directed edges between two actors A and B in 
   two separate lines, one for the A -> B tie and another for the A <- B tie. That was 
   problematic in terms of memory consumption (double edge graphic items) on very large 
   directed nets. It also made the network visualization less attractive as the user was 
   seeing double lines between nodes. From now on, SocNetV displays the reciprocated ties 
   between actors in a single line with two arrows. On clicking a reciprocated edge, 
   the Statistics panel displays info that this is a reciprocated edge along with the
   weights of both arcs. If you right-click a reciprocated edge and select "Remove edge" 
   or "Change Edge Weight" the application asks which of the two directed edges you want
   to remove/change, for instance "A --> B" or "B --> A".  
* Improved memory consumption during user interaction with large networks.
   Previous versions of SocNetV used to consume a lot of RAM when loading very large 
   networks (i.e. more than 2,000 edges). This version has been optimized to minimize
   memory consumption in those cases. 
* New options and features in web crawler.
   Web crawler dialog and algorithm has been enhanced with nice new options and features. 
   The user may now specify certain link patterns to include or avoid during parsing a web page.
   The crawler can also stop creating self-links, and wait for a random amount of msecs (0-1000) 
   between connections. 
* Improved Statistics Panel.
  The LCDs in the statistics panel have been replaced by simpler strings which display the
  same statistics, plus with greater efficiency. For instance, when clicking on a reciprocated 
  edge in a directed network, the Statistics panel displays the weights of both edge directions.
* Added Performance options in Settings dialog.
   New Performance options have been added in app Settings dialog (Canvas tab). 
   The user may now select which features of the Qt GraphicsView will be enabled. 
   Available options include pretty much all features of Qt GraphicsView, such as 
   antialiasing, antialiasing auto-adjustment, smooth pixmap transformation, 
   painter state saving, background caching, canvas update mode, canvas indexing 
   method and edge highlighting. 
   Of all these options, the latter (edge highlighting) has the most immediate effect 
   on performance. Disabling edge highlighting in networks with thousands of edges 
   will give a performance boost and make the interaction with the network quicker. 
   Also, if you need max performance, we recommend disabling all checkboxes.
* Improved UCINET format support (fullmatrix two-mode and edgelist).
  SocNetV can now read two-mode UCINET files formatted in fullmatrix format. That is files that 
  declare both NR and NC variables. For instance, a file that declares a two-mode sociomatrix 
  of NR actors and NC organizations. 
  Work will be done in future versions to let the user select if she wants one-mode or two-mode data visualization.
  At the moment, the two-mode network is visualized as follows: 
  First, for every row in the fullmatrix, a node i is created numbered 1:NR
  Then for each column another node j is created, numbered NR:NC. Thus, the two mode network  
  consists of a total of NR+NC nodes.
  For each non-zero (i,j) element of the fullmatrix, an edge from actor i to organization j is created.
  Also, the application can now import edgelist1 formatted UCINET files which were 
  exported from R's sna package.
* Improved "Check for updates" procedure. 
  On clicking Help > "Check for updates, the app will check for the latest version released, 
  compare it with the version it runs and inform the user if an updated version is available.
  In future versions, we might have this routine to run on load.
* Improved stability 
  Many bugs have been fixed and random crashes were resolved. See fixed bugs below for more.

* Bugs Fixed and closed:
  #40: Wrong BC scores when the network is weighted
  #54: Using 1 as weight even after saying yes to weight dialogs in some cases 
  #38: Disabling isolate nodes has no effect in distance matrix report
  #41: Wrong variance value in clustering coefficient (in repeated computations)
  #33: Missing Radial/Level Layout by Eigenvector Centrality 
  #48: Eccentricity scores should be infinite for those nodes which are either isolated or
       cannot reach some other node. Nodes which can reach all other nodes should have
       finite eccentricity. 
  #34: Menu options to apply Node Size layout by Prominence index
  #56: Edges do not offset from source/target node when node changes size
  #46: (regression) crashes on distance matrix after disabling isolates
  #42: Proper progress dialogs
  #44: Crash on second search after node removal
  #24: No Performance options in Settings 
  #51: Web crawler: Fix random crashes 
  #60: Wrong filename extension when saving an automatically generated famous data set 
  #61: The "Save As" method does not always save networks in graphml format
  #62: Some "edgelist1" formatted UCINET files are not recognizable 
  #63: Two-mode UCINET files are not supported
  #65: Crash when doing Hierarchical Cluster Analysis with ill-defined input matrix
  #36: Crashes on HCA with isolated nodes
  #49: Connectedness method sometimes returns default result
  #47: Extra columns displayed in Adjacency Matrix report when the user has disabled nodes.  

Versio 2.3 - Jul 5, 2017 
Codename: "fixer"
------------------
* New Feature: Dyad and  Actor/Ego reciprocity
  - Reciprocity, denoted by 'r', is a network cohesion index. 
    It measures the likelihood of vertices in a directed network to be mutually linked. 
    SocNetV v2.3 supports two different methods to index the degree of reciprocity in 
    a social network:
    - The arc reciprocity, which is the fraction of reciprocated ties over all 
      actual ties in the network.
    - The dyad reciprocity which is the fraction of actor pairs that have reciprocated 
      ties over all pairs of actors that have any connection.
    In a directed network, the arc reciprocity measures the proportion of directed edges 
    that are bidirectional. If the reciprocity is 1, then the adjacency matrix is 
    structurally symmetric. Likewise, in a directed network, the dyad reciprocity measures 
    the proportion of connected actor dyads that have bidirectional ties between them.
    In an undirected graph, all edges are reciprocal. Thus the reciprocity of the graph 
    is always 1. Reciprocity can be computed on undirected, directed, and weighted graphs, 
    from the toolbox/menu: Analyze > Cohesion > Reciprocity. The report is opened and 
    displayed as usual in HTML format in your preferred web browser.
* New feature: Zero-weighted edge support
  -  In ordinary SNA, zero-weighted edges are thought to be meaningless, but a user 
     pointed to us that SocNetV was accepting and drawing zero-valued edges when opening 
     edge list formatted files. Apparently this was due to a bug. 
     In fact, the whole concept of an edge in SNA (and SocNetV) is that two actors i and j 
     are "connected" (and an edge is drawn between them) only if there is a non-zero value 
     at sociomatrix cell A(i,j). Thus, if A(i,j)=0 then the actors are considered not 
     directly connected and no edge should be drawn between them. 
     This assumption has implications in computations as well: all centrality and matrix 
     manipulation algorithms of network analysis are implicitly computing their results 
     using only non-zero (and some of them only positive) weighted edges between actors. 
     Nevertheless, we understand that some users may need this functionality only for 
     visualization reasons. Thus, we implemented this functionality in v2.3. 
     Please note that this functionality will work (for the time being) only for weighted 
     edge lists and only for simple visualizations.
* Bugs Closed:
  #28 Edges with values in [-1,0) are not visible
  #29 Settings: Negative edge colour preferences break positive edge colours


Version 2.2 - Jan 21, 2017 
Codename: "beyond"
------------------
* New feature: Hierarchical Clustering Analysis (HCA)
  - SocNetV can now perform hierarchical agglomerative cluster analysis on a
    social network.
  - Supported methods: Single-linkage (minimum), Complete-linkage (maximum) and 
    Average-linkg (UPGMA). 
  - The Structural Equivalence matrix can be computed from the adjacency or the
    geodesic distances matrix using a user-selected distance metric such as 
    Euclidean distance, Manhattan distance Jaccard distance etc.
  - The result of the HCA is the list of clusters per clustering level and 
    a dendrogram of the clusters hierarchy in SVG format.

* New feature: Eigenvector Centrality (EVC)
  - Yet another centrality metric is now supported: Eigenvector centrality. 
  - The EVC score of an actor is defined as the ith element of the leading 
     eigenvector of the adjacency matrix. The leading eigenvector is the 
     one corresponding to the largest positive eigenvalue.
  - This metric can also be used for embedding radial or level layout in the network.

* New feature: Pearson product moment correlation coefficients
  - SocNetV can now correlate actor profiles (ties or distances to other actors) and 
    compute a correlation matrix of pair-wise PCC scores. 

* New feature: Actor Similarity matrix 
  - SocNetV compares the pair-wise tie/distance profiles of actors and produces 
    a similarity matrix.
  - The user can select one of the supported measures (Simple Matching, Jaccard, Hamming, 
    Cosine similarity or Euclidean distance) 
  - The algorithm can compare rows (outbound links), columns or both of the input matrix.

* New feature: Tie profile dissimilarities
  - SocNetV computes the pair-wise tie profile dissimilarities of the actors, using 
    any of the supported "distance" metrics: Euclidean, Manhattan, Hamming, Jaccard, Chebyshev.
  - The algorithm uses the adjacency matrix as input. 
  - It can compare rows (outbound links), columns (inbound links) or both.

* New feature: Maximal clique census
  - SocNetV uses the Bron–Kerbosch algorithm to compute all maximal cliques in an undirected graph.
  - The Clique Census report has been revamped with lots of useful statistics. 

* New feature: Symmetrize edges by examining Strong Ties 
  - Given a network, the user can create a new relation with only strong ties (when both a->b and b->a exist).
  - The user has the option to create strong ties either from all relations or from current relation only

* New feature: Cocitation matrix
  - SocNetV computes and displays the cocitation matrix of the network.
  - The Cocitation matrix, C=A*A^T, is a NxN matrix where each element (i,j) is 
    the number of actors that have outbound ties/links to both actors i and j.

* New feature: Cocitation network
  - SocNetV creates a new symmetric relation by connecting actors that are cocitated by others.
  - In the new relation, an edge will exist between actor i and actor j only if C(i,j) > 0, 
    where C the Cocitation Matrix. Thus the actor pairs cited by more common neighbors will appear 
    with a stronger tie between them than pairs those cited by fewer common neighbors. 

* New feature: Filter (temporarily disable) unilateral (non-reciprocal) edges. 
  - This feature enables the user to have a directed network symmetrized by focusing only on the strong, reciprocal ties.

* New feature: Multi-relational data read and write in GraphML
  - SocNetV now supports reading and writing .graphml files with multiple relations. 

* New feature: GML format support
  - The application can load and parse GML formatted network data. 
  -  At the moment only graph, directed, node, edge, id and labels work

* New feature: Import multirelational directed networks from Pajek files
  - SocNetV can read Pajek files with multiple relations in *Arcs

* New feature: Support for EdgeLists with labels
  - SocNetV can now parse simple and valued EdgeList files where the nodes are referenced by their labels. 

* New feature: HTML reports
  - SocNetV reports are now saved by default in HTML format.
  - This allows us to have a vastly improved formatting in all reports.
  - Centrality and Prestige reports allow the user to sort results by any column on-the-fly.
  - By default, HTML reports are opened in the system web browser.

* New feature: Plot adjacency matrix 
  - SocNetV can now plot the adjacency matrix to a file using unicode chars

* New feature: Create basic subgraphs with one click
  - SocNetV can now create clique, star, cycle, and line subgraphs from given or selected vertices
 
* Improved performance
  - SocNetV can multiply matrices faster, by using a recursive Exponentiation by squaring 
    or Fast Modulo multiplication algorithm.
  - All TextEditor reporting windows will be closed on app exit/init
 
* GUI improvements: Revamped Control Panel and more app icons in the toolbar
  - The left toolbox (Control Panel) interface was changed to provide a more organized one-click functionality.
  - The add/remove buttons for nodes and edges have been removed from the Control Panel. 
    They now appear as toolbar icons, along with icons for node finding and properties, edge filtering 
    and application Settings.
  - The Analyze options in the Control Panel were re-organized in Matrix, Cohesion, Prominence,
    Communities and Equivalence select popups. 
  - In the Matrix popup list, the user can select which Matrix to compute and view, ie. Adjacency, Cocitation,
    Laplacian, etc.
  - The Cohesion popup list includes all basic graph-theory metrics: distances, walks, average distance, 
    clustering coefficient etc.
    The Equivalence popup lists all available Structural Equivalence algorithms in SocNetV: HCA, Similarities,
    Pearson Coefficients, and Tie Profile Dissimilarities.  


* Cosmetic changes: 
  - Select Relation Combo box now editable. User can change the name of the current relation on the fly. 
  - In case of errors during file importing, the applicaiton informs the user about the line in the file where the errors occurs.
 
* Datasets: 
  - New dataset: Petersen Graph
  - Transformed Krackhardt: High-tech managers and Zachary Karate club into multirelational datasets

* Bugs resolved: 
  #1645504 Wrong distances in valued/weighted social networks 
  #1463087 zero appeal parameter not working in scale free nets 
  #1629997 Edges with floating point weights are not saved 
  #1632857 creating nodes randomly may position some of them out of canvas 
  #1634634 Wrong interpretation of edgedefault graph attribute value  
  #1636525 Edge labels are not saved in GraphML when the network is undirected 
  #1637890 Cannot read edgelist files where edges are declared by labels (include non-digit characters)  
  #1632874 Rubber band selection does not always work 
  #1633194 Edge arrows option does not exist in Settings 
  #1633225 Deselect All does not deselect last clicked node 
  #1622870 Fix large matrix formatting in txt exports 
  #1637326 Loading multirelational pajek files leaves the app in "not saved" mode 
  #1 Wrong Group Degree Centralization computation (https://github.com/socnetv/app/issues/1)
  #2 Use GitHub as code hosting/repository service (https://github.com/socnetv/app/issues/2)

* Important Notice #1: Project's new domain: http://socnetv.org 
* Important Notice #2: Project's code and files are now hosted in Github.


Version 2.1 - Sep 28, 2016 
Codename: "fixer"
----------------
* Faster & accurate network analysis computation
  - The algorithms for social network analysis have been improved, and most of them are 
   computed all together when one metric is calculated. The metric results are saved 
  and re-used through the session. Metrics are recomputed only when new nodes or new edges
  are added or when edge weights are changed. 
 - Also network analysis metrics, such as PageRank Prestige (PRP) and Average Graph 
   Distance  (AGD) have been fixed to produce correct results.
* New d-regular random network generator
 - The algorithm of the d-regular network generator has been rewritten, and now produces
  both directed and undirected d-regular random networks without errors.
* Improved UCINET format support
 - Fullmatrix format is now supported again. SocNetV already supports edgelist format.
* Better network visualization 
 - Errors in node and edge stacking on the canvas, as well as huge line widths of edges
  with large weights have been corrected.
* Bugs Fixed: 
  #1624561 Network files with both arcs and edges are loaded as solely undirected nets
  #1622889 d-regular generator does not produce random nets
  #1623812 After a new network file loaded, the app behaves as the network has changed
  #1624583 UCINET dl file crashes the app
  #1624750 Random new nodes can be drawn out of canvas
  #1625831 Removing an edge in undirected Graphs does not update the node outDegree
  #1627390 Wrong PageRank Prestige results In undirected nets 
  #1627721 Wrong average graph distance metric in disconnected networks
  #1628382 Edges with very large weights are drawn with huge line widths
  #1627213 Crashes when double clicking on a target node, if the source node is deleted
  #1628170 edge labeling with html special chars breaks graphml files
  #1622891 Highlighted edges should have larger z-index 
  #1624352 Change edge color dialog does not show the current edge color
  #1624360 Default edge color and node shape wrong in Edit menu dialogs
  #1628395 Wrong z-value of nodes and edges - nodes and edges are cluttered



Version 2.0 - Sep 12, 2016 
Codename: "deep trouble, great fun"
-----------------------------------
* Major code overhaul for memory and performance optimization. 
  SocNetV 2.0 occupies less memory and executes most operations much faster than before.
  Random network creation is faster and more reliable as many bugs have been fixed. 
  Network data loading from files has also been optimized for speed and efficiency.
* New GUI layout
  There are no more tabs on the left side of the application window. Instead, the new GUI
  offers two side panels along the main canvas. The left panel (called Control Panel) has 
  most edit, analysis and visualization options to be selected with one click. The right 
  panel (called Statistics Panel) shows basic information and statistics about the social 
  network and the active node, such as network type (undirected or not), network density, 
  node in-degree and out-degree and node clustering coefficient.
  Furthermore, along the canvas there are two new sliders. The bottom horizontal slider 
  controls rotation. Drag the slider left-right or use the buttons on the two corners to
  rotate the whole network counterclockwise or clockwise. 
  The vertical slider on the right side of the canvas controls zoom. Drag the slider up-down
  or use the buttons on the two corners to zoom in or out.
  There is also a nice "reset zoom and rotation" button on the bottom right corner.
* New feature: Settings dialog and functionality.
  Up to v1.9, SocNetV did not offer any way to permanently save some of your preferences, 
  i.e. node and edge colors. The new version brings that functionality with a powerfull and
  user-friendly Settings dialog. You can find it under Options menu in Windows/Linux and 
  application menu in Mac). It can also be invoked using the keyboard shortcut CTRL+comma. 
  The dialog is composed of three tabs: General, Nodes, and Edges.
  In the General tab, users can change and permanently save their options such as debugging
  messages printing, progress bars appearance, canvas color and background etc. 
  The Nodes tab has settings about the nodes (default color, size, shape), node numbers 
  and node labels (toggling, color, font size and distance from the node). 
  Similarly, the Edges tab offers settings about the edges, their weights and labels.
  Any change to the options in the Settings dialog is applied at once. Furthermore, once 
  the user presses the OK button, all settings are saved in a file in the home directory
  and they will be used by default in all future sessions. 
  Note that some of these settings are also available as single options in the Edit and 
  Options menus. But any change to them from the menus will be temporary and lost once you
  close the application. 
* New feature: Labels on edges. 
  Except their weight, edges can have labels choosed by the user. Just right-click on an 
  edge, select "Change edge label" and enter a new label. The edge label visibility can be 
  toggled temporarily from the Options -> Edges menu or permanently from the Settings dialog.
  Edge labels are saved only in GraphML formatted files. 
* New feature: Directed Edges on different lines
  The new version brings a long requested functionality: to depict directed edges between 
  two vertices with different lines. In the past, any edge (directed and undirected) 
  between two nodes was displayed as a single line, which did not help the user to see
  at once if that line is one undirected edge, one directed edge or two reciprocal directed 
  edges between those nodes. Only small arrows on the two corners of the line were some 
  indication if that edge was inbound, outbound or both. 
  This problem is solved in v2.0. All directed edges are displayed as separate lines on 
  the canvas. Thus, if you add a tie from node A to node B and another tie from node B 
  to node A, the program will show two different directed lines connecting nodes A and B.  
  The same is true if you load a directed social network.
  If you want to create an undirected social network, or convert a directed network to 
  undirected, enable the menu option Edit -> Edges -> Undirected edges. 
  All edges will become undirected. Then you can add more undirected edges between nodes 
  as before. 
  The same logic applies on loading social networks from a file. If the file explicitly 
  declares undirected Edges or undirected graph, the network is visualized with undirected 
  edges, single lines with no arrows.
  At the moment only GraphML and Pajek files are supported.  
* New feature: Keyboard shortcuts.
  If you prefer using the keyboard to create and analyze your networks, the new version brings
  nice shortcuts to all basic functions. For instance, press CTRL+. to add a new node and 
  CTRL+/ to add a new edge.
* New feature: Delete multiple nodes at once.
  Select any number of nodes (left-click on the canvas and drag to select all nodes in the 
  rectangle rubber band). Then right-click on one of the selected nodes and select Remove nodes.
* New feature: Add edges from multiple nodes at once.
  You can select multiple nodes and add edges from all of them to another node at once. 
  The procedure is the same as deleting multiple nodes. Just select Add edge in the end...
* New feature: Node edges highlight.
  When you hover on a node, the program highlight (in red) all edges of that node.
* New feature: Edge highlight on hover. 
  When you hover on an edge, this is highlighted (red color and increased width) to help you 
  see the two nodes it connects.
* New feature: Recent files
  Version 2.0 brings a nice Recent Files submenu under the Network menu. Every time the user 
  loads or saves a file a relevant entry is added under Recent Files. This allows us to have 
  a list of the last five saved or opened files along with their paths, so that the user can
  re-open them with one-click. The Recent Files are saved between sessions.
* New feature: Tooltip and What's This help everywhere.
  Tooltips and What's This functionality have been added to most GUI elements. 
  Just hover on any button or control widget and a helpful tooltip will appear to explain 
  what it does. You can also click on the ? button on the toolbar and then click on any menu 
  entry, button, checkbox or widget to see a relevant explanation.
* New doxygen source documentation 
  The SocNetV Manual is now opened directly from the website instead of being local.
  If you prefer to have the manual offline, its source files can be found in the archive 
  tarball or zip file. To create the complete HTML manual, use the doxygen command.
* Windows 10 compatibility
  SocNetV v2.0 Windows executable is compiled with the latest Qt version which supports 
  Windows 10.
* Bugs closed: 
  See https://bugs.launchpad.net/socnetv/


Version 1.9 - June 23, 2015 
Codename: "summer breeze"
--------------------------
* Version 1.9 fixes many bugs and brings a faster matrix inverse routine 
  The new matrix inverse routine is now using LU decomposition. 
  Also Information Centrality is greatly improved in terms of computation speed.
  PageRank Prestige algorithm corrected to compute PR using the correct formula. The initial PR score 
  of each node is now 1/N.
  Bugs closed:
  #1463069 wrong average distance when there are isolates 
  #1365037 certain sparse matrices crash socnetv on invertMatrix method 
  #1365582 centralityInformation() is slow when network N>100 
  #1463095 edge filter works but the user cannot undo 
  #1464422 wrong pagerank results 
  #1464430 socnetv refuses to read pajek files not starting with *Network 
  #1465774 edges do not always follow relations 
  #1463082 edge color change is not taking place 
  #1464418 socnetv crashes on pagerank computation on isolated nodes


Version 1.8 - June 05, 2015 
Codename: "speedy"
--------------------------
* New feature:  Clique census computes maximal cliques 
  The new clique census report includes aggregate counts of 
  cliques (up to clique number 4), along with disaggregation
  by vertex and co-membership information.

* New feature: Scale-free random generation 
  SocNetV generates random scale-free networks of n nodes
  according to the Barabási–Albert (BA) model which uses a 
  preferential attachment mechanism. The algorithm starts 
  with the given m0 connected nodes. In each step it adds
  a single new node with m edges to existing nodes.
  The probability that the new node will connect to an 
  existing node i is:
   p_i =  (α + d_i ^ p) /  Sum_j (d_j)  

* New feature: Improved Erdos-Renyi generation 
  This version includes the G(n,M) model. In this model, 
  a new random network is created witg n nodes and M edges.
  SocNetV already supported the G(n,p) model where edges 
  are created with Bernoulli trials.

* New feature: improved dialogs
  New improved dialogs for easy random network generation:
  Scale-free, Erdos-Renyi, and Small-World.

* Bugfixes: 
  #1453743 CluCof is correctly computed in all cases.
  #1457774 Node Properties dialog is now populated with 
  current  node settings.
  


Version 1.7 - May 20, 2015 
Codename: "groups"
--------------------------
* New feature: Group select and edit for nodes
  From this version nodes can be selected with mouse
  and edited in groups. Just select some nodes, and 
  right click on a selected node or in the canvas, then
  select Node Properties.
  Also, there are now the familiar Select All (Ctrl+A) and
  Select None (Ctrl+Shift+A) shortcuts to select all nodes
  at once. 
  
* New feature: Node properties dialog
  A new dialog (Node Properties) offers all the editing
  operations in one place.
  The user can change node label, size, value, color
  and shape.
  If multiple nodes are selected, the new properties 
  are applied to all of them. In this case, the labels
  are automatically incremented (i.e. label1, label2, etc)

* New feature: Preview network file
  Due to the different codepages used by the Windows, Linux 
  and Mac, a network file saved i.e. in Windows containing 
  non-Latin characters could not be loaded by SocNetV because 
  the program always tried to read and write in the OS locale
  codepage. Furthermore, a bug in GraphML writing function 
  meant that SocNetV always used UTF-8 as Document Encoding, 
  even when the file was not UTF-8.
  The solution offered from this version is a nice file
  previewer which by default appears when loading a file. 
  With it, the user previews the file in many different
  encodings to find the correct one, namely the one where all 
  characters appear as they should. By pressing OK, the file
  is loaded and the network is displayed on the canvas.
  Linux and Mac users should always use UTF-8, except when they 
  try to load files saved in Windows computers.
  Windows users should probably use Windows-1253, except when 
  they want to load files saved in Mac/Linux or files containing
  non-latin chars (i.e. Russian). 
  Russian Windows users should probably use KOI8-R encoding.
  
* Change: UTF-8 default encoding for writing files
  From this version, SocNetV by default uses UTF-8 codec for all
  output textstreams, such as network files. 

* Change: New keyboard shortcuts for nodes and links
  From this version, keyboard shortcuts are becoming key 
  sequences in the form of Ctrl+X, Ctrl+Key 
  For instance, Ctrl+X followed by Ctrl+A (for adding 
  nodes) and Ctrl+L followed by Ctrl+A (for adding links).


Version 1.6 - May 11, 2015 
Codename: "crawl me"
--------------------------

* New feature: Working Webcrawler 
  This is the first 1.x release with working web crawler.
  The crawler consists of two parts: a spider and a parser.
  The spider visits a given initial URL (i.e. a website)
  and downloads its HTML code.
  The parser scans the code for 'href' links to other pages 
  (internal or external) and adds them to a queue of URLs 
  (called frontier).
  As URLs are added in the queue, the spider visits them and 
  downloads their HTML which is scanned for more links by the 
  parser, and so on...
  The end result is the 'network' of all visited webpages as 
  nodes and their real links as edges.
  Please note that the parser searches for 'href' links only 
  in the body section of the HTML code.
  To start the web crawler, go to menu Network > Web Crawler 
  or press Shift+C. A dialog will appear, where you must 
  enter the initial web page (seed). 

* Bugfixes:
  #1453743 wrong clustering coefficient calculation 
  #1241239 1.x: crawler not working 
  #1393926 Web Crawler bug on process full crawling of a 
     seed, and bug in different parameters 
  #1443965 SocNetV crashes when I try to open saved networks. 
  #1388224 Web crawler menu option disabled 


Version 1.5 - Oct 10, 2014
Codename: "standardization"
--------------------------

* New feature: Prominence indices on valued networks 
  A new SSSP-solver algorithm has been implemented (Dijkstra) 
  which allows SocNetV to compute prominence indices on weighted 
  networks. When the graph edges are weighted, the application
  asks the user if it should consider weights in computations.
  Also, it asks the user if weights should be inverted or not.
  This question is crucial since edge weights can have 
  different meanings. For instance they can denote cost or votes.
  If they denote cost, then the geodesics should be those paths 
  with minimum value. But, if the weights denote votes, then the 
  geodesics could be those path with maximum value. In the latter 
  case, the user should choose to invert weights so that Dijkstra
  compute the desired paths and distances. 

* New feature: Standardized Centrality and Prestige scores
  From this version all actor prominence indices report standardized 
  scores (from 0.0 to 1.0) where applicable. If there is no known 
  formula to compute such a standardized score for actors, then 
  SocNetV computes a std score by dividing the original index score 
  by the sum of index scores of all actors. For instance, this happens
  on PRP.  Warning: If the original prominence index has range 
  from 0 to 1 (i.e. EC and IRCC), SocNetV considers that as std and 
  does not compute anything else. 

* Change: Prominence layouts are relative to highest score
  From now on, all (circular, level and nodal size) visualization 
  layouts based on prominence scores are graphed relative to the highest
  score in the network, instead to the theoretical max (1.0). For 
  instance in a circular layout, say the actor with the highest CC 
  has score 0.8. That node will appear to the center of the circular 
  layout. All other actors will appear on circles of radius relative 
  to that highest score. I.e. an actor with score 0.4 will appear on 
  a circle of radius 50%  further from the screen center, while another 
  actor with CC score 0.2 will appear on a circle of radius 75% further 
  from the actor with the highest score.

* New feature: Work without isolates, if you like
  The user can omit isolates and compute prominence indices 
  for the resulting graph.

* New feature: Graph connectedness
  SocNetV can report the network connectedness (whether it is a 
  connected graph or digraph, unilateral etc). Also it can check
  whether isolates exist that can be removed so that the graph 
  can become connected

* New feature: CC drops isolates by default
  Up to v1.5, SocNetV did not compute CC scores if the network had 
  isolate nodes, instead it urged the user to use IRCC. From this 
  version, SocNetV checks if isolates exists and automatically drops 
  them in order to compute CC scores.

* Bugfixes:
  #1358678 Fix GDC calculation in weighted networks
  #379558 Force-Directed algorithms produce poor layouts 
  #1365028 Methods isOutLinked & setOutLinked do not consider relations
  #1365504 centralityInformation() should symmetrize adjacency matrix 
  #1366625 click on an edge does not select the right edge
  #1369171 Group IC calculation yields incorrect results
  #1371208 wrong power centrality scores
  #1364955 vertices() should report only enabled vertices 
  #1369336 pagerank prestige reports wrong scores 
  #1370528 socnetv cannot build on non-x86-based architectures 
  #1364320 remove SRS pdf and fix spelling errors in Code
  #1364361 SocNetV does not remember last directory used by user
  #1378346 Cannot change size and value of a node 

* New datasets: 
  - Stephenson and Zelen (1989): Network of 40 AIDS patients
  - Stephenson and Zelen (1989): IC test dataset, 5 actors
  - Wasserman and Faust: star, circle and line graphs of 7 actors


Version 1.4 - Sep 01, 2014
Codename: "consistency"
--------------------------
* New feature: layout node sizes by their prominence index
* New feature: SocNetV imports edgelist1 UCINET format i.e.
    dl
    N=48
    format=edgelist1
    data:
    1 2 4
    1 3 2
    1 6 2
    1 8 2
    ....
    ....
* Bugfixes:
  #1362529 change between relations stops working after closing a network 
  #1362653 isolate nodes can be disabled but not enabled again!
  #1363399 link direction is not preserved after saving and loading to graphml 
  #1362994 dataset recreation not working in Windows
  #1363393 cannot edit nodes or edges that have already been clicked
  #1362611 random circular layout not working
  #1362625 Comboboxes do not init after a New Network is loaded/created
   #713617 Segmentation fault when loading GraphML file  
   #514264 Certain GraphML files may crash SocNetV

* Fixed statusBar messages on nodeInfoStatusBar to report out-Degree and
    In-Degree rather than outLinks and InLinks

* Added datasets:
   Freeman's EIES networks (multirelational, 32 actors)
   Freeman: EIES network, at time-1, 48 actors
   Freeman: EIES network, at time-2, 48 actors
   Freeman: EIES network, number of messages, 48 actors 


Version 1.3 - Aug 28, 2014
Codename: "Multirelational"
--------------------------
* New feature: Multirelational networks.
  Starting from version 1.3, SocNetV supports multiple relations, that is
  networks with ties of different kind between actors.
  The first time a link is created in a network, SocNetV asks the user to name
  (or label) the new relation between actors/nodes.
  The user may add add more relations to the network by pressing the + button
  in the toolbar and switch between relations by clicking the previous and next
  arrow buttons in the toolbar. Have fun!
* Memory and speed optimization:
  SocNetV can now load and display networks of 1000 actors and 10000 edges
  without a problem using under 400MB RAM. And fast too!
* Fixed bug in Mac OS version: Could not read the file with the report data!
* Home directory for SocNetV:
  SocNetV now saves all reports and data to $HOME/socnetv-data
* UCINET import fixes:
  Fixed UCINET import to support multiple matrices.
* Datasets:
  Changed "Bernard_Killworth_Fraternity" dataset to multirelational (2
  relations in the same UCINET file)



Version 1.2 - Aug 18, 2014
Codename: "Happy times"
--------------------------
* Changed conceptualization of importance indices:
  In general, all indices attempt to  measure the visibility, the importance
  or the "Prominence" of each node. But from now on, following Wasserman & Faust
  and Knoke & Burt, we now distinguish two types of prominence:
  Centrality and Prestige.
  Most Centrality indices were designed for undirected graphs (symmetric),
  where the relations are non-directional. They can also be calculated to
  directed relations and digraphs by focusing on "choices made" (or outLinks).
  For digraphs, where the relations are directional, we introduce a range of
  Prestige indices which focus on "choices received". These indices
  measure the nominations or ties to each node from all others (or inLinks).
  Thus, Prestige indices can only be calculated on directed graphs, and measure
  the status, rank or popularity of each node.
  According to the new conceptualization, the "Centralities" menu has been
  renamed to Centrality & Prestige. Centrality indices can be applied on both
  graphs and digraphs (measuring outLinks) while Prestige indices can be
  calculated only on digraphs and they measure inLinks.

* New Prestige indices: Degree Prestige, Proximity Prestige and PageRank Prestige.

* New "reachability" statistics: Walks (of given length), Total Walks
  Matrix (for any path length up to g-1), and Reachability Matrix

* New Connectedness statistic: Checks whether the graph is connected, weakly
  connected (digraph) or disconnected.

* New "distance" index: Eccentricity e, the maximum farness of the node from all others

* Revamped GUI. Toolbox now has two tabs: Controls and Statistics. In
  Controls, all the essential features are available grouped in Edit (add
  or remove node/link), Analyse (distances, connectivity, clusterability,
  prominence indices) and Visualize (by prominence index or dynamic models)
  boxes.Also renamed Statistics menu to Analysis

* New level visualization layouts: By IR Closeness Centrality, Stress Centrality,
  Eccentricity Centrality, Power Centrality, Information Centrality,
  Degree Prestige, Proximity Prestige and Pagerank Prestige

* New circular visualization layout: By Proximity Prestige

* New automagically recreated dataset:
    Wasserman_Faust_Countries_Trade_Data_Basic_Manufactured_Goods

* SocNetV Manual: Updated documentation (added new indices and corrected wording)
  and added the Manual in Mac OS X .dmg package.

* Fixed Bugs: Closeness Centrality in disconnected graphs/digraphs (it did not
  drop isolates), wrong classes for PC indices, Stress Centrality (wrong maxindex
  and circular layout in digraphs), not displaying of edge weights,
  Matrix::product errors, Eccentricity Centrality (wasn't reported as the inverse e),
  Geodesic Distance (it reported two nodes as connected even if their distance was 0)

* Matrix Class: added new operators in Matrix (+,*),

* Dropped Graph Eccentricity as it is known as Eccentricity Centrality

* fixed layout and signal/slots in datasetselectdialog.ui

* fixed warnings during compile (i.e. unused fileContainsNodeColors etc in loadPajek()


Version 1.1 - Aug 2014
Codename: "bugfix hunt"
-----------------------
- fixed circular guides boundingRect
- fixed weighted graphs inDegree and outDegree centralization calculation
- fixed bug in DistanceMatrix for Closeness centrality min and max index
- fixed bug in DistanceMatrix std and group Graph and Closeness Centrality
- Changed default arrowSize and colors
- Added dataset: Knocke_Bureacracies_Information_Exchange_Network (pajek)
- nicer createAdjacencyMatrix in Graph to let spaces between weights.
- nicer printout of distance and sigmas matrix
- Changed minimum size of scene and graphicswidget to remove scrollbars
- Enabled SmoothPixmapTransform qpainter render hint by default
- Removed obsolete optimization flag from graphicsview
- New statistics matrix: NumberOfGeodesics
- Updated manual for NumberOfGeodesicsMatrix option
- Removed unused variable warnings in createDistanceMatrix

Version 1.0  -  Feb 2014
Codename: "4 years later"
---------------------------
- First version in Qt5
- New Feature: PageRank calculation and layout
- New reference item: SRS Documentation by Vagelis Motesnitsalis
- Re-introduce GraphViz import menu option
- Init "Spring Embedder" tab checkbox to none when user creates new network.

Version 0.90 -  Oct 12 2010
Codename: "Worka Worka"
--------------------------
- New feature: Power Centrality calculation
- New feature: Information Centrality (Stephenson & Zelen) calculation
- New feature: radial layout according to Power and Information centralities
- New feature: filter (enable/disable) orphan nodes
- New feature: import two-mode affiliation networks (in sociomatrix format)
- New, faster container for GraphicsWidget Nodes based on QHash
- More automagically recreated known data sets 
- Allow really large networks to be loaded without crashing. Still too slowly though.
- Nodes are selectable (but not yet editable) in groups
- Fixed bug #518219: Certain Pajek files might crash SocNetV
- Fided bug #515756: Ctrl+F after a node removal may crash SocNetV
- Fixed bug #515758: Random layout crashes SocNetV, if a node is removed
- Updated user manual to new version features.
- Removed counts of outLinkedNodes, inLinkedNodes and reciprocalLinkedNodes because they were causing too much overhead when loading large networks. The relevant LCDs were also dropped from the UI.


Version 0.81 - Jan 28 2010
Codename: "bugfixes"
---------------------------
- New feature: automatic recreation of known data sets.
- Now, SocNetV can read two kind of lists:
  a) weighted lists in the format
     source1 target1 weight1
     source2 target2 weight2
     source3 target3 weight3
     ...
  b) simple (unweighted) lists
     source1 target1 target2 target3 target4...
     source2 target1 target2 target3 target4...
    source3 target1 target2 target3 target4...
- Fixed bug #507818: "Export as pajek, overwrites the graphml file"
- Fixed bug #511418: "List loading crashed SocNetV".
- Fixed bug #511420: "Edges do not follow nodes in SocNetV development version for Windows"
- Fixed bug #470283: "file saving doesn't automatically give the file an extension"


Version 0.80 - January 8  2010 
Codename: "supersyntages.gr"
----------------------------
- New statistic: Triad Census.
- New statistic: clique numbers for each node.
- Initial read support for list formatted files.
- Read support for comma separated values (csv) formatted sociomatrix files
- Much improved Dot format support. 
- Faster network load times, thanks to control variables.
- Added keyboard shortcuts for Centralities
- Refactored Import network menu. The user must define what network format is the file at hand.
- Fixed bug #416965: Not displaying nodes when loading GraphViz files
- Fixed bug #396124: GBC different in Pajek cp. to SocNetV
- Fixed bug #415277: network files were not loaded on startup
- Fixed bug #379225: side note: GraphML format did not preserve node labels.
- Fixed bug #418023: rewiring parameter typo in Graph:createRandomNetSmallWorld.
- Fixed bug #420708: on GraphML output files, not transforming special XML characters, like &, to ampersand codes, like &amp;  
- Fixed bug #418550: Clear selection when clicking on empty canvas.
- Fixed bug #504037: Negative Group Closeness Centrality
- Fixed bug #504517: double cliques counting in nondirected networks.
- Edited .spec to enable proper Fedora package creation.
- Changed ProgressBar behaviour: bars appear only if nodes are more than 300 or edges more than 1000.
- New feature: the embedded text editor can be used to copy/paste directly network data
- Updated user manual.


Version 0.70 - June 30  2009
Codename: "Summertime"
----------------------------
- First web Crawler implementation. Use Shift+C to test it. Doesn't support frames yet...
- Multiple nodes can be selected with mouse. Press and hold left mouse button somewhere on the canvas, then move mouse to test it.
- Fixed bug #379204 which was crashing SocNetV when creating small worlds above 201 nodes
- Fixed bug #381096 crashing SocNetV in Edge Filtering when an edge was reciprocal.
- Fixed bug #381094 weight changes not recorded correctly in symmetric edges.
- To speed things up, the on-the-fly Clustering Coef. and Average Distance
calculation was removed from random network creation routines.
- Random Layout is back!
- Speed improvement in FindNode method.
- Progress Bars now appear whenever a distance-related calculation is
happening, so that the user knows what is happening and how long it will take.
- Tom Tryfonidis prepared Arch PKGBUILDs for SocNetV. You can install it from
AUR.
- Reverted to older version name scheme. All versions: 0.XX




Version 0.6.0 - May 27 2009
Codename: "Spring"
----------------------------
- GraphML becomes our native load/save format ( partially support for yFiles)
- New filter edges by their weights functionality. 
- The background can be a custom image (via menu View > Background Image)
- New rounded rectangle shape for nodes.
- Nodenumbers can be displayed inside nodes, once again. Sorry, labels are
too difficult to show inside nodes :(
- Fresh application iconset in shades of gold and gray. 
- New version name scheme. Main versions: 0.x Bugfixes: 0.x.y 
- Project admin, code, bug tracking etc moved to Launchpad/Bazaar. Report bugs
to Launchpad.
- SocNetV joins the QtDesktop project (http://code.google.com/p/qtdesktop/)


Version 0.51 - Feb 16 2009
Codename: "Maria"
------------------------------
- Fixed serious bug in DistanceMatrix method, affecting centralities and layout. 
- Fixed debug messages output default status to false, so that SocNetV is more responsive.
- Officially added  DL (Data Language) file format support. This is UCINETs FULMATRIX mode.  


Version 0.50 - Feb 13 2009
Codename: "Recession (or the ballad of the deranged Greek statesmen)"
------------------------------
-'Small World' random network creation (Watts and Strogatz model).
-Clustering Coefficient calculation. 
-Average Graph Distance (shortest path length) calculation. 
-Nodes can be linked to themselves with nice bezier curves.
-Negative and decimal edge weights are now fully supported.
-Dashed lines are nicely used to signify negative edge weights. 
-Export current network to PDF with one click.
-Number and label colors are editable.
-Fixed number and label font size problem.
-Fixed PNG and BMP export regression.
-Fixed Printing regression. Printing is OK now. 
-New program logo and icon.
-Icon for Windows executable.
-Code cleanup (no more compile warnings) and minor memory optimisations.
-User messages/warnings and menu icons update.




Version 0.49 - Jan 13 2009
Codename: "Alexis Grigoropoulos (R.I.P.)"
------------------------------
-Weight numbers can be displayed over links.
-DL network format initial support.
-Floating point edge weights are now supported...
-Bug fix: Show correct new node number instead of %i
-Bug fix: Zoom while rotate works (thanks Andre!).
-Bug fix: No longer BFS crashes. SocNetV is more reliable.
-Bug fix: Changed shortcut of OutDegree to Ctrl+1.
-Added GraphML loading


Version 0.48 - Sep 30 2008
Codename: "Road to nowhere?"
------------------------------
--Erdos-Renyi random network creation.
--Removing symmetric edges, now asks what direction to remove.
--New layout method: node sizes according to their indegrees.
--No node limit. Load any network you want (make a coffee while waiting :)).
--loadPajek() recognizes Arcslists and Matrix edges formats.
--Edges are being drawed once (faster loading and node movement).
--Graph API simplification and "standardization"
--New LCD widget displaying network density and some improvements to the dock.
--In-file declared  node colors and shapes are used as they should.
--Fixed bugs in removeNode methods.
--Lots of bugfixes in loadPajek() method. 
--Documentation update
--Progress Bars (F10) appear when creating random nets > 300 nodes.
--RPM repository for openSUSE at http://download.opensuse.org/repositories/home:/oxy86/openSUSE_11.0
--SocNetV has a new, modern logo. It still resembles a snail though. ;)


Version 0.47 - Sep 12 2008
Codename: "En leukw"
------------------------------
--Fixed bug in adjacency matrix loading/saving.
--Edges are drawed once, even the reciprocal ones. This makes network loading faster...
--Cosmetic changes in canvas (labels stay above edges, etc).
--Fixed another bug in loadPajek().



Version 0.46 - Sep 11 2008
Codename: "Autumn leaves"
------------------------------

--Zoom in and out via mouse wheel work nice.
--Nodes (triangles, diamonds) resize as they should.
--Node shapes are now saved to Pajek files.
--New layout method displaying node sizes according to their outdegrees.
--Code cleanup and bugfixes in loading Pajek files.



Version 0.45 - Aug 30 2008
Codename: "Changes (I' going through)"
------------------------------

- GraphML initial support.
- New man page and updated online documentation.
- HtmlViewer renders online help with the help of QtWebKit (openSUSE: libQtWebKit-devel)
- New widget for network rotation.
- New widget for zooming replaces the old one.
- Nodes may have 4 different shapes: circles, diamonds, triangles, boxes and ellipses are supported.
- There was a bug in Qt 4.3 QGraphicsView causing redraw delays. Is fixed in Qt 4.4 :)
- Cosmetic changes, i.e. new icons, new layout for the left dock.
- Code clean-up in MainWindows Class and Matrix. Deleted obsolete members and functions such as nodeExists(), mousePosGW(), Dijkstra, etc. 
- Fixed bugs on loading Pajek networks and layout algorithm.



Version 0.44 - May 1st 2008
Codename: "Strike"
------------------------------
- Changed license to GPL3
- Complete code rewrite, build on Qt 4.x and Graphics View framework.
- New, improved graphical user interface (GUI) with docks.
- Splitted GUI from algorithms. 
- Threaded loading of networks. This leaves the GUI responsive when reading a file.
- New improved Shortest Path algorithm (BFS/dijkstra).
- Centralities are calculated much faster.
- Real-time, on-demand, reallocation of nodes (Spring Embedder) which works :).
- Layout in circles and levels by centrality.
- Simple zoom in/out on the networks.
- Better graphics and antialiasing (disabled - enable by pressing F8).
- New centrality index: Eccentricity.


Version 0.43 - September, 2006
Codename:  "Tux"
-------------------------------
- NEW LAYOUT: Spring Embedder algorithm
- FIX: Actor Numbers are once again displayed outside actors' shapes by default. 


Version 0.42 - late June, 2006
Codename:  "Amused to death"
-------------------------------
- NEW: Actor Numbers are displayed inside actors' shapes by default. 
- NEW: Actors can be added just by double-clicking on the canvas
- UPDATE: Help files
- UPDATE: Some Options menu items were reformed.
- FIX: "View Network File" bug.
- FIX: "Diameter error in weighted networks" bug. 
- FIX: "Segmentation fault in degreeCentrality after remove/add new actor" bug.



Version 0.41 -  March 08, 2006
Codename: "Conservatification :-)"
-----------------------------
- NEW: Actors may have more shapes: boxes, triangles, circles, ellipses, diamonds, etc.
- NEW: Can import and export pajek nets with shapes.
- FIX: In-Degree/Out-Degree Centralities were implemented.
- UPDATE: Dot import improved.
- ATTEMPT: Dot export implemented partially.
- List import implemented partially.
- FIX: in pow(double, double) fixed


Version 0.40  -  Feb, 18  2006
Codename: "A Greek Big Brother"
-------------------------------
- Stress Centrality was implemented.
- Fixed bugs in centralities calculation
- Simplified layout of centralities' reports.
- Fixed circular layout by degree, closeness and betweeness.
- Circular layout by centralities shows helpfull red-dashed circles.



Version 0.39  -  Feb, 05  2006
Codename: "Dazed and Confused"
------------------------------
- Fixed bug on betweeness centrality.
- Betweeness and closeness centralities work with undirected graphs.
- Graph Centrality was implemented. 
- 


Version 0.38  -  Feb 2006
Codename: "Back to Metropolis - Back to the village"
---------------------------------------------------

- Code has been rewriten from scratch.
- Most menus have been redesigned.
- Faster loading of large networks (>100 actors).
- New network format can be imported (DOT from graphviz).
- Sociomatrix viewer has its own nice wigdet.
- Support for the X color database (found in rgb.txt).
- Window resize causes a nice reposition of all actors and links, maintaining proportion (I think).
- Busy cursor when loading networks.
- The user may change even the size of the actor numbers and labels.
- Dijkstra's algorithm for weighted networks has been implemented. It is fast enough for networks up to 150 actors.
- Breadth-First algorithm for non-weighted nets has been implemented ?
- Degree Centrality and Layout take weights into account. The user may define negative weights as well.
- Negative link weights are displayed as dashed lines.
- Weight numbers can be displayed nicely above links.
- Can transform all arcs to links with one click.
- Circular lattice network generation.
- Random same degree network generation.
- Quick Tips by pressing F2.
- Helpful tips displayed on StatusBar for every meny option. Also a new What's This menu item may become handy.
- Bug fixes ("#include math.h" was the most silly of them).
- SOME FEATURES FROM PREVIOUS VERSIONS (i.e. COMPONENTS ANALYSIS) WERE DROPPED.



VERSION 0.37 (codename "Evros Iceman - You're in the army now...")
------------
- Now uniform random network is really a random process.
- Bug fixes.
- Changing node label is now an "on the fly" process.
- Filtering edges by their weights is now supported.
- Layout by centrality is now more comprehensive:
    A background circle is drawn for every centrality value.
- Arcs/Edges calculation is now correct.     
- Directed networks/centralities/layout were flawed. Still it is...


VERSION 0.36 (codename "fine")
------------
- Bug Fixes
- Acceleration Keys work fine.
- Messages are multilingual now. Only Spanish support for now.
- Context Menu appears when right-clicking on canvas.
- Layouts by closeness and betweeness centralities now work fine.
- Exporting networks to BMP and PNG format is now supported.



VERSION 0.35 (Jan 22 2005)
------------
- Bug fixes.
- d-regular network support
- Multilingual support. 
- Spanish menu support. Thanks to David De Ugarte. Set locale "es" et voila!




Version 0.34 (JAN 14 2005)
------------
- Countless bug fixes, ie:
    Blank name when blank network is created.
    Loading a network file after Creating New Network had undesirable effectes.
    ASSERT: "i < ..."  when nodes <-> edges
    When removing a link it keeps on reporting it.
- Random network creation
- Row index form (beta)
- Betweeness and closeness centralities now work fine.
    


version 0.33 (22 May 2004)
-------------------------
- Countless bug fixes.

- Betweeness centrality.

- New layouts, by centrality (did not work!).

- Edges' weights can be changed by right-clicking on the edge and selecting the relevant command.

- Matrix algebra: inverse, power, determinant, etc.




version 0.32 (15 May 2004)
---------------------------
- Countless Bug Fixes.

- With a click on the "display database" menu option,
  you can view (and print if you like) the complete Database.

- New Transformation: edges <-> nodes 

- Re-reading Wasserman and Faust is always good. Now reachability works well.
  Distance is really ok. Centralities (informational, etc) are implemented, too.





version 0.31  (May 2004)  
------------------------

- Countless Bug Fixes.

- Clicking on a link causes the StatusBar to display info about the specific link.

- Thanks to QT examples, a simple Help viewer has been incorporated.




version 0.3  (March 2004)
-----------
- Somewhat improved memory mngmt; at least, there are no more segmentation faults :)

- Changed internal representation of links: 
  Every link has a source A and a target actor B.
  The source actor A is 'OutLinked' with the target B, while the latter is 'InLinked' from
  the source actor A. This relationship is denoted as A->B.
  If the target actor B of a link (A->B) is also OutLinked with the source, i.e. B->A, 
  then this (two-way) link is an edge. This relationship is denoted as A<->B.
  Else the (one-way) link is just an arc.
  Thus, this representation is compatible to PAJEK's arcs and edges  (or at least what I
   assume that PAJEK does).

- SocNetV can write adjacency matrix ("sociomatrix") to a text file. <NL: MANDRAKE 9.1>
- SocNetV can write PAJEK-formatted network in a file. It saves the on-screen node
  coordinates as well.

- Some interesting node/actor data are displayed in the Status Bar. Also, 
  tooltips w/ coordinates are known to emerge when you leave the mouse pointer on
   the canvas.

- Right-clicking on a node causes a node-specific menu to popup.

- The statistics menu tries to be more relevant to its name! Now it is
  populated by : density, distance, reachability, diameter, centralities.

- The user can remove any node by the appropriate (context) menu command.
  Edges can also be removed using the relevant menu command. There is no
  mouse interactivity with the edges at the moment.  (April 2004)

- Network components (maximal linked subnets) can be calculated. It can also
  paint the nodes of each component with the same color.




version 0.2
-----------
- Somewhat improved mouse interactivity with vertices.

- Now SocNetV can read even adjacency-matrix network files :-)

- New features: network layout options, rudimentary descr. statistics, etc

- New menu (still inactive): Transform Menu



version 0.1
-----------
- First Version of SocNetV (Feb 2004, in the end of an inexpectably heavy
  winter). Initially i planned to name it something like 'nwd' 
  or snail (social network analysis in Linux), although 
  I cannot even remember what 'nwd' was supposed to meant!

- SocNetV should normally read plain PAJEK-formatted network files. At this
  point, only vertices and edges are supported. Also you can read but you cannot write :(

- Efforts to add mouse interactivity to vertices.

- Separate text editor to view and tickle with the text files.

- SocNetV is unable to directly save network files, although this can be done
using the esoteric text editor.





  
x
