I – or should I say my ol’ faithful lappy – finally caved in. It’s something about windows installations that makes them age with time. Sure, I’m not free of blame, having installed thisses and thattes, but I have ran antivirus software and disk defragmenters and even uninstalled apps I don’t need and shut down servives that I seriously do not need. Whatever.
Here we are, 2009, and a new 2.5″ IDE hdd of 320GB is less than 1kkr. I got one and after some deliberation I opted for windows7 with Fedore Core as a close runner up.
So what did I install before the computer got productive?
The puropse of my machine is to connect to work, deveop some hobby projects of my own, write documents and such. Nothing out of the oedinary, really.
Work related:
* MS Office – Commercial word processor etc.
* Visual Studio – Commercial development environment.
* SqlServer Express 2008 – Database backend
* Tortoise -[free] Splendid windows explorer integrated client to subversion
* CCTray – Client monitor for CruiseControl.Net
* BeyondCompare – [commercial]File comparison tool.
Neat utilities:
* Notepad++ – Free excellent text editor with color coding for lots of syntaxes.
*Foxit Reader – Free fast PDF-reader.
* Process Explorer – Free task manager replacement.
* 7Zip – Free multi format compression handler.
* ImgBurn – Free CD/DVD burner with ISO support.
Internet
* Putty – Free ssh client.
* Firefox – Free internet browser
* Chrome – Free internet browser
* Skype - Free chat and phone client.
Just for fun
* Spotify – Excellent music client.
* Flash – For games and stuff in the browser.
* VLC – Free media player, supports most formats.
* Filezilla – Free graphical ftp client.
That’s most of the initial cut of installations.
There are a few things left to install:
* 4Dos – The command shell microsoft never made.
* CdEx – Free audio ripper.
* CygWin – Free Linux utils for windows,
Have fun. Let me know if you think I missed any useful tool!
–Jesper
I mentioned the podcast This Week in Virology a while back. I wrote them an email asking on the subject of Virus and Symbiosis. Here’s what I asked:
Dear fellows of Twiv,
It is my understanding that us humans live in peace and symbiosis with some bacteria. Is there any such arrangement with any virus?
Another way to phrase the question; if all viruses were to be removed from the world, would we be better off?
A follow-up question, even more abstracted from the lab bench; if all viruses were gone, is it reasonable to believe that new ones would come into existence? How fast? From where? In one of the twiv episodes someone said “Any suffciently complex system has parasites”, so I assume given time something is bound to fill the niche of viruses.
All the best,
–Jesper Hogstrom
Actually, I had learned from the previous episode (#46) – which did air after I sent off my question – that there are at least one case of symbiosis between a virus and life. A type of grass that grows in volcanic areas needs to be infected with a fungi and a virus to withstand the heat in the ground.
Anyway, in episode 47, Vincent and Dick elaborated on my question from 49:57 to 58:40 (and Vincent thought it was a great question!).
In short, there are benefits from viruses:
* They speed up evolution by horizontal gene transfer.
* There is so much virus in the oceans, and that turns over a lot of carbon. Removing that and the carbon cycle would change, impacting the ecology greatly.
The ensuing discussion about if virus would re-appear in some way is also very interesting.
I do recommend listening to the entire episode.
September 3rd, 2009 in
internet media,
mp3 | tags:
mp3,
podcasts |
No Comments
There I was, checking my email and writing the odd mail I should have written long ago when all of a sudden gmail tells me it can’t connect and presumptuously suggests my internet connection is down.
Twitter to the rescue… http://search.twitter.com/search?q=gmail+down and you’ll get the basic idea. I’m fairly sure it can be used to check other new items too.
I also stumbled upon http://downforeveryoneorjustme.com/gmail.com and just as gmail served me a 502 server error, the aforementioned site said that “it’s not just you”…
One of my favourite podcasts is RadioLab. The shows come out every two weeks or so, sometimes more often and it’s always a joy to listen to.
Robert Krulwich and Jad Abumrad make the most well produced shows I’ve ever heard. And to top it off they always have an interesting topic, something about science or metaphysics or existential questions with well made interviews with interesting researchers in the field. And there’s more; Their voices sound so nice. It’s a bliss to listen to, and always make me feel good.
If I for some reason had to cut down on listening, I’d keep this show to the end.
One of the books I read this summer was The Exodus Quest by Will Adams (ISBN 978-0-00-725088-2). It’s a story about an archaeological find in Egypt, closely related to Moses and the Exodus out of Egypt.
There’s quite a lot about ancient Egypt in this book, especially pharao Akhenaten and his Aten temples, and how they are related to Moses and the Essenes. There’s no need to know anything about these things beforehand, rather, I found it an intriguing historical period that I will follow up on.
Daniel Knox, an archaeologist of some fame (in the world of the book!) is the book’s protagonist. He’s somewhere between Indiana Jones and Robert Langdon [of the 'da Vinci Code'], and the book is full of action, car chases, excavations and lots of historical facts – the ones I have checked up on seem to hold water.
The evil villain is the preacher Ernest Peterson, some kind of deranged Old Testament prophet-like fundamentalist.
The core of the story is that Peterson and his team have found something in the desert that fills in a number of blank spots in both the Exodus story and in linking the Essenes to the early christian church. And of course to Egypt. While perhaps a controversial theory, it was proposed by Sigmund Freud in 1939 in Moses and Monoteism. Anyway, Knox and his friend from the ministry of Archaelogical Affairs head out due to a hunch Knox has, and despite being told the excavation is just practice for students Knox soon finds out they’ve struck gold. And the hunt is on…
There are also corrupt policemen, good friends and lots of suspense in there. It’d make for a nice action/adventure movie, and the book is written in a fast paced tempo, making it a page turner.
A good story peppered with historical facts. Go get it!
This weekend I spent in the wilderness for the annual canoe hike. A recurring event is the treasure hunt. Since we’ve been doing it for a few years we’ve learned a few tricks I figured I’d share.
The basic idea is to send the kids out on a hunt with a map. They get a clue that point to a location on the map where they find the next clue to the next location and so on until they reach the treasure (typically a bag of candy).
This year we brought 14 kids, so there’ll be several teams roaming around simultaneously. We had the following objectives:
* Hard questions for the older kids, easier questions for the younger kids.
* Not having to write too many question or hide too many clues.
* Not all teams go the same track, as that would ruin the fun if you can just follow the team ahead of you.
Here’s what we did:
First, copy the map. You’ll need one copy per team.
Second, write hard multi-choice questions on pieces of paper. You’ll need as many question-papers as the longest track. Use only the upper half of the paper, as you’ll need the bottom half for the simple questions.
Now design the longest track. Take a paper, write “start” at the top and mark the correct answer of the question with a symbol – “+”.
Take a map, write “Group 1/Hard” on it.
Decide where you want the group to go first. Mark that location on the map with “+”. Take the next question-paper and write the name of the location on the top corner – that’s where you’ll put that clue later. Mark the correct answer of this question (i.e. number 2 for “Group 1/Hard” with a new symbol – “X” – in front of it.
Decide the group’s next stop and mark it on the map with an X. Take next question and repeat. Note: You must never reuse symbols! Let’s say you have five questions. Make sure the last location points to were you’ll hide the treasure.
What you have now is a track to follow and a map to find the track. The wrong answers have no symbols in front of them; we’ll fix that later.
If you have a second group that shall use the hard questions, simply take a new map and write “Group 2/Hard” on it.
As you remember the start question’s correct answer is marked with “+”. Decide which of the locations you have already decided on you want the second group to go to first. Let’s say you want group 2 to go first to the location Group 1 knows as “X”. Simply write a “+” on the second map on the location where the “X” is on the first map. Continue until they have found all clues, make sure the last clue’s answer symbol is pointing to the treasure on the map.
Now, write simpler questions on the bottom half of the question papers. Mark the correct answers with a symbol.
Take a map and mark it with “Group 1/Easy”.
On the “Start” question, the correct answer might be marked with “#”. Decide to which of the existing clue caches they should go to first. Mark that place on the map with “#”. Maybe this group needn’t have as long a track as the first set, so feel free to point to the treasure after three or four clues.
Now for each question, mark the wrong answers with a unique symbol. Place that symbol on all maps. That is a dead end, there should be nothing there to find! You can just as well place the ‘wrong-answer-symbol’ on the same place on all maps.
Now the three maps have the same symbols, but the symbols marking the clues are on different places on every map. Thus, there’s no cheating possible. The groups will also head off in different directions when the hunt begins.
Before you gather the kids, you obviously have to place the clues ‘in the world’ so to speak. Since you have written on each clue/question where it is located (you did that when you set the first track for” Group 1/Hard”) just take the shortest route and hide the clues.
As we were doing this with canoes, we put the clues in plastic bottles, tied a string to the bottle and a stone to the other end of the string and let them float in the water. You might be in your garden or in the woods, so hide the clues as makes sense. Depending on the age of the kids and so on you might want to make the clues easy to find once you get in the correct vicinity.
We realized a bit too late that we could have saved ourselves a second trip to pick up the clues (no littering, you know!) by making checkboxes on the papers. Give every group a pen, and ask them to mark a checkbox. If they filled in the last empty check box, they were the last group to visit that clue, and they can bring it back.
Remember to use fewer checkboxes on the clues that are not to be visited by every group!
Gather the kids, divide them into groups (give every group a cool name, like “Wild Kids” or “Wolves”), explain that they will find questions and that the symbol in front of the correct answer will be the location of the next clue. Also tell them that there are “false” symbols on the map and they are not supposed to visit every symbol on the map. Set them off and enjoy an hour of piece and quiet.
–Jesper
August 23rd, 2009 in
Leisure |
No Comments
After several years of rather satisfying service from Telia I decided – on a whim – to switch to Tele2.
Actually, there were a few things that annoyed me on Telia. One was that I didn’t manage to change the machine that was connected to the ADSL connection. I followed all instructions I could find and even called support. All I had to do was switch off the modem for 20 minutes and turn it back on with a new box plugged in. Never worked. Three hours. Still no new IP. Of course, it may have been just me, but that has never stopped anyone from being annoyed before.
The other thing was that I upgraded to 24Mbit/s, paid more, but they didn’t send me a new modem. I also had a feeling that new customers got better deals than me.
So, I switched. The switch was surprisingly painless. The target date was April 30th, and I expected all connections to go down and I’d have to install the new shiny modem I received from Tele2. Nothing of the kind! All of a sudden my dhcp address changed and that was it!
Then my wife started complaining about her mail not reaching her friends. My first suspicion was user error, but then I realized I had set up my qmail mail server to route via Telia’s smtp-server. Doh. I can’t blame Telia for not routing mail from Tele2 customers.
The neat thing about my linux servers is that they never crave any attention. That’s also a bad thing. While documentation is fun of the highest degree, my own network is slightly less than 6 sigma standard in that regard. Luckily I remembered that all I had to do was change the server name in the /var/qmail/control/smtproutes file.
Unfortunately Tele2 have blocked all outbound traffic on port 25. Instead they require mail clients to use port 587 and also to authenticate.
I had received a paper with a user name and password. I also set up a mail account with a new password. Furthermore I spent significant time researching how to shove that into the smtproutes file.
All to no avail. Support closes at 8 pm, but then I’ll try to explain my problem. The support site mentions very little about how to configure an smtp-server, though it does mention a lot about configuring mail clients. They also have a robot help desk service named Sara, where you can presumably ask questions in natural language. She claims to answer questions about internet, broad band and so on. I asked “How can I relay from my smtp server?” and got the reply “Server… Not my thing really. I don’t know much about hardware”.
Tomorrow I’ll bother tech support. That’ll be fun…
–Jesper
Whenever I take off on an off-line session, I spend some time to find interesting podcasts to fill up my mp3 player with.
This time I ran into This Week in Virology, http://www.twiv.tv/. It’s about viruses, not computer viruses, but “the kind that makes you sick”.
I have no prior education in virology, but this podcast made it very interesting and accessible, and on a level that discusses receptor molecules, gene sequences and RNA strands – in other words significantly deeper than your ordinary daily news paper. A whole new world opened, and I immediately subscribed to it when I got back home.
If virology and/or molecular biology is something that interests you, I really recommend this show. It’s weekly, one hour long and consists of recent news in virology, interview with a leading researcher and then weekly picks of books and other science podcasts. Everything done in a down to earth discussion style, with enormous amounts of information to learn!
–Jesper Hogstrom
I have applied for a new job. I want to be island keeper in Australia. That may sound like a joke, but it is for real. Those crazy oz people dreamed up a fantastic publicity stunt, where they hire someone to basically stay in a luxuary resort for six months to do nothing but do interviews and go on excursions. They pay nicely too.
I think I am well suited for the job (given that … eh… I am an excellent programmer, quite a nice guy and appreciate Australian movies like Crocodile Dundee). However, ten thousand other people also think they are the perfect fit.
Here’s how you can help me. Visit my application and vote. The star to aim for is the right-most. Be sure not to click any of the four left-most stars as high ranking will be of the essence. You want them all to be yellow when you click that button!
Feel free to pass this instruction on to trusted friends or anyone who’s willing to watch the one minute video and vote.
Obviously, beer’s on me when you come visit, mate!
Now, off to vote while I start packing.
Best regards,
–Jesper Hogstrom
February 21st, 2009 in
personligt |
No Comments
Anyone doing development and want to be serious about need a build machine. If you’re not only into being serious but also want some fun, why not try enhance the infrastructure by for instance writing your own CCNet plugins?
After some experimenting it turns out to be really simple. All you need to do is implement the interface ITask. There are however a few more things to keep in mind.
Before I start, let me say that everything I learned about this comes from looking at the source of CruiseControl.Net and also peeking at the Twitter Publisher by Thomas Freudenberg.
Your assembly must have a name on the pattern ccnet.*.plugin.dll. The location of the dll must be the same as the ccnet server directory (typically c:\Program Files\CruiseControl.NET\server). During development, feel free to name that as your output directory.
The namespace and class name are not important. However, you need to add an attribute, ReflectorType, to the class. The constructor takes a string. That string is the node you specify in ccnet.config.
I think it is time for an example.
-
using ThoughtWorks.CruiseControl.Core;
-
using System.Windows.Forms;
-
using Exortech.NetReflector;
-
-
namespace any.name.isvalid
-
{
-
[ReflectorType("mynewpublisher")]
-
public class ClassNameNotImportant : ITask
-
{
-
public void Run(IIntegrationResult result)
-
{
-
MessageBox.Show(string.Format("yehaa {0} – {1}", result.ProjectName, result.Status));
-
}
-
}
-
}
This can be tested by the following configuration file:
-
<cruisecontrol xmlns:cb="urn:ccnet.config.builder">
-
<project name="MyFirstProject" >
-
<publishers>
-
<mynewpublisher/>
-
</publishers>
-
</project>
-
</cruisecontrol>
When you connect your cctray to the project and force it you’ll get a happy message box. Please refrain from using actual message boxes on your server! This is something you should try at home, not at work
There are times when your publisher needs some configuration. This is easily accomplished by more attributes;
-
[ReflectorProperty("user", Required = true)]
-
public string User { get; set; }
The config file now looks like
-
<publishers>
-
<mynewpublisher>
-
<user>jesper</user>
-
</mynewpublisher>
-
</publishers>
If you specify Required=True you will get a startup failure if the xmlnode is not specified!
Some properties are numbers (he said numbly). Fear not, just adorn the adornment some:
-
[ReflectorProperty("intvalue", Required = true, InstanceType=typeof(int))]
-
public int intvalue { get; set; }
There is also the odd chance you need a list of items as a property to your publisher. That’s a tad bit more involved, but here goes. First, the config file we want to specify looks like:
-
<mynewpublisher>
-
<user>jesper</user>
-
<intvalue>33</intvalue>
-
<recipients>
-
<recipient name="jesper"/>
-
<recipient name="jonas"/>
-
</recipients>
-
</mynewpublisher>
In other words, a list of recipients that each have a name. First, the property on the publisher-class:
-
[ReflectorHash("recipients", "name")]
-
public Hashtable Recipients { get; set; }
To make sure we don’t inadvertently hand out nulls we need to add a constructor as well
-
public ClassNameNotImportant()
-
{
-
Recipients = new Hashtable();
-
}
We also need to define the class to hold each item. Luckily it is simple.
-
[ReflectorType("recipient")]
-
public class Recipient
-
{
-
[ReflectorProperty("name")]
-
public string Name { get; set; }
-
}
Test it in your Run-method.
-
public void Run(IIntegrationResult result)
-
{
-
MessageBox.Show(string.Format("Recipients: {0}", Recipients.Count));
-
foreach (Recipient r in Recipients.Values)
-
MessageBox.Show(r.Name);
-
}
There are a few more attributes that can be used, but I must admit I haven’t investigated them thoroughly. The NetReflector package is available on sourceforge here.
At any rate, this article should be enough to get you started. I’ll definitely start implementing some of my publisher ideas – the Twitter Publisher is admittedly already done, but it was only number three on my list.
–Jesper Hogstrom