“A Study of Passwords and Methods Used in Brute-Force SSH Attacks”
April 6th, 2008
This is a great security talk from Clarkson.
Posted in Uncategorized | No Comments »
Grasp, it cannot be held — it is intangible.
April 6th, 2008
This is a great security talk from Clarkson.
Posted in Uncategorized | No Comments »
March 19th, 2008
Integers and floats are not sufficient representations of measurements. If an engineer has an int to count bytes and an int to count sectors, adding the two yields useless gibberish. A C compiler is not able to catch such mistakes. An engineer can discover such blunders during a review, but developer time is expensive. Therefore, the compiler needs to be made aware of scales. There are two ways to accomplish this.
int size = 123; // bytes int location = 4; // sectors int new_location = location + size;
This is legal C, but a human reader sees the mistake of adding two variables of different scale.
The first method for scale awareness is to define types using the already existing tools. In the bytes and sectors example, an engineer can create a struct for sectors and a struct for bytes with accompanying arithmetic and conversion functions.
typedef struct {
int value : 0;
} sector;
sector add(sector, sector);
sector sub(sector, sector);
byte to_bytes(sector);
class Sector {
int value = 0;
void add(Sector);
void sub(Sector);
Byte toBytes();
}
Scale aware software can prevent conversion errors.
The second method for scale awareness is a built-in compiler construct for defining scale relationships. Using such tool, an engineer can define a sector to be equal to 512 bytes. The compiler can then evaluate the addition of bytes and sectors as an expression of type byte, converting sectors to bytes at run-time.
typedef int sector;
typedef int byte;
scaledef sector = 512 byte;
byte size = 123;
sector location = 4;
byte new_location = location + size;
A modified C compiler can verify existence of scale conversions at compile time and perform the conversions at run time.
There are arguments in favor of both methods. Types can be placed into a standalone software library. This ensures modularity by separating the standard library, the scales library, and the controlling module that utilizes these libraries. However, because it is hard to account for all possible types of scales and conversions, the scales library must be constantly modified and updated, defeating one of the main advantages of modularity – code reuse.
The argument in favor of scaledef lies in its inherent simplicity from an engineer’s perspective. Having only one line of scaling definition increases readability of software source. The guarantee of automatic conversions by the compiler allows an engineer to concentrate on the higher level of logic rather than dwelling upon the details of ubiquitous conversions.
The software engineering community can benefit from a study in the quality of software produced by engineers who use the scale aware paradigm as compared to those who perform manual conversions. An other benefit of such study is the collection of first prototypes of the software libraries for scaling.
Posted in General | No Comments »
October 31st, 2007
The world embraces Adam Smith’s ideal of individualism, hoping that the Scottish philosopher is right and everyone will benefit in the end. Unfortunately, we have arrived at the Nash equilibrium in the matters of sustainable development. No one is willing to pay the price for preserving the environment, so it is degrading in negligence. Using Hurwicz’s ideas, we need to design a mechanism that will make preserving the environment economically advantageous.
UN has a committee on environment preservation, and holds annual international conferences. We have not seen much progress. The problem is in the soft and unequal requirements.
The best way to make the requirements hard is to bar the percentage of trade equal to the percentage of unmet financial obligations per country. This will make countries very much motivated to meet their contribution promises and possibly lower them.
To make the requirements fair, every country must contribute the same percentage of their gross domestic product to the cause of environmental improvement. This will be the resource for building renewable, non-polluting sources of energy like wind and solar panel farms.
Following these rules, the countries will strive to meet their contribution promises in order to keep trade uninterrupted. The incentive to grow the gross domestic product is also preserved.
Posted in Environment | 4 Comments »
October 14th, 2007
gvocab has a new home at google code. There is also a link at gnome files.
Posted in Open Source | 5 Comments »
October 13th, 2007
Here is the second release of gvocab, the vocabulary builder. New features:
It turned out that gconf recommends to not store anything except properties in the gconf database. gvocab stores session state in ~/.gnome2/gvocab/session.xml, similar to gedit, which stores its own session information in ~/.gnome2/gedit/sessions/gedit-*.
For the next release, I am planning improvement to the teaching algorithm. I think a word should not be marked as learned the first time the user guessed its meaning right. Repetition is essential to learning.
Posted in Open Source | No Comments »
October 8th, 2007
Here is a GTK vocabulary builder with 5k+ words. Key advantage: it will not get off your back until you have learned every single word.
In the next release I want to use gconf to remember the learning progress.
Posted in Open Source | No Comments »
August 12th, 2007
Upgraded to Gutsy Gibbon on my Medion MD2900. I like that it boots faster and has newer software, especially the new Appearance Preferences. However, the fonts became tiny for some reason. I had to switch from 10pt to 12pt everywhere. Too bad that my 4+ years old laptop keeps sporadically committing suicide via overheating in idle. Can’t wait to get a new one.
Recently noticed an awesome but sparsely known feature in Deskbar. I can search for a word in my clipboard if the following option is selected:
Now I can browse through NYT or WP, select the word viscerally, press Alt-F3, and select Dictionary. Sweet.
Posted in Open Source | No Comments »
July 27th, 2007
I started posting links to the books I recently enjoyed reading. Each link has a short description of how I came across the book and what I thought of it. I got the idea from Kyle.
Posted in Books | No Comments »
Professor Wojcik gave this book to me. It makes one think of life and death. Every page hides a deep philosophical meaning that can be extracted by a careful reader.
I used this book for a summer course in world religions. It gives a thorough overview of many ancient and modern religions. This helps to make more sense of world history, ancient traditions, and current events.
I used this book at work in smart card development. Although it is oriented toward Java coders, it provides valuable information for everyone who seeks introductory information on smart card technology.
Although I do not presently invest, I want to know how it works in case if I will do it in the future. This book breaks many misconceptions and shows the mistakes people make in trading. I recommend it to anyone who does not want to lose their hard-earned money on the stock market.
I borrowed this book from Min to expand my knowledge of finance and economics.
This is one of the earliest American psychological novels. The author, Stephen Crane, studied at Syracuse University and lived in New York City, so it is especially exciting to read it. This work opens my eyes to many of my own deficiencies that make me similar to the main character.