Contract4J is a DbC implementation for Java that uses annotations and aspects to implement the preconditions, postconditions and invariants one has come to grow and love.
Something to do with attributes in a class being setup in C# vs some extra freedoms in Java 5. To Maybe Do One Day: Care and fill in the rest of this
So now you know, Coke really is evil.
Coca Cola in Columbia had their union organisers murdered. After refusing to give in to demands of a third party investigation, New York University has decided to remove all Coke machines from its campus.
I like a9.com. Its a search engine thats run by Amazon. It uses Google’s search engine for web based searches so the results are of good quality. It also lets you search a plethora of other sources (some 200 and counting)
The trick is that the results from different sources appear in multiple panes in your browser, all at the same time. This helps by showing you different perspectives of your search term and a broader scope of what your search means to different sites. Therefore you can write better searches and find what you want quicker with little effort.
Initially I thought it was just another gimmicky engine trying to catch the search engine train until I realised the usefulness of the multi-engine search. I got started with it because a9 users get a small discount on Amazon purchases just by signing in and using the search engine (the discount kicks in after a couple of weeks of use)
There is a toolbar for both Firefox and Internet Explorer which does the sign in automatically so you’ll be eligible for that discount in no-time. The other aspect is that the system has a diary, bookmarks and history features that are computer independent which means that you can have a very fast & portable online lifestyle. Today I realised that a9 had been tracing my browsing history for the past 6 months. Many would feel this is a risk of their privacy, but more so I found it useful. Any firefox browser on any platform can install the a9 toolbar. Those using a desktop search tool to keep tabs on their browsing history are no longer restricted to a single platform.
This Novell Cool Solutions page begins a trail on figuring out how to get Samba working with the SuseFirewall switched on. It explains all the key components well and provides references to further reading.
Although a solution is provided, it only covers the situation that you will never be using one of the interfaces and talks about using other software to manipulate the iptables system (the kernal level firewall if you will). I wanted to keep things simple and thought I’d try to champion a way, or at least build reasoning on enabling SMB over the firewall using the standard Yast tools, without opening the share up to who knows what on the big bad Internet.
It actually led me to read Chapter 23 of the Suse Linux Reference Guide about Security in Linux. It’s a well written doc that explains how the operating system uses iptables to manipulate packets that flow through a machine. The other key concept explained in this doc, are the firewall zones, internal, external and DMZ (demilatarised zone) which may be new to you if you are coming from using a mainstream firewall in a Windows OS. Each interface is associated with one zone only.
The internal zone consists of interfaces that are usually plugged into each other – places on a local LAN you can trust. You have an external zone consisting of the Internet and other untrusted sources. Suse’s default setup is to place both your network interfaces in the external zone. The yast wizard is very leading and the only place you can dictate allowed services with minimal effort is in the external zone.
I think SuSEFirewall makes the assumption that you are connecting one port directly to a dsl modem (ppp interface) and you have a seperate network cable going out to your local server. One interface is external and the other internal and thus you can specify what services can run between LAN machines and what services can run between internet machines seperately.
When researching this problem, I noticed that writers of firewall articles were careful to emphasise the importance of setting the zones correcly and that is another piece of the puzzle. If all your interfaces and services run out of the external zone, but the external zone merely represents a connection to a router than its your routers responsibility to be the firewall for your network.
There is still more to read, and I’ll edit this blog as I get to them.
Ways to configure SuSEfirewall
Consider SuSEFirewall as an interface to the iptables that the operating system uses to dictate its packet filtering. SuSEFirewall can be configured with Yast’s Security->Firewall component which provides wizards for ‘ease-of-use’ setup. The only problem is that there is no specific SMB Client rule and the SMB Server rule doesn’t appear to work.
/etc/sysconfig/SUSEfirewall2 is the controlling file of the firewall. Its a good config file to read as it explains all the paramaters with examples. This file is what the Yast module actually writes to once you’ve made changes to the firewall. I found that you can also manipulate this file via the /etc/sysconfig module in Yast which just wraps the comments and their paramaters up in a nifty GUI.
Having used various *nix desktops, I’ve grown accustom to the everything you select, goes to the clipboard. Using either a middle or right click, or CTRL-V will paste the contents where its intended.
What I didn’t realise is that there are actually 2 clipboards. One for the keyboard shortcut method and one for the selection. As per the Klipper documenation:
The X Window System® uses two separate clipboard buffers: the “selection” and the “clipboard”. Text is placed in the selection buffer by simply selecting it, and can be pasted with the middle mouse button. To place text in the clipboard buffer, select it and press Ctrl-X or Ctrl-C. Text from the clipboard buffer is pasted using Ctrl-V or by selecting Edit->Paste.
There is a setting in the Klipper preferences to either keep the clipboards seperate (default) or automatically synchronise them. Selecting the former led me back to my happy, select text anywhere and paste with CTRL-V as well as middle mouse button. As I grow to become more of a haXor, I may see the benefit in two clipboards, but for now…
Old Windows habbits die hard
A quick guide to installing packages from the packman online source