You are hereFeed aggregator / Categories / From our team

From our team


The upsides of distributed companies

Team Blog - Tue, 03/09/2010 - 09:21

Over at toni.org, Toni Schneider gives some points about the values of Distributed Companies – including easier hiring, better communications, better office environments and more ’social’ aspects…

The list is certainly not exhaustive and some of those points (including time zones!!) need to be rethought, but it’s a good starting point for an argument!

Categories: From our team

Even ma.tt’s come back to Firefox!

Team Blog - Tue, 03/09/2010 - 09:15

Citing Twitter and Chrome issue, ma.tt has come back home to the world of Firefox!

But then again, why leave?

Categories: From our team

Tether the iPad to the iPhone

Team Blog - Tue, 03/09/2010 - 09:00

I think I’ve already shared my thoughts on the iPad — the device that will have to create its own market gap, and then fill it, and then prove that it was perfect to fill that market gap.

Now, the idea of using the “tether” function as added towards the middle of 2009 (though not supported well by networks – due to data volumes?) was touted for use with the non-3G enabled iPad (unless you pay your $140 odd for mobile access) where Bluetooth- or USB-based links to a network are suppored. And, of course, for the hoards of people that followed the Apple storm, the iPhone is the logical next step there, in a world of integration and seamless interconnectivity.

But will the iPad support the tethering to the iPhone? Steve Jobs replied quite quickly and succinctly:

No.

Sent from my iPhone

Short, sweet, and at least using his own devices.

Users will still find a way to link up via MiFi or WiFi — without the official support from Apple – until they reflash the firmware and it becomes a battle of loopholes…

But you knew that already.

Categories: From our team

Excel 2007 password, cell and sheet protection removal – unprotect/remove password easily

Team Blog - Mon, 03/01/2010 - 14:27

Elmcomsoft has a variety of really good brute-force and dictionary-based password attacks on the full Office suite, including a distributed version to run in the cloud (which I wrote about some time ago). As cool as the software is, it doesn’t allow the removal of cell-based or sheet-based passwords (which kinda sucks), and the password.xla file which seems to be the big thing from staxx.com requires a whole whack of goodies to run on Office 2007 natively.

Enter the same macro that McGimpsey & Associates published in 2004 (reproduced here as per their GPL licence) that removes all internal Excel Passwords:

The AllInternalPasswords Macro

This macro, for which the true origin is lost in antiquity, will unlock all the internal passwords in your workbook. It will report which password strings worked (so that if you have other workbooks by the same author, you can try it on them), but it will NOT report the original password (it can’t – it’s never stored – only the hash is saved in the file). I first saw it in a post by Bob McCormick. Norman Harker did an outstanding job in modifying it for workbook as well as worksheet protection. I mostly cleaned it up and made it a bit more efficient.

It shouldn’t take more than a few seconds (certainly less than a minute) to find each password if you have a relatively up to date computer.

Working passwords will be returned in the form

AAABABBABABX

where the first 11 characters will be As or Bs and the X represents a character from ASCII 32 (” ” or space) to ASCII 126 (“~”, or tilde). While the sheet or workbook will automatically be unprotected, the macro suggests you write this code down, not only for future use, but, people being creatures of habit, it may work on another sheet/workbook by the same author. Again, since it’s not returning the original password, it’s unlikely to be useful in breaking file or VBA project passwords.

[...]

DISCLAIMER: Please note that breaking password protection MAY violate laws or regulations in your jurisdiction. In the United States (currently) it is certainly OK to break password protection on sheets that you developed for your personal use, or for which you have permission from the author or owner. It’s probably OK if you own the workbook, even if it was written by someone else. But neither Norman nor I are intellectual property lawyers in ANY jurisdiction, so, if in doubt, ask the original author, and if you can’t ask – don’t use it!

Public Sub AllInternalPasswords() ' Breaks worksheet and workbook structure passwords. Bob McCormick ' probably originator of base code algorithm modified for coverage ' of workbook structure / windows passwords and for multiple passwords ' ' Norman Harker and JE McGimpsey 27-Dec-2002 (Version 1.1) ' Modified 2003-Apr-04 by JEM: All msgs to constants, and ' eliminate one Exit Sub (Version 1.1.1) ' Reveals hashed passwords NOT original passwords Const DBLSPACE As String = vbNewLine & vbNewLine Const AUTHORS As String = DBLSPACE & vbNewLine & _ "Adapted from Bob McCormick base code by" & _ "Norman Harker and JE McGimpsey" Const HEADER As String = "AllInternalPasswords User Message" Const VERSION As String = DBLSPACE & "Version 1.1.1 2003-Apr-04" Const REPBACK As String = DBLSPACE & "Please report failure " & _ "to the microsoft.public.excel.programming newsgroup." Const ALLCLEAR As String = DBLSPACE & "The workbook should " & _ "now be free of all password protection, so make sure you:" & _ DBLSPACE & "SAVE IT NOW!" & DBLSPACE & "and also" & _ DBLSPACE & "BACKUP!, BACKUP!!, BACKUP!!!" & _ DBLSPACE & "Also, remember that the password was " & _ "put there for a reason. Don't stuff up crucial formulas " & _ "or data." & DBLSPACE & "Access and use of some data " & _ "may be an offense. If in doubt, don't." Const MSGNOPWORDS1 As String = "There were no passwords on " & _ "sheets, or workbook structure or windows." & AUTHORS & VERSION Const MSGNOPWORDS2 As String = "There was no protection to " & _ "workbook structure or windows." & DBLSPACE & _ "Proceeding to unprotect sheets." & AUTHORS & VERSION Const MSGTAKETIME As String = "After pressing OK button this " & _ "will take some time." & DBLSPACE & "Amount of time " & _ "depends on how many different passwords, the " & _ "passwords, and your computer's specification." & DBLSPACE & _ "Just be patient! Make me a coffee!" & AUTHORS & VERSION Const MSGPWORDFOUND1 As String = "You had a Worksheet " & _ "Structure or Windows Password set." & DBLSPACE & _ "The password found was: " & DBLSPACE & "$$" & DBLSPACE & _ "Note it down for potential future use in other workbooks by " & _ "the same person who set this password." & DBLSPACE & _ "Now to check and clear other passwords." & AUTHORS & VERSION Const MSGPWORDFOUND2 As String = "You had a Worksheet " & _ "password set." & DBLSPACE & "The password found was: " & _ DBLSPACE & "$$" & DBLSPACE & "Note it down for potential " & _ "future use in other workbooks by same person who " & _ "set this password." & DBLSPACE & "Now to check and clear " & _ "other passwords." & AUTHORS & VERSION Const MSGONLYONE As String = "Only structure / windows " & _ "protected with the password that was just found." & _ ALLCLEAR & AUTHORS & VERSION & REPBACK Dim w1 As Worksheet, w2 As Worksheet Dim i As Integer, j As Integer, k As Integer, l As Integer Dim m As Integer, n As Integer, i1 As Integer, i2 As Integer Dim i3 As Integer, i4 As Integer, i5 As Integer, i6 As Integer Dim PWord1 As String Dim ShTag As Boolean, WinTag As Boolean Application.ScreenUpdating = False With ActiveWorkbook WinTag = .ProtectStructure Or .ProtectWindows End With ShTag = False For Each w1 In Worksheets ShTag = ShTag Or w1.ProtectContents Next w1 If Not ShTag And Not WinTag Then MsgBox MSGNOPWORDS1, vbInformation, HEADER Exit Sub End If MsgBox MSGTAKETIME, vbInformation, HEADER If Not WinTag Then MsgBox MSGNOPWORDS2, vbInformation, HEADER Else On Error Resume Next Do 'dummy do loop For i = 65 To 66: For j = 65 To 66: For k = 65 To 66 For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66 For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66 For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126 With ActiveWorkbook .Unprotect Chr(i) & Chr(j) & Chr(k) & _ Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _ Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n) If .ProtectStructure = False And _ .ProtectWindows = False Then PWord1 = Chr(i) & Chr(j) & Chr(k) & Chr(l) & _ Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _ Chr(i4) & Chr(i5) & Chr(i6) & Chr(n) MsgBox Application.Substitute(MSGPWORDFOUND1, _ "$$", PWord1), vbInformation, HEADER Exit Do 'Bypass all for...nexts End If End With Next: Next: Next: Next: Next: Next Next: Next: Next: Next: Next: Next Loop Until True On Error GoTo 0 End If If WinTag And Not ShTag Then MsgBox MSGONLYONE, vbInformation, HEADER Exit Sub End If On Error Resume Next For Each w1 In Worksheets 'Attempt clearance with PWord1 w1.Unprotect PWord1 Next w1 On Error GoTo 0 ShTag = False For Each w1 In Worksheets 'Checks for all clear ShTag triggered to 1 if not. ShTag = ShTag Or w1.ProtectContents Next w1 If ShTag Then For Each w1 In Worksheets With w1 If .ProtectContents Then On Error Resume Next Do 'Dummy do loop For i = 65 To 66: For j = 65 To 66: For k = 65 To 66 For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66 For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66 For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126 .Unprotect Chr(i) & Chr(j) & Chr(k) & _ Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _ Chr(i4) & Chr(i5) & Chr(i6) & Chr(n) If Not .ProtectContents Then PWord1 = Chr(i) & Chr(j) & Chr(k) & Chr(l) & _ Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _ Chr(i4) & Chr(i5) & Chr(i6) & Chr(n) MsgBox Application.Substitute(MSGPWORDFOUND2, _ "$$", PWord1), vbInformation, HEADER 'leverage finding Pword by trying on other sheets For Each w2 In Worksheets w2.Unprotect PWord1 Next w2 Exit Do 'Bypass all for...nexts End If Next: Next: Next: Next: Next: Next Next: Next: Next: Next: Next: Next Loop Until True On Error GoTo 0 End If End With Next w1 End If MsgBox ALLCLEAR & AUTHORS & VERSION & REPBACK, vbInformation, HEADER End Sub

This page last updated Monday, 21 June 2004

© Copyright 2001 – 2004 McGimpsey and Associates. Except where noted, all code on this site may be distributed under the Gnu GPL. Acknowledgement is appreciated.

And it still works in Excel 2007! How cool (or how sad!?) is that!

Quick note – a certain Jason S claims to have written this and adapted it to version 1 – in 2008, 4 years after the above. Can you say copyright infringement and passing off of copyright work? Wow, that’s low, even for the “most authoritative technology blog”!

Categories: From our team

Radiation from your mobile / cellphone

Team Blog - Fri, 02/26/2010 - 11:42

You can check on how much radiation your mobile phone uses here – the lower the better! The Blackberry 8820 rates very very badly, top of the list of badness, followed closely by the Motorola i880, all this in terms of the overall acceptable radiation levels… The full details on mobile cellphone radiation are here, as provided by the Environmental Working Group.

Sigh…

But you knew that already…

Categories: From our team

Kindle DX International now out

Team Blog - Tue, 02/23/2010 - 08:50

Bigger but not much better - the 9" Kindle DX International

Yes, yes – you knew that already. At 546g (250g more than the 6″ Kindle International) it’s still less than the 730g the iPad from Apple weighs in at. Half the weight of a netbook…

The Kindle International DX (KIDX from now on) doesn’t have the left-hand side page-turn button (no big worries if you’re right-handed), but from a functionality perspective, other than a bigger screen, it’s pretty much business as usual – PDFs still can’t zoom, web browser’s still the same, text-to-speech is still a gimmick, and still no (Sony) ePub support. $489 is the asking price, $230 more than the 6″ Kindle…

Rather stick to the 6″ — holding the 9″ Kindle to read is more exercise than relaxation…

Categories: From our team

jQuery UI 1.8RC2 is out

Team Blog - Sat, 02/20/2010 - 13:29

As you may know already, RC2 for version 1.8 of jQuery UI for jQuery 1.4 is out, heralding the final release of jQuery UI 1.8 “in the next few days” based on the What’s New post. You can link through directly from http://jquery.com/ or http://jqueryui.com/ — or get the deep-link download here.

But you knew that already!

Categories: From our team

Afrigator internal recent items broken?

Team Blog - Sat, 02/20/2010 - 12:13

Afrigator.com (Blogs, Videos, Social Media etc) seems to have issues on the cross-linking of author to posting – cross-linking internally and referencing incorrectly.

I'm sure they're working on the references, working to correct.

I’m sure they’re on it.

In this example, Gaming SA hasn’t posted since Dec 2008, but is being referenced for a post from Feb 2010. THe top link goes to the site directly, and a framed Afrigator in the first and second title, respectively…

Oh well, it’s weekend

Categories: From our team

Hospital Bend, Cape Town

Team Blog - Sat, 02/20/2010 - 10:35

In Issue 57 of the City of Cape Town’s newsletter of 12 Feb 2010, an update of the Hospital Bend development is presented.

Construction on Hospital Bend

There’s a PDF of the outgoing and incoming lane preselection, relating to De Waal Drive’s new bridge, the new Anzio Road bridge, and the merge directly with Settler’s Way off the De Wall Drive.

From the article: “The total project budget was R263 million (excluding VAT), and it is expected that the work will be completed soon, within budget and on time.

Yay! If they do road-construction like that all over the city, then they can go wild — I’d rank it as the best roadworks we’ve ever had in Cape Town, with visible progress and virtually zero inconvenience!

Categories: From our team

HTML5 takes over from Google Gears

Team Blog - Sat, 02/20/2010 - 09:23

Google Gears is reportedly being relegated to the bench by the Campus (Google, that is, as mentioned in a range of comments before) in order to allow the fun-filled featues of HTML5 to replace the functionality required. Makes sense – why have a fully fledged custom system when a specification exists that covers most of the features that Google Gears encompasses. Also, this makes sense with the editors for the HTML5 spec (of at least the API vocabulary for HTML5) being Ian Hickson from Google, Inc. and David Hyatt of Apple, Inc. fame. (BTW – there’s a good presentation on the features from GoogleIO: GoogleIO presentation on Gears vs HTML5)But what are these HTML5 features? After the hype around FireFox 3.5 and upwards supporting native video in HTML5 (in .ogg format and other), and after YouTube and Vimeo both announced their intention to allow for HTML5 video support (or at least their intention to explore the options), HTML5 went rather quiet in the mainstream.

HTML5 professes to have a variety of page-layout and -structure as well as functional, programming improvements through an API interface. Although IBM Developerworks have a good run-down, a summary follows:

The spedification show these to be the major improvements:

  • The use of the DOM as a basis for defining the language.
  • The concept of browsing contexts.
  • The distinction between user agent requirements and authoring requirements.
  • The use of imperative definitions rather than abstract definitions with the requirement of black-box equivalence in implementations.
  • The new content model concepts (replacing HTML4’s block and inline concepts).
  • The focus on accessibility as a built-in concept for new features (such as the hidden attribute, the progress element, et cetera) instead of an add-on (like the alt attribute).
  • The focus on defining the semantics in detail (e.g. the outline algorithm, replacing the vague semantics in HTML4).
  • The menu and command elements.
  • The origin concept.
  • Offline Web application caches.
  • The definition of the browsing context “navigation” algorithm and the related session history traversal algorithms.
  • The content-type sniffing and character encoding sniffing.
  • The very explicit definition of a parser.
  • The contentEditable feature and the UndoManager feature.
  • The Drag and Drop and Copy and Paste architecture.
  • The new sandboxing features for iframe.

So as opposed to HTML4, from a non-API side the improvements can be summed up as below:

  • New parsing rules oriented towards flexible parsing and compatibility; not based on SGML
  • Ability to use inline SVG and MathML in text/html
  • New elements – article, aside, audio, canvas, footer, hgroup, meter, nav, progress, section, time, video
  • New types of form controls – dates and times, email, url, search
  • New attributes – ping (on a and area), charset (on meta), async (on script)
  • Global attributes (that can be applied for every element) – id, tabindex, hidden, data-* (custom data attributes)
  • Forms will get support for PUT and DELETE methods too instead of just GET and POST
  • Deprecated elements dropped – center, font, frameset, strike

The API side presents the following:

  • The canvas element for immediate mode 2D drawing
  • Timed media playback
  • Offline storage database
  • Document editing
  • Drag-and-drop
  • Cross-document messaging
  • Browser history management

Now it’s just a matter of finalising the spec – which can be tricky. Dates from 2012 as Candidate Spec to 2022 as Recommendation Spec have been waved about. However, a variety of elements can already be coded into the web as long as the web browser fraternity embraces and supports them.

Categories: From our team

Images of Ngorogoro Crater, Serengeti, the Great Rift Valley

Team Blog - Tue, 02/16/2010 - 08:16

So images of the second phase of the Tanzania trip are up at http://www.kilimanjaro2010.co.za/Serengeti – featuring images of the Ngorogoro Crater, the Great Rift Valley (of Leakey fame – “Louis and his wife Mary held firm to this belief through decades of exploring sites in Tanzania and Kenya, and in 1959 their faith was vindicated when they uncovered the first of many hominid fossils at Olduvai Gorge.“) andthe Serengeti are now live.

Oh, and by the way – it should be oldupai, not olduvai – the plant also known as “Mother-in-Law’s Tongue” – it was a transcription error from KiMasai to German in the early 1900s by a scholar of lepidopterology that caused the long confusion and error… – but the error has stuck. “The name Olduvai, in Kimasai, means ‘place of sansevieria’, after an agave with long sharp pointed leaves and a bitter taste, better known as mother-in-law’s tongue.” as they say on travelafricamag.com

Categories: From our team

And it’s 2.9.2 time

Team Blog - Tue, 02/16/2010 - 08:07

Wordpress has upgraded to 2.9.2, which fixes the issue that “logged in users can peek at trashed posts belonging to other authors”.

So upgrade already!

Categories: From our team

Back from Tanzania and Kilimanjaro 2010!!

Team Blog - Tue, 02/09/2010 - 21:26

Made it back safe and sound from Tanzania — an amazing country!

Went all the way to the top of Mt Kilimanjaro (Uhuru Peak, 5895m) on Jan 30, 2010 at 06:10am )

Pictures are up at http://www.kilimanjaro2010.co.za – more narrative will follow at some stage

Yay!!!!

Categories: From our team

Google’s Do No evil mantra

Team Blog - Fri, 01/22/2010 - 13:19

When last did you access google.com/ig/oscheck? It returns a serialized array — with a weird space-holder — instead of “Do no evil” (which implies that you can be evil, think evil, plan evil, but not execute it), they’ve upped it a notch — all the way to “don’t be evil’” (note the trailing apostrophe).

This of course changes the mantra — you can do evil, think evil, plan evil and execute it, but just hug a bunny and buy milk on the way home in your green car (so don’t be evil). Strange deviation. Also, the apostrophe implies omission (or ownership, with bad grammar). So did they mean don’t be evilk (whatever that may mean) — you go through the alphabet and figure that one out.

Happy thoughts!

throw 1; < don't be evil' >{m:[{i:1,st:"c=ig&e=APu7icpPle4eIsUPx/8S%2BVe24JQkS/cBvDBsJhSnfdcogQ1nIoym4glNnR1WvsfaswewrREVMvHzqhekfe75PLUAm7A4%2BOlsToBUzAVE4axMYP2Q%2BGGHAMUnq61oFTnlsEU%2BiqWrfH8"}]}

Categories: From our team

No more silly Google.com fade-in effect

Team Blog - Thu, 01/21/2010 - 20:03

You’ve seen it, you hate it, you threaten to switch to wolfram or Bing… Or you can just make it go away.

Stylish allows you to apply custom stylesheets to sites by wildcard prefix, so that it works and look the way you want it to. For Firefox. For IE, IE8Pro does something similar (YMMV — I haven’t tried it…)

All you need to apply is a simple CSS script:


@namespace url(http://www.w3.org/1999/xhtml);

@-moz-document url-prefix('http://google.'), url-prefix('http://www.google.') {

#ghead, #sbl, .fade, #fctr{ opacity: 1 !important; }

}

Lots of customisations available at userstyles.org!

Categories: From our team

Dump MS Access data from Ubuntu

Team Blog - Wed, 01/20/2010 - 09:10

The mdbtools package for Ubuntu Jaunty includes a command called mdb-export.  This allows you to dump the contents of tblName from database.mdb to STDOUT in CSV format like this:

mdb-export database.mdb tblName

Output redirection to capture the output in a file is also supported (not that that’s a feature of the app, as you know):

mdb-export sample.mdb tblFoo > capture.txt

Categories: From our team

jQuery 1.4 improvements

Team Blog - Wed, 01/20/2010 - 08:17

Over at jQuery14 the full list of progress, changes and improvements, notably (amongst other things) in the .css and .attr methods, as well as new AJAXian improvements. Also, event multi-binding is now (finally) available!

For a while now, you’ve been able to pass a function into .attr() and the return value of that function is set into the appropriate attribute. This functionalilty has now been extended into all setter methods: .css(), .attr(), .val(), .html(), .text(), .append(), .prepend(), .before(), .after(), .replaceWith(), .wrap(), .wrapInner(), .offset(), .addClass(), .removeClass(), and .toggleClass().

Addtionally, for the following options, the current value of the item is passed into the function as the second argument: .css(), .attr(), .val(), .html(), .text(), .append(), .prepend(), .offset(), .addClass(), .removeClass(), and .toggleClass().

This enables code like:

// find all ampersands in A's and wrap with a span $('a').html(function(i,html){ return html.replace(/&amp;/gi,'<span>&amp;</span>'); }); // Add some information to the title of the anchors $('a[target]').attr("title", function(i,title){ return title + " (Opens in External Window)"; });

Watch out for backward compatibility in some cases, and possible unexpected turns…

Categories: From our team

How a Web Design goes straight to hell…

Team Blog - Wed, 01/20/2010 - 07:15

Many, many, many can attest to the tail of trauma, pain and suffering, as well as deep, well-meant user input created by an environment which is free-flowing, without pre-set specifications, requirements and design parameters. Pain. Argh.

Well done, TheOatMeal! He also does a really good piece on What not to Tweet about on Twitter

Oh — and in case you were wondering — here are 10 signs to check to see whether your cat is plotting to kill you.

Categories: From our team

4 more days to Kilimanjaro!!

Team Blog - Tue, 01/19/2010 - 17:12

Right — now to pack and repack and unpack and repack — need to get the weight and the sorting right so that SAA and the porters carrying the stuff don’t complain.

Worrying bit is — 1.5kg of packaging that came off the equipment — just cardboard and plastic for packaging — excluding bags. Wow.

I wonder how one would quantify the carbon footprint of packaging materials being shipped around the world, and then destroyed, dumped or burned afterwareds?

Categories: From our team

An update on Operation Aurora

Team Blog - Tue, 01/19/2010 - 17:06

The attack (Operation Aurora) on around 20 companies in the US, including Google, Adobe, Juniper Networks and others using the zero-day exploit of Internet Explorer is partly linked to social engineering — as the carefully crafted emails were plausibly created and structured, users bought into it. Once the machine was owned after the payload was released, the affected machine would contact a Command and Control (C&C) server that would send back specific instructions based on Workgroup name and machine environment (OS etc), accepting and transmitting data via a home-made encryption based piggy-backed onto the 443 port — typically reserved for the HTTP SSL transfer of data.Over at Avert Labs, there a good write-up describing the structure and interaction of multiple software cogs that each contributed to the machine ownership, written in highly obfuscated ways.

After the initialization of the malware DLL, a connection is made to the command and control (C&C) server. The connection is made on port 443 which is usually used by the HTTPS protocol, encrypted with SSL. During analysis, we noticed that the employed protocol on this port was not the standard SSL protocol, but a custom encrypted protocol.

The McAfee threat centre gave an overall summary:

“Operation Aurora” was a coordinated attack which included a piece of computer code that exploits a vulnerability in Internet Explorer to gain access to computer systems. This exploit is then extended to download and activate malware within the systems. The attack, which was initiated surreptitiously when targeted users accessed a malicious Web page

More to follow…

Categories: From our team