About Me

me

I played drums in 5th-grade band, but if you're looking for the Jeff Friedl who plays drums for ASHES dIVIDE, that's not me.

What is me is...

Random data points about Jeffrey Friedl
  • I currently live in Kyoto, Japan.
  • Married to Fumie since 1998.
  • Son Anthony born October, 2002.
  • Have studied the following languages in school: English, Spanish, German, French.
  • Can actually speak the following languages: English, Japanese.
  • Languages I apparently wasted a lot of time on for nothing: Spanish, German, French.
  • Born in San Diego, California.
  • Raised in Rootstown, Ohio.
  • Bachelor of Science in Math / Applied Computer Science: Kent, 1987.
  • Master of Science in Computer Science: University of New Hampshire, 1988.
  • Have been in a couple of big earthquakes (Loma Prieta '89, Kobe '95).
  • Spent 2.5 painful years writing the first edition of Mastering Regular Expressions (O'Reilly Media, 1997).
  • Spent 2 more painful years writing the second edition (O'Reilly Media, 2002).
  • Spent only 9 months updating for the third edition (O'Reilly Media, 2006).
  • Catholic.
  • Have programmed in C since 1981, Perl since 1990. Don't know C++.
  • Have used jfriedl@yahoo.com as an email address since before there was Yahoo! Mail. Still use it.
  • Wrote these blog posts.
  • Took these pictures, and these, too.
  • I lurk on Google Plus and Facebook.
Employment
  • Adobe Systems, Inc 【アドビ システムズ】 (10/2007 — 8/2008, and again 12/2009 — 5/2010)
    I consulted on issues related to Lightroom.
  • Peak Web Consulting (2007 — 2008)
    I worked on back-end infrastructure tools for top-tier bandwidth users (big Big players on the Internet, whose names I'm not allowed to mention).
  • Yahoo! 【ヤフー(アメリカの本社)】
    Sunnyvale, CA, USA (1997 - 2005)
    Architecting and engineering on the Y! Finance site, using mostly Perl/MySQL to fold, spindle, and hopefully not mutilate reams of financial data. I was employee #192. When I left )-: I was the 30th most senior (by time, certainly not influence) employee.
  • Omron Tateishi Denki 【オムロン立石電機】
    Nagaokakyou, Japan (1989-1997)
    Mostly kernel work on a four-processor symmetric shared memory system that Omron was developing. While at Omron, spent about three years as a “visiting scientist” at Carnegie Mellon University (and was mostly unimpressive to the superbly smart people there).
  • Northeastern Ohio Universities College of Medicine (NEOUCOM)
    Rootstown, Ohio (1981 - 1986)
    Worked with a first-run IBM-PC with DOS 1.0. (Unfortunately, Microsoft has not improved on their software much since then). Washed a lot of lab equipment. Did a lot of programming, including some really advanced flow cytometer control software in FORTH.

I enjoy researching a subject of personal interest, and then, because I occasionally stumble across an ability to write well, sharing the results. Examples include my long writeup on digital image color spaces, the auto-focus test chart that I developed, and a detailed Analysis of Lightroom JPEG Export Quality Settings. (See all in my list of geeky photo-tech posts.)

I also seem to have become the main provider of plugins for Adobe Lightroom, such as my plugins that allow direct export to Zenfolio, Flickr, SmugMug, PicasaWeb, Facebook, and more: see my Lightroom Goodies page for current details. I develop these on my own time, as a hobby, which is perhaps a bit odd because I don't actually use most of them in my own photo workflow. In case it's of interest, I've written up a story on how I fell into this line of handiwork: “Road to Now: My Long Path To Lightroom Plugin Development

For comments specific to a blog post, feel free to leave a comment on the post. Otherwise, feel free to send email. (Plugin logs should be sent as per this FAQ.)


The 30 most-recent comments (out of 312; see all), most recent last...

Hi Jeffry,
here is a suggestion for your “Find Next Photo Group” plugin (part of Bag-o-Goodies):
I assume the plugin is evaluating only the time information to build photo groups.
In my opinion it should stop grouping if file extension or image dimension or rotation change.
Images with different extension/dimension/rotation should never be grouped. They can’t belong to the same burst/panorama/….

— Greetings from Germany
Martin

You’re absolutely right…. I’ve just pushed an update with this. Thanks! —Jeffrey

— comment by Martin Schultheis on April 14th, 2017 at 7:02pm JST (1 year, 5 months ago) comment permalink

Hi
i tried the Metadata-Wrangler and intend to use it and give a reasonable donation to the program …because its great and your are generous.
unfortunately, I was unable to solve the main problem i have: i need the the original image size in the metadata and not the exported size. Is that somehow possible at all?
example: image ist 4500×3000 pixel orignal dimensions; it will be exported 1500×1000 pixel; but this exported image should have the original dimensions in the metadata.
would appreciate your help

You could use the OriginalWidth token to add the data to one of the fields that MetadataWrangler can write to, e.g. “original size: {OriginalWidth}x{OriginalHeight}“. —Jeffrey

— comment by philip on April 17th, 2017 at 4:45am JST (1 year, 5 months ago) comment permalink

I emailed awhile ago to ask for help with logging into tumblr, and I don’t know if you fixed something or tumblr did, but it works now! I’m back to posting from LR and I couldn’t be happier 🙂

— comment by Alan Paone on April 23rd, 2017 at 5:48am JST (1 year, 5 months ago) comment permalink

Hi Jeffrey,
I just downloaded your zenfolio plugin (thank you so much!) and am trying to match the existing galleries from zenfolio into LR galleries.
Looks like LR matches the images and I get “53 already-associated images were reconfirmed, but no new matchups were found.” but in the collecitons it shows “0” for images. I tried all galleries and one by one gallery.

I was able to create a new gallery from LR into zenfolio and it works fine, but not for the galleries already existed on zenfolio prior to the plugin.
thanks for your help!
Olya

It sounds like you’ve yet to do step #3 (Populate) mentioned here. —Jeffrey

— comment by Olya Gary on August 10th, 2017 at 8:24am JST (1 year, 1 month ago) comment permalink

Hi Jeffrey,
I’m interested to know if there is any possibility to get additional information when a photo is “around” (let’s say in a pre-defined range) a Point of Interest (in the specific, historical sites). I’ve seen that there are APIs able to look up at specific DBs and it could be nice to have this feature too…

Greetings from Italy

I’m not sure in what context you’re asking, but this doesn’t sound like something I’d work on. —Jeffrey

— comment by Lubiano on August 21st, 2017 at 10:43pm JST (1 year ago) comment permalink

Bonjour Jeffrey.
Bravo pour votre site, votre travail, vos photos.
Je me permets de vous écrire en français, je suis sûr que vous apprécierez.
Mon problème:
J’ai installé votre module “Google Drive”, après installation, je le configure le module en validant authentification sur GDrive.
Apparaît ensuite la mention suivante :
“fetching folder list from Gdrive” et ensuite rien ne se passe, ça affiche “not enought memory”, puis ça plante.
J’ai 16GO de ram ^^
Merci pour votre aide Jeffrey.
PS: You can reply in English if you wish

I don’t read French, sorry. Perhaps use Google Translate in the future. Next time you see this error, please send a log. Since Lr is crashing, be sure to see the last paragraph of that FAQ entry. —Jeffrey

— comment by fred on August 24th, 2017 at 5:59am JST (1 year ago) comment permalink

Hi, Jeffrey,
I’m still using LR 5.7, because I do not need most auf the CC stuff. But when I upgraded recently to the latest Google Earth version, the map module didn’show the map any more, just the markers. It seems Adobe tries to force its customers into subscription …. Have you got any solution for this problem?
Best regards,
Robert, Vienna

It’s my understanding that this problem was caused by Google changing something out from under Adobe. It broke everything. I might be wrong, but in any case it is fixed with the most recent version of Lr6. You can still get a standalone non-cloud version of Lightroom 6, but since you have an older version of Lightroom, you should be able to get an upgrade version for half the price. You might have to contact Adobe to ask how to do that. —Jeffrey

— comment by Robert on August 28th, 2017 at 8:59pm JST (1 year ago) comment permalink

Raleigh, NC, thanks for all of your plugins. Do you have anything to make the stacking ability more controlled by my input rather than reading all of the metadata. I shoot real estate and I always shot brackets of 3 but auto stacking is hit or miss and it takes a while to scroll through and unstack/restack and inevitably I miss an incorrect stack or two. It would be nice to have something that I can tell LR to stack them by whatever number of brackets I have shot. Mostly, in my case, every three is a stack. I always make sure that I complete a full bracket even if my flash misfires or I see a change I want to make. It seems so simple. Enfuse offers it but I am having trouble getting Enfuse to work on my mac as a standalone. It works fine as a plugin if it would only offer to create stacks in 3s.

The only thing I can think of that’s even close is the Adkins on September 10th, 2017 at 9:10am JST (1 year ago) comment permalink

Is there anyway to have your Zenfolio plugin remove all of the Metadata (in my case, the Copyright that my wire requires is over the 100 character limit)? I am trying to automate my archiving to Zenfolio and it’s failing with the plugin due to the copyright length. I want to be able to do this without manually removing metadata.

Thanks for any help you can provide!

Andrew

The plugin sends the copyright directly to Zenfolio, overriding any that may or may not be in the image metadata. I suppose you have your reasons for having such a long name in the copyright field, but your best bet is to somehow squeeze it in (or ask Zenfolio to up the limit, and then let me know so I can update the plugin). —Jeffrey

— comment by Andrew on October 11th, 2017 at 3:28am JST (11 months, 10 days ago) comment permalink

FYI – I tried using the insert for Metadata Wrangler, but that seems to only strip after exported. I need it to strip before it uploads to Zenfolio otherwise it fails. Just curious if there was a quick way to do this. I am using the old rcPlugin that that lets you combine multiple export actions into 1. Right now I have it setup to FTP files to my vendor, then create master copy locally, then create a websized with copyright locally all within the single rcExport preset. My intention is to add export to Zenfolio as a 4th item to the rcExport preset.

Thank you again for your help.

— comment by Andrew on October 11th, 2017 at 4:09am JST (11 months, 10 days ago) comment permalink

Hi!

Do you know a way to insert jpg keywords into the exported files so that MacOs can use them as MacOs keywords?

Would be super nice if you could help me.

Martin

I’m not familiar with “MacOS keywords”, but if you can find a command-line tool that adds these to a file, you can use my Run Any Command plugin to invoke that command. —Jeffrey

— comment by Martin on October 19th, 2017 at 11:27pm JST (11 months, 2 days ago) comment permalink

I’m disappointed to have downloaded and paid a donation for the Picassaweb uploader a day or so ago only to find the first time I used it that I get a message essentially saying “It doesn’t work , get stuffed”.
I now see that there is a wishy washy cop out on the page about Picassaweb being disabled but the fact is I looked at the version history and you have LR 7 updates so I just went and got the update as I always have in the past.
I really think you should simply disable downloading of this uploader completely rather than taking peoples money under somewhat false pretences.
I am not concerned about the money and I will definitely be continuing to use and recommend your Flickr uploader but this does leave something of a bad feeling from s customer who has been using your products since I think LR4.
Just wanted to let you knwo my feelings.

Richard

— comment by Richard on October 23rd, 2017 at 4:06pm JST (10 months, 29 days ago) comment permalink

Hi, Jeffrey:
Love your website and thank you for sharing and also I love you mention “Karma”! Thanks again!
Your sincerely,
Li

— comment by aosaet on October 28th, 2017 at 10:16am JST (10 months, 24 days ago) comment permalink

hi jeffrey just installed LRClassicCC when installed it apparently wiped out my connections to Flickr, Facebook, Zen, etc. that i have purchased from u. not sure what to do now. in the past on each program i have been allowed to reauthicate, but do not get that message. have attempted to re download but to no avail. appreciate your comments and recommendations. jeff lantz images.

When you say “wiped out my connections”, what exactly do you mean? Lr7 (LR Classic CC) upgrades your Lr6 catalog, and all the publish services should be intact… there shouldn’t be any changes. However, if you’d placed the downloaded plugin files inside the Lr6 app, as some people do but no one should, then you’d have to re-download them, unzip them, move them to where they really will live (e.g. a “LightroomPlugins” folder in your “Documents”), then point the Plugin Manager at them. Now everything should be as it was in Lr6. If this is not the case, please send more details (and perhaps screenshots). —Jeffrey

— comment by Jeff Lantz on November 9th, 2017 at 7:07am JST (10 months, 12 days ago) comment permalink

Jeffrey i did not ck the box re email and would prefer to receive yr response there. since i have over 3500 images on flickr and facebook usder yr links if i can not use yrs for future connections how do i transfer those images to a new flickr and facebook without losing them. thanks again i am still a big fan of your work, but need help. jeff

— comment by Jeff Lantz on November 9th, 2017 at 8:02am JST (10 months, 12 days ago) comment permalink

hi jeffrey. i downloaded ur update last week. though i was not asked for the receipt # of paypal. messages i get now 1 when attmpting to reload all of ur programs flickr, facebook, zen. smug. “the versionof flickr u have does not work in LR upgrade” 2. when attempt to connect each of them “error occurred while reading schema for PM for flickr. when i attempt to add in LRplugins above messages. thanks. sorry to be so much trouble. love the programs have used them for yrs. jeff lantz

It sounds as if you’re not pointing Lightroom’s plugin manager at the newly-downloaded plugin copies. Perhaps it’d be most safe to delete all copies of all plugins that you have on your system, to ensure that there are no old copies lying around, then download fresh copies, unzip them, move them to where you want them to live on your system, then point the Plugin Manager at them. Your plugin data will remain, as it’s in the catalog and not the plugin files. If they had been registered prior to your Lightroom upgrade, you’ll have to re-register them (as described here), or leave them unregistered, but you can generate new registration codes with 1-cent transactions, if you like, so it shouldn’t be such a big deal. —Jeffrey

— comment by Jeff Lantz on November 13th, 2017 at 2:25am JST (10 months, 8 days ago) comment permalink

have removed all of your plug ins from LR and documents have downloaded and paid now 2 times for downloads have 2 registration # from paypal when i go to finder your downloads are not there since i removed them in clearing prior and current downloads. i am going to your site and download another for flickr. should i crerate a new folder in my documents folder and then move each of yours to that folder. in the past i have merely gone to LR clicked on add a plugin and you were there, but it is not working this time. i guess i am getting old and maybe you need to give me a specific sequence to use in LR. sorry to be so much trouble but yours is the only system i have used for years. thanks for you patience. jeff

Yes, create something like a “Lightroom Plugins” folder somewhere that will stay, such as inside your “Documents” folder, and put unzipped plugins there. Lightroom plugins are confusing because unlike normal apps where you can delete the download after installing, you don’t really “install” Lightroom plugins, but merely tell Lightroom that they exist at such-and-such a place on your disk, so they have to remain. Note that you don’t need new registration codes each time you download… only after a major Lightroom upgrade. If you reinstall previous plugins, just reuse the prior code. —Jeffrey

— comment by Jeff Lantz on November 17th, 2017 at 8:47am JST (10 months, 4 days ago) comment permalink

hi when i download the flickr app i copied the registation number, went to LR plugin mgr clicked on add but there is nothing on the screen which allows me to add the registration #. it would not let me add anything from u. it went to a previous plubin in the system but would not let me add your registration # in fact there was no reference to you at all. i do have a flickr and facebook reference in the plugin section but not yours. i have various plugin On1,Maphn,HDR,Perfect clear etc. but can not add u. help jeff

Could you be confusing my plugin with Lightroom’s built-in Flickr plugin? —Jeffrey

— comment by Jeff Lantz on November 17th, 2017 at 9:07am JST (10 months, 4 days ago) comment permalink

The Zenfolio plug-in is excellent but I do not seem to be able to populate the LR Zenfolio galleries with the existing photos already in my online Zenfolio gallery. When I go to plug-in extras then Zenfolio and select “Associate Images Automatically”, the plugin starts matching up the photos with those at Zenfolio then returnes with the error, “Assertion Failed: Packed”

Unfortunately, this is a known bug in Lightroom, but they haven’t come up with a fix yet. —Jeffrey

— comment by Fred on November 20th, 2017 at 5:23pm JST (10 months ago) comment permalink

I’m moving from Lightroom CC (v6) to Classic CC (v7.2). I’m currently running both while I test out v7.2.

I’ve got the new versions of all of your plugins that I use and they show as registered in v6 and demo in v7.2 (as expected).

I’m about to do the PayPal registrations, but I was wondering if registering in v7.2 will unregister them from v6? Or do you store the registration numbers separately for each version / catalog? (The plugins are in the same folder for both, since the new ones seem to work fine with v6).

The plugin files are almost always backwards compatible, so the same file can work with multiple versions. Registrations are indeed associated with each major Lr version, so registering in Lr7 won’t have any effect on what happens in Lr6. —Jeffrey

— comment by Marc Sinykin on February 15th, 2018 at 11:11am JST (7 months, 6 days ago) comment permalink

Hi – I do timelapse photography and I want you to know that your timelapse support plugin is the best plugin in the universe. I have lost count of how many times your plugin has allowed me to fix my bad shooting. Thank you for making the timelapse support plugin.
Best wishes
Eugene
South Africa

— comment by Eugene Braack on March 8th, 2018 at 5:03am JST (6 months, 13 days ago) comment permalink

Hi Jeffrey
I really enjoy exporting from LR to Zenfolio.
Is there any chance you might prepare a similar Zenfolio export plugin for the On1 Photo Raw program? This is something I really use a lot these days.
Thanks again.
Doug

I’m not familiar with On1 Photo Raw, but if it’s a standalone app that works with an image one by one (e.g. such as Photoshop), then Lightroom’s standard “Edit In…” should work, no? —Jeffrey

— comment by Doug on March 17th, 2018 at 7:11pm JST (6 months, 4 days ago) comment permalink

Have a question about bicycles. My wife (Japanese) and I live in the States, and hopefully within the next 12 months or so, we’d like to travel to Japan, which given where we are in life, might be our last trip. We are fairly fit . In order to make the most of our time, I have thought about supplementing our travel with bicycles. We don’t need anything expensive/exotic , but we don’t need a ママチャリ either. What we need is something that is lightweight, collapsible/transportable (plane & train) and offers a comfortable ride. Any suggestions?

Thank you.

I’m wildly ignorant outside the experience that I have with my own bikes, but I imagine it’s a case of “Cheap, convenient, durable: pick any two“. I was on a mountain ride once with a guy who had a folding bike… I thought it would be comical, but it had real road-bike gearing… just with a small, foldable frame. Foldable bikes are easy to take on the train (some train lines don’t even require a bag for foldable bikes), but any bike requires more thought before putting it through the meat grinder that is airline travel. Look for a folding bike with road-bike gearing and a purpose-made travel hard case. I just assume that such a thing exists. I also assume it won’t be cheap. The title of this article suggests it would be a helpful place to start. (If you do find such a thing, swing by Kyoto and we’ll ride!) —Jeffrey

— comment by ex-Japan Hand on March 31st, 2018 at 4:44am JST (5 months, 21 days ago) comment permalink

Hey Jeffery,

This is very strange, hope to figure it out before getting busy – Exported 169 photos to Zenfolio and there ended up being 5 random photos duplicated but thrown in here and there AND then I exported a full res 169 photos. and same thing happened but with different photos. Any feedback?

Thanks

It’s hard to guess what’s happening…. “random photos” means what? Another user’s photos? Photos in your Lightroom library that weren’t selected? Something else? Perhaps send a plugin log the next time this happens, with explicit info about exactly what images went amiss. —Jeffrey

— comment by Dan on April 11th, 2018 at 11:52am JST (5 months, 10 days ago) comment permalink

How can I get photos into Google Photos with the same folder hierarchy as in LR CC Classic or same as my Hardrive (which are the same currently). I’m using your folder publisher

I don’t know anything about Google Photos, sorry, except that they have a new API that should eventually allow a dedicated plugin. From the little I’ve interacted with it while working on a plugin, it seems that they have no hierarchy to their albums, at all. —Jeffrey

— comment by Stephen Levitus on May 13th, 2018 at 6:39am JST (4 months, 8 days ago) comment permalink

I have used your Zenfolio uploader for a couple years without incident and have found your plugin to work well. However, this week, the plugin has started throwing up a message that the Zenfolio website is not responding due to technical difficulties after from zero to ten photo uploads. It has often taken me an hour to upload forty images by repeated attempts, being thrown out over and over again. Consequently, the plugin is virtually useless to me, and I have gone in search of another uploader tool. I have liked using your uploader in the past because it makes uploading a one-step process. However, this current glitch makes it useless. I was advised by Zenfolio that this is a big problem for other users and to contact you to see if you are fixing this glitch and when. Please advise because I am about ready to discontinue use of your product if no fix is in the works.
Ron

I wish I could be of help, but the problem is absolutely, unequivocally at Zenfolio. Their API endpoint is returning an HTML page meant for a web browser, not an API data reply, something that it should never do, under any circumstances, so by definition this is their problem, even if the plugin were sending junk (which of course it’s not). It has been their pattern for years for Support to blame the plugin and shoo people my way, even long after their engineers have confirmed the problem is theirs. It’s getting old, and I wish they would stop. In this case, I’ve sent them enough that they should be convinced that the problem is not mine, but I’ve gotten no reply. They just shoo you away to me, and consider “case closed”. Sigh. I don’t know what more I can do. I am as frustrated with Zenfolio as you are. —Jeffrey

— comment by Ron on June 25th, 2018 at 5:44am JST (2 months, 26 days ago) comment permalink

Hey Jeffrey

Quick question…I am doing a project where I have a lot of photos taken through a specific app. The data from other tasks on the app gives me location coordinates, but isn’t physically associated with the image. I need to find a way to add those coordinates to the images in the metadata.

1) Is that possible and

2) We could be talking thousands of photos, or hundreds a day we’d need to do it, so is there any way to do it in a batch or make batch uploading coordinates with location metadata easier? Thanks!

What you want to do is called “geoencoding”, and it’s a common thing, e.g. to use a GPX tracklog from one app to add the location data to photos taken by another app (or another camera). My Geoencoding-support plugin for Lightroom can do this, as any number of standalone phone and PC apps. —Jeffrey

— comment by Dan on June 27th, 2018 at 2:36am JST (2 months, 24 days ago) comment permalink

Hi Jeffrey, Your site is highly recommended from multiple different sources and I have seen its power. However, one thing that I don’t like about it is the reCAPTCHA system that I have to pass in order to access information from a photo. You know the one I mean – you have click all the squares containing street signs etc. It always takes more than a minute or 2 to do the reCAPTCHA tests but often it takes 4, 5 and even up to 6 minutes to do just 1. The different screens just keep coming!!!!!!! Now it’s buses, now it’s roads, now it’s shopfronts. If you get one wrong, you start over. It almost feels like doing an exam. In the past, it was just one test where you had to reproduce a single word via typing and it took a few seconds. Now, it takes a long time. If I have 10 photos, I could spend up to half an hour just doing reCAPTCHAs. Could you replace that system for a less time-consuming system? I don’t mean to sound like I’m complaining. It’s a great site. Cheers.

I have to pay for the bandwidth, and without the reCAPTCHA system the site is immediately overrun by robots. When I run into these reCAPTCHA things on the web, I just click the “I’m a human” box and that’s that… no buses, street signs, or other tests. I used to get the tests, but I’ve passed them sufficiently well that I guess Google now trusts me. Maybe you need to be be logged into a Google account in your browser for this? Or keep their cookies? I don’t know the magic behind it, but if it’s taking you five minutes with each one, you might want to check whether you’re actually human. 😉 —Jeffrey

— comment by Matthew L. on July 21st, 2018 at 3:21pm JST (2 months ago) comment permalink

Hi there. I’m a computer science student and I’ve been learning about web shells and issues with trusting user input, whether text or files.

Since you have a website about exif, I was wondering if you knew much about the topic of PHP code injection via exif. As in, instead of text that says what the camera is, it’s actually PHP code that will be executed by the server the image is uploaded to (assuming the server is running PHP instead of Node or something).

Here is an example video (not mine):
https://www.youtube.com/watch?v=5ImIa9-jy6w

In the above video, they just did phpinfo() call, but you can also use that method to upload web shells to servers, which often lets someone edit or view files on the website.

Have you ever encountered this before, and if so, what are your thoughts on it? Is it common? And how do you protect against it if your website accepts image uploads and also runs PHP?

I’ve not seen it with exif, but I’ve seen plenty of things like it (e.g. with databases instead of exif). The “simple” solution is to never trust user input, and to always sanitize it. Perhaps easier said than done, though. —Jeffrey

— comment by Alan on August 11th, 2018 at 5:53pm JST (1 month, 10 days ago) comment permalink

What a surprise to find that the author of a book that, as a Perl programmer since the 1990’s, I have used many times … also shares both my passion for photography and my opinions about so much that is wrong with the Internet.

I also love the C language but, unlike you, I have had the misfortune of learning the complicated mess that is C++

Cheers,
Tom

— comment by Tom on August 20th, 2018 at 6:55pm JST (1 month ago) comment permalink
Leave a comment...


All comments are invisible to others until Jeffrey approves them.

Please mention what part of the world you're writing from, if you don't mind. It's always interesting to see where people are visiting from.


You can use basic HTML; be sure to close tags properly.

Subscribe without commenting