Forgot your password?
User Journal

Journal: Posting limits 2

Journal by Wonko the Sane

Really Slashdot? You're going to run a story guaranteed to have over a thousand posts but you're going to impose posting limits on subscribers? What am I paying for if I'm suddenly going to be cut out of the conversation and unable to reply?

User Journal

Journal: The reality of resources and population

Journal by Wonko the Sane

The reason for this post is to point out that all the doom and gloom about the increasing population is unfounded, meaning that there are real, achievable solutions that don't involve totalitarian government controls or genocidal population reduction measures.

First off, how much will the population grow? If left unchecked will it continue to grow forever?

The answer to the second question is no, not if the developing world continues to industrialize. The answer to the first question is about 9 billion, give or take. As the standard of living increases people voluntarily choose to have less children on average. No coercion is necessary. So to get to a stable (actually slightly declining) population we need to remove barriers that prevent the developing world from reaching western levels.

The primary barrier is energy. All resource shortages can be overcome if sufficient energy is available. We can desalinize seawater and pump it to wherever is needed if the energy is available to do so. We can grow vastly more food than we do now if sufficient water and fertilizer are available. Liquid hydrocarbons (gasoline) can be synthesized from water and carbon dioxide. All these processes are known and understood, they just require energy.

So how much energy do we need? If the US experience is any guide we need about 350 million BTUs per person, per year. So with a worldwide population of 9 billion people that adds up to over 3 quintillion BTUs per year.

Can that much power be generated? Absolutely, but you aren't going to get there with wind turbines and terrestrial solar panels.

There's one element that exists on the planet in sufficient quantities to generate the required power for a long time and that element is thorium. Each ton of thorium generates 1 GW-year (30 trillion BTUs) of energy when used as nuclear fuel, so the world's energy demand could be entirely supplied by 100,000 tons of thorium per year (compare this to the billions of tons of coal we use annually now). With 120 trillion tons estimated to exist in the Earth's crust we've got a long time before we need to start looking somewhere else, like the moon or Mars.

So the solution to the population crisis, energy crisis and pollution crisis is to stop pushing fake solutions that won't do anything except cause misery for billions of people and let us use state-of-the-art (1960s era) nuclear technology to produce abundant clean energy for everyone.

User Journal

Journal: Aggregating contacts is hard.

Journal by Wonko the Sane

I'm writing this mainly to get my own thoughts straight before I take a stab at implementing this myself.

Merging and synchronizing contact information between all the various services that a person might use appears to be to be an unsolved problem. I've looked high and low and I can not find a single piece of software that will:

  1. Maintain a definitive list of meta-contacts and mappings (i.e. map a Gmail contact to a Facebook contact)
  2. Import data from every service I use
  3. Automatically export information that missing from one member of a metacontact but present in another member (when the underlying service supports this)
  4. Gives me means to both access and edit this information both on my PC and on my mobile phone
  5. Present an editable, unified view that eliminates redundant and obsolete data.

Accessing the data is the easy part. Most services have API functions that let you access it in either a read-only or read-write format. In some cases though all you have to work with is a CSV file.

So for this to work I need to a way to gather all the required information, put in into relational form and find/create the appropriate mappings

This is where it gets tricky. Very few software projects properly handle contact information. The data model needs to include all the metadata about the contact that you care about and meta-metadata. A person can have an unlimited number of email addresses, for example. Any particular email address might be a home address or work address. It might be an active address that you should send mail to or it might be an old address that is no longer in use (but you want to keep it associated with that person so you know who all those old emails came from)

So creating a robust relational structure in your database is non-trivial, but solvable. The hard part is wrangling the data from the other sources into relational form. Most data services do not have a unique, invariant identifier for each contact. Each and every attribute is subject to change. Usually matching based on name or email address will work but contacts can and do change both of these from time to time.

Once you get all the information pulled into the database now it's time to eliminate duplicate information by merging all those subcontacts into their respective metacontacts. Each subcontact should map to exactly one metacontact. The metacontact itself should NOT have any attribute information (name, email address, phone number, etc) directly associated with it to prevent data duplication.

Once you get the subcontacts merged into metacontacts now you should merge the metadata to eliminate duplication. The easiest way to do this is to aggregate all the information from every subcontact and display anything that not a duplicate. If Facebook and Google both say the John Doe has a email of then we only need to display that once. If they have different email addresses then we should display both. Finding duplicates isn't always easy: +1 (800) 555-1212 and 8005551212 are actually the same number (from the point of view of a caller in the US) but a simple text search will not reveal that. The former would be better to display so ideally you'd just update the latter data source, but what if it's read only? In that case you need a way to prevent certain subcontact attributes from being pull into the metacontact. In addition certain attributes shouldn't allow duplicates. If a person only has one canonical name, then should you use their Twitter username, their Facebook user name or the name stored in their associated Gmail contact? The user must decide and the database needs to store this choice.

So after we're all done with this we'll have a nice, unified view of all contact information. This unified view should be editable and any changes made to the underlying data should be pushed out to all services which are not read-only. In the case of the read-only services the stale data should not roll up into the metacontact, unless and until the underlying data changes. Example: someone in their Facebook list their phone number as 800-555-1212 but I edit this number to include the country code because I want to be able to call him from outside the US: +1 (800) 555-1212. This change can be pushed to Gmail but not to Facebook. So from now on the mapping between metacontacts and subcontacts should exclude the mobile number from the Facebook subcontact, unless my friend changes his phone number on Facebook to something else. If that happens the new number should roll up into the metacontact.

Some services do not support attribute metadata. A CSV file might just have a "address" field without specifying if it is a home or work address, physical or mailing, active or deprecated, etc. So this meta-metadata will need to be stored in the database itself. Meta-metadata as possible should be synchronized to the maximum extent supported by the underlying service.

I think I've got enough there to keep me busy for a while. I'm going to try to build a proof of concept of this but I may not get very far before I throw my hands up in disgust or someone else implements it (maybe Akonadi, but I haven't seen anything that indicates that it will have robust metacontact functionality)

User Journal

Journal: Giving all users database server access by default. 3

Journal by Wonko the Sane

Especially with KDE applications there is a need for each user on a system to have access to a relational database to get full functionality. Usually this is provided by MySQL. Every database server for linux that I know of has its own concept of usernames and passwords which must be configured seperately from the users on the system because traditionally a database server served clients over the network, not local users.

Is there any way to set up MySQL or a MySQL-compatable database that gets username and password information from PAM and stores data in each user's home directory? This would make database access work just like mail delivery, as long as a user exists in the system and has a ~/.mysql_data directory he or she has full access to any database stored in that directory with no per-user configuration required.

It seems to work for mail, why not for databases also?

User Journal

Journal: CrossFit

Journal by Wonko the Sane

I remember seeing this article when it was first posted but I really didn't pay attention to it. Now I wish I had. I'm on the second week of a month-long introductory CrossFit course and it's the first time in my life that I actually enjoy intense exercise. Based on what I've seen in just one week it really does live up to the hype.

User Journal

Journal: Which company to blame? 5

Journal by Wonko the Sane

If I'm having a problem getting my phone to work with my car's audio system which company should I contact first?

T-Mobile (mobile provider)?
Ford (car manufacturer)?
Motorola (phone manufacturer)?
Microsoft (Sync)?
Google (Android)?

User Journal

Journal: Eerily Quiet 1

Journal by Wonko the Sane

After all the political stories that Slashdot posted on the front page last year they don't mention the special election in Massachusetts today at all.

What's up with that?

User Journal

Journal: WTF is wrong with our government? 5

Journal by Wonko the Sane

Why is the State Department working to get the former president of Honduras reinstated when the official report from the Law Library of Congress states:

V. Was the removal of Honduran President Zelaya legal, in accordance with Honduran
constitutional and statutory law?

Available sources indicate that the judicial and legislative branches applied constitutional
and statutory law in the case against President Zelaya in a manner that was judged by the
Honduran authorities from both branches of the government to be in accordance with the
Honduran legal system.

Why are we paying for department of expert lawers to answer these kind of questions when the answers get summarily ignored? Should we be worried that the our president is supporting an executive who attempted to subvert the constitution of his country?

User Journal

Journal: Batteries, Gasoline and Math 2

Journal by Wonko the Sane

I got some flack on the article about the Teals Roadster for the statement that batteries need to improve by about a factor of 20 before electric cars will have the same long distance capabilities as gas powered cars so I've decided to publish a more complete explanation.

For the purposes of this exercise we'll consider a hypothetical 4-door sedan. This particular model seats 5 adults and has a large trunk capable of carrying the luggage that a family of five needs for a road trip. It has a 16 gallon gas tank and can travel 400 (highway) miles on a tank while carrying that family and their luggage. Finally, this car is equipped with a modular engine that can be removed and replaced with an electric propulsion system. Likewise the gas tank can be removed and replaced with a battery (we want to make this comparison apples-to-apples)

The efficiency of this car when powered by gasoline is about 20%. When it is powered by electricity it is about 90%. Efficiency in this context means tank(battery) to wheel. Since we are comparing the ability of these devices to store energy the efficiency of pulling crude oil out of the ground and getting into the tank as gasoline, as well as the efficiency of generating and transmitting electricity and charging the battery are outside the scope.

First let's figure our how much energy is necessary to move this family of five and their luggage 400 miles on the highway. We know that it the engine consumes 16 gallons of gasoline, which contains 1.9 gigajoules of energy. Since we also know that the engine wasted 80% of that energy the actual amount of work necessary to move this vehicle 400 miles at highway speed is 387 megajoules. In order for our car to make the exact same trip at the exact same speed on electric power, we need a battery that can store 426 megajoules (90% efficient).

How big will that battery be? To start with lets convert 426 megajoules to electrical units: 188 kilowatt-hours. Using the most optimistic numbers we have for lithium-ion batteries today gives us an energy density of 160 watt-hours/kg and 360 watt-hours/liter. Our battery will weigh 2,600 pounds (compared to 97 pounds for gasoline) and take up 138 gallons worth of space. Even if we assume that the frame of the vehicle can handle the extra weight of this battery there is no way you are going to fit it, five adults and their suitcases on your trip.

Are electric vehicles great for getting around in town? Yes. Are they ready to replace fossil fuels for long-haul travel? Not yet. When you see that batteries can store 4 kilowatt-hours per kg and 3 kilowatt-hours per liter then you'll know that batteries have caught up with gasoline in terms of vehicle energy storage.

User Journal

Journal: Why do they keep breaking Slashdot? 2

Journal by Wonko the Sane

Ever since they added comment moderation to this site I have always browsed at -1 threshold.

Now apparently this is not possible anymore with the new discussion system. I can no longer move the little slider all the way down to show all comments regardless of rating.


User Journal

Journal: Foes? 3

Journal by Wonko the Sane

I've been reading Slashdot for close to a decade now, and in the last week I've got my first ever foes.

Now I'm curious as to why...

User Journal

Journal: New Hampshire legislature debates secession

Journal by Wonko the Sane

The State-Federal Relations and Veterans Affairs Committee of the New Hampshire legislature has introduced a resolution specifying certain actions of the federal government which would nullify the constitution of the United States. They also call upon the other states in the union to adopt similar resolutions.

That any Act by the Congress of the United States, Executive Order of the President of the United States of America or Judicial Order by the Judicatories of the United States of America which assumes a power not delegated to the government of United States of America by the Constitution for the United States of America and which serves to diminish the liberty of the any of the several States or their citizens shall constitute a nullification of the Constitution for the United States of America by the government of the United States of America.

That should any such act of Congress become law or Executive Order or Judicial Order be put into force, all powers previously delegated to the United States of America by the Constitution for the United States shall revert to the several States individually. Any future government of the United States of America shall require ratification of three quarters of the States seeking to form a government of the United States of America and shall not be binding upon any State not seeking to form such a government; and

That copies of this resolution be transmitted by the house clerk to the President of the United States, each member of the United States Congress, and the presiding officers of each State's legislature.

User Journal

Journal: It's 2009... why does Jabber still suck?

Journal by Wonko the Sane

The Past:
I played around with Jabber back in 1999/2000 when it was still new. In installed a server, set up some transports and played around with the clients of the time (I can't remember which ones). While things were initially promising I found that the system had no concept of a meta-contact. If I had a friend with Yahoo, ICQ, and MSN accounts then I had three seperate contacts. So I gave up on it and forgot about Jabber for several years.

The Present:
I don't use instant messaging much, but my wife does every day. Her family and friends live in another country where most people do not have computers in their homes. Every day her mother will go to a local internet cafe and log in to MSN (Live messenger) in order to use the webcam. Fortunately there is a MSN-compatiable Linux client (aMSN) that supports webcams (but not sound). My wife doesn't understand why she can't use voice chat to talk with her family, and wants me to install Windows so she can use the "normal messenger".

So by now Jabber/XMPP should be ready, right? The audio/video protocol Jingle was released a few years ago by Google and several IM clients support various forms of audio/video chat so by now surely all the pieces are put together...


I decided this morning to study up on Jabber again. Fully expecting to find enlightenment, I open up a browser and search for "gentoo jabber howto". apparently there's not much activity. I dig a little deeper and find that wikipedia has some information. Now there are seven server programs to choose from. Some projects are dead, some are commercial, a few are written in java and ...erlang?

jabberd-2 seems to be the successor of the server program I used before. It does support transports for the network I am most interested in (pymsn-t). Unfortunately pymsn-t seems to be unmaintained. On the plus side we have a someone wanting to continue development.

Digging deeper into that thread, someone actually suggests that a XMPP user should be able to send files to a MSN client user, but not receive them in order to push adoption of XMPP! Good idea - deliberately make a program feature-incomplete to subtly break backwards compatability with older programs. (where have I heard that before?)

So I'm back to square one. My wife can do video chat, but not voice chat with her family. No solution exists that will let me install one XMPP client and communicate everyone, regardless of the network they use (even if I'm willing to run the server myself). Maybe in a few more years.

User Journal

Journal: Quotes to remember 1

Journal by Wonko the Sane

There needs to be an equivelant of for memoriable slashdot quotes.

Possibly, however doctors and scientists tend to have stricter standards of proof than "making shit up" or "google searching".


Soccer moms will be the downfall of western society. Hordes of unvaccinated kids that live in super sterile conditions so they never develop an actual immune system that then get crammed into overcrowded daycares cause mommy and daddy have to work four jobs to pay for the house, white picket fence and the "think of the children" special edition SUV will be the source of the next great pandemic.


User Journal

Journal: Advertising jingles

Journal by Wonko the Sane

the theory of advertising is that even if you don't like the ad, that it makes an association between the brand and the product.

Those jingles are powerful, I still remember old one from years ago.

Like last night when I drove past a gas station and heard this in my mind: "Quick Trip makes today's pancaaaaaakes"


"Atomic batteries to power, turbines to speed." -- Robin, The Boy Wonder