I'm an artist, editor, website maker and consultant.

April

Sub-archives

Apr 13, 2009

sp3dl3t v0.2

Filed Under:

. q5t g1d

Overview:

sd3dl3t is a typed shorthand style.  It's not a method that demands you learn any phonetic chords or apply a new keyboard layout.  sp3dl3t is adapted from normal IM/SMS/l33t. sp3dl3t uses a normal US qwerty keyboard and uses all the printing keys (alphas, nums, and punctuations).

The rules are simple and few:

1. All unshifted chars are sounds in English, except - and =.

One sound per char. One char per sound.

24 of the 26 alphabet letters keep (one of) the sound(s) you'd expect. c and q are different.

All numbers make vowel sounds, except when surrounded by space

Numbers surrounded by space are numbers

2. All shifted chars (plus - and =) are words.

Shifted letters are macros you assign.

Assign a macro by using the shifted letter at the beginning of the word it will replace.

Reassign a macro by reusing the same letter at the beginning of a different word.

Shifted numbers or punctuation have set meaning associated with the char, though the precise meaning depends on context.

3. Shorten everything as much as you can, but not so it's confusing.

Changes from v0.1

1. q and , swapped

2. 7 assigned to short u

3. shifted alphas assigned to user-generated macros

4. ^ reassigned

The keys

sound                         
sp3dl3t          
example
apple
day
bat
chair
dog
elephant
beer
about, taken
fish
gray
help
icky
ice
jamison
kelp
link
many
never
thing
stop
ocean
hook
scowl
toy
short
pear
rain
soup
sharp
tummy
weather
with
uncle
ruby
unisex
violence
whence
mirage
exit
yoeman
ziff
a
4
b
c
d
e
3
/
f
g
h
i
1
j
k
l
m
n
,
o
0
8
6
9
5
p
r
s
q
t
'
.
u
2
7
v
w
;
x
y
z
apl
d4
bat
c4r
dg, dog
lefnt
b3r
/b6t, t4kn
fq
gr4
hlp
ik3
1s
j4m/sn
klp
lnk
mn3
nvr
.,
stop
oqn
h8k
sk6l
t9
q5t
p4r
r4n
s2p
qrp
tm3
we'r
w.
unkl
r2b3
7nisx
v1/lns
wens
m/ro:
xit
y0mn
zf
currently unassigned:
[
]
\
`


 

 
sp3dl3t wrdz
meaning
 ~
!
@
#
$
%
^
&
*
(
)
-
_
=
+
|
:
"
<
>
?
currently unassigned:
{
}

about, aproximately
emphasis, exclamation
at, by, near,
number
money, dollar
percent, meeting, conversation, face-to-face
shift, alternate, alternately, on the other hand, although
and
kiss, smack
open, introduce, start, begin
close, end, stop
minus, without, no, disagree, subtract, decrease, not ok
underscore, emphasize, underline
equal, result, balance, equivocate
plus, with, yes, agree, add, increase, alright
pipe, give, carry, feed, transmit, transport
separate, gap, space (between)
quote
less, fewer, smaller
more, greater, bigger
question




 ~@
~@)
~#
~<
~>
~<$$
somewhere near
somewhere near the end (of)
about this many
at least
at most
I don't know how much, but it wasn't cheap
macro assignment:
1 wz n Mnhatn .,k, ~ . m8v3 M

 I was in Manhattan thinking about the movie 'Manhattan.'

Apr 11, 2009

sp3dl3t notes

Filed Under:

OK, so Todd was asking. Here's more about sp3dl3t

I'm no expert on stenography or shorthand, but AFAICT most shorthand systems are based on written or expanded alphabets. The ones that are based on typed alphabets are either stenographic ones based on chords or they're adapted from the handwritten systems.

Either way, it sure seems like when people put together any kind of typed shorthand, they either completely ignore a bunch of the keys on the keyboard, or they want to reinvent the keyboard layout altogether.

sp3dl3t is basically an adapted form of a universal english alphabet that tries to use as few keystrokes as possible while utilizing the entire QWERTY (US) keyboard. l33t kidz already get the idea of number/letter substitution, and to me l33t in general understands the semiotic play inherent in the keyboard-as-ground. If you're already comfortable with l33t, or even with the ultra-abbreviated English that's evolving out of texting & twittering, this shorthand style should be a breeze, since you're already used to looking at & thinking of your keyboard in a slightly tweaked way.

There's no actual system to learn, unlike in just about every shorthand method, just a couple rules, and those come pretty naturally if you're already texting. Basically, the whole thing comes down to this: make it as short as possible while using actual English. In that, it's not the same as the total mangling you do in SMS. Texting is more about transmission of memes and signifiers in the most compact way possible and elegance or precision is not ever really the point, but the idea of a shorthand is about typing real sentences at the speed you think or hear.

Every lowercase character stands for a unique sound. Mostly, all the lowercase alphabetical chars (a-z) keep their meaning that you already know, except for q and c. q now makes the sound 'ng' and c is now 'ch' (the hard c and q are handled by k, and the soft c is handled by s, to c and q weren't needed for those). All the numbers make vowel sounds, and 4 3 1 0 come right from l33t. U is weird, cuz there's no close number, so I picked ], since it looks like a u. l33t vowels 4 3 1 0 and ] are long, alpha vowels a e i o u are short. To keep it easy, the vowel sounds related to o and 0 look like 0-- 6 (like the ow in now) 8 (oo, of course) and 9 (oy in toy). 5's kind of odd in that it sounds 'or' (like in sort) but kind of looks like 'or' anyway.

Every shifted char stands for a word. Right now the only allowed shifted chars are numbers and nonletters. That might change. They should be used only when they actually shorten something. Mostly, they stand for what you already think they stand for. In many cases, they stand for more than one thing. For example, + can be plus, with, yes, agree, add, increase, or alright, depending on context. I haven't thought about all the possibilities here, so it probably needs some hashing out. The idea of introducing a level of semiotic disruption into the system is kind of nice-- you've got a strict correlation with the lowercase vowels and a pretty loose play with the uppercase ones. It's a little like heiroglyphics & kanji, now that I think about it....

This is version 0.1. I'm already thinking about whether some chars shouldn't be reassigned-- like making q be 'sh' for example and , be 'ng.' Or, whether it's possible to assign all the major dipthongs to a part of the keyboard...

Apr 10, 2009

sp3dl3t v0.1

Filed Under:

frst draft /f l3t-b4sd ,5thnd (First draft of l33t-based shorthand)

Here are the r2lz:

1. mnt t b ]zd n stndrd k3brd : meant to be used on a standard keyboard

2. vr3 k4rktr z t1pd w' sql k3str0k n0 uprk4s r ,ftd crs : every character is typed with a single keystroke. No uppercase or shifted chars

3. l . ## r ]zd fr v6l s6nz 5 n 9 r dpthqz : all the numbers are used for vowel sounds (5 and 9 are dipthongs)

4. ## srndd b1 sp4s r ## : numbers surrounded by space are numbers

5. 4 3 1 0 ] r lq v6lz : 4,3,1,0,] are the long vowels

6. l v6l ltrz r ,5t : all vowel letters are short

7. 1 [n3k s6n r dip.q pr cr : one unique sound or dipthong per char

8. evr3.q t1pd w. f]est # crz : everything typed with fewest number of  chars

9. ,ftd crz r wrdz : shifted chars are words

10. dubld ,ftd crz r plrl : doubled shifted chars are plural 

11. f yr sp3dl3t wrd z knfzq kuz tz 2 ,rt pt v6lz n . xntd silublz : if your sp3dl3t word is confusing because it's too short, put vowels in the accented syllables

- not assigned: - = \ [ `

 
sound                         
sp3dl3t          
example
apple
day
bat
chair
dog
elephant
beer
about, taken
fish
gray
help
icky
ice
jamison
kelp
link
many
never
thing
stop
ocean
hook
scowl
toy
short
pear
rain
soup
sharp
tummy
weather
with
uncle
ruby
unisex
violence
whence
mirage
exit
yoeman
ziff
a
4
b
c
d
e
3
/
f
g
h
i
1
j
k
l
m
n
q
o
0
8
6
9
5
p
r
s
,
t
'
.
u
2
]
v
w
;
x
y
z
apl
d4
bat
c4r
dg, dog
lefnt
b3r
/b6t, t4kn
f,
gr4
hlp
ik3
1s
j4m/sn
klp
lnk
mn3
nevr
.q
stop, !
o,n
h8k
sk6l
t9
,5t
p4r
r4n
s2p
,rp
tm3
we'r
w.
unkl
r2b3
]nisx
v1/lns
wens
m/ro:
xit
y0mn
zf



 

 
sp3dl3t wrdz
meaning
 ~
!
@
#
$
%
^
&
_
+
|
"
<
>
?
about, aproximately
emphasis, exclamation
at, by, near,
number
money, dollar
percent
grin, smile
and
minus, without
plus, with
pipe, give, carry, feed
quote
less, fewer, smaller
more, greater, bigger
question
 ~@
~#
~<
~>
~<$$
somewhere near
about this many
at least
at most
I don't know how much, but it wasn't cheap
 

Apr 09, 2009

rss fixed. !!!.

Filed Under:

OK-- successfully upgraded this blog to run svn/trunk version of QuillsEnabled & RemoteBlogging. Current egg version is 1.7.0b3 Just tested and outbound rss seems to be working fine.

 

You may now subscribe to me. Gently, please.

 

Many thanks to Jan Hackel & quills-dev team.

Apr 03, 2009

Regex cheat sheet

Filed Under:

From my Python class notes...

    re.compile()
        useful when there will be multiple results or searching over iteration
        here's the pattern:
        -assign re.compile(r'REGEX') to an OBJECT
            patternobj = re.compile(r'REGEX')
        -use OBJECT.search(VAR)
            for ITERATOR in SOMEFILE.readlines():
                if patternobj.search(ITERATOR):
                    print ITERATOR
                    
    re.search()
        useful for one-off matched
        here's the pattern:
            if re.search(r'REGEX', THING TO LOOK IN): do something
    
    re.match()
        always matches from the start of the string
        here's the pattern:
            if re.match(r'REGEX', THING TO LOOK IN): do something
    
    re.compile() produces a PATTERNOBJ
    re.search() and re.match() produce a MATCHOBJ
    
    MATCHOBJ.group()
        gets the text matched by the group
        here's the pattern:
            string1 = "Find REGEXTHING in this sentence"
            matchobj = re.search(r'(REGEX)', string1) #Note parens
            id = matchobj.group(1) #Num refers to first paren group
        or:
            OBJECT = re.compile(r'REGEX')
            matchobj = OBJECT.search(THING TO LOOK IN)
            if (matchobj):
                print "the matched text was "" + matchobj.group(1) +"
    MATCHOBJ.groups()
        returns all parens groups in a tuple
        
    re.findall()
        finds all matches (returns a list?)
        here's the pattern:
            OBJECT = re.findall(r'REGEX', THING TO LOOK IN)
        as in
            text = "High: 33, low: 17"
            temp_tuples = re.findall(r'(\w+):\s+(\d+)', text)
            print temp_tuples #[('High', '33'), ('low', '17')]
    
    PATTERNOBJ.sub()
        does search and replace on text returned by re.compile
        here's the pattern:
            OBJECT = ("some", "tuple", "of", "strings")
            OBJ2 = re.compile(r'REGEX')
            for ITERATOR in OBJ2:
                ITERATOR = OBJ2.sub('THING TO SWAP IN', ITERATOR)
                print ITERATOR
        options:
            ITERATOR = OBJ2.sub('THING TO SWAP IN', ITERATOR, count=n) 
                #limits number of substitutions in a found term
            
    PATTERNOBJ.subn()
        like sub(), but returns a 2-element tuple containing the subbed text 
        and # of substitutions made
        (THING TO LOOK IN, NUM) = PATTERNOBJ.subn('THING TO SWAP IN', THING TO LOOK IN)
            

**
        
    Flags, classes, qualifiers, and metachars
        ^ = beginning of line
        $ = eol
        \A = beginning of line
        \Z = end of line
        (?i) = case insensitive; put before string
        re.I = case insensitive alt; put after THING TO LOOK IN
        re.MULTILINE = allows ^ and $ to match on start or end of lines
        re.DOTALL = splits a string allowing regex as the splitter
        \d = digit 0-9
        \w = word char: letters, nums or underscores; contains \d
        \s = any whitespace char
        \D = not in \d
        \W = not in \w
        \S = not in \s
        [abcdef] = custom wildcard class
        [^] = negates custom char class
        string.hexdigits = list of hex digits
        string.ascii_letters
        string.ascii_lowercase
        string.ascii_uppercase
        string.digits
        string.punctuation
        string.uppercase
        string.whitespace
        string.printable
        . = wildcard
        \ = toggle/escape the char's function
        * = 0 or more
        + = 1 or more
        ? = 0 or 1
        {3,10} = between 3 and 10 (inclusive)
        {3,} = 3 or more
        () = grouping
        () \1 = backreference
        \b = boundary char, finds word boundary (whitespace, punctuation)
        
**

    Working with files
    
    FILEOBJ.read()
        the idea is to open the while file into a string and then apply the regex to it
        here's the pattern:
            FILE = open('FILENAME')
            TEXT = FILE.read()
            if re.search(r'REGEX', TEXT, re.I):
                print "I found this: ", text