2007 Nov 19, 3:47I really appreciate that
the first gen Zune's get the new Zune's
firmware and software. I like the updated Zune software personally because its faster and simpler, has better podcast support, and the whole social thing has is on their website now. So, I guess
I like the software because it has new features that should have been there in the first place.
The social thing is like a Zune social network. It uses your Xbox Live friends to seed your Zune friends list, lets you do the expected social network stuff, lets you preview songs, and unlike first
gen Zunes which required face to face time with other Zune owners, allows you to send songs to people. It also lets you display your recently played tracks and your favorite tracks, similar to what
Last.FM has, via a
Zune Card. I like the Zune Card from a technical perspective because it
separates
the
Zune Card view, written in flash from the
User Card data which is in XML. I hope
they intend to keep the XML available via this UserCard Service because I think there's potential to easily do cool things.
microsoft technical music zune social 2007 Nov 9, 2:38Jon's leaving for Germany today which of course is sad. On Wednesday, Jon came over and we watched
Hackers. There's a few things you probably wouldn't
notice without repeated viewings of the film:
- Phantom Phreak is arrested and you never hear what happens to him. This is unlike Joey who is arrested but appears in the final hacking scene.
- Marc Anthony appears in the movie as a secret service agent.
- Everyone in the movie loves Coke.
- Hackers is the greatest movie of all time: it represents the pinnacle of human artistic achievement.
In similar ex college roommate news, I'm going to California over the weekend for Angie and Kane's goodbye party. They're heading for Australia for like a year or something. Angie's got a
blog about her travels but rarely seems to update it. I'll get to see Carissa and Elijah there too, almost completing the ex college roommate
experience. To avoid confusion I should mention that unlike everyone else I know, Carissa and Elijah aren't leaving the country.
personal nontechnical 2007 Nov 6, 2:46Video of TED lectures. TED is (from Wikipedia) "... an annual conference held in Monterey, California and recently, semi-annually in other cities around the world. TED describes itself as a "group of
remarkable people that gather to exchange ideas of inc
analysis blog video visualization internet social technology ted business news ideas conference 2007 Oct 31, 4:41ONN piece on ninja parade.
humor onion news video ninja 2007 Oct 31, 4:41ONN has a piece on how the government can help paranoid schizophrenics.
onion privacy humor video satire government 2007 Oct 22, 2:36How to create good headlines and subjects for webpages and email.
blog article design email howto usability tutorial language internet writing web 2007 Oct 17, 5:55Diego Doval expresses my thoughts on this topic very well and also likely well before I even had thoughts on this topic.
blog article history robustness-principle jon-postel internet tcp 2007 Oct 17, 5:17History of the various versions of Postel's Law or the Robustness Principle which paraphrased says: "In general, an implementation should be conservative in its sending behavior, and liberal in its
receiving behavior. That is, it should be careful to send
blog article history robustness-principle jon-postel internet tcp 2007 Oct 12, 3:20And now to fit in better with the rest of the emo kids on LJ, in no particular order here are some reasons why I feel old:
- I've attended friends weddings sorted chronologically by when I met them: Lucas from high school, followed by Carissa from college,
and then Palak from Microsoft.
- I rarely get carded for alcohol.
- Jon's moving to Germany soon -- this time permanently. He's already started the process of getting rid of possessions he's not taking with him like his car and TV. However, after doing so he
couldn't maintain his smug "I don't even own a TV" attitude and ended up trading me my small CRT TV
(as mentioned previously) for his DDR pads and games. A good trade for both since we were each looking to dump these items. So far I've
only convinced Sarah to try DDR once with me. Somehow I've gotten much worse at something I wasn't that great at to begin with.
- I have business cards.
- I still have semi-monthly nightmares in which I'm taking a Linear Algebra course for which I haven't studied or done homework in years. This differs from the more frequent nightmares I had
immediately after finishing that series of classes in which I was taking the final and it was all on the one topic I didn't study. In reality, the prof. had done his PhD work on this one topic and
I, correctly betting it wouldn't appear on the final, didn't study it. Apparently this was a traumatic bet for me to make given the wake of destruction left on my dreams.
- I have to remind myself that 2005 was two years ago.
personal nontechnical 2007 Oct 1, 11:21Japanese site of cute animal photos.
photo photos animal cat gallery 2007 Sep 11, 2:55There's been
some news recently on some guy hating on FireFox for its ad-blocking.
On a similar note here's a fun tip for IE7 users I got from Eric. You can get decent ad-blocking in IE7 by putting ad servers in the restricted zone. By default script inclusion is blocked between
different zones so you can put domains that serve up ads in your restricted zone after which, normal internet zone sites won't be able to include script from them. This covers most of the ads I run
into these days.
I use
Fiddler to figure out the domains that are serving up ads which incidentally also has an ad-blocking^H^H^H^H general purpose content blocking plugin. Here's
a screenshot of Slashdot and ArsTechnica from my browser. Notice the large blank areas in the screenshots:
ad-blocking personal ad ie7 technical browser tip ie 2007 Aug 25, 6:02Manual for the Sony KDL 32S2000 TV.
reference tv product 2007 Aug 15, 3:16Reasons why del.icio.us style tagging is different and better than things that have come before it.
article blog business taxonomy tagging delicious folksonomy reference tag ontology 2007 Aug 13, 3:15Article and video on Mr. Woo a Chinese farmer who creates robots from scavenged materials. Very cool.
robot robots video china diy article humor 2007 Aug 9, 5:41To satisfy my hands which have already learned to type *nix commands I like to install
Win32 versions of common GNU utilities. Unfortunately, the
which
command is a rather literal port and requires you to enter the entire name of the command for which you're looking. That is '
which which
' won't find itself but
'
which which.exe
' will. This makes this almost useless for me so I thought to write my own as a batch file. I had learned about a few goodies available in cmd.exe that I thought would
make this an easy task. It turned out to be more difficult than I thought.
for /F "usebackq tokens=*" %%a in ( `"echo %PATH:;=& echo %"` ) do (
for /F "usebackq tokens=*" %%b in ( `"echo %PATHEXT:;=& echo %"` ) do (
if exist "%%a"\%1%%b (
for %%c in ( "%%a"\%1%%b ) do (
echo %%~fc
)
)
)
)
The environment variables
PATH
and
PATHEXT
hold the list of paths to search through to find commands, and the extensions of files that should be run as
commands respectively. The '
for /F "usebackq tokens=*" %%a in (...) do (...)
' runs the '
do
' portion with
%%a
sequentially taking on the value of every line in
the '
in
' portion. That's nice, but
PATH
and
PATHEXT
don't have their elements on different lines and I don't know of a way to escape a newline character to
appear in a batch file. In order to get the
PATH
and
PATHEXT
's elements onto different lines I used the
%ENV:a=b%
syntax which replaces occurrences of a with b
in the value of ENV. I replaced the '
;
' delimiter with the text '
& echo
' which means
%PATHEXT:;=& echo%
evaluates to something like "
echo
.COM& echo .EXE& echo .BAT& ...
". I have to put the whole expression in double quotes in order to escape the '&' for appearing in the batch file. The
usebackq
and
the backwards quotes means that the backquoted string should be replaced with the output of the execution of its content. So in that fashion I'm able to get each element of the env. variable onto new
lines. The rest is pretty straight forward.
Also, it supports wildcards:
C:\Users\davris>which.cmd *hi*
C:\Windows\System32\GRAPHICS.COM
C:\Windows\System32\SearchIndexer.exe
D:\bin\which.exe
D:\bin\which.cmd
which cmd technical batch for 2007 Aug 6, 3:43Miladin told me about the Visual Studio compiler's promising option
Wp64 that finds 64bit portability issues when compiling
in 32bit. If, for instance, you cast from a
(long*)
to a
(long)
you get a W4 warning. However, the #defines are still set for 32bit builds. This means that other parts of
the code can make assumptions based on the #defines that are valid on 32bit but generate 64bit errors or warnings.
For instance, in winuser.h the public published Windows header file there's the following:
...
#ifdef _WIN64
...
WINUSERAPI
LONG_PTR
WINAPI
SetWindowLongPtrA(
__in HWND hWnd,
__in int nIndex,
__in LONG_PTR dwNewLong);
...
#else /* _WIN64 */
...
#define SetWindowLongPtrA SetWindowLongA
...
#endif /* _WIN64 */
...
In 64bit everything's normal but in 32bit SetWindowLongPtrA is #defined to SetWindowLongA which takes a LONG rather than a LONG_PTR. So take the following code snippet:
...
LONG_PTR inputValue = 0;
LONG_PTR error = SetWindowLongPtrA(hWnd, nIndex, inputValue);
...
This looks fine but generates warnings with the Wp64 flag.
In 64 bit, p is cast to (LONG_PTR) and that's great because we're actually calling SetWindowLongPtrA which takes a LONG_PTR. In 32 bit, p is cast to (LONG_PTR) which is then implicitly cast to (LONG)
because we're actually calling SetWindowLongA. LONG and LONG_PTR are the same size in 32bit which is fine but if you turn on the Wp64 flag there's a W4 warning because of the implicit cast from a
larger size to a smaller size if you were to compile for 64bit. So even though doing a 32bit or 64bit compile would have worked just fine, if you turn on the Wp64 flag for 32bit you'd get an error
here.
It looks like I'm the most recent in a
list of people to notice this issue. Well I
investigated this so... I'm blogging about it too!
wp64 technical 64bit compiler c++ visual-studio setwindowlongptra 2007 Jul 13, 8:30I bought an external backup drive a few weekends ago. I've previously setup a
Subversion repository so I decided to move everything into the repository and
then back it up. So in went the contents of all of my %USERPROFILE% and ~ directories with a bit of sorting and pruning. Not too much though given its much easier to dump in everything and search for
what I want then to take the time to examine and grade each file. What follows are the notes I took while setting this up. It takes me a bit of time to look up the help on each command so I figure
I'll write it all down here for the benefit of myself and potentially others...
Setting Up the Backup Drive For Linux
I first changed the filesystem on the drive to ext3. I plugged it into my USB2.0 port and ran fdisk:
sudo fdisk /dev/sda
Useful commands I used to do this follow mostly in order:
-
m
-
help
-
p
-
print current partitions
-
d
-
delete current partition
-
n
-
create new partition (I used the defaults)
-
w
-
write changes and exit
Then I formatted for ext3.
sudo mkfs.ext3 /dev/sda1
I made it easy to mount:
sudo vim /etc/fstab
# added line to end:
/dev/sda1 /media/backup ext3 rw,user,noauto 0 0
I setup the directory structure on the disk
mount /media/backup
sudo mkdir /media/backup/users
sudo mkdir /media/backup/users/dave
sudo chown dave:dave /media/backup/users/dave
After all that its easy to make a copy of the Subversion repository:
mount /media/backup
cp -Rv /home/dave/svn /media/backup/users/dave/
umount /media/backup
Next on the agenda is to add a cron job to do this regularly.
Subversion Command Reference
On a machine that has local access to the Subversion repository you can check out a specific subdirectory as follows using the file scheme:
svn co file:///home/dave/svn/trunk/web/dave%40deletethis.net/public_html
Note also that although one of my directories is named 'dave@deletethis.net' Subversion requires the '@' to be percent-encoded.
Other useful subversion commands:
-
svn help
-
help
-
svn list file:///home/dave/svn/
-
list all files in root dir of svn depot
-
svn list -R file:///home/dave/svn/
-
list all files in svn depot
-
svn list -R file:///home/dave/svn/ | grep \/$
-
list all directories
-
svn status
-
List status of all files in the working copy directory as in - modified, not in repository, etc
-
svn update
-
Brings the working copy up to date wrt the repository
-
svn commit
-
Commit changes from the working copy to the repository
-
svn add / move / delete
-
Perform the specified action -- occurs immediately
Setting up Windows Client for Auto Auth into SVN
When using an SVN client on Windows via svn+ssh its useful to have the Windows automatically generate connections to the SVN server. I use
putty on my Windows machines so I read the directions on
using public keys with putty.
putty.exe dave@deletethis.net
cd .ssh
vim authorized_keys # leave the putty window open for now
puttygen.exe
Click the 'generate' button
Move the mouse around until finished
Copy text in 'Public key for pasting into OpenSSH authorized_keys file:' to putty window & save & close putty window
Enter Key passphrase & Comment in puttygen
Save the private key somewhere private
pageant.exe
'Add Key' the private key just saved.
Checking out using Tortoise SVN
On one of my Windows machines I've already installed Tortoise SVN. Checking out from my SVN repository was really easy. I just right clicked in Explorer in a directory and selected "SVN Checkout...".
Then in the following dialog I entered the svn URI:
svn+ssh://dave@deletethis.net/home/dave/svn/trunk/web/dave%40deletethis.net/public_html/
Note again that the '@' that is part of the directory name is percent-encoded as '%40' while the '@' in the userinfo is not.
Windows Command Line Check Out
On my media center I didn't want to install Tortoise SVN so rather I used the
command line tool. I setup pageant like before the only
difficulty was getting the SVN command line tool to use putty. With the default configuration you can use the SVN_SSH environment variable to point at a compliant SSH command line tool. The trick is
that its interpreted as a backslash escaped string. So I set mine thusly:
set SVN_SSH=C:\\users\\dave\\bin\\putty\\plink.exe
The escaping solved the vague error I received about not being able to create the tunnel.
backup technical personal windows svn linux subversion 2007 Jul 12, 8:40ONN news story on the crash of the Internet. I blame that Mac the guy was using.
humor news onion video internet 2007 Jun 26, 1:14Onion report on DOT study suggesting honking to alleviate traffic
onion humor video car driving traffic honk 2007 Jun 19, 9:25Unfortunate versions of popular pickup lines.
comic xkcd pickup-lines relationship humor