A friend (honest) forgot their pwd recently and asked me to hack into their machine and change their admin pwd. I found the following really tasty application which does the trick.
The Offline Password and NT registry editor by Petter Nordahl-Haggen. This is a very useful utility which I’ve used in the past and which has proven very effective. There are bootable floppy and CD images on the site that you can use edit your windoze box’s passwords, stored in the reg’s SAM file. For more hints and tips check here. Merry Christmas and a happy new year to everyone…
Category: technology
p2(very small)p
This is getting ridiculous. Following my recent post about Ed Shelton’s P2P program in 15 lines of Perl there’s been a P2P app done in 9 lines of Perl and now (wait for it) a full peer-2-peer application in 6 lines of Ruby with a 3 lines of comments.
Just to show everybody how nuts this has become the code is reproduced below…
# Server: ruby p2p.rb password server server-uri merge-servers
# Sample: ruby p2p.rb foobar server druby://localhost:1337 druby://foo.bar:1337
# Client: ruby p2p.rb password client server-uri download-pattern
# Sample: ruby p2p.rb foobar client druby://localhost:1337 *.rb
require'drb';F,D,C,P,M,U,*O=File,Class,Dir,*ARGV;def s(p)F.split(p[/[^|].*/])[-1
]end;def c(u);DRbObject.new((),u)end;def x(u)[P,u].hash;end;M=="client"&&c(U).f(
x(U)).each{|n|p,c=x(n),c(n);(c.f(p,O[0],0).map{|f|s f}-D["*"]).each{|f|F.open(f,
"w"){|o|o<<c.f(p,f,1)}}}||(DRb.start_service U,C.new{def f(c,a=[],t=2)c==x(U)&&(
t==0&&D[s(a)]||t==1&&F.read(s(a))||p(a))end;def y()(p(U)+p).each{|u|c(u).f(x(u),
p(U))rescue()};self;end;private;def p(x=[]);O.push(*x).uniq!;O;end}.new.y;sleep)
I think I’ve had more than enough of this. Pick a suitably high-level language, use single character variable names and some whacky formatting to exchange a file over a socket and call it P2P. Next someone is gonna write a java programme using SUN’s JXTA that just inits a class or two, format it all on about 4 lines and say, wow it’s the shortest P2P app ever… More interesting would be a P2P application written in a declarative language like Prolog or a functional language like Haskell or Hope. Haven’t done much Haskell programming in a while (damn rusty and for some reason don’t feel like breaking out the books) but prolog looks tempting. Expect a post. I may have to use some file IO/socket programming but it sounds like an interesting project. I’ll let readers know how I get on 😉
headmap
I must confess to being absolutely fascinated by headmap.org. I’m fascinated by the idea of smart spaces which infer user intent based on learned context. For example an office space that learns that automatically adjusts the heating in a room based on predictions about a meeting occuring. Lights that switch themselves off when there’s nobody around etc. The most value is achieved when the ambient intelligence is fully integrated with other organisational information systems such as email and IM servers, project management tools, data and profile repositories etc. I fancy the idea that every node in an increasingly networked world could dynamically negotiate new cooperative strategies and operations based on an understanding of user intent. A true User Oriented Architecture. This could be communicated using a standardised information markup with transforms for hetergeneous devices to address capability differences. I’m straying into agents territory here but there was a lot of value in that research. In essence,extending the human computer interface (HCI) throughout the user environment. In particular I like the idea about capturing memories at locations, augmenting the real world with location/memory tags, a bit like the virtual worlds created by multi-player games. The possibilities are amazing & the results would perhaps be indistinguishable from magic…
Where old computers go to die :(
While I was typing the last entry I wondered if there were any websites devoted to old PC technology. My sense of nostalgia overwhelmed me when I visited Old-Computers.com. In particular this article on the IBM PC AT brought it all back. I remember using one of these in school when I was younger. It had the 286 processor (which really kicked ass in its day) an outlandish 1Mb of RAM and 16-bit expansion slots, of course. This had a type 2 mobo with 4 standardised 256k slots instead of 128.. Those were the days.. when computers were dumb, real men used DOS, we played footie in the park, jumpers for goalpsots…
Apparently the 128 k slots were a bit weirder than they seemed initially.
The first AT used 128 k chips, which appeared to be two 64k chips stacked. It used two DMA chips, which tended to fail in tandem. It also used a second IRQ controller. If the AT had more than 640 k of RAM, the CMOS would only allocate the first 512 as Convential, the rest as Extended.
Only 17 hard drive type were supported in the CMOS, causing no end of headaches when Seagate realsed their 40 meg half height. The 1.2 meg floppy drive could read and write 360’s, but if you formatted one, it couldn’t be read by a regular double density drive.