Thursday, October 13, 2011

dircomm 1.1

After demonstrating its general usefulness, dircomm is now available to the general public.

dircomm is a utility for finding duplicate files in one or more directories. It uses the SHA1 of the file contents to determine if two files are identical. The default output groups the paths to identical files (tab-separated) on the same line. Any number of paths can be specified; if no paths are provided, the current directory (.) is assumed.


Usage: dircomm [-adhlLv?] [-f fs] [PATH]...
Find duplicate files in one or more directories.
Options:
    -a, --all
    -d, --directory                  Do not descend directories
    -f, --field-separator fs         Set field separator
    -h, --human-readable             Display human-readable report
    -l, --long                       Long listing format
    -L, --dereference                Follow symbolic links
    -v, --version                    Show version info
    -?, --help                       Show this help message


New versions will be made available at the tg-community git repo.

Monday, September 26, 2011

Tuesday, September 6, 2011

Precedent: public camera use

Ruling: Videotaping Police Is Protected Speech.

The interesting bit being that the police charged a bystander with violating a state wiretapping law, which outlaws the "secret use" of electronic surveillance devices by private citizens:
The general court further finds that the uncontrolled development and unrestricted use of modern electronic surveillance devices pose grave dangers to the privacy of all citizens of the commonwealth. Therefore, the secret use of such devices by private individuals must be prohibited.
Remarkably, common sense prevailed (perhaps the judge owns a cell phone?):
The police claimed they thought Glik was only taking pictures, as opposed to a video and audio recording, but the appeals court found that "a straightforward reading of the statute and case law cannot support the suggestion that a recording made with a device known to record audio and held in plain view is 'secret.'"
The lesson: make sure your equipment is in plain view when recording police, and even alert them to the fact that they are being recorded. Of course, such behavior will ensure arrest & seizure, along with a 24-36 hour run through the system (and attendant lost of wages/job/pride/etc). Do/don't damned, etc.

Monday, September 5, 2011

State of the art

How to become a great software developer.
Nicely done, sir. This list should replace the useless 'programming interview questions'.

Friday, August 5, 2011

CUDA WUDA SHUDA

GPU programming for Ruby?

Yes please, thankyouverymuch SpeedGo!

SGC-Ruby-CUDA @ github. Clone and enjoy.

Monday, August 1, 2011

The Other 90%

It has long been a maxim, in some circles, that 90% of people are not good at their jobs. Over time, this appears to hold true enough to almost be axiomatic.

This rule is often been interpreted as "90% of people are bad at their jobs", which is not necessarily true. To be good at their job, a person must a) have skill and b) care about their job. Meeting neither a) nor b) does not make a person a bad worker, but it guarantees they are not a good worker.

Where do people fail to be good at their jobs? By not having skills or by not having pride in their work.


Skill

In general, people stop learning new skills when they feel secure. The type of person that continually learns new skills is an exception and should, if possible, be kept on staff or on retainer permanently.

Why is learning new skills important? Well, consider the alternative. Your doctor has not learned a new skill since he graduated medical school 30 years ago -- do you think he can make informed decisions about your medical treatment? Your lawyer has not learned of any changes in legislature since he started his practice 10 years ago -- do you want him to advise you in court? Your software architect has not learned a new programming language since he graduated college -- do you trust his judgement in designing your next-gen product?

If someone cannot be bothered to stay up-to-date in their field, they cannot be relied upon to do good work.


Pride

Ask around, take an informal survey of your co-workers, find out why they are doing this particular job/career. If you work at a company of any decent size, or really any company that does not reward creativity or personal accomplishment, then most of answers will be along the lines of "I don't know", "I have rent/mortgage/car/kids' school to pay", or "my parents forced me to".

Why is this? Most people find their work uninteresting and unfulfilling. In fact, most people find the concept of work uninteresting and unfulfilling. What would they rather be doing? Many cannot say, but it sure as hell wouldn't be work.

Pride or care in one's work may seem like a silly or even unrealistic demand. Far from it. Ask yourself the following: Who would you rather have as a doctor -- someone who takes pride in his work, or someone who doesn't? As a mechanic? As a lawyer? As a councilman? As a contractor? As an insurance investigator? As a mailman? As a cook? As a local constabulary? As a gardener? As a DMV clerk? As a cashier?

It is difficult to find any profession where it is not preferable to have  pride in one's work.


90-10

The defense given by people in the 90s is generally somewhere along the lines of "what I do isn't that important" or, even worse, "I work hard enough that I deserve to be cut some slack". The first is irrelevant and the second is always patently false. Always reach for a weapon when someone's argument relies on the phrase "I deserve".

Why is the 90-10 rule important? Actually, it's not. It's offensive, which is a lot of the fun, and it takes a bit of the frustration out of dealing with the incompetent ("ah well, you know what they say, 90% of people suck at their jobs"). Ultimately, like most made-up statistics, it is simply a rule of thumb to be applied when dealing with others in a professional capacity.

Saturday, July 9, 2011

ARGF and friends

A (quite old) list of Perl and Awk vestiges in Ruby.

To be sure, ARGF is extremely useful, but the others really shouldn't have made it into the final design.

Friday, July 8, 2011

Ptrace 0.9.1

A Ruby gem providing access to the ptrace(3) facility has been added to the opdis repository . The initial version is available, as usual, at rubygems.org.

The design is similar to the BFD, Opcodes, and Opdis gems: a Ruby extension (in C) that provides a basic wrapper for the original C libraries, and a Ruby module that provides a more natural, Ruby-like interface.

Not all of the Ptrace features have been enabled or tested. Currently, the following ptrace commands are working and tested:

  • PT_ATTACH
  • PT_DETACH
  • PT_TRACEME
  • PT_KILL
  • PT_CONT
  • PT_STEP
  • PS_SYSCALL
  • PT_GETREGS
  • PT_GETFPREGS
  • PT_SETREGS
  • PT_SETFPREGS
  • PT_READ_I
  • PT_READ_D
  • PT_WRITE_I
  • PT_WRITE_D

Wednesday, July 6, 2011

Definitely "cattle call".

Have to say, group interviews sound like a very good way to hire very mediocre people. Getting applicants "out of their comfort zone" is great for reality television, but not for assessing their ability.

Tuesday, July 5, 2011

2xV8 == V16?

A good overview of how the V8 JS compiler works. The interesting bit being the profiler thread, that causes the optimizing compiler to revisit 'hot' blocks of code.

Friday, July 1, 2011

The state of the art in malware

A pretty thorough analysis of the TDL-4 Botnet.

The most amusing bit is the antivirus feature.

Thursday, June 30, 2011

Large-scale Graph Analysis tool

Google Pregel has been given the Hadoop treatment in GoldenOrb.

Too bad they had to call it cloud-based, eh?

Wednesday, June 29, 2011

Raising the bar

Autorun? Who needs it? A quite clever USB Mouse Attack shows just how nasty foreign hardware can be.


More details:
Programmable HID USB Keystroke Dongle
Netragards announcement