2007-12-31

Configuring a Linksys WRT54G

The old wifi access point died, and the new one is a Linksys WRT54G. After the inital setup, here's what I did next:

2007-12-08

Where to go?

So, you want to know where to go in Cambridge, on the Red Line, for a drink? I think you want to go somewhere interesting and safe. Here are some suggestions:

Harvard Square:

Central Square:

Davis Square, Somerville:

2007-12-07

Work PC software inventory

My work PC had become too rotten to use. Among other problems, I couldn't install or uninstall any software under Windows XP. My solution: start from scratch, rebuilding the PC from the IBM Rescue and Recovery CDs.

To make full recovery easier, here's the minimum list of software packages that I'll want to reinstall before doing anything else:

Software

Source

Reinstalled?

Windows XP + updates

Recovery media + net

y

AccessIBM

ThinkPad System Update

y

AccessIBM Message Center

ThinkPad System Update

y

Adobe Reader

Google Updater

y

AutoHotkey

Net

y

Cygwin

Net

y

Google Desktop

Google Updater

y

Google Gears

Net

y

Google Gmail Notifier

Net

y

Google Updater

Net

y

Microsoft Project

CDs

y

Mozilla Firefox

Net

y

Mozy

Net

y

PDFCreator

Net

y

Skype

Google Updater

y

ThinkPad Keyboard Customizer Utility

ThinkPad System Update

y

ThinkPad System Update

Net

y

TightVNC

Net

y

w.bloggar

Net

y

And here's my list of Firefox extensions:

Extension

Reinstalled?

Flashblock

y

Google Browser Sync

y

Google Gears

y

Google Toolbar for Firefox

y

meebo

y

2007-11-23

Opera vs Firefox

I've been using Mozilla and Firefox for years. I recently began using Opera Mobile on my Pocket PC. It is great--I like it so much, I bought a license--so I thought I'd give Opera a try on the desktop. Here's a little of what I think of Firefox 2.0.0.9 vs. Opera 9.24:

Resource utilization
So far, Opera seems to consume fewer CPU cycles and less memory. I can't tell whether it's the core browser or the numerous Firefox plugins I use, but Opera seems to beat Firefox here. As part of my Go Google strategy, this is important--I'll be using the browser more and more for everyday tasks, including basic word processing.

Winner: Opera

Ad blocking
The ability to control advertising is important to me. I don't want to view ads in general, and I get distracted by animated ads. Firefox lets me block images from any server, a very coarse-grained way to block ads. Opera lets me block individual URLs on rendered web pages, and then edit the list later, adding wildcards. With Firefox, it's all or nothing, and with Opera, it's a lot of work to build up the black list.

Winner: Tie

Flashblock
The Firefox Flashblock add-on is another great way to control ads and other Flash-based content. There are ways to block Flash content in Opera (see Ad blocking, above), but it's not as easy as using Flashblock on Firefox.

Winner: Both

Search engines
Firefox's search box is nice. It's easy to add new ones from the library, but it's not super-easy to customize (super-easy criterion: grandma could do it). It's easier to customize Opera's location box. I've already added search shortcuts for Merriam-Webster and IMDb (and restored Google on my PPC by editing search.ini).

Winner: Opera

Google Toolbar
I really like the Google Toolbar add-on. It simply doesn't exist for Opera, and the Google widget is not an acceptable substitute.

Winner: Firefox

Google Calendar
I can't edit full-day events in Opera!

Winner: Firefox, and, ultimately, Google Calendar is important enough to me that Firefox might just win overall because Google app's don't run adequately in Opera.

Alternate keyboard
I customize Windows to use the Dvorak keyboard. Opera often switches back to QWERTY. How annoying!

Winner: Firefox

Widgets
Opera widgets are nice, and Firefox doesn't offer anything similar. I usually run Google Desktop and Google widgets, though, so I don't care so much about browser-based widgets.

Winner: Tie

Add-ons / Plugins
Firefox has an extensive collection of add-ons, contributed by anyone and everyone. Opera has a more controlled, probably higher quality, set of plugins. Firefox lets you shoot yourself in the foot but gives you as many different kinds of bullets as you want. Opera tries to protect you.

Winner: Tie

Tabs
Both offer tabbed browser. Opera opens new tabs without switching to them by default. Firefox's Ctrl-Tab switches to the next tab by default, while Opera changes to the most recently viewed tab (annoying).

Winner: Tie

Toolbar bookmarks / Speed Dial
Firefox lets me drag URLs onto the toolbar for fast access. Opera lets me define nine speed dial shortcuts.

Winner: Firefox

Foxmarks
Foxmarks is a great tool for synchronizing for bookmarks between multiple computers. There's no easy, free way to do this with Opera.

Winner: Firefox

Meebo
Meebo is sloooow! in Opera. It Just Works in Firefox, and the Meebo plugin is handy.

Winner: Firefox

Decision
In a split decision, Firefox wins. I want stuff to Just Work. Google app's don't just work in Opera, so I'll stick with Firefox.

2007-11-20

Daily reading

Read every day! Here's my reading list, replacing the tree-killer edition of the local newspaper:

Google

Comics

Boston Globe

2007-11-09

Pocket PC favorites

I conducted a little user experiment to improve the usability of my Pocket PC. The goal was to identify the 12 applications I use the most make them easy to run. After a few days of recording the number of times I selected each app to run, here are my results:

Rank

Application

Count

Comments

1

Web browser (Opera Mobile or Pocket Internet Explorer

41

A few days into the study, I began user Opera. It rocks! Finally, a tabbed web browser for Windows Mobile 2003 that renders pages well and doesn't crash.

2

iPAQ Wireless

28

I frequently turn on or off the various radios depending on whether I'm at home, in bed, at the office, or outside on the street.

3

Notes

21

My groceries list

4

Calendar

17

The native calendar works better than mobile Google Calendar.

5

Pocket Excel

13

Various tables of things, including my youth soccer team's roster

6

Contacts

9

I feel like this should be mapped to a physical button so I can dial one-handed, but I really don't use it enough to need quick access to it.

7

Solitaire

8

>How embarrassing! Solitaire is one of my most used app's. I used it primarily to kill time while waiting for Pocket Internet Explorer to load pages. Now that I'm using Opera, I hardly play Solitaire at all.

8

GooSync>

7

I love GooSync! This is the best way to keep my Google Calendar sync'd with my native calendar.

9

Windows Media Player

2


10

File Explorer

2


11

Inbox

1


12

PHM Reset Power Toy

1

Sometimes, you just have to reboot.

I mapped the top three to the physical buttons, and the rest to the Start button.

2007-10-30

Week 9 practice plan

Maintaining possession, taking shots:

  1. Passing, juggling, and throwing in: Warm up individually and in pairs. Review throw-ins individually.
  2. Warm up and stretch: Jog forward, jog backward, jog touching thighs, jog touching ankles, 3 steps and high kick, step-over jog. Stretch.
  3. 1v1, 1v1+1, 1v1+2, etc.
  4. Triangle goal game: Win it! Turn and shoot! Maximum 2 touches.
  5. 8v8: Special rule: 3 consecutive passes scores a point. Special rule: 2 touches. Special rule:score 5 points for making a crossing pass through a gate and scoring a goal.

2007-10-23

Week 8 practice plan

Maintaining possession, taking shots:

  1. Passing, juggling, and throwing in: Warm up individually and in pairs. Review throw-ins individually.
  2. Warm up and stretch: Jog forward, jog backward, jog touching thighs, jog touching ankles, 3 steps and jump, 3 steps and squat, step-over jog. Stretch.
  3. Shield-steal
  4. 4-corners passing game: Encourage holding the ball to close out a match--score a point by holding the ball for 3 seconds.
  5. Triangle goal game: Win it! Turn and shoot! Maximum 2 touches.
  6. 8v8: Special rule: anywhere near the 18, you get only 2 touches. Special rule: use cones from 4-corners passing game to set up "goals" for crossing passes; can't score unless it's on a crossing pass.

2007-10-16

Week 7 practice plan

Winning the ball, shooting, passing for possession, and crossing passes:

  1. Passing, juggling, and throwing in: Warm up individually and in pairs. Review throw-ins individually.
  2. Warm up and stretch: Jog forward, jog backward, jog touching thighs, jog touching ankles, 3 steps and jump, 3 steps and squat, step-over jog. Stretch.
  3. 1v1+2
  4. Triangle goal game: Win it! Turn and shoot!
  5. 4-corners passing game
  6. 8v8: Special rule: use cones from 4-corners passing game to set up "goals" for crossing passes; can't score unless it's on a crossing pass.

2007-10-09

Week 6 practice plan

More passing and shooting, and a little bit of ball control:
  1. Passing, juggling, and throwing in: Warm up individually and in pairs. Review throw-ins individually.
  2. Warm up and stretch: Jog forward, jog backward, jog touching thighs, jog touching ankles, 3 steps and jump, 3 steps and squat, step-over jog. Stretch.
  3. Soccer tennis: 1v1, then 2v2. Server directly from the ground, or on one bounce from your hands. Maximum 3 touches per side.
  4. One goal game: One goal in the middle of the field, one goalkeeper. Each team attacks one side of the goal. Win the ball! Turn and shoot! Follow the shot! Extra points for long shots (>20 yards).
  5. Crossing game: Cones are set up down each side of the field to leave a lane for crossers (A and D). B starts with the ball, gives a leading pass to A, then A crosses to C (who is making a run). C to D, D back to B, then B to A and the cycle starts again. At the end of the field they turn and come back (changing feet). We set a number of crosses they must complete (A and D passes -- say 10), and each "team" of 4 sees how fast they can do it, and how few touches they can do it in. You can also add that the ball must be stopped on an end line at least X times.

    Other boys: juggling and other skills at center circle or sideline, or if room and numbers available, on side of field, doing one goal game.

    This drill can progress into a small sided game, where defenders and goalies at both ends are added, lane crossers are neutral and get free use of the lane.
    David's cool drawing

  6. 8v8: Can't score unless entire team is in attacking half of the field. Extra points for switching field. Review throw-in technique, defensive walls, and corner kick offense and defense.

2007-10-02

Week 5 practice plan

More passing and shooting:

  1. Passing, juggling, and throwing in: Warm up individually and in pairs. Review throw-ins individually.
  2. Warm up and stretch: Jog forward, jog backward, jog touching thighs, jog touching ankles, 3 steps and jump, 3 steps and squat, step-over jog. Stretch.
  3. One goal game: One goal in the middle of the field, one goalkeeper. Each team attacks one side of the goal. Win the ball! Turn and shoot! Follow the shot! Extra points for long shots (>20 yards).
  4. Crossing game: Cones are set up down each side of the field to leave a lane for crossers (A and D). B starts with the ball, gives a leading pass to A, then A crosses to C (who is making a run). C to D, D back to B, then B to A and the cycle starts again. At the end of the field they turn and come back (changing feet). We set a number of crosses they must complete (A and D passes -- say 10), and each "team" of 4 sees how fast they can do it, and how few touches they can do it in. You can also add that the ball must be stopped on an end line at least X times.

    Other boys: juggling and other skills at center circle or sideline, or if room and numbers available, on side of field, doing one goal game.

    This drill can progress into a small sided game, where defenders and goalies at both ends are added, lane crossers are neutral and get free use of the lane.
    David's cool drawing

  5. 8v8: Can't score unless entire team is in attacking half of the field. Extra points for switching field. Review throw-in technique, defensive walls, and corner kick offense and defense.

2007-09-25

Week 4 practice plan

This week we'll review headers and practice winning the ball and shooting.

  1. Passing and juggling: Warm up individually and in pairs.
  2. Warm up and stretch: Jog forward, jog backward, jog touching thighs, jog touching ankles, 3 steps and outside-in, 3 steps and inside-out, step-over jog. Stretch.
  3. Heading intro: Push the ball against your forehead. Close your jaws tight. Use your neck muscles to push against the ball. Practice solo: how many in a row?
  4. 2v2 or 3v3 head volleyball: Players line up a few yards apart from each other. Serve by tossing the ball to an opponent's head. Volley the ball by heading it back and forth. Score by heading the ball over the opposing team so it can't be returned. Variation: try to get more consecutive headers than another group.
  5. Triangle goal game: Win the ball! Turn and shoot!
  6. 8v8: Can't score unless entire team is in attacking half of the field. Score extra points if entire defending team is not in defensive half of the field.

2007-09-18

Week 3 practice plan

This week we'll continue focusing on possession through passing, and we'll add throw-ins.

  1. Passing and juggling: Warm up individually and in pairs. Make it intense so it's really a warm up: how many jugs in 60 seconds?
  2. Warm up and stretch: Jog forward, jog backward, jog touching thighs, jog touching ankles, step-over jog. Stretch.
  3. Throw ins: Pairs of players review legal throw in technique. Receiver immediately passes the ball back to thrower. Then 2v1: attacking players practice throw in as a wall pass technique around the defender.
  4. 1v1+2
  5. 5 goal game: 4v4+2; or N+1 goal game, with NvN+N/2, where N is the number of players per side
  6. 4 corners passing game
  7. 8v8

2007-09-15

Players and families meeting

Cambridge Clash
Fall 2007
Richard Kasperowski
David Cohen

  • About the coaches

    • Volunteers

      • Donate >200h/y/coach of personal time

      • Unpaid or worse: we paid the same CYS fees you did to have our kids on the team

    • Richard Kasperowski: regular guy, US Soccer F license, coach soccer because I love soccer, I love coaching, and I love family time.

    • David Cohen: regular guy, US Soccer F license, great soccer coach

  • About CYS

    • CYS goals

      • Enjoy soccer now, enjoy soccer later

      • Be athletically fit now, be fit later

      • Have fun

    • US Soccer coaching guidelines

      • Modeled after Dutch system

      • Formalized by US Soccer development system

      • Followed by Mass Youth Soccer, Cambridge Youth Soccer

      • Players of similar skills on the same team

      • Training sessions mimic game situations, let guys learn soccer skills for themselves

        • Individual skills

        • Small-sided games (1v1, 2v1, 2v2, 2v4, 3v3, etc.)

        • Maximize ball touches

        • No lines, no lectures, no laps

      • Positive feedback

    • This team

      • BAYS Division 2F: competitive, a step up from last year's Division 3

      • Second of the 4 Cambridge BAYS U14B teams: this is a group of good soccer players

  • Coach responsibilities (what players and families can expect)

    • >=1 of us will be at every practice and game

    • Punctual

    • Prepared

      • Training plan (published on kasperowski.com)

      • Game plan

    • Communicative

      • Email list

      • Blog

      • Calendar

      • Face to face

    • Responsible for player safety during practices and games

      • Field conditions

      • Medical releases

    • ... but not necessarily responsible before and after practices and games

      • We are not your extra baby sitters

      • We have lives outside of soccer, and usually leave the field immediately

    • Coaching style

      • Training sessions: Teach skills, following the US Soccer coaching recommendations

      • Matches: Let the kids play, make sure there are 11 guys on the field, watch for injuries, head cheerleaders, enjoy the match

    • Always trying to improve

    • Help players and families meet their goals responsibilities

    • Good role models

    • Have fun

  • Player responsibilities (what coaches and families can expect)

    • Schoolwork

    • Attendance

      • 80% of practices and 80% of games

      • Your attendance at practice indicates that you want to play on game day, and you'll be rewarded for that with extra playing time on game day.

    • Punctual

      • On time for practice

      • 30 minutes prior to game

    • Prepared

      • Wearing all required equipment for practices and games

      • With a ball

      • Water or sports drink

      • Healthful snack (Richard likes peanut butter on whole wheat bread, but understands that peanut butter is not OK for everyone)

      • No jewelry

      • Well rested, well fed

    • Play every position (e.g., Jay Heaps)

    • Must bring a ball to practice

    • Respectful, well behaved

      • To coaches, teammates, and parents

      • Opposing players

      • Referee: zero tolerance

    • Good teammate

    • Always trying to improve

    • Watch higher level soccer.

      • Cambridge Rindge & Latin

      • Colleges (Harvard, Tufts, BU)

      • New England Revolution

      • US National Team

    • Have fun

  • Family responsibilities (what coaches and players can expect)

    • Match behavior

      • Be a vocal supporter

      • Be positive

      • Let them play their own game--don't micromanage

      • Don't talk to or about the referee: zero tolerance

    • Help players meet their responsibilities

    • Communicate with coaches privately, outside of practice time and game time

    • Good role models

    • Watch higher level soccer

    • Have fun

2007-09-12

Sun Tech Days Boston

I attended today's Sun Tech Days. Here are my (unbeautified) notes:

Java EE6, the wave of the future
Tom Kincaid, Executive Director Applications
Java EE 6
Rightsizing, ease of development, extensibility
Rightsizing: make it less bloated
Will have profileswell defined subsets of the whole spec. Sun will provide a Web profile. Other ideas include Telecom profile, maybe to be provided by someone else.
Scripting
@Servlet annotation instead of web.xml file
Packaging: put EJB class directly in war file, not in jar, then ear, then war.
Servlet today: servlet class + web.xml deployment descriptor. Coming:

@Servlet(name=MyServlet, url-pattern=/myApp/*)
Public class MySelvlet { ... }

Support for frameworks like Spring and Struts

Java EE ref impl: Project GlassFish
Open source, enterprise ready, high availability, record setting performance

Status: devd on GlassFish v3 (v2 shipping this month)

GlassFilsh v3 demo
Bob
NetBeans has a UML module. (Tools/Update Center)
Demo of server side JRuby in a rhtml file (HTML + JRuby markup) running in GlassFish

Idea for HackDay: play a coding contest

5 minute demos
Java ME
Ajax-y app running on ME. GCF==Generic Connection Framework. GCF connects to a RESTful web service like Yahoo Geocoding or Flickr.
Architecture: RESTful web serviceGCFMobile Ajax Library ApplicationDOMRendering (on mobile device)
Svg EFFECTS FOR PRETTY ANIMATION
SVG effects for pretty animation
Mobile Aerith
IPhone-like UI for Flickr image browsing
Upload image to flickr account

JavaFX
Scripting lang on Java platform for developing Rich Internet Apps
Abstracts Java2D and Swing to make it easy to dev RIAs
Language is declarative
Jake might like JavaFX
Automatic data binding: makes it easy to bind the View to the Model
Deployed through WebStart, or as applet

Project DLite
Something new for Sun Studio (the C, C++, Fortran tools)
Unifies the code analysis toos

NetBeans profiler
Install separately in NetBeans
World record for largest number of people leaking in public place!

SunSPOTS
Use SunSPOTS to drive a TrackBot (looks like a MindStorms brick)
Small Programmable Object Technology
MIDlet running on the brick
Bricks classname is Spot.
Radiogram: wireless net, multiple SPOTs communicate with each other
$500 developer kit contains 3 SPOTs

Project Wonderland
Virtual reality project: MPK20
Wonderland is the client, Project Darkstar is the server

Java SE 6 top 10 features, Java SE 7 and OpenJDK
Rima Pate Sriganesh
Java 7 FC to be released 2009

1) Scripting support JSR 223

2) Web services
JAX-WS
JAXP, including StaX (pull-based XML processing)
JAXB 2.0
@WebService annotation to annotate your POJO
@Resource for dependency injection to obtain WebServiceContext

3) JDBC 3.0
No more class.forName() to load DB driver
First class SQLXML data type from SQL 2003, so dont have to treat XML as text
Java DB (aka Apache Derby) included with JDK

4) More desktop APIs
Specify splash screen image file on command line or in MANIFEST.MFs Splashscreen-image property

5) Monitoring and management
Jconsole
Jstack
Etc.

6) Compiler access
Programmatic acces to javac

7) Pluggable annotations
JSP 175, 269

... I lost track, playing with NetBeans and ME ...

8)

9) Security
XML digital signatures (JSR 105)

10) Performance improvements

Java 7 potential changes
-superpackages (another way of scoping classes among packagespackages in a superpackage can share, outside of superpackage cannot. A nice way to define an API façade without having to expose classes from multiple packages to external users)
-lang support for Java properties
-Control abstraction constructs: closers, concise instance creation expressions, first class methods
-Operator overloading
-misc stuff (shorter variable declaration, strings in switch, enum comparisons)
-New bytecode: invokedynamic (JSR 292 support dynamically typed langs on the Java platform)
-Bungling of more dynamic lang engines with the platform (beanshell scripting langage (JSPR 274), JRuby Jython, Beanshell, Groovy, JavaFX)

Next generation grid-enabled SOA
Chapell (Oracle)
New problems: large XML payloads, unexpected usage demands, meeting SLA expectations, tearing down / decoupling silos, sharing info across multiple services
Continuing challenges: predictable scalability, continuous availability, reliable QoS, shared context across load balanced / HA services
The SOA grid: state-aware continuous availability for service e infrastructure, application data, and processing logic. Predictable scalability (scales out linearly, whether 2 or 2000 servers; heterogeneous environment; high end / low cost commodity hardware). Dramatic overall increase in performance and throughput (linearly scalable shared memory and logic. Reduced dependency on disk persistence). Reduced operations cost (reduced deployment complexity. Less flavors o servers to deploy)
Advanced capabilities: collocate service code with grid data (load balance and dispatch requests appropriately). Availability and failover of stateful services. State pass model redefined (BPEL dehydration into the grid). Relocatable BPEL processes
BPEL dehydration: sounds sort of like EJB passivation/activation, but where there are multiple servers behind a load balancer, and each server shares the SOA Grid
Relocatable BPEL processes:
Rules of thum; still need MOM for familiar client API , usage model, ordering, pub/sub. Avoid putting state in Queues where it doesnt belong. Avoid sending stuff when it doesnt really have to travel anywhere. Subscribe to state change via built-in observer
Scaling SOA: With SOA grid: disk bottlenecks virtually eliminated. Memory utilization delegated to storage enabled grid nodes. Only CPU-bound resources need to be load-balanced.
Products: Oracle Coherence, Oracle SOA Suite

Java: a tour of the landscape
James Gossling
Ubiquitous computing
5 billion java enabled devices; 2.1b are phones
6m professional java developers
Javas role: conceptual framework that spans the network. Enables homogeneous view of a heterogeneous reality. End-to-end comprehension. Learn Once, Work Anywhere
Web 2.0: a marketing term
Community & interaction: e.g. Google Maps Salesforce, Basecamp, Flickr Albums
Development model: lightweight programming, SOA/integration, enhanced web UI, web as a platform, concept of trust, user data
Killer app of the Internet is advertising. ... Part of me gets really depressed ...
JVM: the integration hub: development (XML, Java JavaScript, Ruby etc.), the VM, deployment devices
Desktop: driving the user experience: Swing resurgence (HTML backlash; there is more than one platform; advanced user interaction). Ubiquitous modern JVMs (bundled on many systems). WebStart (web-friendly navigation; easy deployment)
JavaFX UI scripting: handheld devices (CLDC, SVG/MSA), home entertainment (TVs, set top boxes, CDC, PBP), JavaFX mobile (CDC, AGUI), Desktop (SE, 2D/3D). JavaFX is close to being a functional language.
Why is Java Media so awful? Patents.
Communal development: dev.java.net openjdk.dev.java.net, openjfx.dev.java.net glassfish.dev.java.net, opensolaris.org, netbeans.org, jcp.org, SourceForge
Components of a JCP standard: Spec (what is it for? What does it do?) compatibility test suite (is my impl complete? Is my impl correct?) reference implementation (can it be built? Sample code for developers)
Calendar is complex because it has to support non-European calendars
Blue Jay and Big Foot: modules/flavors of NetBeans for education environments (good for Jake?)
NetBeans: UML, SOA, debugging with breakpoints on a phone, profiler, thread-aware debugging, UI builder.
NetBeans 6b1 almost available at netbeans.org: Multilanguage support (Ruby, JRuby, Rails, JavaScript, PHP), SOA
Perrone Robitics: helicopter RC->autonomous. Laser rangefinder, GPS, accelerometers. Output: 3d terrain mesh. Fly it over a terrain, and get a 3d model of the area.
Sonia: autonomous underwater vehicle for Navy grand challenge
Java performance: generally beats or equals C/C++, even on extremely numeric apps. Often near Fortran (slower at matrices). GC is faster than malloc/free. Dynamic compilation beats static.
Java really is fully open source. GPL2 with classpath exception; working with GPL3 folks. Clearing IP encumbrances.
Why open source: revenue = volume * (license + support + leverage). Decrease license fees, but increase volume, so revenue goes up.

Hands On Lab: Java ME: Streaming video from server to device
Rima Patel, Doris Chan
The NetBeans Mobility packs Flow Design view rocks!
Excellent introduction to playing video through MMAPI, pulling the video from a SOAP web service.

Hands On Lab: Introduction to JavaFX Script programming
Data binding: view is bound to model. Whenever a variable in the model changes, the bound attribute in the view changes with it.

2007-09-11

Week 2 practice plan

This week is all about using passing to maintain possession and build an attack.

  1. Passing and juggling: Warm up individually and in pairs. Make it intense so it's really a warm up: how many jugs in 60 seconds?
  2. Stretch
  3. 1v1+2
  4. Gates passing
  5. 5 goal game: 4v4+2; or N+1 goal game, with NvN+N/2, where N is the number of players per side
  6. 4 corners passing game
  7. 8v8

2007-09-04

Week 1 practice plan

The goal for this week is to get back into the soccer spirit, reviewing skills and focusing on small sided games.
  1. Passing and juggling: Warm up individually and in pairs.
  2. Shield-steal
  3. 1v1+1
  4. 1v1+2
  5. 2v2+2 or 3v3+3
  6. 8v8

2007-07-21

Matt Reis on David Beckam

One of the highlights of the ESPN2 coverage of the MLS All-Star Game last week was a short interview with Matt Reis. Asked about the impact of David Beckham on the league, he deadpanned:

He's coming? Ah, wow, that's news to me. I must have been under a rock for the past couple of months. If he comes, that would be awesome. He is a good player. It would be really good for the league. I'm sure he'd sell a few jerseys, if he hasn't already.

2007-06-05

Week 10 practice plan

  1. Juggling and passing warmup: Passes must be at least 40 yards long. Who can accurately pass the farthest? Add long throw-ins and correct throw-in technique

  2. 2v1: The 1 starts with the ball and tries to maintain possession for as long as possible. Count how long you can hold the ball--1-1000, 2-1000, 3-1000, ... Who held the ball longest?

  3. Throw in wall pass

  4. Four-squares passing

  5. 6 goal width and depth game

  6. 8v8: Points count only if the entire attacking team is in the last 2/3 of the field. Quick attack reward: 2 points if the defending team isn't entirely in their defensive 2/3 of the field. Possibly leave the goals in the corner from the 6 goal game to reward crosses.

2007-06-01

Jira time tracking report

We use Jira religiously as our issue tracking tool. Whenever we work on an issue, we add comments and log the amount of time we spent. At the end of the week, we want to run a report that tells us who worked on what, what happened, and how much time was spent.

Jira doesn't provide this kind of report out of the box, and there aren't any plugins available that do it. Short of writing my own plugin, here's some SQL code to generate these kinds of reports.

First, what did I work on this week? Here's the query and its output, with work time reported in seconds:

mysql> select i.pkey, i.summary, a.created, a.actionnum
-> from jiraissue as i, jiraaction as a
-> where a.actiontype in ('comment', 'worklog')
-> and a.created >= '2007-05-28 00:00:00'
-> and a.created < '2007-06-03 24:00:00'
-> and a.author='richard'
-> and i.id = a.issueid
-> order by i.pkey;
+---------+------------------------------------------------------------------+---------------------+-----------+
| pkey | summary | created | actionnum |
+---------+------------------------------------------------------------------+---------------------+-----------+
| ABC-150 | where does the user go if they select "no" | 2007-05-29 15:47:31 | NULL |
| ABC-188 | search results page button/results | 2007-05-29 15:46:27 | NULL |
| ABC-284 | button follows form not aligned to bottom of screen as in mockup | 2007-05-29 15:44:37 | NULL |
| DEF-26 | SecurityException | 2007-05-30 15:54:03 | NULL |
| DEF-63 | Exit client | 2007-05-30 15:49:43 | NULL |
| DEF-64 | We need a link | 2007-05-30 15:52:50 | NULL |
| GHI-379 | user agent | 2007-05-30 11:05:51 | NULL |
| JKL-1 | Be a good boy. | 2007-05-31 15:15:44 | 3600 |
| JKL-3 | Try to have fun. | 2007-05-31 13:18:28 | 10800 |
| JKL-3 | Try to have fun. | 2007-05-31 13:18:42 | 900 |
| MNO-1 | Content Integration with Customer | 2007-05-30 16:05:12 | NULL |
| MNO-1 | Content Integration with Customer | 2007-05-30 16:08:04 | NULL |
+---------+------------------------------------------------------------------+---------------------+-----------+

Next, what did everyone work on this week? Here's the query and its output:

mysql> select a.author, i.pkey, i.summary, a.created, a.actionnum
-> from jiraissue as i, jiraaction as a
-> where a.actiontype in ('comment', 'worklog')
-> and a.created >= '2007-05-28 00:00:00'
-> and a.created < '2007-06-03 24:00:00'
-> and i.id = a.issueid
-> order by a.author, i.pkey;
+----------+---------+------------------------------------------------------------------+---------------------+-----------+
| author | pkey | summary | created | actionnum |
+----------+---------+------------------------------------------------------------------+---------------------+-----------+
| alice | ABC-322 | ant script has targets that seem to crash some of us | 2007-05-29 14:46:42 | NULL |
| alice | ABC-322 | ant script has targets that seem to crash some of us | 2007-05-29 14:48:14 | NULL |
| alice | ABC-336 | "buy" link | 2007-05-31 12:42:31 | NULL |
| bob | PQR-2 | Improve User Interface of the Log Viewer | 2007-05-29 20:07:02 | 10800 |
| bob | PQR-23 | Uninformative error message | 2007-05-29 17:36:55 | NULL |
| bob | STU-62 | Error when opening | 2007-05-28 19:07:58 | 18000 |
| carol | ABC-12 | Featured Items | 2007-05-29 11:09:28 | 39600 |
| carol | ABC-264 | missing message | 2007-05-29 11:08:47 | 3600 |
| carol | ABC-271 | breadcrumb | 2007-05-29 11:08:20 | 3600 |
| dan | ABC-284 | button follows form not aligned to bottom of screen as in mockup | 2007-05-29 16:14:53 | NULL |
| dan | DEF-10 | Port | 2007-05-30 11:30:24 | NULL |
| dan | DEF-26 | SecurityException | 2007-05-30 11:25:20 | NULL |
+----------+---------+------------------------------------------------------------------+---------------------+-----------+

Finally, how much time did people log this week? Here's the query and its output.

mysql> select author, sum(actionnum)
-> from jiraaction
-> where actiontype = 'worklog'
-> and created >= '2007-05-28 00:00:00'
-> and created < '2007-06-03 24:00:00'
-> group by author
-> order by author;
+----------+----------------+
| author | sum(actionnum) |
+----------+----------------+
| bob | 75600 |
| carol | 88800 |
| emil | 93600 |
| francine | 15300 |
| gary | 54000 |
+----------+----------------+

The next step is to package this as a plugin. Want to help? Let me know.

2007-05-31

Week 9 practice plan

This week, we emphasize playing the ball wide.

  1. Juggling and passing warmup: Passes must be at least 40 yards long. Who can accurately pass the farthest? Add long throw-ins and correct throw-in technique

  2. 1v1+1

  3. 2v1: The 1 starts with the ball and tries to maintain possession for as long as possible. Count how long you can hold the ball--1-1000, 2-1000, 3-1000, ... Who held the ball longest?

  4. Four-squares passing

  5. 4 wide goals

  6. 8v8: Points count only if the entire attacking team is in the last 2/3 of the field. Quick attack reward: 2 points if the defending team isn't entirely in their defensive 2/3 of the field. Possibly leave the goals in the corner from the 6 goal game to reward crosses.

2007-05-22

Week 8 practice plan

This week's plan adds throw-ins to last week's plan.

  1. Juggling and passing warmup: Passes must be at least 40 yards long. Who can accurately pass the farthest?

  2. 2v1: The 1 starts with the ball and tries to maintain possession for as long as possible. Count how long you can hold the ball--1-1000, 2-1000, 3-1000, ... Who held the ball longest?

  3. Throw in wall pass: Player stands at first cone, throws the ball in to his partner, and runs to the second cone, where he receives a pass from his partner. Partner practices ball skills receiving the throw in and attempts to pass back with 1 or 2 touches. Add a defender.

  4. 6 goal width and depth game: With cones, make 6 goals on the field. Two at the sidelines, and one in each corner. Divide into two teams. Teams get 1 point for every time they pass the ball through a set of cones (twice in a row doesn't count), and 3 points for scoring on the real goals.

  5. Triangle goal game: Turn and shoot!

  6. 8v8: Points count only if the entire attacking team is in the last 2/3 of the field. Quick attack reward: 2 points if the defending team isn't entirely in their defensive 2/3 of the field. Possibly leave the goals in the corner from the 6 goal game to reward crosses.

2007-05-15

Week 7 practice plan

Skills to focus on this week include: long passes, moving up and back as a team.

  1. Juggling and passing warmup: Passes must be at least 40 yards long. Who can accurately pass the farthest?

  2. 2v1: The 1 starts with the ball and tries to maintain possession for as long as possible. Count how long you can hold the ball--1-1000, 2-1000, 3-1000, ... Who held the ball longest?

  3. 6 goal width and depth game: With cones, make 6 goals on the field. Two at the sidelines, and one in each corner. Divide into two teams. Teams get 1 point for every time they pass the ball through a set of cones (twice in a row doesn't count), and 3 points for scoring on the real goals.

  4. Triangle goal game: Turn and shoot!

  5. 8v8: Points count only if the entire attacking team is in the last 2/3 of the field. Quick attack reward: 2 points if the defending team isn't entirely in their defensive 2/3 of the field. Possibly leave the goals in the corner from the 6 goal game to reward crosses.

2007-05-08

Week 6 practice plan

Skills to focus on this week include: maintaining a lead, passing, and shooting.

  1. Juggling and passing warmup

  2. Shield-steal: When we are leading by at least two goals, play possession by taking the ball to the corner. Play shield-steal versus the other teams defenders along the goal line

    Licensing: Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".

  3. 1v1: Can you make your opponent touch the ball out of bounds?

  4. 2v1: The 1 starts with the ball and tries to maintain posession for as long as possible. Count how long you can hold the ball--1-1000, 2-1000, 3-1000, ... Who held the ball longest?

  5. Four-squares passing

  6. Triangle goal game: Turn and shoot!

  7. 8v8

2007-04-25

Simple MBTA rider tools

The MBTA recently upgraded their web site and put the Rider Tools on the home page, where they should be. The home page loads very slowly on constrained mobile devices like my Pocket PC. Here's a very simplified version of the MBTA Rider Tools, quickly stripped down to its essentials:

Simple MBTA Rider Tools

There is room for improvement, but now it's good enough to use from a mobile web browser.

2007-04-24

Week 4 practice plan

Skills to focus on this week include heading, winning 50-50 balls, and passing.

  1. Juggling and passing warmup: Use your head!

  2. Heading intro: Push the ball against your forehead. Close your jaws tight. Use your neck muscles to push against the ball.

  3. 2v2 or 3v3 head volleyball: Players line up a few yards apart from each other. Serve by tossing the ball to an opponent's head. Volley the ball by heading it back and forth. Score by heading the ball over the opposing team so it can't be returned. Variation: try to get more consecutive headers than another group.

  4. 5 Goal Game: 4v4+2; or N+1 goal game, with NvN+2, where N is the number of players per side.

  5. Four-squares passing: For this game and the following games, award extra points for passing, receiving, or scoring with your head. To encourage winning 50-50 balls, whenever the ball goes out of play, the coach tosses a new ball onto the field.

  6. Triangle goal game: This game leads to denser defense and gives the goalkeeper some practice.

  7. 8v8

2007-04-17

Week 3 practice plan

We have canceled half of our practices so far due to snow and rain. This week's practice plan is a repeat of last week's. Here's hoping for better weather.

2007-04-10

Week 2 practice plan

Passing, passing, passing!

  1. Passing and juggling: Warm up individually and in pairs.

  2. Right angle passing

  3. Gates passing

  4. 5 Goal Game: 4v4+2; or N+1 goal game, with NvN+2, where N is the number of players per side. Five 2-yard goals are spread out throughout the grid. The plus 2 players are always on the attacking team. The teams score by passing through any of the goals to a teammate. Must receive with inside of foot, then outside, weak foot inside/outside are different expectations that can be put on the players. First team to 10 points wins. Players need to be able to see where the open goals are, and receive with a picture of what is around them. With this in mind, if the players are advanced enough, the player receiving through the goal must play 1 touch. Coach could require receiving player to perform a feint before touching ball.

  5. Four-squares passing

  6. Four small goals

  7. 8v8

2007-04-07

Pirates Spring 2007 players and families meeting

Players and Families Meeting
Cambridge Pirates
Spring 2007
Richard Kasperowski

  • About the coaches

    • Volunteers

      • Donate >200h/y/coach of personal time

      • Unpaid or worse: we paid the same CYS fees you did to have our kids on the team

    • Richard Kasperowski

      • Mind: Regular guy, degree in CS, work as tech manager for a high tech company

      • Body: Youth soccer, cycling, running, TKD

      • Spirit: Married, Jake's dad, two pets

      • Soccer: Soccer, coaching Jake's teams since micro soccer, US Soccer F license

      • I coach soccer because I love soccer, I love coaching, and I love family time.

    • Ed Rogers

      • Mind: Works in finance in Kendall Square

      • Body: Soccer

      • Sprit: Scott's Big Brother

      • Soccer: Youth soccer, high school soccer, pick up games, BAYS coach, summer and winter youth soccer organizer, US Soccer G license

  • About CYS

    • CYS goals

      • Enjoy soccer now, enjoy soccer later

      • Be athletically fit now, be fit later

      • Have fun

    • US Soccer coaching guidelines

      • Modeled after Dutch system

      • Formalized by US Soccer development system

      • Followed by Massachusetts Youth Soccer, Cambridge Youth Soccer

      • Training sessions mimic game situations

        • Individual skills

        • Small-sided games (1v1, 2v1, 2v2, 2v4, 3v3, etc.)

      • Positive feedback

    • This team

      • BAYS Division 3: "recreational"

      • Middle of the 3 Cambridge BAYS U14B teams: we play soccer because we like it and we're pretty good at it, but we're not fanatics

      • Performed very well last season, promoted to a more competitive group.

  • Coach responsibilities (what players and families can expect)

    • >=1 of us will be at every practice and game

    • Punctual

    • Prepared

      • Training plan (published on kasperowski.com)

      • Game plan

    • Communicative

    • Responsible for player safety during practices and games

      • Field conditions

      • Medical releases

    • ... but not necessarily responsible before and after practices and games

      • We are not your extra baby sitters

      • We have lives outside of soccer, and usually leave the field immediately

    • Coaching style

      • Training sessions: Teach skills, following the US Soccer coaching recommendations

      • Matches: Let the kids play, make sure there are 11 guys on the field, watch for injuries, head cheerleaders, enjoy the match

    • Always trying to improve

    • Help players and families meet their goals responsibilities

    • Good role models

    • Have fun

  • Player responsibilities (what coaches and families can expect)

    • Schoolwork

    • Attendance

      • 80% of practices and 80% of games

      • Your attendance at practice indicates that you want to play on game day, and you'll be rewarded for that with extra playing time on game day.

    • Punctual

      • On time for practice

      • 30 minutes prior to game

    • Prepared

      • Wearing all required equipment for practices and games

      • Water or sports drink

      • Healthful snack (recommendation: peanut butter on whole wheat bread)

      • No jewelry

      • Well rested, well fed

    • Play every position

    • Must bring a ball to practice

    • Respectful, well behaved

      • To coaches, teammates, and parents

      • Opposing players

      • Referee: zero tolerance

    • Good teammate

    • Always trying to improve

    • Watch higher level soccer

    • Have fun

  • Family responsibilities (what coaches and players can expect)

    • Match behavior

      • Be a vocal supporter

      • Be positive

      • Let them play their own game--don't micromanage

      • Don't talk to or about the referee: zero tolerance

    • Help players meet their responsibilities

    • Communicate with coaches privately, outside of practice time and game time

    • Good role models

    • Watch higher level soccer

    • Have fun

2007-04-03

Week 1 practice plan

The goal for this week is to get back into the soccer spirit, reviewing skills and focusing on small sided games.

  1. Passing and juggling: Warm up individually and in pairs.

  2. Shield-steal

  3. 1v1+1

  4. 1v1+2

  5. 2v2+2 or 3v3+3

  6. 8v8

2007-03-27

Spring 2007 information

Here is the complete calendar for Cambridge Pirates BAYS U14B practices and games.

Our home games are on the artificial turf field, and Lexington also has artificial turf, so it is unlikely that any of the home games or the Lexington game will be postponed due to bad weather. For home games, call the Danehy Park hot line at 617-349-4895 to see whether the field is open. For away games, Ed or I will send email announcing a postponed game.

Please be at all games 30 minutes before the scheduled start time, prepared and ready to warm up and play. Being prepared includes:

  • Wearing all equipment, including uniform, shin guards, and shoes

  • Not wearing any jewelry, necklaces, or bracelets

  • Ready to warm up

  • Brought your own drink and snack

For away games, Ed or I will coordinate with the opposing coach to verify the time and location and to get driving directions. We will send an update by email before each away game.

2007-03-02

Jira search plugin for Firefox

I had so much fun with yesterday's hack that I wrote a Firefox search plugin for Jira. To install it, create a file with this text and save it as jira.xml. Replace YOUR-JIRA-BASE-URL-GOES-HERE with your Jira base URL. Copy the file to your Mozilla Firefox/searchplugins directory, restart Firefox, and enjoy.
<!--
Jira search plugin for Firefox 2.0
Richard Kasperowski

To make this work with your wiki, replace the base URL in
<Url ... template="..." ...
and
<SearchForm>...
-->
<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
<ShortName>Jira</ShortName>
<Description>Jira</Description>
<InputEncoding>UTF-8</InputEncoding>

<Image width="16" height="16">data:image/x-icon;base64,AAABAAIAEBAAAAEACABoBQAAJgAAAAgIAAABAAgAiAQAAI4FAAAoAAAAEAAAACAAAAABAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZjMAAGg2AwBvPg4Abz8PAHJEFQB0RhgAdUgaAHhLHgB5TCAAe04iAHxRJgCCWC4Ahl41AIxlPwCefl0Ann5eAKiKbQCskHQAxrOgAMq4pwDOvawA0sO0ANTGuADn39cA6OHZAOni2wDq4twA7ujiAPHt6ADy7ukA9PDtAPTx7gD18e4A+ff1APr5+AD8+vkA/Pv6AP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFSMkFgEBFiQjFQAAAAAAAAceJSURESUlIAgAAAAAAAAADiUlIiIlJQ8AAAAAAAAAAAATJSUlJRMAAAAAAAAAAAAABB8lJR8EAAAAAAAAAAAAAA0jJSUjDQAAAAAAAAAAAAscJSUlJRwLAAAAAAAAAAodJSUlJSUlHQoAAAAAAAkbJSEYJSUYISUbCQAAAAcaJRkMFyUlFwwZJRoHAAYXIxICABQlJRQAAhIjFwYLDQUAAAADEBADAAAABQ0LAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAgAAAAQAAAAAQAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGYzAABsOgoAbT0MAHFCEgB0RhgAfVImAI5oQgCSbkoAnn1dAJ5+XQC9p5EAxbKfANfJvADc0cYA6uTdAPDr5gD28/AA//7+AP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDwoKDwQAAAAIEREJAAAAAAMQEAMAAAACDRISDQIAAQwLDg4LDAEFBgAHBwAGBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</Image>
<Url type="text/html" method="GET" template="http://YOUR-JIRA-BASE-URL-GOES-HERE/jira/secure/QuickSearch.jspa">
<Param name="searchString" value="{searchTerms}"/>
</Url>
<SearchForm>http://YOUR-JIRA-BASE-URL-GOES-HERE/jira</SearchForm>
</SearchPlugin>

2007-03-01

JSPWiki search plugin for Firefox

I was suddenly inspired to be able to search my JSPWiki installation through the Firefox search tool. I noticed that Firefox search plugins are installed under Mozilla Firefox/searchplugins, so I took a look at one of them and modified it to work with my wiki. I used GIMP to make a .ico file for the JSPWiki logo, and Cygwin base64 to encode it. To install this search plugin, create a file with this text and save it as JSPWiki.xml. Replace YOUR-WIKI-BASE-URL-GOES-HERE with your wiki's base URL. Copy the file to your Mozilla Firefox/searchplugins directory, restart Firefox, and enjoy.

<!--
  JSPWiki search plugin for Firefox 2.0
Richard Kasperowski

To make this work with your wiki, replace the base URL in
<Url ... template="..." ...
and
<SearchForm>...
-->
<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
<ShortName>Wiki</ShortName>
<Description>Wiki</Description>
<InputEncoding>UTF-8</InputEncoding>

<Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAAAAEACABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICAoACg4PAA4OEAAPDxAAEBERABQUFgASFhoAExcYABYXGAAUFx0AFRkaABYaGwAZGxwAHBscABkdHgAfHh4AGx0kABwgIQAcICMAHSEkACElJgAiJyYAJSUsACQnKgAnKioAKiwtAC8tNAAsMTAALjI3ADIzNgAwNDYAMjU4ADM4OgA2OTsANzk8ADg6PAA1OzwAOTw8ADxCQgA/Q0QASUtOAEhOTgBKTk8AUlJVAFtaWwBcYGIAZmJjAHFzcACAf34AiIiHAImIigCNiYkAioyLAJeUlQCknp4At7a0AL+6uADFw8AAz8fFAM3JxgDNyckA0srHAM7KyQDSzMwA19DNANbR0QDX0dEA2NTRANrU0gDb1tYA29fWAN3Y2ADe2tkA39vaAODb3ADg3NsA49/cAOTf3QDj394A5OHdAObh4ADn498A6eXkAOrm5QDs6OcA8OvnAOvr6QDw7OgA7+7uAPDw7wD08fAA8fLxAPb08wD29/UA+/v5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDghfX19fX19fX19fXxkYCwcEAw0PX19fX19fXx8UMBEKBQIuAAxfX19fX18cHjslERIrNgYBX19fX19fIC1BMRUTNToXCSNfX19fKiQ0RT4bIj89LBBfX19fX18mN0pILzJCQDMWIV9fX18nKU9QTTk8R0Q4Gh1fX19fX19VV1FMTktGQyhfX19fX19fXV5dVlNOSUhfX19fX19fX19bWVhUUlJfX19fX19fX19fX19cWl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX///AAD//wAA/n8AAPAPAADgBwAA4AcAAOADAADABwAA4AMAAMADAADwBwAA8A8AAPgfAAD+fwAA//8AAP//AAA=</Image>
<Url type="text/html" method="GET" template="http://YOUR-WIKI-BASE-URL-GOES-HERE/wiki/Search.jsp">
<Param name="query" value="{searchTerms}"/>
</Url>
<SearchForm>http://YOUR-WIKI-BASE-URL-GOES-HERE/wiki/wiki/Main</SearchForm>
</SearchPlugin>

2007-02-17

Cygwin rxvt copy & paste

With a 3-button mouse, Cygwin rxvt acts the way it would under X. Use mouse button 1 (usually the left mouse button) to mark text. Rxvt automatically puts the marked text in the copy/paste buffer. Click mouse button 2 (the middle mouse button) to paste text at the cursor position.

My laptop has only two mouse buttons. There is no middle button, so there is no obvious way to paste in rxvt. MikeyMcKay points out that you can use Shift Mouse 1 (Shift+LeftMouseButton) to paste into rxvt. Thanks, Mikey.

More authoritatively, from the rxvt man page:

TEXT SELECTION AND INSERTION
The behaviour of text selection and insertion mechanism is similar to
xterm(1).

Selection:
Left click at the beginning of the region, drag to the end of
the region and release; Right click to extend the marked region;
Left double-click to select a word; Left triple-click to select
the entire line.

Insertion:
Pressing and releasing the Middle mouse button (or Shift-Insert)
in an rxvt window causes the current text selection to be
inserted as if it had been typed on the keyboard.

As an added bonus, Shift-Insert works in Emacs, too.

2007-02-07

Skype for Conference Calls

I use Skype every day at work. As far as I can tell, it is the best way to hold daily stand-up meetings with my remote development teams. (Voice-only stand-up meetings work pretty well. They are not as good as face to face meetings, but they are far better than IM conferences.) Skype-to-Skype calls are free, and it is trivial to initiate a conference call.
My PC is a little dated, and it doesn't perform as well as it should. My rules of thumb for getting the good quality Skype conference include:
  • Exit all unnecessary applications.
  • Keep the Task Manager running so it's easy to identify and kill run-away processes.
  • Set the Power Scheme to High System Performance.
  • Disable Carbonite (that's an affiliate link).
  • Connect a truly excellent microphone, like the one that comes built into a cheap webcam.
  • Connect a powered external speaker so everyone on the local part of the team can hear the remote people.
  • Invite people to the conference!
For a while, I had a problem with the microphone and speaker on the PC. All input from the microphone went directly to the speaker. It was annoying to have to listen to myself in my own headphones, and really annoying to listen to feedback when I used an external speaker. gerhard33628's excellent advice on a Skype forum helped me solve the problem. In Windows Volume Control, make sure the microphone is muted, and in Windows Recording Control, make sure the microphone is selected. Voila, no more feedback.
All in all, Skype is a great tool for holding conference calls with people in other countries. Still, though, sometimes I feel like my phone is too big.

2007-02-05

chkrootkit

Concerned that your server might be infected by a rootkit? Install and run chkrootkit. It's easy.

On Fedora Core, I install chkrootkit via:

$ sudo yum install chkrootkit

Running it and viewing the results is just as easy:

$ sudo chkrootkit
ROOTDIR is `/'
Checking `amd'... not found
Checking `basename'... not infected
Checking `biff'... not found
Checking `chfn'... not infected
Checking `chsh'... not infected
Checking `cron'... not infected
Checking `crontab'... not infected
Checking `date'... not infected
Checking `du'... not infected
Checking `dirname'... not infected
Checking `echo'... not infected
Checking `egrep'... not infected
Checking `env'... not infected
Checking `find'... not infected
Checking `fingerd'... not found
Checking `gpm'... not infected
Checking `grep'... not infected
Checking `hdparm'... not infected
Checking `su'... not infected
Checking `ifconfig'... not infected
Checking `inetd'... not found
Checking `inetdconf'... not found
Checking `identd'... not found
Checking `init'... not infected
Checking `killall'... not infected
Checking `ldsopreload'... not infected
Checking `login'... not infected
Checking `ls'... not infected
Checking `lsof'... not infected
Checking `mail'... not infected
Checking `mingetty'... not infected
Checking `netstat'... not infected
Checking `named'... not infected
Checking `passwd'... not infected
Checking `pidof'... not infected
Checking `pop2'... not found
Checking `pop3'... not found
Checking `ps'... not infected
Checking `pstree'... not infected
Checking `rpcinfo'... not infected
Checking `rlogind'... not found
Checking `rshd'... not found
Checking `slogin'... not infected
Checking `sendmail'... not infected
Checking `sshd'... not infected
Checking `syslogd'... not infected
Checking `tar'... not infected
Checking `tcpd'... not infected
Checking `tcpdump'... not infected
Checking `top'... not infected
Checking `telnetd'... not found
Checking `timed'... not found
Checking `traceroute'... not infected
Checking `vdir'... not infected
Checking `w'... not infected
Checking `write'... not infected
Checking `aliens'... no suspect files
Searching for sniffer's logs, it may take a while... nothing found
Searching for HiDrootkit's default dir... nothing found
Searching for t0rn's default files and dirs... nothing found
Searching for t0rn's v8 defaults... nothing found
Searching for Lion Worm default files and dirs... nothing found
Searching for RSHA's default files and dir... nothing found
Searching for RH-Sharpe's default files... nothing found
Searching for Ambient's rootkit (ark) default files and dirs... nothing found
Searching for suspicious files and dirs, it may take a while... nothing found
Searching for LPD Worm files and dirs... nothing found
Searching for Ramen Worm files and dirs... nothing found
Searching for Maniac files and dirs... nothing found
Searching for RK17 files and dirs... nothing found
Searching for Ducoci rootkit... nothing found
Searching for Adore Worm... nothing found
Searching for ShitC Worm... nothing found
Searching for Omega Worm... nothing found
Searching for Sadmind/IIS Worm... nothing found
Searching for MonKit... nothing found
Searching for Showtee... nothing found
Searching for OpticKit... nothing found
Searching for T.R.K... nothing found
Searching for Mithra... nothing found
Searching for OBSD rk v1... nothing found
Searching for LOC rootkit... nothing found
Searching for Romanian rootkit... nothing found
Searching for HKRK rootkit... nothing found
Searching for Suckit rootkit... nothing found
Searching for Volc rootkit... nothing found
Searching for Gold2 rootkit... nothing found
Searching for TC2 Worm default files and dirs... nothing found
Searching for Anonoying rootkit default files and dirs... nothing found
Searching for ZK rootkit default files and dirs... nothing found
Searching for ShKit rootkit default files and dirs... nothing found
Searching for AjaKit rootkit default files and dirs... nothing found
Searching for zaRwT rootkit default files and dirs... nothing found
Searching for Madalin rootkit default files... nothing found
Searching for Fu rootkit default files... nothing found
Searching for ESRK rootkit default files... nothing found
Searching for rootedoor... nothing found
Searching for ENYELKM rootkit default files... nothing found
Searching for anomalies in shell history files... nothing found
Checking `asp'... not infected
Checking `bindshell'... not infected
Checking `lkm'... chkproc: nothing detected
Checking `rexedcs'... not found
Checking `sniffer'... eth0: not promisc and no PF_PACKET sockets
Checking `w55808'... not infected
Checking `wted'... chkwtmp: nothing deleted
Checking `scalper'... not infected
Checking `slapper'... not infected
Checking `z2'... chklastlog: nothing deleted
Checking `chkutmp'... chkutmp: nothing deleted

2007-02-03

Rubik's Cube

When I was about 12 years old, someone gave me a Rubik's Cube as a gift. I couldn't invent my own solution, but I had a how-to booklet. I was really good at memorizing the algorithms, recognizing the patterns to which to apply each algorithm, and applying the algorithms to the cube. I could solve any scrambled cube in about 25 seconds.

Jake received a cube for Christmas. I could solve the first layer easily, and the second layer eventually, but I couldn't solve the third layer. There are many sites offering how-to guides for solving Rubik's Cube. Jasmine Lee's Beginner Solution to the Rubik's Cube is very similar to the method I used to know. I haven't rememorized the patterns and algorithms, but, with her help, I can solve the Rubik's Cube again. I won't be breaking any records any time soon, but it's nice to have it solved again.

2007-01-21

JDiskReport

When you're running low on disk space, JDiskReport is a great platform-independent way to analyze your file system.

2007-01-15

I like CFLs

I bought my first compact fluorescent light bulb a few years ago, but I wasn't really turned onto them until my local hardware store began selling them for $1 each. Now, as each old incandescent light bulb in my home burns out, I replace it with a MaxLite Micromax-Spiral. These lamps light quickly, produce a nice white light, and use 1/4 as much electricity as the bulbs they replace.

I even have one outside on my porch. On cold nights, it takes a little longer to reach full brightness than an incandescent, but that's a fair trade for the decreased energy consumption. Now I don't mind leaving the porch light on as much as I used to.

The only problem with these lamps is that they don't dim. I have four rooms with dimmer switches. At first I thought I would have to replace the dimmer switches with special dimmers for fluorescent lamps, but they are way too expensive, costing about $60 per switch. Instead, I discovered this great store (BuyLightFixtures), which sells dimming compact fluorescents. They ship quickly and always get my order right. This dimming CFL is nice and bright at full power, and it dims to a pretty low light level before it starts blinking or shuts off. The lowest dimming level isn't as dark as an incandescent, so I also tried one of these lower power dimming CFLs. Unfortunately, this one isn't bright enough to light a room. I also bought a 3-way, but the old incandescent hasn't burned out yet, so I haven't tried it.

One set of dimming bulbs I haven't replaced yet is the R30 size flood lights in my kitchen. BuyLightFixtures doesn't sell these, but another store does. I'll try one soon.

2007-01-05

Creating PDFs from Windows applications

It turns out that it's a piece of cake to create PDFs from any Windows application. Just install PDFCreator, and you're all set. I downloaded and installed it from the MSI file.

Using PDFCreator to print to PDF is easy. Just select File/Print in your application, choose PDFCreator as the printer, answer the questions in the PDFCreator window, and specify the output file name.

LinkWithin

Related Posts with Thumbnails