Advertisement

Sorting Out Sorting

  • Jul. 16th, 2009 at 3:02 AM
Sorting Out Sorting is probably the clearest explanation of sorting techniques I've seen, despite the rather dated a/v and style.

It'd be better if some parts were sped up, and if they gave more explanation of different kinds of efficiencies (comparison, movement, memory size). The explanatory graphs are fairly good, though some are a bit obscure (e.g. the comparison graphs used for tree selection vs heapsort).

It also fails to mention radix sort & related special case stuff.

Unicode

  • Jun. 12th, 2009 at 4:05 PM
ę̧̣̑̂̌̆̈̊̄

In OSX TextEdit, this works. Evidently not so well in Firefox, though...

(For the geeks: that's, bytewise: c887cc82cca8cca3cca7cc8ccc86cc88cc8acc84 - lowercase e with ogonek, underdot, cedilla and rounded circumflex, circumflex, hachek, breve, umlaut, ring, and macron.)

Hard drive annoyance

  • Apr. 28th, 2009 at 1:05 PM
One of my three ST3750330AS has started randomly dropping out. It'll just go nonresponsive; won't mount, won't cleanly unmount, won't even enumerate well. It's one of two that I got RMAed not long ago. Looks like I'm going to have to send it back again.

I've ordered 2x ST31500341AS to replace 'em (as I am suspicious of the other drive too; it's been having less serious but still siginifcant issues). Will need to flash the firmware, but hopefully it's stable w/ the new stuff. And they're 2x the size.

I'd get 3 and set up some sort of RAID, but I only have 4 SATA ports, one is used by my dvdrw, and I'm not willing to have my boot disk be RAID for compatibility reasons. (I triple boot Vista/Kubuntu/OSX.)

I would however like to change my setup somehow so that I have assurance against HD crash; that probably means some sort of software RAID or some halfassed file-level equivalent (rsync? dar?). Or getting a $600 NAS unit and then dealing with being under proprietary systems. Or something else.

Feh.

A proposal for official keysigning

  • Apr. 28th, 2009 at 10:58 AM
The intent of this proposal is to begin a transition away from easily faked and inherently physical means of signing and verifying documents to cryptographically secure means.

Right now IMO, one of the greatest barriers to the use of PGP/GPG signing of documents is the lack of officially sanctioned keysigning. Yes, I know there're keysigning parties and OpenWhatever and so forth. Those are only acceptable to hackers; they do not have the authority of (say) even a driver's license.

So, I propose:

1. Any office of the government that issues identification (e.g. driver's licenses) must also perform the following services for people and corporations:
a) sign public keys, provided that:
* the person, or officer of corporation, has their ID verified per normal standards for issuing any other gov't ID
* the key is exclusvely tied to the person's or corporation's real name,
* the key contains an accurate photo of the person's face, or the corporation's seal,
* the signature is revokable by the government,
* the key is at least as secure as 1kDSA/4kElGamal is believed to be currently, and
* the private key is only known by the key owner (i.e. the government may only sign, not get in on the private key);
b) revoke keys or signatures that it has signed upon request of the person or corporation (e.g. in the event of loss of passphrase);

2. Every notary must:
a) perform the above signing service for the same rate as normal notarization, with the same requirements;
b) get their own public key signed in a special way to indicate their notary status;
c) do the electronic equivalents of any services they perform on paper (e.g. if they normally will notarize paper affidavits, they must also notarize electronic affidavits, with all their usual wording and so forth attached)
d) have the option, for nominal cost, to record the cryptographic signatures of such services (but not the documents signed themselves) to a central database which is publicly readable - eg if they performed sign([contract X] + ["bob came in, showed me his driver's license, and signed contract X"]), then they can publish to the db the signature itself and the notarization portion of the document ("bob came in..."), but not the contract unless bob authorizes it; thus other parties can directly verify that Bob got the contract notarized

Opine?

Weird headphone noises

  • Apr. 21st, 2009 at 4:37 AM
I'm currently wearing headphones plugged into the minijack on the front access panel of my computer.

When I type - or just hold a key down - I can hear a faint clicking sound. My keyboard is USB based, plugged into the back of my compter. This happens in all apps, and only (AFAICT) using the headphones.

AFAIK I have no sounds of this sort configured in OSX.

I also get a little bit of static-ish sound that occurs in a regular pattern.

WTF?

OS X OSS / ALSA DSP device location?

  • Mar. 19th, 2009 at 1:31 AM
Any of you know what OS X's equivalent of /dev/dsp et al is?

My google-fu is not turning up results. There is no /dev/dsp, audio, or anything obvious that I can see... and I doubt it uses ALSA.

Ghost in the printer

  • Jan. 17th, 2009 at 8:39 PM
My Canon MP470 scanner/printer is randomly printing stuff.

Namely, this stuff:

Read more... )

... wtf?

It just starts printing when turned on, or just whenever without provocation.

I can't read the handwriting well enough to tell what it is, except that it's in Spanish and has something to do with airplane design. Translations?

Edit: ... or skiing tips?

How to redirect an entire site

  • Jan. 8th, 2009 at 3:00 AM
old site: conlangs.berkeley.edu
new site: conlang.org

Try it out: http://conlangs.berkeley.edu/members.php

Note that the RewriteCond does not have a ^ - that's to make sure it works with or without www.

RewriteEngine on
RewriteCond %{HTTP_HOST} conlangs\.berkeley\.edu$
RewriteRule (.*) http://conlang.org/$1 [R=permanent,L]
1. The only options when copying where folders have a name conflict (e.g. copying /flashdrive/documents to /home/documents) is stop or replace. And the replace does not have standard delete-recoverability functionality - just poof, gone.

I just lost several gigs of data because of this (fortuantely, it's data I can reaquire, but still). My expected behavior for folder conflict is merge, which isn't even an available option. And forget trying to do recursive merge - that's simply not possible in any easy way. You have to do the whole damn thing yourself, folder by folder.

Extremely lame. No file operation should be destructive in a GUI without being really fucking explicit about it (and preferably not even then, hence the trash can).

ETA: Also lame, though not as destructively so, is that confirmation dialogues etc. are blocking. If a conflict is discovered halfway through an operation, it waits until then to ask, then waits around until you answer. This is stupid. It should find out all questions upfront and proceed with as much of the command as it can without your interaction, so it doesn't waste your time. (Or allow an option for the questions to be required to be answered first, for some use cases.)


2. Tabbing in forms only goes between text fields. It specifically does not include checkboxes, combo boxes, buttons/links.

This means that if I'm filling out a form, I have to break flow to use my mouse to frob things. I find this extremely cumbersome and unpleasant.

Mac OS is also completely broken when it comes to keyboard navigation in general. Even in Windows, I can do more or less everything I want purely by keyboard.


Do any of you know of hacks that would fix these two issues? I haven't seen any. :(

Modern botnet design

  • Nov. 26th, 2008 at 6:54 PM
On a whim, I investigated the current state of botnet design.

Here are two listings of botnet source code.

Here is a user's guide to one.

Here is a pretty good white paper (and supplement). Here is a book on them.

It appears that the current state of the art is something like this:
* all bots are deployed as a trojan or remote code execution payload
* some have a compression loader (e.g. UPX) to help prevent AV detection
* all bots have a compiled-in reference to a couple IRC servers w/ channel names and passwords
* some bots have a modular payload design
* some bots allow for self-updates
* some bots have basic built-in payloads and self-propogation ability
* some botherders have a stripped-down or otherwise modified version of IRCd used to allow a large number of bots to connect (e.g. 80k) and to detect spying
* authentication is via cleartext login & password in the compiled-in channel, meaning that if an attacker can spy on the channel (by running strings on a captured bot) and possibly gain ops, they can send an update command to the bots and thus take them over with their own bot code

To me, this seems pretty atrocious as a design. I presume that there are at least some better botnets not available in open source.


As a purely academic exercise, here is my opinion of how to design a better system.
* use completely modular design
* have completely decentralized c&c, such that each node - including the command origination node - connects only to a small number of other nodes (<10) and does not know who they are
* use public key encryption for message passing, such that each bot generates its own key, and each bot knows the keys of its predecessors and also of the master, allowing for completely crypted, authenticated traffic and deniable master node
* bots have multiple modules for communication, preferably using both sync (for online commands) and async (for announcement) methods - e.g. XMPP, Gnutella, tor, commentspam, etc)
* bots post their contact info, crypted to their predecessors + the master, and including their own public key, in multiple methods
* preferably use cross-platform-compatible code (maybe even... *shudder*... Java. Or less horrendously, jRuby - it'd be metasploit-compatible). If that's not feasible, C++ would probably be best.
* stub out as much as possible to good external projects (like Metasploit, tor, et al)
* have some kind of Core Impact like variant on Metasploit that allows each bot to automatically scan, detect, and exploit vulnerable hosts (if possible, taking advantage of the extra data available to it)
* have some kind of mutex to prevent multiple infection of the same host but still prevent easy identification of infection (a hard problem - most likely a matter of steganography)
* have self-controls to prevent the bot ever using enough system resources to adversely impact users' performance
* patch the holes it exploits, or otherwise do things that both benefit the user (resulting in better performance & lower chance of detection) and cover up its own tracks / holes (again lowering detection chance as well as preventing other exploits from doing bad things [that get one detected], competing for resources, or attempting to hijack the bot)


P.S. Dear NSA/FBI/SS/employers: please read this as advice for how to think about (& thus prepare for) next-generation botnets, rather than evidence of any kind of criminal intent on my part. I'm a whitehat; DDoS is something I help to prevent. Someone *will* make and deploy this maliciously; I'm hardly the only smart guy out there, and unlike some people, I have no connections to organized crime that would allow me to get away with the real stuff. (Money laundering is hard.)

You're better off thinking about it before that happens.

New custom PC

  • May. 21st, 2008 at 6:25 PM
It's been forever (1998) since I made one. So I had to get myself up to speed about what the current standards and sweet spots are.

Since I can't really use my work laptop for personal stuff (and need to get to work on that), but I can use it just generically as a laptop and use e.g. nomachine or a plain ssh tunnel to work with my files remotely, and I can get significantly more performance per price in a desktop than a laptop system... I elected to make my own.

My target is a mid-high range PC, capable of handling more or less anything I expect to do (moderate strength web server, gaming, video editing, development, ye generic office stuff, etc); plus to stay decently extensible to survive 2-4 years of Moore's Law.

Plausible future upgrades:
* more hard drives (not listed are two old HDs I have - one aging and only semi-stable 500GB IDE, and one 70GB laptop drive; those will help but aren't really reliable)
* +4gb ram (will require 64bit OS; not sure whether to try installing 64bit kubuntu hardy as afaict it has Issues, but I already have 64 bit Vista...)
* extra video card (if for some reason I end up doing massive amounts of graphics processing...)

I'll also still be using my old but still quite good Cambridge SoundWorks DTT2500 speaker set. No doubt there are better things out there, but I don't really see a need to upgrade that. Needed to add a coax s/pdif connector though, since I've lost the old one.

Otherwise, hopefully this system will last me a while. :-P


Antec Nine Hundred Black Steel ATX Mid Tower Computer Case - 120
PC Power & Cooling Silencer 750 Quad (Red) 750W EPS12V Power Supply - 150 - 30 MIR
GIGABYTE GA-EP35-DS3L LGA 775 Intel P35 ATX Intel Motherboard - 90
Intel Core 2 Quad Q6600 Kentsfield 2.4GHz LGA 775 Quad-Core Processor Model BX80562Q6600 - 220
ARCTIC COOLING Freezer 7 Pro 92mm CPU Cooler - 27
Arctic Silver 5 Thermal Compound - 6
G.SKILL 4GB (2 x 2GB) 240-Pin DDR2 SDRAM DDR2 1066 (PC2 8500) Dual Channel Kit Desktop Memory Model F2-8500CL5D-4GBPK - 150
MSI NX8800GT 512M OC GeForce 8800GT 512MB 256-bit GDDR3 PCI Express 2.0 x16 HDCP Ready SLI Supported Video Card 185 - 25 MIR
Seagate Barracuda 7200.11 ST3750330AS 750GB 7200 RPM SATA 3.0Gb/s Hard Drive - 130
SAMSUNG 20X DVD±R DVD Burner Black SATA Model SH-S203B - 27
Rosewill RCR-102 52-in-1 USB 2.0 Card Reader - 15
KDS K-24MDWB Black 24" 2ms(GtoG) DVI Widescreen LCD Monitor with HDCP support - 395
Microsoft FA6-00010 Black USB Wired Ergonomics Keyboard Mouse Included - 39
XTRAC Ripper Optical Mouse pad - 14
EDIMAX EW-7128G IEEE 802.11b/g PCI Wireless Card - 23
Link Depot SCW-10-BU Blue Aluminum screw - 1.5
2x SILVERSTONE FM121 120mm Case Fan - 34
Rosewill RCW-929 6 FT. High Performance Audio cable M-M - 9

Total $1792 - 55 MIR shipped, via newegg.

Could save ~$50ish going with noname online stores, but probably not worth it.

(Also, this counts as 'business expenses' for me as a contractor... so it's fully deductible from my self-employment tax. :))

Back from the DEAD

  • Feb. 13th, 2008 at 10:10 PM
So, my laptop was out of commission.

We tried a first pass at fixing the issue - it didn't get power from the plug - without success.

Today... I took the thing apart completely. All the little (and big) pieces on the table, a boxtop full of tiny screws, the motherboard completely removed from all three pieces of the frame.

Ryan re-soldered the power leads. I put it back together (oy what a pain). And only six screws left over!

And now it works. I was facing having to replace the laptop otherwise.

About as well as ever - slightly better, actually, 'cause we found a massive amount of gunk in the CPU cooler whose current nonexistence will hopefully make things cooler and thus faster. My RAM still gets really hot, but ohwell.

Yay for EE-capable boyfriends & ability to work together to solve a problem. ^^


Ryan comments: FYI it was reading ~5.8V at a couple spots before I reflowed it, and afterwards was reading 19V... no idea why, but whatever.

My laptop is dead

  • Feb. 4th, 2008 at 8:25 AM
Something about the power. We tried taking it apart, testing connector, resoldering its leads, blah blah anyway it's dead hard enough that it'll take replacing the main board to fix. :(

Hopefully I'll be able to use Ryan's computer to virtualbox my laptop HD and thus still function, but expect my 'net accessibility etc to be a bit shoddy until further notice.

Blah. :(

How to access gmail w/ Konqueror

  • Nov. 30th, 2007 at 8:09 PM
Use basic HTML view:

https://mail.google.com/mail/?ui=html&zy=d

Grr on them for not giving that link anywhere unless they think you need it. And grr for immense code obfuscation.

File recovery blues

  • Jul. 23rd, 2007 at 7:34 AM
So, there are some files I need to recover for work.

For various reasons, the only copy of them is in a self-extracting archive on my computer.

This archive was made a couple installs of Window ago. And encrypted.

I was good and backed up my certs, so I do have the encryption key it was made on. But I can't decrypt it because I get 'access denied' errors... even though its file permissions claim that I own it, and that system, administrators, and I have full access.

I managed to use cipher /rekey to get it switched to my current encryption key... but it refuses to do encryption /d or to copy somewhere else or anything like that. :(

Also I kinda suspect that it's hiding a subdirectory from me.

I don't know wtf is up with this file, and it looks like the next round of recovering it is booting up vmware (of which I need to get the new vista-compatible version) to run Kubuntu to mount ntfs and hopefully have it ignore file permissions so that I can copy it off into someplace that won't record that, and then I can access it to decrypt it. And then I might have encryption on the archive extractor itself....

Sometimes I'm too damn paranoid. And need to keep more backups. :-|

Kubuntu

  • Jun. 22nd, 2007 at 7:29 PM
I am currently adding Kubuntu to my computer as a dual boot (I write this from Konqueror off a live CD). Resizing NTFS is scary. :|

TBD whether I actually like / use it, but I guess it's time I tried.

Fortunately, Ryan's an experienced *nix sysadmin (unlike I), so I can make him fix things if it breaks. :)


In other news, I seem to be sick. Cold or flu or something. Feh.

Profile

glyph
[info]saizai
Sai Emrys

Latest Month

December 2009
S M T W T F S
  12345
6789101112
13141516171819
20212223242526
2728293031  

Tags

Syndicate

RSS Atom
Powered by LiveJournal.com
Designed by Lilia Ahner