Posts


Adding tags to docker-maven-plugin

Adding a latest tag to docker containers built by docker-maven-plugin <name>${project.artifactId}:${project.version}</name> <build> <tags combine.children="append"> <tag>latest</tag> </tags> <from>${base.docker.image}</from>

starting kubernetes

Getting kubernetes to start with RBAC features enabled $ minikube start --vm-driver=xhyve \ --extra-config=apiserver.GenericServerRunOptions.AuthorizationMode=RBAC,--authorization-rbac-super-user=minikube-admin \ --kubernetes-version=v1.6.0 --memory=4096 --cpus 4

Thoughts on Kubernetes

Just a collection of annoyances on Kubernetes: kubectl config and multiple namespaces Seriously! The shear amount of YAML duplication if you have a large number of namespaces and clusters it quite rapidly becomes very annoying, do remember that this is YAML so you could have (ab)used anchors to copy commonly used fragments: apiVersion: v1 clusters: - cluster: server: https://cluster1.example.com name: cluster1 contexts: - context: &bar-ns cluster: cluster1 namespace: bar-namespace user: "cluster1-user" name: cluster1-bar-namespace - context: <<: *bar-ns namespace: foo-namespace name: cluster1-foo-namespace - context: <<: *bar-ns namespace: kube-system name: cluster1-kubesystem current-context: cluster1-foo-namespace kind: Config preferences: {} users: [] CURRENT NAME CLUSTER AUTHINFO NAMESPACE * cluster1-foo-namespace cluster1 foo-namespace cluster1-kubesystem cluster1 kube-system cluster1-bar-namespace cluster1 bar-namespace Except: as soon as you use kubectl config use-context it goes and helpfully writes back the expanded YAML structure.

Errors on features export

Had a strange error being reported when exporting features from a Drupal 7 instance, in that the resultant tar file was not extracting using any of the usual tools, such as tar etc. $ file features_export-7.x-1.0-alpha1.tar features_export-7.x-1.0-alpha1.tar: data File magic showed that the file was wrong, but looking at the file itself looked correct at first glance, and a look around on Drupal.org returned this old thread which lead me to

Capistrano changelog

Capistrano and Changelogs I needed a more atomic method of listing changes between two deployments whilst using capistrano, so used the following task to perform a git log between two revisions: use the following to display: $ cap deploy:changelog INFO Changes between 04e7f9a and 3fd3e88 releases INFO e7770ab Built Deployable files from Drush make 8f9d13c Built Deployable files from Drush make 3872d29 Built Deployable files from Drush make 193aaad Built Deployable files from Drush make You can then of course include within any other tasks using the normal capistrano methods

User access with Atlassian tools

User access times with Atlassian tools You’d be mistaken if you had a few searches on the internet and found the following page suggesting that you could just query the application cwd_user table except when using Crowd when you should query against the crowd cwd_user_attribute table. Unfortunately that might have been true back with Jira 4.3, although in the last few years mixing the Atlassian tools (with Crowd as SSO provider) this is no longer the case and I’ve found the following MySQL query works well to find out login times for each application

Using Agile at the right level

Agile at the right level There has been lots of criticism that “Agile” is a poor way to run any form of IT development project, with the following comments being made to substantiate the statement: No one uses “agile” in real world engineering It doesn’t scale It’s “new” Indeed everyone seems to think that Royce’s original article in the 1970s was an example of a working project delivery method and miss that he presented it as a broken model.

Devops technologies

Source Control subversion git (stash/Github/gitlab) Integration Environment API based infrastructure provider, e.g. vSphere/AWS/Rackspace Cloud Vagrant Documentation Markdown Wiki markup / Confluence Build System The collection of tooling that enables continuous integration of commits by building the software, running any tests and deploying to integration environments. Status of all steps needs to be broadcast to all interested parties, and testing should include not just normal TDD/unit tests but also should look into the following:-

CentOS/RHEL 7

So after many years the following changes I’ve so far run into with CentOS 7 firewalld # firewall-cmd --zone=public --add-service=https success # firewall-cmd --zone=public --add-service=http success # firewall-cmd --zone=public --list-all public (default, active) interfaces: eth0 eth1 sources: services: dhcpv6-client http https ssh ports: masquerade: no forward-ports: icmp-blocks: rich rules: systemd # systemd enable nginx # ln -s '/usr/lib/systemd/system/nginx.service' '/etc/systemd/system/multi-user.target.wants/nginx.service' $ systemctl status nginx nginx.service - nginx - high performance web server Loaded: loaded (/usr/lib/systemd/system/nginx.

Moving git repositories

So whilst moving between github organisations - which is relatively straight forward, I also had to move some from Atlassian Stash unfortunately there’s not as simple a method to do this, but a good way of mirroring between two repos is as follows: $ git clone https://donor_repo/example1 --bare $ git remote set-url --push origin https://destination_repo/example2.git $ git fetch -p origin && git push --mirror Simples.

Vagrant error during plugin install

Had the following error being thrown when trying to install the vagrant-vbguest plugin: $ vagrant plugin install vagrant-vbguest Installing the 'vagrant-vbguest' plugin. This can take a few minutes... Bundler, the underlying system Vagrant uses to install plugins, reported an error. The error is shown below. These errors are usually caused by misconfigured plugin installations or transient network issues. The error from Bundler is: An error occurred while installing ffi (1.9.5), and Bundler cannot continue.

Useful business KPIs

Net Promoter score - how likely a customer will recommend customer profitability score - how much profit does individual customers bring to business after costs customer retention rate - loyalty and churn conversation rate - how well prospectives are turned into customers relative market share - how big a share of the pie do you have revenue growth rate - rate of increase of income net profit - income minus expenses net profit margin - percentage of revenue that is profit gross profit margin - profit generate per X of sales operating profit margin - operating income divided by revenue Return in investment - how much X investment generates in new income cash conversion cycle - how long it takes for ROI to happen capacity utilisation rate - how saturated are you resources?

Has microsoft lost it's way?

I cannot help but feel, very probably not helped by the rest of the tech press that Microsoft is still struggling to understand what it’s core market is and how to move forward. Look at the current Microsoft mobile phone marketing Lumia: Plus, you’ll stay productive on the go with Microsoft Office Mobile built in And with Microsoft Office and OneDrive (formerly SkyDrive) built in, you can keep on top of your work even when away from your desk

moving to github

So I’m a big dabbler when it comes to my personal site/pages, over the years I’ve moved from the following technologies/software to host: Simple HTML - 1999 Roxen - 2005 Wordpress Drupal Wordpress (again) Blogger Ghost I’ve had a dabble with Jekyll in the past (specifically Heckle) whilst I was playing with moving things to Ghost and given I have already migrated all of my content into Markdown it sounded like the best option (especially given I don’t have to then host the application somewhere)

OSX and Vagrant!

So whilst trying to get boxen to work I needed a good method to test, so of course I turned to Vagrant and standing on the works of others (namely Graham Gilbert ) I used the following steps: Requirements Packer Vagrant VMware Fusion Steps Download and install packer, the easiest method to do this I found was using homebrew $ brew install packer Cloning into '/opt/boxen/homebrew/Library/Taps/homebrew/homebrew-binary'... remote: Reusing existing pack: 143, done.

Crowd logged in users

This came in useful for me today to understand users that could be disabled from a crowd instance: SELECT cwd_user.user_name AS Username, cwd_user.email_address AS "Email Address", from_unixtime(cwd_user_attribute.attribute_value/1000) AS "Last Logged In" FROM cwd_user LEFT OUTER JOIN cwd_user_attribute ON cwd_user_attribute.user_id = cwd_user.id AND cwd_user_attribute.attribute_name = 'lastAuthenticated' WHERE active = 'T' ORDER BY 3,2,1 ;

apple remote desktop and vnc

Ahh, so Apple’s Remote Desktop is just a simpler implementation of the VNC protocol (I’m sure there’s some propriety extensions in there but it’s nice to know you can use vncclient to connect to a Mac. Options that work well for VNC:- [Connection] Host=$HOSTNAME [Options] UseLocalCursor=1 UseDesktopResize=1 FullScreen=0 FullColour=1 LowColourLevel=1 PreferredEncoding=hextile AutoSelect=0 Shared=0 SendPtrEvents=1 SendKeyEvents=1 SendCutText=1 AcceptCutText=1 DisableWinKeys=1 Emulate3=0 PointerEventInterval=0 Monitor= MenuKey=F8 AutoReconnect=1 Not the fastest thing in the planet, but only enabling the Hextile option seems to work ok.

google authenticator on NetGear ReadyNAS

First I had to ensure that the stock debian packages are available for installation: $ tail /etc/apt/sources.list deb http://archive.debian.org/debian etch main Install g++ and other dependencies $ apt-get install g++ libpam0g-dev Download google-authenticator source code: $ git clone https://code.google.com/p/google-authenticator/ $ cd google-authenticator/ $ ./configure && make && make install Then simply follow the instructions over at here

home brew fusion/hybrid drives on OS X

There’s plenty of examples of doing this already but it’s as simple as: $ diskUtil coreStorage create ssdDisk hddDisk $ diskUtil coreStorage createVolume VolumeUUID jhfs+ "fusion Drive" 100% Seems to be working so far, although with typical Apple there’s no documentation on how files/objects are moved between the SSD and HDD components

HTTP Proxy with source IP on Tomcat

Run into a situation recently where proxying applications with nginx has masked the source IP - which normally is just annoying, but with Atlassian’s Crowd it’s more of a problem, this can be solved in later versions (Tomcat 6.0.32+) as follows: <Valve className="org.apache.catalina.valves.RemoteIpValve" internalProxies="proxy_IP_address" remoteIpHeader="x-forwarded-for" remoteIpProxiesHeader="x-forwarded-by" protocolHeader="x-forwarded-proto" /> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access." suffix=".log" pattern="combined" resolveHosts="false" /> The following should be used within nginx to forward that data into tomcat.

Snow and the UK

The normally busy Tuesday morning terminal at London City Airport looking distinctly quiet and lonely, so far most flights are looking cancelled or seriously delayed, this might be one of those “interesting days” that people look forward to.

the low points of the high street

So in the last week we have had the announcement from both HMV and Blockbuster UK that they are entering administration and so cannot continue to trade as they used to, at the very least. I suspect it’s not very surprising that both companies primarily dealt with “media” of one form or the other that, with the increasing availability of bandwidth to end users, are easily converted to digital forms and so the intrinsic costs of bricks and motar stores become a serious overhead.

on the nature of grief

It’s now been a month or so since my little brother Glyn passed away and I’ve noticed that after the initial shock of knowing that he is gone I’m still having periods of melancholy, sadness and dearly wishing and hoping that he was still here. This isn’t the five stages of grief as defined by Kübler-Ross, that is aimed at the patient themselves not the family although you can see the use of the framework but something altogether subtler and harder to describe.

so long facebook

Well today I made the decision to permanently delete my Facebook account, mostly because I just don’t trust it. Or them either, strangely liberating either way, Google plus works well for me so far. Suspect Twitter might be the next social site to be pruned.

SQL queries with Jira

To save having to understand how the underlying db schema works: SQL Queries for JIRA

business and product development

A post written by Tor started me thinking about business and product development, especially in this age of online products. Classically, and not so many years ago, a company would have years in which to develop and maintain a new product (such as friends-reunited) and then have years to recoup any investment and of course profit! However in the current markets, there are lots of people, with easy access to both the talent and technologies (developers and already pre-scaled technologies such as Amazon Web Services), that allows for almost any small startup to be able to deliver a globally accessible and scalable web application in essentially a very much shorter development cycle than many “classical” companies can manage.

jmx and firewalls

So at least with Java 1.6 the JVM can use SOCKS for proxying RMI requests, so to get the wonderful jvisualvm (think 1.5 visualGC) working use the following incantations. This requires the initial RMI registry port is open to the client. First the initial SSH to server enabling the SOCKS tunnel {% highlight bash %} $ ssh -D localhost:9696 servername {% endhighlight %} And now for jvisualvm: {% highlight bash %} $ jvisualvm -J-Dnetbeans.

searching java log files

So debugging java can be a mighty pain, a little few lines of ways to make it simpler. # grep -m 1 -n '^2010-06-30 14:20:' catalina.out 11746233:2010-06-30 14:20:01,011 DEBUG com.beginning.of.line # grep -m 1 -n '^2010-06-30 14:21:' catalina.out 11747788:2010-06-30 14:21:00,161 WARN org.apache.commons.httpclient.HttpMethodBase - Going to buffer response body of large or unknown size. Using getResponseBodyAsStream instead is recommended # sed -n '11746233,11747788p' < catalina.out This gives start line and end line between any two greps and then the body of the log file from those two lines.

disabling atime in OS X

Create the following plist file somewhere useful, e.g. /Library/LaunchDaemons/com.local.noatime.plist <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> dict> <key>Label</key> <string>com.my.noatime</string> <key>ProgramArguments</key> <array> <string>mount</string> <string>-vuwo</string> <string>noatime</string> <string>/</string> </array> <key>RunAtLoad</key> <true/> </dict> </plist> Then run the following to pick up the change, or indeed, reboot: % sudo launchctl load /Library/LaunchDaemons/com.local.noatime.plist And you should now see the root file system mounted with noatime option, which should improve longevity of SSD boot drives


snow leopard and Java

So in a startling case of “Apple knows best” they have gone and removed the 1.5 JVM - I know it’s pretty old and people were complaining about not having a 1.6 JVM for a long time - but really! So the following post steps you through re-enabling the 1.5 VM and now semi-happy days

SNMP via SSH and netcat

Sometimes you just need to tunnel UDP based protocols - such as SNMP - and the easiest ways is to use socat $ socat tcp4-listen:6667,reuseaddr,fork UDP:DESTINATION:161 $ socat udp4-listen:161,reuseaddr,fork tcp:localhost:6667 And in combination with your normal SSH tunnel $ ssh -L6667:localhost:6667 BASTION_HOST

smokeping and SOAP

We’ve had an issue with performance of a SOAP interface, and here’s how you go about setting up smokeping to time it:- extraargs = -H Content-Type:text/xml --data @/srv/scripts/soap_check/soap-test.xml urlformat = http://server.name.com/url/soap_url The only annoying problem is that the SOAP payload cannot be included as part of the command line, so any slaves would require the file manually copied into the same location


wii and os x

$ umount /Volumes/UNTITLED $ sudo ./wbfs -p /dev/disk4s1 init $ sudo ./wbfs -p /dev/disk4s1 df wbfs tot:298.08G used:0.08G free:298.00G $ sudo ./wbfs -p /dev/disk4s1 ls wbfs empty Then just use WBFS for macos X to add in the backup images you’ve created previously.

utf8 and mysql

Nice bugs that no one seems to want to fix:- mysql> create table test5 ( wibble varchar(500), PRIMARY KEY (wibble) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes mysql> create table test5 ( wibble varchar(500), PRIMARY KEY (wibble) ) ENGINE=myisam DEFAULT CHARSET=utf8 COLLATE=utf8_bin; ERROR 1071 (42000): Specified key was too long; max key length is 1332 bytes And even with MySQL 6.

signage failure

Notice this in Cambridge today – looks like a wee fail to me (there was a few more than the two bikes in the picture along the wall outside the college) “Please do not lean cycles against this wall”

textmate

OMG (and other leet things), textmate has built in just about everything, ok probably faster using a real web browser to post a blog, but I’ll have to see how useful the svn and SQL bundles are.

upgrading the playstation 3

Well finally borrowed an USB disk big enough - though the actual backup of the playstation ended up at 8GB it complained about fitting on my USB drive. So aside from a simple backup of the old drive via the XMB tool. Replace the old 40GB 2.5” SATA drive with a nice shiny 320GB model (and then restored from the USB drive) Quite a few guides on the interweb about how to do that, but I’m still slightly shocked that Sony are using standard parts these days!

managing spotlight indexing

Show the status of spotlight on volumes: $ mdutil -sa /Shared Items/Public: Indexing enabled. /Volumes/Time Machine/Shared Items/Backups: Indexing and searching disabled. /Users: Indexing enabled. /Volumes/pool1: Indexing and searching disabled. /Shared Items/Backups: Indexing enabled. /Groups: Indexing enabled. I was receiving a few errors when trying to spotlight for applications (well they didn’t appear) - running $ sudo mdutil -i off / Error, no index found for volume. What worked to fix this for me was to move the main volume into the privacy section of spotlight and reboot (though i’d expect restarting fseventd might have the same effect) and then remove the volume from Privacy, 10 minutes later and disk has re-indexed and spotlight is working correctly.

mercurial SCM

Well, been playing with opensolaris and they use mercurial as a DSVN - and another benefit of that over git is that the command set is very much similar to SVN/Subversion - which is important for us people who /don’t/ use it every day. Migrating was straight-forward: $ mkdir ~/svn && cd ~/svn $ hgimportsvn https://dubdubdub.co.uk/svn/mike $ find . -name .svn -type d | xargs rm -rf One thing to note when using - which took me a bit of reading to realise - it’s distributed, so if you’ve your own local copy - you have to commit and then push/pull changes out!

Filesystem caching and performance

well this is slightly surprising, but in a very good way, and does lead to some interesting suggestions on how to best to improve matters, but look at the following graph of FAST ESP query latency: Notice that the average latency drops as we use the server more … but WHY? Well that’s just because we’re running the FAST indexes on a ZFS based file system and the L2 ARC cache is making it’s presence felt

dladm

dladm is a new command with solaris 10 which can do many clever things (I think the general idea behind it is that ifconfig was becoming bloated with features and options that it was a good idea to break the link between the physical network provision and the logical usage) ie: dladm - physical link provision/configuration ifconfig - logical link configuration Assuming a server with two gigabit ethernet connections connected to two switches (for physical resillience):-

Massaman curry

well we made thai massaman curry over the weekend, and it it was pretty good - only downside is that we didn’t make enough rice for a change! But the rice cooker took care of that. ingredients - for two 250g Chicken tblspn oil 1 red onion 200g new potatoes 175g reduced fat coconut milk 100ml chicken stock 30g roasted peanuts (not salted!) put potatoes in steamer for 20 minutes to cook heat up pan, add oil and soften cut onion for 5 minutes add chicken and brown for 3 minutes, add 2 tspn of massaman curry paste cook for further 6 minutes add chicken stock and coconut milk and cover with saucepan lid cook for 30 minutes, add cooked potatoes and peanuts and cook for further 10 minutes serve

playing with TCP Trace

# tcpdump -ni en0 port 80 -w output.trace # tcptrace -G output.trace # xplot *tput.xpl From the online manpage: Yellow: instantaneous packets Red: Throughput for the last few packets Blue: Throughput since the start of the stream/connection Other useful graphs: _owin.xpl - outstanding data/congestion _rtt.xpl - round trip time/time _ssize.xpl - segment size/time _tput.xpl - throughput/time _tsg.xpl - time sequence graph _tline.xpl - Timeline graph - W Richard Stevens style Just some notes here so I don’t forget the basics - manual over at here

queueing delays in IP

Following reply by iljitsch van Beijnum about queueing delays in IP, looked to be a good little summary. The answer is that delay is only one aspect of performance, another important one is packet loss. As link bandwidth increases, queuing delays decrease proportionally. So if you’re using your 10 Mbps link with average 500 byte packets at 98% capacity, you’ll generally have a 49-packet queue. (queue = utilization / (1 - utilization)) Our 500 byte packets are transmitted at 0.

SNMP v1 and v2 differences

Using version 1: $ snmpget -c COMMSTRING -M /usr/local/share/snmp/mibs -v 1 \ -m USAGE-MIB:PROXY-MIB:REDLINE-STATS-MIB:REDLINE-STATS-MIB:REDLINE-CONFIG-MIB \ hostname REDLINE-STATS-MIB::sessActive.0 Error in packet Reason: (noSuchName) There is no such variable name in this MIB. Failed object: REDLINE-STATS-MIB::sessActive.0 Using version 2 (2c): $ snmpget -c COMMSTRING -M /usr/local/share/snmp/mibs -v 2c \ -m USAGE-MIB:PROXY-MIB:REDLINE-STATS-MIB:REDLINE-STATS-MIB:REDLINE-CONFIG-MIB \ hostname REDLINE-STATS-MIB::sessActive.0 REDLINE-STATS-MIB::sessActive.0 = Counter64: 12247 Slightly annoying that - but makes certain sense

scaling web apps

A little video, thin on detail of course, but hints at some home truths on building/designing scale-able applications (and i’d go so far to say that they are applicable to ALL applications not just webapps) Of course, I know Ben Rockwood like’s his solaris and F5′s – but that’s not going to surprise many (and I just LOVE f5s) And here’s a blog entry with the details on /how/ that’s done:-

spring and snowing

Spring and snowing – of course this is normal for the time of year – honest! Nothing to do with any change in climate or anything cough

recent applications in OS X

This little snippet will give you a new little window for all those recent applications you launch – I seem to have picked up a habit for closing applications down when I stop working with them for an hour or two (pages etc.) $ write com.apple.dock persistent-others -array-add \ '{ "tile-data" = { "list-type" = 1; }; "tile-type" = "recents-tile"; }' $ killall Dock

FAST purchase

Oh interesting stuff there - I’ve always liked the idea of FAST (not cheap as a search platform) but they’ve certainly thought a bit about how to scale - will be interesting to see if this mean’s a change to the supported platforms and roadmap moving forward http://go.theregister.com/feed/www.theregister.co.uk/2008/01/08/microsoft_to_acquire_fast/ Wants to mine web with Fast buy Microsoft is to acquire Norwegian business search engine company Fast Search and Transfer for 6.

piracy in the real world

well was quite strange this evening as I’ve just finished Frederick Forsythe’s “The Afghan”, which giving the game away slighly deals with some terrorists stealing a large ship or two. So I was having quite a sense of déjà-vu watching a documentary on one of the discovery channels about the same subject. Or of course it might just be that the film-makers read the same books! Though they did raise a few good points about the close of the cold war allowing for a large surge in the numbers of piracy encounters in recent years, as the drop in the numbers of regular navy vessels in the oceans fell, though I’m also wondering if the increase in the freedom of information as well as increased availability of arms - such as the RPG7 - also has something to do with it.

time machine with smbfs

Well there is some undocumented methods to make time machine work on non-locally attached storage, and although it might be disabled in patches - this works pretty well: As a regular user and in a terminal $ defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1 Then when you visit the time machine preferences you can choose a network share as a TM location. Now it’s very tempting to get a little mac mini for some zfs/nfs goodness

Google travel tips

Heh, well ok, I didn’t know but when abroad and you need to use google, it can be slightly tricky to use if you don’t know the local language. So if you use :- Norwegian Google Homepage It’ll change your default language to english - this also works with changing back to anything like Russian Google Homepage To swap yourself to Russian - very helpful - previously i was also hand adding ?

troubleshooting escenic

Error: Internal error: There was a database error: \ java.security.AccessControlException: access denied \ (neo.xredsys.auth.UserPermission 1 create) Solution: You’ve not followed the installation instructions and not changed the java.security settings: -Djava.security.policy=/u01/apps/escenic/engine-4.3-2/security/java.policy -Djava.security.auth.login.config=/u01/apps/escenic/engine-4.3-2/security/jaas.config

balloons everywhere

Well we were sitting down eating pizza, and watching the kids down below “losing” their balloons, after an hour or so there was a pretty large collection of them sitting around the roof. Now question is whether someone went up there to bring them down, or did they just wait a few days for the helium to leak out? Unfortunately, only had my phone with me – so not as nice a picture as it could’ve been – still, and interesting view.

playing with isync

so one shiny nokia e65, and a bit of frustration, later; have found the following recipe for getting the phone to sync correctly with iSync. Firstly download the plugin from Nokia Then install and if you get a rather cryptic error like this: [Nokia E65] Device is not available or synchronization was cancelled. Close dialogs and applications on the phone and try again. Device “Nokia E65″ synchronization failed Looks like the Nokia installer drops the plugin into a strange location (originally it allowed isync to work once and then I got the error message

Solaris zone configuration

Configure the zone you want, this is just a basic configuration (suited to a name server - that inherits the global zones /var/named) # zonecfg -z solzone solzone: No such zone configured Use 'create' to begin configuring a new zone. zonecfg:solzone> create zonecfg:solzone> set zonepath=/u01/zones/solzone zonecfg:solzone> set autoboot=true zonecfg:solzone> add net zonecfg:solzone:net> set address=10.10.10.20/24 zonecfg:solzone:net> set physical=bge0 zonecfg:solzone:net> end zonecfg:solzone> add fs zonecfg:solzone:fs> set type=lofs zonecfg:solzone:fs> set special=/u01/zonedata/solzone zonecfg:solzone:fs> set dir=/u01 zonecfg:solzone:fs> end zonecfg:solzone> add inherit-pkg-dir zonecfg:solzone:inherit-pkg-dir> set dir=/var/named zonecfg:solzone:inherit-pkg-dir> end zonecfg:solzone> add attr zonecfg:solzone:attr> set name=comment zonecfg:solzone:attr> set type=string zonecfg:solzone:attr> set value="test solaris zone" zonecfg:solzone:attr> end zonecfg:solzone> verify zonecfg:solzone> commit zonecfg:solzone> exit And now install and boot the zone

Hmm, nice little error when trying to start db2 on solaris 10, stating that it was unable to start up the database and i should check my SHM settings! Arrgh! prctl reported correct project settings, so tried truss:- # truss -f db2start truss: cannot trace set-id or unreadable object file: db2start Cue alarm bells, proven by trusty “ls”: # truss -f db2start -rwsr-xr-x 1 root root 238584 Jul 10 12:28 db2start Add root to the user.

Found this written by Frank Hofmann, very interestly little history lesson about the x86 chipset. (he also talks about how HOSTID is generated on solaris x86 - which shows how important it is to keep track of your /kernel/misc/sysinfo file for hostid locked software :D

Suppression of authentication log entries:- <Exception> exception.id=(”authentication_redirect_from_virtual_host”, “authentication_redirect_to_virtual_host”, “authentication_failed”) access_log[main](no) And to get a dump of the config, though the “unencrypted” option doesn’t seem to work on SGOS 4.2.3 configure t line-vty length 0 show version show status show configuration with-keyrings unencrypted length 80 exit exit exit

An elephant: A mouse built to government specifications

On Horseshoes and Handgrenades

So was at airport yesterday, woke up early to make sure we’d get there in time, lo and behold TimesOnline on the 5am BBC bulletin, and as soon as they mentioned the two sets of “BA planes” and “radiation” I just knew it’d be on the flights to Domodedevo! Aside from that, airport was nice and quiet, sitting around before check-in, up wanders a gentleman and asks if we’re flying to Moscow, so I reply in the affirmative and a few questions later I find myself in front of a Channel 4 TV camera - DOH!

Finally found the hidden menu for the DVD player (LG DNX 190UH):- Turn On the unit with the remote controller Wait until “no disc” appears in the unit’s display Press PAUSE, 3, 1, 4, 1, 5, 9 This brings up the menu, select the region code that you want to change to or select 0 for multi-region. Press PAUSE to exit.

Willy, Willy, Harry, Ste, Harry, Dick, John, Harry three, One, two, three Neds, Richard two, Henries four, five, six – then who? Edwards four, five, Dick the bad, Harries twain and Ned the lad, Mary, Bessie, James the vain, Charlie, Charlie, James again, William & Mary, Anna Gloria, Four Georges, William and Victoria, Edward, George, then Ned the eighth quickly goes and abdicat’th, leaving George, then Liz the second, and with Charlie next it’s reckoned.

It’s been a bug-bear for a long time for me that the CPU metrics when querying a Solaris 10 host are global and not zone specific (which of course makes sense, just makes it harder to track zone utilisation). So finally wrote a basic perl script that will provide that information via a SNMP mib, output looks like the following: > snmpwalk -v 1 -c public localhost .1.3.6.1.4.1.2021.255.7 UCD-SNMP-MIB::ucdavis.255.7.0 = STRING: "Zone name" UCD-SNMP-MIB::ucdavis.

NON-FREE APT REPOSITORIES Install openssh package if not already installed # apt-get install openssh-server Add the following to /etc/apt/sources.list: deb http://oss.oracle.com/debian unstable main non-free deb http://ftp.uk.debian.org/debian etch main contrib non-free # apt-get update Install Async IO library for Oracle # apt-get install libaio Install optional extras for converting the JVM to a .deb # apt-get install build-essential fakeroot java-package # download sun binary JDK Create the ”deb” package:

Tracing firewalled hosts

Nice little tool called tcptraceroute, just uses TCP syns instead of ICMP/UDP to give you a more meaningful traceroute; still relies on ICMP time exceeded messages, but still, every little helps when trying to debug someone elses problem!

well, finally tried out CQB (close quarter battle), definitely seems to be lot of full-auto with hicap mags, so you’re looking at pretty much being suppressed/suppressing all the time - so normally you move and get shot down in a hail of plastic! Had a restricted ammo loadout game which was seriously good fun, Mr MP5K with a midcap worked really well in semi-auto mode. Got a few kills before running out of ammo (bloody glock got a jam - go figure)

So installed Leopard server over the weekend and here’s some notes and annoyances I’ve hit (and overcame) services fail to start – basically forward/reverse DNS must match greebo:~ localad$ sudo changeip -checkhostname Primary address = 172.16.10.196 Current HostName = greebo.snarc.co.uk DNS HostName = greebo.snarc.co.uk names match. There is nothing to change. So I cheated and am running split horizon DNS, I’ve not done the following – but is here as a reminder (and if I ever have enough disk space)

Parsing last log /var/log/wtmp

#!/bin/sh # total_logged_in - parses ``last'' ouput to something more sensible. # if you give it a parameter, it will only display last information for # that user last $1 | nawk ' { if (NF = 10 && $10 != "in") { gsub(/\(/, "", $10); gsub(/\)/, "", $10); split($10, a, ":") if (split(a[1], b, "+") == 1) { mins=(a[1]*60+a[2]) user[$1] += mins entry[$1]++ } else { mins=(b[1]*1440+b[2]*60+a[2]) user[$1] += mins entry[$1]++ } } } END { printf("Person \t<DD:HH:MM>\Total Con\n") print "===========================" for ( person in user ) { mins = user[person] nohours = int(mins/60) mins -= nohours*60 nodays = int(nohours/24) nohours -= nodays*24 printf("%-10s <%.

title: Moving to Drupal layout: post tags: - drupal - cms date: 2006-05-27 finally feel happy with drupal, finally! Problem is there’s not that many themes for it - in comparison to wordpress, and i’m not sure i want to spend all that time to get one that I like. But aside from a little hacking of this one, i’m pretty happy with it. (I wonder how long that’ll last =)