Home
About Us
Favorite Links
Contact Us
Blog
Edison Taxi Cab
Edison Airport Taxi Cab Service
Favorite Links


    EWR LGA JFK
Aberdeen Monmouth $81 $121 $131
Absecon Atlantic $295 $335 $345
Alexandria Hunterdon $155 $195 $205
Allamuchy Warren $125 $165 $175
Allendale Bergen $65 $105 $115
Allenhurst Monmouth $135 $175 $185
Allentown Monmouth $135 $175 $185
Alloway Salem $305 $345 $355
Alpha Warren $175 $215 $225
Alpine Bergen $65 $105 $115
Andover Sussex $135 $175 $185
Asbury Park Monmouth $135 $175 $185
Atlantic City Atlantic $295 $335 $345
Atlantic Highlands Monmouth $105 $145 $155
Audubon Camden $215 $255 $265
Audubon Park Camden $215 $255 $265
Avalon Cape May $395 $435 $445
Avenel   $65 $105 $115
Avon-by-the-Sea Monmouth $135 $175 $185
Barnegat Ocean $205 $245 $255
Barnegat Light Ocean $255 $295 $305
Barrington Camden $205 $245 $255
Bass River Burlington $280 $335 $345
Bay Head Ocean $145 $185 $195
Bayonne Hudson $51 $101 $111
Beach Haven Ocean $265 $321 $335
Beachwood Ocean $199 $259 $269
Bedminster Somerset $105 $145 $155
Belleville Essex $45 $85 $95
Bellmawr Camden $215 $255 $265
Belmar Monmouth $135 $175 $185
Belvidere Warren $165 $205 $215
Bergenfield Bergen $55 $95 $105
Berkeley Ocean $145 $229 $239
Berkeley Heights Union $65 $105 $115
Berlin Camden $225 $265 $275
Bernards Somerset $85 $125 $135
Bernardsville Somerset $85 $125 $135
Bethlehem Hunterdon $155 $195 $205
Beverly Burlington $175 $215 $225
Blairstown Warren $165 $205 $215
Bloomfield Essex $45 $85 $95
Bloomingdale Passaic $81 $121 $131
Bloomsbury Hunterdon $165 $205 $215
Bogota Bergen $51 $91 $101
Boonton Morris $75 $115 $125
Bordentown Burlington $135 $175 $185
Bound Brook Somerset $85 $125 $135
Bradley Beach Monmouth $135 $175 $185
Branchville Sussex $155 $195 $205
Brick Ocean $145 $185 $195
Bridgeton Cumberland $325 $365 $375
Bridgewater Somerset $85 $159 $169
Brielle Monmouth $135 $175 $185
Brigantine Atlantic $295 $359 $369
Brooklawn Camden $205 $245 $255
Budd Lake   $105 $145 $155
Buena Atlantic $285 $325 $335
Buena Vista Atlantic $285 $325 $335
Burlington Burlington $155 $195 $205
Butler Morris $85 $125 $135
Byram Sussex $125 $165 $175
Caldwell Essex $55 $95 $105
Califon Hunterdon $135 $175 $185
Camden Camden $225 $265 $275
Cape May Cape May $395 $435 $445
Cape May Point Cape May $395 $435 $445
Carlstadt Bergen $45 $85 $95
Carneys Point Salem $275 $315 $316
Carteret Middlesex $55 $95 $105
Cedar Grove Essex $55 $95 $105
Cedar knolls   $75 $115 $125
Chatham Morris $55 $95 $105
Cherry Hill Camden $205 $245 $255
Chesilhurst Camden $235 $275 $285
Chester Morris $95 $169 $179
Chesterfield Burlington $145 $185 $195
Cinnaminson Burlington $195 $235 $245
Clark Union $75 $115 $125
Clayton Gloucester $265 $305 $315
Clementon Camden $215 $255 $265
Cliffside Park Bergen $51 $91 $101
Cliffwood Beach $81 $121 $131
Clifton Passaic $45 $85 $95
Clinton Hunterdon $115 $155 $165
Closter Bergen $75 $115 $125
Collingswood Camden $205 $245 $255
Colts Neck Monmouth $105 $145 $155
Commercial Cumberland $375 $415 $416
Corbin City Atlantic $325 $365 $375
Cranbury Middlesex $105 $145 $155
Cranford Union $55 $95 $105
Cresskill Bergen $75 $115 $125
Dayton   $95 $135 $145
Deal Monmouth $125 $165 $175
Deerfield Cumberland $305 $345 $355
Delanco Burlington $175 $215 $225
Delaware Hunterdon $145 $185 $195
Delran Burlington $185 $225 $235
Demarest Bergen $75 $115 $125
Dennis Cape May $345 $385 $395
Denville Morris $85 $125 $135
Deptford Gloucester $225 $265 $275
Dover Morris $95 $135 $145
Downe Cumberland $335 $375 $385
Dumont Bergen $65 $105 $115
Dunellen Middlesex $75 $115 $125
Eagleswood Ocean $215 $255 $265
East Amwell Hunterdon $145 $185 $195
East Brunswick Middlesex $85 $125 $135
East Greenwich Gloucester $245 $285 $295
East Hanover Morris $65 $105 $115
East Newark Hudson $45 $85 $95
East Orange Essex $51 $91 $101
East Rutherford Bergen $45 $85 $95
East Windsor Mercer $105 $145 $155
Eastampton Burlington $155 $195 $205
Eatontown Monmouth $105 $145 $155
Edgewater Bergen $51 $91 $101
Edgewater Park Burlington $175 $215 $216
Edison Middlesex $71 $111 $121
Egg Harbor Atlantic $295 $335 $345
Egg Harbor City Atlantic $295 $335 $345
Elizabeth Union $45 $85 $95
Elk Gloucester $245 $285 $295
Elmer Salem $275 $315 $355
Elmwood Park Bergen $45 $85 $95
Elsinboro Salem $315 $355 $365
Emerson Bergen $65 $105 $115
Englewood Bergen $51 $91 $101
Englewood Cliffs Bergen $51 $91 $101
Englishtown Monmouth $95 $135 $145
Essex Fells Essex $65 $105 $115
Estell Manor Atlantic $305 $345 $355
Evesham Burlington $195 $235 $245
Ewing Mercer $155 $195 $205
Fair Haven Monmouth $105 $145 $155
Fair Lawn Bergen $51 $91 $101
Fairfield Essex $55 $95 $105
Fairfield Cumberland $299 $359 $369
Fairview Bergen $45 $85 $95
Fanwood Union $75 $119 $129
Far Hills Somerset $95 $135 $145
Farmingdale Monmouth $115 $189 $199
Fieldsboro Burlington $145 $185 $195
Flanders   $105 $145 $155
Flemington Hunterdon $135 $175 $185
Florence Burlington $155 $195 $205
Florham Park Morris $65 $119 $129
Folsom Atlantic $265 $305 $315
Fort Lee Bergen $51 $85 $95
Frankford Sussex $155 $195 $205
Franklin Somerset $75 $129 $139
Franklin Gloucester $275 $315 $325
Franklin Sussex $135 $175 $185
Franklin Hunterdon $145 $185 $195
Franklin Warren $175 $215 $225
Franklin Lakes Bergen $75 $115 $125
Fredon Sussex $155 $195 $205
Freehold Monmouth $95 $135 $145
Frelinghuysen Warren $155 $195 $205
Frenchtown Hunterdon $155 $195 $205
Galloway Atlantic $255 $295 $305
Garfield Bergen $45 $85 $95
Garwood Union $55 $109 $119
Gibbsboro Camden $215 $255 $265
Gillette Union $65 $119 $129
Glassboro Gloucester $255 $295 $305
Glen Gardner Hunterdon $145 $185 $195
Glen Ridge Essex $45 $85 $95
Glen Rock Bergen $55 $95 $105
Gloucester Camden $235 $275 $285
Gloucester City Camden $225 $265 $275
Green Sussex $135 $175 $185
Green Brook Somerset $65 $129 $139
Greenwich Warren $175 $215 $225
Greenwich Gloucester $245 $285 $295
Greenwich Cumberland $335 $375 $385
Guttenberg Hudson $45 $85 $95
Hackensack Bergen $51 $85 $95
Hackettstown Warren $105 $145 $155
Haddon Camden $205 $245 $255
Haddon Heights Camden $215 $255 $265
Haddonfield Camden $215 $255 $265
Hainesport Burlington $185 $225 $235
Haledon Passaic $55 $95 $105
Hamburg Sussex $145 $185 $195
Hamilton Mercer $135 $175 $185
Hamilton Atlantic $305 $345 $355
Hammonton Atlantic $235 $359 $369
Hampton Sussex $155 $195 $205
Hampton Hunterdon $125 $165 $175
Hanover Morris $65 $105 $115
Harding Morris $75 $115 $125
Hardwick Warren $195 $235 $245
Hardyston Sussex $135 $175 $185
Harmony Warren $185 $225 $235
Harrington Park Bergen $75 $115 $125
Harrison Hudson $45 $85 $95
Harrison Gloucester $245 $285 $295
Harvey Cedars Ocean $265 $305 $315
Hasbrouck Heights Bergen $45 $85 $95
Haskell   $85 $125 $135
Haworth Bergen $65 $105 $115
Hawthorne Passaic $55 $95 $105
Hazlet Monmouth $81 $139 $149
Helmetta Middlesex $85 $159 $169
Hewitt   $95 $135 $145
High Bridge Hunterdon $135 $175 $185
Highland Park Middlesex $65 $129 $139
Highlands Monmouth $105 $159 $169
Hightstown Mercer $105 $159 $169
Hillsborough Somerset $105 $159 $169
Hillsdale Bergen $75 $115 $125
Hillside Union $65 $119 $129
Hi-Nella Camden $215 $255 $265
Hoboken Hudson $45 $85 $95
Ho-Ho-Kus Bergen $65 $105 $115
Holland Hunterdon $175 $215 $225
Holmdel Monmouth $135 $175 $185
Hopatcong Sussex $105 $159 $169
Hope Warren $165 $205 $215
Hopewell Mercer $105 $179 $189
Hopewell Cumberland $325 $365 $375
Howell Monmouth $115 $189 $199
Independence Warren $135 $175 $185
Interlaken Monmouth $135 $175 $185
Irvington Essex $65 $105 $115
Island Heights Ocean $195 $235 $245
Jackson Ocean $115 $155 $165
Jamesburg Middlesex $95 $135 $145
Jefferson Morris $105 $145 $155
Jersey City Hudson $45 $85 $95
Keansburg Monmouth $95 $135 $145
Kearny Hudson $45 $85 $95
Kenilworth Union $55 $129 $139
Keyport Monmouth $81 $121 $131
Kingwood Hunterdon $145 $185 $195
Kinnelon Morris $95 $135 $145
Knowlton Warren $175 $215 $225
Lacey Ocean $215 $255 $265
Lafayette Sussex $145 $185 $195
Lake Como Monmouth $145 $185 $195
Lake Hiawatha   $85 $125 $135
Lake Hopatcong $105 $145 $155
Lake Telemark   $95 $135 $145
Lakehurst Ocean $185 $225 $235
Lakewood Ocean $115 $155 $165
Lambertville Hunterdon $155 $195 $205
Landing   $111 $151 $161
Laurel Springs Camden $215 $255 $265
Lavallette Ocean $185 $225 $235
Lawnside Camden $205 $245 $255
Lawrence Mercer $155 $195 $205
Lawrence Cumberland $335 $229 $239
Lebanon Hunterdon $105 $169 $179
Ledgewood   $115 $155 $165
Leonia Bergen $51 $85 $95
Liberty Warren $155 $195 $205
Lincoln Park Morris $61 $101 $111
Linden Union $51 $95 $105
Lindenwold Camden $215 $255 $265
Linwood Atlantic $295 $335 $345
Little Egg Harbor Ocean $295 $335 $345
Little Falls Passaic $55 $95 $105
Little Ferry Bergen $45 $85 $95
Little Silver Monmouth $95 $169 $179
Livingston Essex $55 $95 $105
Loch Arbour Monmouth $135 $175 $185
Lodi Bergen $45 $85 $95
Logan Gloucester $255 $295 $305
Long Beach Ocean $245 $321 $335
Long Branch Monmouth $125 $165 $175
Long Hill Morris $65 $139 $149
Long Valley   $125 $165 $175
Longport Atlantic $315 $355 $365
Lopatcong Warren $175 $215 $225
Lower Cape May $385 $425 $435
Lower Alloways Creek Salem $335 $375 $385
Lumberton Burlington $185 $225 $235
Lyndhurst Bergen $45 $85 $95
Madison Morris $55 $95 $105
Magnolia Camden $215 $255 $265
Mahwah Bergen $75 $115 $125
Manalapan Monmouth $95 $135 $145
Manasquan Monmouth $135 $175 $185
Manchester Ocean $185 $225 $235
Mannington Salem $285 $325 $335
Mansfield Burlington $145 $185 $195
Mansfield Warren $145 $185 $195
Mantoloking Ocean $145 $185 $195
Mantua Gloucester $245 $285 $295
Manville Somerset $105 $169 $179
Maple Shade Burlington $195 $235 $245
Maplewood Essex $55 $129 $139
Margate City Atlantic $305 $345 $355
Marlboro Monmouth $95 $135 $145
Matawan Monmouth $81 $121 $131
Maurice River Cumberland $335 $375 $385
Maywood Bergen $51 $85 $95
Medford Burlington $185 $269 $279
Medford Lakes Burlington $185 $225 $235
Mendham Morris $85 $149 $159
Merchantville Camden $205 $245 $255
Metuchen Middlesex $55 $119 $129
Middle Cape May $365 $405 $415
Middlesex Middlesex $75 $129 $139
Middletown Monmouth $105 $145 $155
Midland Park Bergen $55 $115 $125
Milford Hunterdon $165 $205 $215
Millburn Essex $55 $115 $125
Millstone Monmouth $115 $189 $199
Millstone Somerset $95 $179 $189
Milltown Middlesex $65 $139 $149
Millville Cumberland $335 $375 $385
Mine Hill Morris $95 $135 $145
Monmouth   $115 $169 $179
Monmouth Beach Monmouth $105 $169 $179
Monmouth Junction $95 $159 $169
Monroe Middlesex $115 $155 $165
Monroe Gloucester $95 $299 $309
Montague Sussex $195 $235 $245
Montclair Essex $45 $85 $95
Montgomery Somerset $105 $179 $189
Montvale Bergen $75 $115 $125
Montville Morris $75 $115 $125
Moonachie Bergen $45 $85 $95
Moorestown Burlington $195 $235 $245
Morris Morris $75 $119 $129
Morris Plains Morris $85 $125 $135
Morristown Morris $65 $119 $129
Mount Arlington Morris $105 $145 $155
Mount Ephraim Camden $215 $255 $265
Mount Holly Burlington $165 $205 $215
Mount Laurel Burlington $195 $235 $245
Mount Olive Morris $115 $155 $165
Mountain Lakes Morris $75 $115 $125
Mountainside Union $55 $115 $125
Mullica Atlantic $255 $295 $305
Nanuet New York $85 $125 $135
National Park Gloucester $235 $275 $285
Neptune Monmouth $135 $175 $185
Neptune City Monmouth $135 $175 $185
Netcong Morris $105 $145 $155
New  Vernon   $75 $129 $139
New Brunswick Middlesex $81 $149 $159
New Hanover Burlington $165 $205 $215
New Milford Bergen $65 $105 $115
New Providence Union $65 $105 $115
New York City New York $95 $105 $125
Newark Essex $45 $115 $125
Newfield Gloucester $289 $339 $349
Newfoundland $115 $155 $165
Newton Sussex $145 $185 $195
North Arlington Bergen $45 $85 $95
North Bergen Hudson $45 $85 $95
North Brunswick  Middlesex $85 $139 $149
North Caldwell Essex $55 $95 $105
North Haledon Passaic $55 $95 $105
North Hanover Burlington $175 $215 $225
North Plainfield Somerset $65 $129 $139
North Wildwood Cape May $375 $415 $425
Northfield Atlantic $285 $325 $335
Northvale Bergen $85 $125 $135
Norwood Bergen $75 $115 $125
Nutley Essex $45 $85 $95
Nyack New York $91 $125 $135
Oakland Bergen $75 $115 $125
Oaklyn Camden $225 $265 $275
Ocean Monmouth $125 $165 $175
Ocean City Cape May $305 $345 $355
Ocean Gate Ocean $175 $215 $225
Oceanport Monmouth $105 $169 $179
Ogdensburg Sussex $125 $165 $175
Old Bridge Middlesex $81 $121 $131
Old Tappan Bergen $75 $115 $125
Oldmans Salem $265 $305 $315
Oradell Bergen $65 $105 $115
Orange Essex $51 $129 $139
Orangeburg New York $105 $135 $145
Oxford Warren $165 $205 $215
Palisades Park Bergen $51 $85 $95
Palmyra Burlington $205 $289 $299
Paramus Bergen $51 $91 $101
Park Ridge Bergen $75 $115 $125
Parsippany-Troy Hills Morris $75 $115 $125
Passaic Passaic $45 $85 $95
Paterson Passaic $55 $95 $105
Paulsboro Gloucester $245 $369 $379
Peapack-Gladstone Somerset $95 $179 $189
Pearl River New York $91 $125 $135
Pemberton Burlington $205 $245 $255
Pemberton Burlington $205 $245 $255
Pennington Mercer $175 $215 $225
Penns Grove Salem $275 $399 $409
Pennsauken Camden $205 $259 $269
Pennsville Salem $285 $389 $399
Pequannock Morris $75 $129 $139
Perth Amboy Middlesex $51 $119 $129
Phillipsburg Warren $185 $225 $235
Pilesgrove Salem $275 $315 $325
Pine Beach Ocean $195 $235 $245
Pine Brook   $75 $115 $125
Pine Hill Camden $225 $265 $275
Pine Valley Camden $225 $265 $275
Piscataway Middlesex $85 $125 $135
Pitman Gloucester $235 $369 $379
Pittsgrove Salem $295 $335 $345
Plainfield Union $65 $119 $129
Plainsboro Middlesex $115 $169 $179
Pleasantville Atlantic $285 $325 $335
Plumsted Ocean $155 $195 $205
Pohatcong Warren $175 $215 $225
Point Pleasant Ocean $135 $199 $209
Point Pleasant Beach Ocean $135 $199 $209
Pompton Lakes Passaic $85 $125 $135
Port Republic Atlantic $255 $295 $305
Princeton Mercer $105 $179 $189
Prospect Park Passaic $65 $105 $115
Quinton Salem $325 $365 $375
Rahway Union $65 $119 $129
Ramsey Bergen $75 $115 $125
Randolph Morris $75 $139 $149
Raritan Hunterdon $125 $189 $199
Raritan Somerset $95 $159 $169
Readington Hunterdon $115 $169 $179
Red Bank Monmouth $105 $159 $169
Ridgefield Bergen $51 $91 $101
Ridgefield Park Bergen $51 $95 $105
Ridgewood Bergen $55 $95 $105
Ringwood Passaic $81 $121 $131
River Edge Bergen $55 $95 $105
River Vale Bergen $75 $115 $125
Riverdale Morris $85 $125 $135
Riverside Burlington $195 $235 $245
Riverton Burlington $205 $279 $289
Robbinsville Mercer $125 $189 $199
Rochelle Park Bergen $51 $85 $95
Rockaway Morris $95 $135 $145
Rockleigh Bergen $81 $121 $131
Rocky Hill Somerset $105 $169 $179
Roosevelt Monmouth $115 $189 $199
Roseland Essex $65 $119 $129
Roselle Union $45 $85 $95
Roselle Park Union $55 $109 $119
Roxbury Morris $105 $145 $155
Rumson Monmouth $105 $169 $179
Runnemede Camden $215 $255 $265
Rutherford Bergen $45 $85 $95
Saddle Brook Bergen $51 $85 $95
Saddle River Bergen $65 $105 $115
Salem Salem $335 $375 $385
Sandyston Sussex $175 $215 $225
Sayreville Middlesex $81 $121 $131
Scotch Plains Union $65 $105 $115
Sea Bright Monmouth $115 $169 $179
Sea Girt Monmouth $145 $185 $195
Sea Isle City Cape May $335 $375 $385
Seaside Heights Ocean $185 $225 $235
Seaside Park Ocean $185 $225 $235
Secaucus Hudson $45 $85 $95
Shamong Burlington $205 $245 $255
Shiloh Cumberland $325 $365 $375
Ship Bottom Ocean $225 $265 $275
Shrewsbury Monmouth $105 $145 $155
Somerdale Camden $215 $255 $265
Somers Point Atlantic $295 $335 $345
Somerset Somerset $105 $145 $155
Somerville Somerset $95 $135 $145
South Amboy Middlesex $65 $105 $115
South Bound Brook Somerset $85 $139 $149
South Brunswick Middlesex $91 $169 $175
South Hackensack Bergen $45 $85 $95
South Harrison Gloucester $245 $379 $389
South Orange Essex $55 $95 $105
South Plainfield Middlesex $75 $129 $139
South River Middlesex $75 $129 $139
South Toms River Ocean $165 $205 $215
Southampton Burlington $175 $215 $225
Sparta Sussex $115 $155 $165
Spotswood Middlesex $85 $125 $135
Spring Lake Monmouth $145 $185 $195
Spring Lake Heights Monmouth $145 $185 $195
Springfield Union $65 $105 $115
Springfield Burlington $155 $195 $205
Stafford Ocean $215 $255 $265
Stanhope Sussex $115 $155 $165
Stillwater Sussex $155 $195 $205
Stockton Hunterdon $155 $195 $205
Stone Harbor Cape May $395 $435 $445
Stow Creek Cumberland $325 $365 $375
Stratford Camden $215 $255 $265
Suffern New York $85 $125 $135
Summit Union $65 $119 $129
Surf City Ocean $225 $289 $299
Sussex Sussex $155 $195 $205
Swedesboro Gloucester $255 $295 $305
Tabernacle Burlington $195 $235 $245
Tavistock Camden $205 $245 $255
Teaneck Bergen $51 $91 $101
Tenafly Bergen $55 $95 $105
Teterboro Bergen $45 $85 $95
Tewksbury Hunterdon $105 $169 $179
Tinton Falls Monmouth $115 $155 $165
Toms River Ocean $175 $215 $225
Totowa Passaic $55 $95 $105
Trenton Mercer $145 $185 $195
Tuckerton Ocean $225 $265 $275
Union Union $45 $85 $95
Union Hunterdon $135 $175 $185
Union Beach Monmouth $85 $125 $135
Union City Hudson $45 $85 $95
Upper Cape May $375 $415 $425
Upper Deerfield Cumberland $285 $335 $345
Upper Freehold Monmouth $115 $189 $199
Upper Pittsgrove Salem $275 $389 $399
Upper Saddle River Bergen $75 $115 $125
Ventnor City Atlantic $295 $335 $345
Vernon Sussex $155 $195 $205
Verona Essex $55 $95 $105
Victory Gardens Morris $75 $115 $125
Vineland Cumberland $285 $325 $335
Voorhees Camden $215 $255 $265
Waldwick Bergen $65 $105 $115
Wall Monmouth $135 $175 $185
Wallington Bergen $45 $85 $95
Walpack Sussex $195 $269 $279
Wanaque Passaic $85 $125 $135
Wantage Sussex $155 $195 $205
Warren Somerset $75 $115 $125
Washington Gloucester $245 $359 $369
Washington Morris $135 $175 $185
Washington Bergen $85 $125 $135
Washington Warren $155 $195 $205
Washington Burlington $265 $305 $315
Watchung Somerset $65 $105 $115
Waterford Camden $225 $265 $275
Wayne Passaic $61 $101 $111
Weehawken Hudson $45 $85 $95
Wenonah Gloucester $225 $349 $359
West Amwell Hunterdon $155 $195 $235
West Caldwell Essex $65 $115 $125
West Cape May Cape May $385 $425 $435
West Deptford Gloucester $235 $359 $369
West Long Branch Monmouth $125 $165 $175
West Milford Passaic $95 $135 $145
West New York Hudson $45 $85 $95
West Orange Essex $51 $91 $101
West Wildwood Cape May $375 $415 $425
West Windsor Mercer $115 $179 $189
Westampton Burlington $175 $289 $299
Westfield Union $55 $129 $139
Westville Gloucester $215 $255 $295
Westwood Bergen $85 $125 $135
Weymouth Atlantic $315 $355 $365
Wharton Morris $95 $135 $145
White Warren $165 $205 $215
Wildwood Cape May $395 $435 $445
Wildwood Crest Cape May $395 $435 $445
Willingboro Burlington $185 $225 $235
Winfield Union $55 $129 $139
Winslow Camden $255 $369 $379
Woodbine Cape May $375 $415 $425
Woodbridge Middlesex $65 $105 $115
Woodbury Gloucester $225 $265 $275
Woodbury Heights Gloucester $225 $265 $275
Woodcliff Lake Bergen $75 $115 $125
Woodland Burlington $235 $339 $349
Woodland Park Passaic $55 $95 $105
Woodlynne Camden $215 $255 $265
Wood-Ridge Bergen $45 $85 $95
Woodstown Salem $275 $389 $399
Woolwich Gloucester $255 $349 $359
Wrightstown Burlington $155 $289 $299
Wyckoff Bergen $75 $125 $135




Scripting News

Scripting News, the weblog started in 1997 that bootstrapped the blogging revolution.

1/17/2018 12:45:18 PM

1 -
2 -
3 -
4 -
5 - How Trump stank up Haiti
6 -
7 -
8 -
9 - River5 michegas continued
10 - What open source means to me
11 -
12 -
13 - Yet more River5 michegas
14 - Journalists, let's help journalism thrive on the net
15 - Facebook is not thriving, for me
16 -
17 -
18 - Open source feeds for journalists
19 - Re the River5 file-reading problem
20 -
21 -
22 -
23 -
24 - Wondering..
25 - River5 file-reading problem
26 -
27 -
28 -
29 -
30 -
31 -
32 - Wolff is Occam's News
33 - MTP Daily is the worst cable show
34 - I have no idea what Facebook announced
35 -
36 -
37 -
38 -
39 -
40 -
41 -
42 -
43 -
44 - My unHappy iPhone
45 -
46 - Our challenge is to work together
47 - We flip flop each time
48 -
49 -
50 -

The Feeds for Journalists OPML file is now available. You can use this file to subsribe to all the feeds in any feed reader. It will be updated periodically, so check back. Even better if your reader allows you to subscribe to OPML files, a drum I've been beating for a long time. Then you'll get the updates automatically.

1/17/2018 12:45:18 PM


New this.how doc on Black Lives Matter.

1/17/2018 8:45:23 AM


Piero Macchioni, an Italian journalist, on Feeds for Journalists.

1/17/2018 8:47:40 AM


Back when blogging was young, I was the chief blogger in some sense. I got a lot of shit. I was surprised then, not now. The picture people painted wasn't me. Reading their stories, I sounded like the little capitalist dude in the Monopoly game.

1/17/2018 10:09:28 AM

5 - How Trump stank up Haiti

I read this Politico piece about this history of Trump and Haiti.

Initially there was some bad data about a possible connection betw Haitians and AIDS that soon turned out to be false. But Trump kept bringing it up, and the stink on Haiti wouldn't go away.

Trump is still putting the stink on Haiti.

Reading this reminds me of the stink that people in tech put on RSS. There never was anything wrong with RSS, no data behind any of the things that were said, but people, some who even thought we were friends, said some very ugly Trump-like things about RSS. (Actually even worse.)

That's the sad thing about Trump, not just that he is such a flawed awful human being who is our president, but that if you live long enough, you've met plenty of other people who take exactly those kinds of shortcuts just to hurt other people.

1/17/2018 9:44:39 AM


I'm hunting everywhere for my glasses and then realize I'm wearing them.

1/16/2018 1:27:26 PM


Just realized, the reason librarians must love the web, and linking, is that you can provide a complete bit of complex information without being overwhelming. It's the same reason I like coding in an outliner. There's no cost for being verbose, just tuck the verbosity under a headline and leave it collapsed. Until the day you wonder wtf is going on here. You can hide little crumb trails for later discovery. Links work the same way.

1/16/2018 1:10:11 PM


Last week it was a real struggle to find the RSS feed for the Slow Burn podcast, but we did find it, and a new episode just showed up on podcatch.com , so the loop closes. Happy. 💥

1/16/2018 1:08:14 PM

9 - River5 michegas continued

The thread continues.

I believe I have found the least disruptive way to fix the file-read synchronization problem.

Here's a gist containing a new local routine that reads an XML feed.

Note that we save processing of new items for the end, and don't do any processing until the feed river is in the cache.

Update: I have the changes implemented locally, testing.

1/16/2018 12:04:15 PM

10 - What open source means to me

In putting together the Feeds for Journalists project, I had to figure out some new stuff about open source, because I had never seen the idea applied previously to a list of feeds. I haven't even seen it used for docs, novels or news, written work, but I'm sure it has been.

I've been shipping open source stuff mostly under the ultra-liberal MIT license.

I've also been using lots of open source stuff in my JavaScript work. It's why I switched my development to JavaScript a few years ago. When I need to use a relatively new technology, there always is a package that supports it. Debugged, maintained, and complete. It's like developer heaven. Not only is it all there, but it's not locked up inside a huge Silicon Valley company. But things I depend on still get deprecated. I try to find projects that don't do that so much.

So when I publish something via open source, what does that mean?

  • I work alone. The projects I publish are my code. I am responsible for every aspect of it. I try not to hack stuff in. And people who don't work on the code regularly can only hack stuff in (unless their brains are empty or they're some kind of prodigy, I've heard they exist, but have never met one). So I don't accept pull requests. I prefer clearly written feature requests.
  • I know my code has quirks. I use an outliner to write it, for one thing. You're seeing the generated code. That's another reason why pull requests don't work. And because I use an outliner, I edit structures of code, and nesting doesn't have any impact on readability or maintainability. But everyone's code is quirky. Reading other people's code is like opening their refrigerator. ;-)
  • Almost all my packages are named dave-something. That's because the straightforward names were already taken. I'm a relative latecomer to the package world in JavaScript. So there's daveutils, davefilesystem, davehttp, daverss, daveopml, davetwitter, davereader. There are exceptions like oldschoolblog. Just because I fell in love with the name and it was available. I've been doing modules like this since UCSD Pascal days. Back then I called them "czars" so there was screenczar and keyboardczar etc. We were dealing with lower level concepts back then.
  • When I find problems in other people's packages, and I do, I write up bug reports exactly as if I didn't have access to the source code. I try to stay within the three part framework -- 1. What I was doing. 2. What I expected to happen. 3. What actually happened. I have found it off-putting when the project owner asks me instead to submit a pull request. I don't have the bandwidth to learn how your codebase works internally.

For the Feeds for Journalists project, I own the list. You are encouraged to make feature requests, in the form of URLs of feeds you think should be on the list, or to question the inclusion of any feed I've put there. I'm totally open to discussion (with the usual caveat as long as it's respectful).

But first, before proposing an idea, think about what the project is trying to create -- a collection of feeds that's likely to cover breaking news from a number of angles with forays into science, the arts, education, humor. I included a feed about torrents (because it's good, and they have many of the same values as journalists and I think it would be useful for you all to get to know each other).

1. Suggest feeds and 2. Tell me why you suggested it. Ultimately I'm going to decide if it goes in this collection. And because there's a liberal open source license, if you see another direction to take it, for a subset of journalists perhaps, or librarians, or Italian journalists, you can fork it and use it as the basis for your own list.

PS: I think this piece will become a this.how doc, like the one about standards, which also began as a blog post.

1/16/2018 9:54:52 AM


The "glory days" of news readers are as irrelevant as the print edition of the NY Times. News readers were never that good. Twitter and Facebook are better as news readers. New news flows demand new approaches.

1/15/2018 10:29:51 AM


And RSS is here to help.

1/15/2018 10:12:57 AM

13 - Yet more River5 michegas

BTW, the River5 discussion continues with Carsten.

He points out that the new method I proposed for adding items to rivers not only is more complex than the current method, and therefore more difficult to maintain, something I totally concur with, it still has a synchronization problem. Copying a pointer and deleting an object can't be an atomic operation. it's still possible something will be added to a queue betw the two steps. And that would result in a lost item.

We're now somewhat in the weeds, possibly, but we all agree it's better to have an approach that loses zero items, than one that maybe loses one item on (possibly) rare occasions. So I have proposed yet another approach in a comment. This one has the advantage of retaining the current simplicity and hding a bell/whistle that didn't need to be there in the first place.

1/15/2018 5:45:34 PM

14 - Journalists, let's help journalism thrive on the net

If you're a journalist and you love RSS, please join me in an easy project to improve both. Let's put together a list of starter feeds for journalists.

I've kicked it off with a collection of news feeds that I know provide good value. If you have favorites, please suggest a few in a comment in this thread.

In order for this to work it has to be done primarily by journalists. I'm happy to help any way I can.

I started this project because I am sure that unless news thrives on the net we are totally screwed. I've never felt that we could trust Facebook to be the official distribution system for journalism on the net.

This is the first step to creating many distribution nets, so a competitive market can develop. I've bootstrapped successful tech projects before. This is how it begins! It's not that hard, it just requires cooperation and a clear goal.

1/15/2018 9:31:59 AM

15 - Facebook is not thriving, for me

I'm guessing what Facebook saw in numbers is what I feel as a user. It's drying up.

The most interesting part of Facebook is the On This a Day In feature, and even that is starting to scare me as we relive 2016 and 2017.

It's very quiet on Facebook these days. And to the extent it's not quiet it's profoundly depressing.

I don't feel it's too hyper to say Facebook is dying.

Not sure there was anything they could have done to prevent it, but a dramatic U-turn away from news says, to me, they see it too now.

1/15/2018 9:48:05 AM


I changed the header image from the snowy winter scene, to Martin Luther King, in honor of his birthday tomorrow.

1/14/2018 6:19:09 PM


Can you imagine what would have happened if the Hawaii message had happened in NYC or DC. The panic would have been unreal. People would have died. And the odds of a retaliatory strike would have been there too. This is how wars start, btw.

1/14/2018 5:20:35 PM

18 - Open source feeds for journalists

Yesterday Mathew Ingram, a longtime friend and professional journalist, put out a call for feeds for a reboot of his use of RSS.

This got me thinking. What if a community created such a list of feeds, and did it over a period of weeks or months, with discussion, and a certain amount of deliberation.

We could use the tools of open source to do this project.

So, I've set up a new GitHub repository where we can work on that list of feeds. I'll write a small piece of software that periodically turns that collection into an OPML file suitable for use in a feed reader. From there who knows what happens, but just getting a list of feeds for journalists to follow, collaboratively, while it doesn't involve much work or technical know-how, would be a major improvement over the way we all do this individually, for ourselves.

I'll post updates on this project to this blog.

1/14/2018 11:28:04 AM

19 - Re the River5 file-reading problem

Following up on yesterday's report on River5's file reading problem at startup, with futher thought I realized I did not have a solution to the problem.

The way I proposed doing it yesterday would have resulted in just as many lost items at startup. The problem was that the central routine was sending the JSON text of the file to each of the callbacks. Each would then parse the text, producing a structure which it would then link into the cache. Only one of the structures would survive in the cache, the last one linked in, and it would have one of the new items. The other new items would be lost. In other words, no improvement.

So I changed the code and had the central routine parse the text, and call each of the callbacks with the resulting structure. Now all the callbacks add their items to the same struct, (unless I'm still missing something) and the result is zero lost items.

I've created a gist with the new code, and left the old gist in place. I have not yet released a version of River5 that uses this new approach. Testing it here first then thinking about how I want to deploy.

Note this version is more complex because it has to initialize the struct once and only once, so the central routne, readRiverFile, must receive a callback that initializes the structure when the read fails, which it will do when the river file is first created.

I haven't received any comments, but they are still welcome.

1/14/2018 9:52:44 AM


When I was a kid, at the height of the cold war, I had dreams of looking out my window and seeing dozens of mushroom clouds off in the distance.

1/13/2018 1:12:42 PM


The other night Julia Ioffe said something wise on one of the shows: Almost everyone who immigrates comes from a shithole. Immigrating is no fun. It has to be worth it. People from Norway don't want to leave because it's not a shithole.

1/13/2018 8:52:22 PM


Theory: If two reporters use RSS systematically to gather news, and they combine lists, each reporter gets more value than they would on their own. If interests are aligned, but not too aligned, there's potential value beyond that.

1/13/2018 12:32:30 PM


Maybe the thing to do is to start a group of journalists who love and understand RSS and want to use it in new ways to make their journalism better.

1/13/2018 7:36:50 PM

24 - Wondering..

I wonder sometimes what goes thru people's minds when you offer to help and it's something you're expert in, and they ignore you.

It's been happening with news people constantly since I stared working on news software and formats on the web.

I can't imagine what ulterior motive they think I have. I don't make any money from the work. I do it because I am sure that unless news thrives on the net we are totally screwed.

Don't they see that too?

I'm trying to think but nothing happens!

1/13/2018 2:23:57 PM

25 - River5 file-reading problem

I've now had a chance to study the problem reported with River5 a few days ago.

The first part of solving it was writing down concisely what the problem was. Carsten Senger did a great job, but he isn't responsible for the fix, I am. And I wrote the code and am familiar with how it's organized and how it got to be how it is.

The problem statement

  • There are two kinds of rivers, ones associated with a list, and ones associated with a feed. The problem applies to both kinds of rivers, but is more likely to show up in the feed-based ones.
  • When a new item comes in, it is added to the rivers of all the lists it's in, and in the river for the feed it came from. The river files are stored in files on disk. We cache them in memory. When we want to add an item to a river, we first check if it's in memory. If is, we add the item and we're done. If it's not in memory, we read it from disk, and then add the item to the river. This is where we run into trouble.
  • The trouble is that there might be two or more new items from one feed for one river. The first item gets added okay. But when we try to add the second item, since reading the file takes so long, we will find it's not in the cache, so we start a second read. We add our item, but the first item probably isn't in the copy we loaded. It would be an amazing coincidence if it was. So no matter what, we just lost one of the new items from the river. If there are N new items in the first read, we will lose N-1 of them.

The solution

  • The best solution is this -- create a queue for each river when the first read is initiated. Add its callback as the first and at that time only item in the queue. If a new read comes in while we're still reading the first one, add its callback to the queue. Once the file is read, call all the callbacks in the queue, concurrently, and delete the queue for that file.
  • I also considered doing it brute force, simply reading all the rivers at startup before doing any feed reads. But I wanted to write the code. And when I did I was glad, it's really interesting how well JavaScript handles this kind of gymnastics. I laughed out loud a few times while putting it together. Code that makes you laugh is worth writing imho. 💥

Code review

  • I put the queue code into a Gist for review. If you spot any problems, post a comment there. Thanks.

1/13/2018 12:34:33 PM


President Shithole goes for his physical.

1/12/2018 3:45:08 PM


XML-RPC started in 1998, which means it's about to be 20 years old. I think this is the first post about it. Not very specific. We were already working on it, but we hadn't yet hooked up with the people at Microsoft. From a quick scan it looks like the actual protocol we standardized on didn't come out publicly until June. Pretty sure we had something working internally at UserLand in March or April.

1/12/2018 1:19:45 PM


Ooops. We missed the 20th anniversary of RSS. The format that became RSS was rolled out in December 1997. Here's the piece where that was announced. I guess we missed the party. Open formats don't have PR firms. 💥

1/12/2018 1:27:39 PM


It's really weird, the date on the piece is wrong. It was December 27, not December 15. You can see that in the copy, it talks about being between Christmas and New Years. And mentions a piece that wasn't written until December 23. And I actually remember that this was on the 27th. Somehow, at some point, my CMS screwed this up. Which is weird because this is a static file. Looks like it was rebuilt some time in 2004. In any case if anyone wonders, the date is incorrect.

1/12/2018 1:40:16 PM


An unusually long podcast about Occam, Wolff, war, medicine, programming, debugging, hacking, Russia, war again, Pearl Harbor, Hiroshima, Nagasaki, Watergate, Buzzfeed News, Ben Smith, the dossier, ladders, the elite, working together, and the day it hits us that this is not Watergate, will be another day like November 8, 2016. The gatekeepers, the elite, don't want to give up their positions on the ladder, so ideas that threaten that can't get through. Instead we have to be systematic about letting ideas in. There's a lot of tough love in here, but it's important.

1/12/2018 10:28:42 AM


I was out walking in the morning rush hour in Manhattan, everyone looks so nice. I wondered, since #metoo has the world been treating attractive women better? Has cat-calling diminished? Leery looks? Inappropriate comments?

1/12/2018 7:53:16 AM

32 - Wolff is Occam's News

I've been pushing the idea of Occam's News, where we talk about what's obvious not what we can prove. Michael Wolff's approach is exactly that. It's not what you can prove, but it's what we know anyway. Both this and proof-based news are valid and needed.

Wars are fought with Occam's spy info, and guesswork about what the enemy is doing, and trying to figure out what's a decoy and what's real.

Also medicine. Sometimes they don't know what disease you have and they just start treating the one they think you might have and see if it works.

Programming, what I do, is most definitely not Occam-like, it's proof-based. But debugging is very much an Occam art.

1/12/2018 9:05:47 AM

33 - MTP Daily is the worst cable show

I watched MTP Daily yesterday. For a few minutes, and then went back to work. It's an awful awful show. The worst of the worst.

I hate the show because Chuck Todd only talks about the horse race. I swear, the day after the 2016 election he was already talking about how people were "positioned" for 2020. This kind of analysis never means anything. Go back and listen to the talk about the 2016 election in 2015 for a clue.

And they don't even think about elections in a realistic way. Yesterday they were talking about how the Dems failed to sell competence last time (Hillary), so they probably shouldn't try that again. I wonder if they listen to themselves. There was a time, believe it or not, when both parties nominated people who were fairly competent. Even Ronald Reagan, who people thought was a joke, had served as governor of California before becoming president.

Anyway, assuming competence is an attribute like hair color or gender, height or whatever, the next election is exactly the time to be selling competence. Why? Because the electorate flip flops. We always elect the opposite of what we elected last time.

For example, we elected Trump to follow Obama.

  • Obama is black and Trump is a racist.
  • Trump throws tantrums and Obama's nickname is "No Drama."
  • Trump is a complete idiot, drooling at the mouth, and Obama has a law degree, is a professor, a total technocrat who probably aced every test he took. Trump probably bought his grades with money or blackmail (probably blackmail).

Extrapolating, the next president will probably be a woman, obviously -- but bland and reliable, not too old, known for listening and studious, even pious, and not rich. And not a celebrity.

Although I don't know much about her, I would take a good look at Amy Klobuchar from Minnesota. She's intelligent, passionate, confident, speaks well, has a sense of humor, is well-educated, young but not too young, thoughtful, and has the right values to start to undo the damage done by Repubs during the reign of Trump.

Why not Kirsten Gillibrand? She has many of the same qualities as Klobuchar, but she's from New York. I come from NY too, but I don't think our president should. NY is our largest city, but it's actually a pretty small place. Trump stood out in NY, but we're seeing how that doesn't work globally. But even if it's great to have a president from NY, remember we flip-flop, and I'd say the odds of two consecutive presidents from NY is pretty slim.

Anyway, as you can see, there are some interesting things to think about for 2020, even though it's so far away. Of course they discussed none of this on MTP Daily yesterday.

PS: You want a courageous Democratic ticket? Klobuchar for president with Keith Ellison as VP. Unlike most Democrats these two can complete a sentence without sounding like an idiot. Both from Minnesota, btw, but look at how different they are. They say to white men who vote Trump, fuck you -- you had your chance, this is the way things look now. Get a pair, growth the fuck up and let's really start winning.

1/12/2018 8:05:54 AM

34 - I have no idea what Facebook announced

They announced something.

What this all means, I have no freaking clue.

Since the Algorithm is proprietary, I don't know what it did before that was so different. I gather they're reneging on their deal with professional journalism?

I always thought friends had huge influence over what I see in the timeline.

And won't Putin still be able to buy ads to fuel the virality of his mischief?

1/12/2018 7:53:38 AM


What if two networks, say Netflix and Amazon, did a deal. They would both do 1-hour-weekly dramas, one the reboot of The West Wing, and the other a Republican version. Find a prominent Democrat-leaning celebrity to be POTUS on the Democratic show, and a prominent Republican for the other. Offer the first job to Oprah, if she doesn't want to do it, how about Barack or Michelle Obama? Joe Biden. Hillary Clinton? Lawrence O'Donnell or Rosie O'Donnell or maybe someone from CNN like Brian Stelter. And then privately tell the president that he could have the second job, permanently, no impeachment -- president for life, on TV. Everyone can be entertained by all the crazy shit Trump tweets. He can nuke anyone he wants because it'll just be on TV. I think he might go for it. His "base" would go apeshit. Let Trump be Trump! (Note: He has to resign the real presidency before he can have the TV job.)

1/11/2018 10:57:13 AM


New truce with Facebook. Every day I try to write something with no links or style so I can post it to Facebook. I also post it to Twitter via pork.io.

1/10/2018 9:19:02 AM


I got a Chrome deprecation message in the JavaScript console when I post HTML in some new software I'm working on. Encoding it fixed it.

1/10/2018 12:15:44 PM


I'd like to have a personal social net that's coffee house size. Play a few tunes, have a couple of drinks, tell a few stories, and come back tomorrow and the night after that. There's a bouncer at the door so if you come in all nasty and shit, we kick your ass out.

1/10/2018 9:22:42 AM


I saw Three Billboards Outside Ebbing, Missouri yesterday. I really liked it. The best acting. A bunch of sad stories, told with humor. You know it has to be good cause Frances McDormand is in it. Like I, Tonya and Lady Bird, two other movies I've seen in the last few days, it's a story of a mother suffering for a daughter. All beautiful movies. The thing that makes a movie great, as always, is suspension of disbelief. If you get into the story, the movie is good. If you are still in the story the next day, it's great.

1/10/2018 9:13:35 AM


In human relations there are no absolute truths, just points of view. That's why when someone says someone else is tone deaf -- the person who's doing the saying is the one who's out of tune. Further, if you're trying to rep a cause, you'd better do a lot of listening, or you won't do much persuading. No one wants to be proven wrong, and if that's what you're selling you're not going to be heard much. This is what my grandfather said to me as a very young person, he called it the art of living. I remember the words, even if I didn't understand the idea. Now I do. It's the thing life teaches you. Listen.

1/10/2018 8:48:01 AM


Who knew some people didn't like cilantro? Personally, I really like the stuff. But if it tasted like death, as Julia Child said, well I wouldn't like it either. This is one area where I got good genes.

1/10/2018 8:52:36 AM


A few weeks in and I love my Sony headphones more and more. The great thing about them is they are so easy to wear. I gather most high end headphones put weight on your neck that's hard to bear. Not with the Sony's. I also bought a fancy pair of Bowers & Wilkins headphones. They sound great, but they don't wear so well. For one thing, they lose the connection to the iPhone too often, leaving me stranded on the street fumbling with Bluetooth, feeling like an idiot. Never happens with the Sony's. They seem to have the Bluetooth thing down. And the sound! It's so luxurious. For all kinds of music, even for listening to a podcast. If you listen a lot and can afford an upgrade, these is a seriously nice headset.

1/10/2018 8:53:27 AM


Everybody's crying mercy when they don't know the meaning of the word.

1/10/2018 8:57:48 AM

44 - My unHappy iPhone

My iPhone is complaining about how I'm almost out of space. it says I can get more space by letting it upload all my photos to iCloud. The phone needs some AI because I deleted all my photos in an attempt to get rid of the message (copying them to a local 5TB disk, no I don't need your storage Apple).

I wish my iPhone had a button that I could click that would say -- delete all the shit that I never use or listen to or watch to free up 1/2 the space on the phone.

It seems the computer would be better at this than I am. I can't find all the shit I never use or listen to or watch. That's probably why I never use it, listen to it or watch it. ;-)

1/10/2018 10:44:43 AM


Really interesting River5 bug reported.

1/9/2018 3:47:29 PM

46 - Our challenge is to work together

Suppose you expend X effort to get a job done. Further, suppose if you spend another 10% someone else will get the same job done. Another 25% and you leave enough behind so someone else can do the same job in a year, without your help.

Given the challenges we have now, I'd say the value of just working cooperatively eclipses the value of the what you accomplish with the work alone, no matter how important it is.

Every day I see more evidence that each of us is working for our own individual glory. I'd say that's the biggest problem we have, bigger than climate change, bigger than nuclear armageddon. Because if we can't get past this way of thinking we have no hope of solving the other problems in front of us, because they clearly require massive unprecedented cooperation.

The moral is the story is this -- slow the fuck down and work with other people. Measure your success by the success of others.

1/9/2018 3:58:12 PM

47 - We flip flop each time

On Twitter, Touré says: "I don’t understand why Trump’s failure means we should ban wealthy celebrities from the Presidency."

To which I said: "Banning is the wrong word. We flip-flop each time. The next one will be boring so we can all get some rest."

I've noticed something -- each time we switch presidents we choose someone very different from the one before.

In my lifetime here are the switches I've witnessed.

  • Nixon to Carter to Reagan to Bush I to Clinton to Bush II to Obama to Trump.

And how I'd characterize the change.

  • Evil to saint to actor to bureaucrat to scholar to beer drinker to professor to idiot.

Yes I know I left out Ford, but we didn't choose him, Nixon did.

According to this theory the Dems should nominate a former librarian to oppose Trump in 2020, if he makes it that far.

Also, if we're going to have another celebrity president, have them run for governor first, and serve, and let's find out if they can do the job. Let them find out too.

1/9/2018 8:55:58 AM


Poll: Oprah Winfrey for president?

1/8/2018 1:39:42 PM


Quick demo of Radio3, my browser-based linkblogging tool.

1/8/2018 1:43:41 PM


Oprah for president really is fake news. The press should back off. There is no presidential election coming up any time soon.

1/8/2018 10:25:32 AM

Home
About Us
Favorite Links
Contact Us
Blog