TextWrangler is the free baby brother of BBEdit, and is a fantastic text editor. On an older computer that runs Mac OS 10.5.7, we’ve been using TextWrangler 3.5.3 to do large-scale web site updates for years because it has multi-file search and replace capabilities that work quickly and smoothly.
Until the last couple of weeks, when the multi-file search broke in very strange ways. I don’t know whether to describe this as a bug, error, corrupt file, issue, or some other term that might lead you here if you are also experiencing this problem. The behavior was that when we press “Find all”, it acts like we chose “Search all”. When we enter a text string that is in one or more files, TextWrangler claims that it’s not present at all. When we enter a text string that is not in any files, TextWrangler brings up every file, highlights nothing (because there is nothing to highlight), and claims that every file contains the string. Choosing case-sensitive or grep did not change the wrong behavior. Choosing small or large file sets did not change the behavior. This was all perfectly consistent and reproducible despite rebooting and reinstallation of TextWrangler 3.5.3.
What finally fixed it was removing a few TextWrangler files from the Library:
Library>Application Support>TextWrangler
Library>Preferences>com.barebones.textwrangler.plist
Library>Preferences>com.barebones.PreferenceData
Library>Caches>com.barebones.textwrangler
After removing those (or renaming them to "problem-[...]" so we still had a copy) and relaunching TextWrangler, the multi-file find no longer got confused with multi-file replace, files turned up and didn’t when they were supposed to, and we were back in business solving actual problems with our web site.
I’m sad that TextWrangler will no longer exist for new computers, even though BBEdit can apparently do even more than TextWrangler ever could. There’s something very satisfying about using software that works (and aside from this short period, TextWrangler has been rock solid) and doesn’t have a huge number of features that I don’t need.
Friday, December 14, 2018
TextWrangler multi-file search problems
Posted by
Michael
at
10:50 AM
0
comments
Tuesday, February 13, 2018
Deprec(i)ated
Who doesn’t love tax software? That glorious buffer between unreadable IRS forms and an intimidated public, hoping to turn a simple page of data entry into 45 interview pages of single questions that feel like a miserably intrusive first date.
Hmm. When I put it that way, it’s less appealing.
But you know what’s even less fun? Reading someone else’s complaint about tax software!
But this isn’t a complaint about tax software. Certainly not about H&R Block’s 2017 TaxCut software for Mac, which inexplicably displays and prints the wrong depreciation percentage (3.1750%) on line 40 of Form 8829 while still secretly applying the correct depreciation percentage (2.5640%) to line 39 to get the correct result on line 41.
It’s a complaint about tax software companies. See, isn’t that better?
Bugs happen. People make the software, and people make mistakes. The trick is to have a sane ticketing system to document and then fix the bugs.
Digression: We don’t call them bugs any more; now they are issues. Bugs are unambiguously errors, and errors suggest blame or fault. Issues are simply disagreements. The software and the IRS instructions disagree about what to put on line 40, for example, so there’s an issue with line 40. An issue is something to be resolved through negotiation or compromise, and makes it clear that the source of the disagreement and responsibility for fixing the disagreement belongs to both the software and the user. This is much like the change in how apologies are phrased these days: H&R Block is sorry if you feel that line 40 should show the correct depreciation percentage. When I was young, apologies did not have a conditional “if” and did not focus on the aggrieved party’s feelings, as if the problem is that anyone paid attention to the wrong behavior.
Further digression: I should clarify that H&R Block is not, in fact, sorry for anything that their software does incorrectly on line 40 of Form 8829. I invented that apology example out of whole cloth. I am sorry if (not that) H&R Block feels (not is) confused by the (not my) suggestion that they would ever actually apologize.
But back to the idea of a ticketing system. See, there should be a way to report a bug. But a company like H&R Block doesn’t want to get flooded with bug reports, so they use a challenge and response system to weed out the reports they don’t want. Which appears to be all of them. The specific challenge they use is this: “Find the online chat function that our phone system, our website, and our software help system all tell you to use.” The response they are looking for is for users to give up, because there is no actual chat function. If you fail to provide the correct response, their phone system will put you on hold for a very long time, transfer you to a person who may or may not understand the complicated phrase “line 40,” put you on hold again while they look to see if this is already a known issue, and then transfer you to the survey without ever gathering any actual details.
After spending over three hours trying to get the bug report to H&R Block, I successfully reached a human being who confirmed that the incorrect depreciation percentage was a known “issue” and was not currently expected to be fixed. Yay! So I can either let the software show the wrong percentage on line 40 but the right result on line 41 and efile, or I can override the software to show the correct percentage and be forced to mail in my return via the US Mail like an animal in the wilderness (to borrow a phrase). First world problems.
I’d rather see the bug issue reporting system be publicly accessible, so I could check for myself to see what people have reported. That sort of transparency would probably be terribly embarrassing for H&R Block, but works well for users like me. I also used to like the “data source” feature in tax software, where you could select a number on a form and have the software tell you which piece of its digital ass worksheet or interview it pulled that number out of.
The IRS doesn’t help by having a complicated depreciation system. We could simplify that. Line 40 of Form 8829 is about depreciating my house. In my experience, no piece of my house lasts 39 years or even 27.5 years. More like 2-3 years. Or possibly falling down faster than I can keep propping it back up. I’ve seen Ford Fiestas with fewer miles than my house hold up better, and my house isn’t moving a whole lot faster than a Ford Fiesta.
Tax software, like a Ford Fiesta, isn’t meant to last. It’s a transient object of ridicule interest, meant to meet a need briefly and then be replaced. But in both cases I’d like it to work while I have it, even if it makes a terrible putt-putt noise and lurches every time I turn left or try to take a child tax credit.
Posted by
Michael
at
9:34 AM
1 comments
Saturday, December 23, 2017
Using Skype on Mac OS 10.7
Skype has been removing the ability of older Mac operating systems to run either the Skype application or Skype through a web browser. Here’s what worked for me today to get Skype working on a Mac running OS 10.7.5.
Download Skype 6.15.0.335, which was the latest version of the application that can open on my Mac.
Right-click or Control-click on Skype in the Finder and select Show Package Contents.
Navigate to Contents folder and open the file Info.plist in TextEdit.
Change "6.15" and "6.15.0.335" (two locations) to "7.59". That makes it look like you're running a current version of Skype.
Save the file, and launch Skype. Login as usual.
I have no idea if there are terrible security vulnerabilities to doing this. But Skype finally worked without forcing me to upgrade my operating system just to talk to my parents.
Posted by
Michael
at
8:06 PM
0
comments
Monday, October 30, 2017
A little experiment
Here’s my current daydream of how to make it easier for young Jewish adults to stay engaged or remain engaged when membership at a specific synagogue is not a good fit.
Are you a young Jewish adult between the ages of 18 and 30? Looking for activities and connections? Join the new URJ young adults group. It’s a regional membership that is mobile, social, and flexible.
Temple membership is great for kids, families, and older adults who need the stability and strength of a locally centered Jewish community to draw on. But young adults are more mobile and need a Jewish community that goes beyond neighborhood boundaries. That’s exactly why the new regional membership is perfect for young adults. Fun in-person activities around your region just for young adults give you new experiences and new friends. Online chat groups provide new connections and contacts. Our tikkun olam (repair the world) calendar gives you chances to give of your time and skills and energy to help out around our region in different ways, and our education meetups let you go to local talks and classes with other young adults.
Want religious services? We organize two options, and you’re always welcome to either or both. There’s a monthly Friday night dinner and services just for young adults. On a different weekend, our touring minyan picks a different synagogue each month for either Friday night or Saturday morning.
For High Holiday services, you can choose any local participating synagogue, and we will get you tickets and the schedule of services.
Life can throw us curve balls, and you may want to seek a rabbi’s counsel. We can set you up with a time to meet with someone convenient to you.
This new young adults group is run by a regional leadership team with the full support of synagogues in the region. A portion of the membership fees are distributed to the synagogues, and the rest supports our regional staff and programming. The annual membership fee is a sliding scale based on your income MINUS your loan payments. And when you find yourself settling down more locally and want to transition to a membership at a specific synagogue, know that our programs are open to young adult synagogue members as well.
Whether or not you went to religious school or Jewish camps, whether or not you participated in a NFTY or Hillel group, no matter how you identify or who you date, we want to meet you where you are and help you connect to other young Jewish adults in your area. Welcome!
Posted by
Michael
at
10:17 PM
2
comments
Sunday, July 16, 2017
Someone else’s need
The Atlantic has published a lengthy article about the current debate in the Conservative Jewish movement over interfaith marriages. While this is clearly an important debate to many people in the Conservative movement, there aren’t very many people left in the Conservative movement. Perhaps it’s because the Conservative movement has spent decades driving away enormous segments of its membership.
Rabbi David Wolpe is quoted in the article as saying “I don’t necessarily feel that someone else’s need is my obligation. Someone else may need a rabbi to bless that union, or may want a rabbi to bless that union. It doesn’t mean that I have to do it.”
That is the exact attitude that rabbis and synagogue leaders decry in the unaffiliated and the underaffiliated. People do not join synagogues or do not provide enough money or time to keep synagogues afloat, saying “I don’t necessarily feel that someone else’s need is my obligation. Someone else may need or want a synagogue to feel connected to a Jewish community, to provide Jewish education for children or adults, to offer worship services or social services, or to help with major life events and transitions. It doesn’t mean that I have to support a synagogue.”
I certainly cannot persuade someone who has no need for a synagogue that they should personally support a synagogue. I feel I can make a reasonable case to someone who does sometimes need or want a synagogue, as long as rabbis and synagogue leaders are not actively dismissing them. The quote from Rabbi Wolpe, on the other hand, makes that case much harder to make. I am sure he would be able to explain why I should not expect him to extend his logic to refusing to lead a funeral or refusing to counsel a congregant, though I do not see that distinction in his quote.
Someone else’s need is not my obligation.
Am I my brother’s keeper?
Posted by
Michael
at
8:33 PM
0
comments
Sunday, July 2, 2017
Onwards
“This day I call the heavens and the earth as witnesses against you that I have set before you life and death, blessings and curses. Now choose life, so that you and your children may live.” —Deuteronomy 30:19
Prioritizing people’s lives over convenience should not be a difficult or controversial position for a synagogue to take. Yet our synagogue has refused to stop serving nuts and mango at events connected to the Hebrew School, despite knowing that doing so endangers our child’s life. After over two years of discussions, endless meetings, and broken promises, it is clear that the synagogue has other priorities.
The synagogue watched a child in their Hebrew School have to leave family programs in tears on two separate occasions because they decided to serve nuts or mango in the middle of the program. The Chanukah party was also directly connected to the Hebrew School, but our request to make that party nut-free was met with overt hostility rather than any shred of concern for ensuring the safety of our child.
In the minds of many people in the synagogue leadership, it is fine to continue to exclude a child with life-threatening food allergies from active participation in synagogue life. It is more important that they be able to serve foods with nuts at every Tot Shabbat than to allow that child to be welcome and included at onegs and kiddushes. It is more important that they be able to serve mango sorbet than to allow that child to play with other children afterwards. It is more important to avoid any additional thought or possible inconvenience than to care about a vulnerable member of the community. Instead they are willing to tell a child that his life is unimportant and does not have inherent worth.
That does not reflect any values that I recognize as Jewish, human, or decent.
The synagogue leadership has spoken repeatedly about how the rabbi has a responsibility to make the synagogue into a community of chesed, of caring. But the rabbi is not the Wizard of Oz who will make this tin man synagogue discover that it had a heart all along. He can talk about the value of welcoming and including others all he wants, but he will never truly reach people who focus on Otherness and do not start out with a true interest in being welcoming or inclusive, people who do not have a core of caring to start with.
The synagogue leadership is not monolithic. But sadly, it has now transitioning from non-functional to non-existent. I've come to lectures and classes and services and family events for 5 years, I've donated hundreds of hours of my own time to the synagogue over the past 2 years of being on the board, and there are many people I will miss seeing. But David is now old enough to start seeing the world as it could be in addition to seeing the world as it is, and to understand that individual people are responsible for making decisions that hurt him, that exclude him, or that risk his life. It is vital for his sake that he know that I am not one of those people.
When we formally converted our child to Judaism, we promised to raise him in a Jewish community. Calling this synagogue a Jewish community makes a mockery of Jewish values and of the term “community.” The Jewish values I was raised with, the values I still hold, insist that I leave.
Posted by
Michael
at
12:13 PM
0
comments
Thursday, January 26, 2017
Choice in health care
Posted by
Michael
at
9:42 AM
0
comments
Tuesday, November 22, 2016
Why shovel? and ice dam info
Today was the first day that really felt like winter here. Even with the dusting of snow on the ground Monday morning, the air on Monday just wasn’t as brisk as today.
We have a roof rake. We have ice melt. We have a shovel, and we probably have ice scrapers for the cars. And our neighbor just got a snowblower and says he’s looking forward to doing the whole block.
But we don’t have Heat Trak mats for our front steps. Those look convenient.
Update February 19, 2017:
The second winter after having our roof redone, it started leaking into our enclosed porch again. We think that it wasn’t through the roof itself this time, but rather from behind the gutters. The gutters filled with ice, the melting snow from higher up pushed its way backwards through the fascia and soffit boards, and came in dripping from the soffit boards inside the porch. Unlike 2 years ago, there was no water coming in through the porch ceiling.
Even if our house were completely unheated, we would have snow melt on our roof because of sunshine. With the right combination of cold temperatures and snow melt, the front gutter will gradually fill with ice and create a larger and larger block of ice.
We need to replace the fascia and soffit boards when we rebuild the front porch, and we need to replace the beat-up gutters anyway. Hopefully with a proper pitch to the soffit boards and a sane flashing approach, we can keep the water that backs up behind an iced-up gutter from backing into the porch itself. In part, that requires a contractor who understands that the gutter will ice up, that snow will melt, and that we want a backup plan for keeping the water outside.
I’ve also been looking into heat tape or heat cable for the gutter and downspouts. There are two basic types of heat cable: constant wattage, and self-regulating. We want self-regulating. We also want some sort of sanity control that turns it off if the weather is warm or if there’s no snow, so it’s not using power when it’s not needed. Perhaps a wifi-interactive switch would help.
If we want to melt ice on the eaves, there’s lots of panel choices shown here:
http://www.meltyourice.com/wp-content/uploads/Product-selection-guide1.jpg
Here are some other useful local links:
http://www.heaterzone.com/Roof_Gutter_De_Icing_Heater_Cable_s/36.htm?gclid=CNTz38WFm9ICFY6KswodJ7kGtA
http://www.moonworkshome.com/gutters/
http://www.negutterkings.com/products/gutter-protection/
Moonworks and NE Gutter Kings both offer gutter caps that can have heat cable run through them, which seems helpful in terms of distributing the area that can melt.
In general with gutters, we want to look at materials options and size options. Larger size seems better, given that the majority of the overly large house roof goes down to a total span of 25 feet of gutter. We want strong, because we don’t want ladders to damage the gutters. Would fiberglass or nylon be strong enough? Would the heat transfer characteristics be better or worse for preventing ice build-up and for letting the heat cable work?
How far out of the downspouts do we want to run the heat cable?
Where should the outlet and switch be for ease of installing heat cables?
Do we want cleanouts to create escape paths for water? Removable gutters for the winter? Rain chains instead of downspouts?
Posted by
Michael
at
10:04 PM
0
comments
Monday, November 14, 2016
Make the investors unhappy
When would you be willing to go to jail? What would be so worth protesting that you would give up your liberty and maim your future in order to speak out?
But wait. What would going to jail accomplish?
Does it increase your credibility once you regain your voice?
Does it amplify your message?
Are the people who run our justice system and our jails going to be horrified at jailing you or a thousand like you? Are you human to them in a way that millions of others are not? Are you immune from vilification? From lies and smears and innuendo and mockery and disbelief and dehumanization?
Will our justice system and our jails be overwhelmed by the vast numbers of protestors? In this existing and scalable system of mass incarceration, the largest in human history, will so many people join you that the cells will fill and no more will be able to be built?
Will the cries from broken families reach the privileged who have not had to hear the cries from hundreds of thousands of families torn asunder by our deportation of millions over the past two decades?
You may not be able to avoid jail. You may decide to engage in meaningful speech or action that puts you at risk of being jailed (whether you realized it or not), where jail is a side effect. But do not kid yourself that jail itself is a practical or even impractical path to resistance or change.
Find another path.
http://www.bloomberg.com/news/articles/2016-11-09/private-prison-stocks-are-surging-after-trump-s-win
Posted by
Michael
at
5:37 PM
0
comments
Thursday, November 10, 2016
Rig sailboats, not elections
Yes, our elections are rigged. Not by people faking the results as they count ballots, but by the rules that prevent too many people from voting to start with.
Voter id laws are specifically designed to drive down the ability to vote for the less privileged. The biggest effect is to suppress voting for racial minorities. http://www.theatlantic.com/politics/archive/2016/08/voting-rights-court-decisions-racism/493937/
Closing polling places creates obstacles for people with less free time and fewer transportation options, suppressing votes from the less privileged. Choosing which polling places to close based on demographics or voting patterns is even worse. https://www.thenation.com/article/there-are-868-fewer-places-to-vote-in-2016-because-the-supreme-court-gutted-the-voting-rights-act/
Every presidential election, there are stories about people waiting in line for hours to vote. Those stories are overwhelmingly from urban areas, and it suppresses votes from minority populations and from the less privileged.
And decades of mass incarceration overwhelmingly targeting the black community, combined with laws removing the right to vote from those in jail and those who have already served their time, has created enormous racial disparities in who is allowed to vote.
Every registration deadline is an unnecessary hurdle. Every obstacle to early voting and absentee voting suppresses votes. Every flimsy excuse used to toss voter registrations and every even flimsier excuse to toss ballots is a failure to respect democracy.
Having 50 states running 50 different voting systems could be a wonderful laboratory for experimenting and figuring out how to increase voting rates, but instead is being used to develop more and more precise ways to reduce voting rates among less privileged populations. And every disparity in how voting works across the country makes it harder to have a sensible conversation about how voting should work.
And then there’s the Electoral College, which is weighted to ensure that people who live in small states and rural states have a larger voice than people who live in large states and urban states. Maine gets 4 votes in the Electoral College. The population of Massachusetts is 5 times the population of Maine, but we don’t get 20 votes in the Electoral College. We get 11.
We could solve this. We could demand a Voting Rights amendment to the Constitution. We could ensure that everyone who wants to vote has a reasonable chance to vote, and that your opportunity to vote does not vary dramatically depending on where you live. We could insist that voting matters because a government’s legitimacy depends on consent of the governed. We could insist that voting matters because a population that has a voice is more engaged in the necessary shared task of living together. And with time, we might even collectively start to believe it.
Posted by
Michael
at
9:32 AM
0
comments
Monday, October 24, 2016
Wait, now they recommend car seats?
When David was a newborn, we carefully followed the AAP recommendations about how to avoid SIDS: no crib bumpers, put down on his back for sleeping, nothing else in the crib for the first year. I heard plenty from prior parents of newborns about how different the recommendations were, and I heard the doubt in their voices (whether it was intended or imagined on my part) about whether these recommendations were really necessary. How could they doubt, I wondered. Human knowledge advances, and of course we should follow the latest advice.
Now AAP recommends that newborns sleep in the same room as the parents for the first year. And here I am doubting the new recommendation, or possibly just feeling the gut-level punch of being told we hadn’t done the best we could as parents. We put David in his own room across the hall after about a month, and we know we all got more sleep that way. But if this recommendation had been in place five years ago, we would have taken it as the current gospel, and we would never have known any differently. I know that, just like I’ve always known that recommendations would continue to change. Maybe I just figured it would take longer than 5 years to start feeling like I belong to a previous and outdated generation of parents.
Posted by
Michael
at
12:44 PM
0
comments
Sunday, October 16, 2016
Why are j2 and efax so expensive?
Short answer: because customers don’t shop around.
If you want a simple voicemail line because you don’t want to use the voicemail service that came with your cell plan or your home line, Google Voice is free. Maxemail was $24 to $84/year. j2 and efax cost even more, if you can even get their voicemail service to work correctly. Why use j2 or efax?
If you want a simple fax line, Maxemail was $24 to $84/year. efax is over $200/year. You can see some other prices at www.faxcompare.com: typically $60 to $120/year. The cost for efax is through the roof.
What bonus do you get with efax? Semi-personalized trolling if you dare to criticize them publicly. And while efax might outsource their customer service to the lowest bidder in other countries, the efax troll could be someone in your own country! I’ve removed over 10 nasty comments from the efax troll just this past week. That kind of semi-personalize trolling service that efax provides costs money, so rest assured that the revenue from efax’s premium prices are being put to good use.
A smart troll would cost more. Perhaps when efax raises their prices again, they’ll be able to afford that.
Posted by
Michael
at
11:12 PM
1 comments
Friday, October 14, 2016
Kids Footstop
Time for new shoes for David, and we had heard good things recently about Kids Footstop in Winchester. Those good things were right! Friendly and competent help, a nice selection of decent brands, and they carefully measured David’s feet with the same sort of Brannock device that I remember from when I was a kid. Turns out he’s currently a 12.5 with regular width, so aiming a little up for longer wear means either 12.5 in Tsukihoshi or 13 in most other brands. No wonder he was having trouble getting his size 11 Stride Rites on.
The Tsukihoshi shoes are machine washable and unbelievably lightweight, but don’t come with light-up options. The Skechers had an on/off switch for the lights, which we really liked the idea of, but the foodbed was too squishy. The Pediped shoes were waterproof, which would have been really nice for the winter, but they were too stiff and might have been a bit too tight across the toebox. The Stride Rites that he landed on, the same brand that he just wore out, have a very odd-looking tread that resembles rubber balls. He declared them “perfect!”
The price was pretty much the same as Zappo’s, with some assurance that he’s actually getting the right size shoe and a chance for him to try them on first. We could have saved a few dollars if we knew exactly what we wanted and shopped around online, and it would have been the wrong few dollars to save.
Posted by
Michael
at
8:49 PM
0
comments
Reputation management, j2 style
Are you concerned about the reputation of your business? Do you want to know how to turn unhappy customers into your best asset? Well, j2 has the winning formula!
Keep unhappy customers focused on your business! A happy customer tells 3 others about your business, while an unhappy customer tells 100 others about your business. But sometimes 100 isn’t enough. If you can keep those unhappy customers thinking about your business, you can persuade them to expand their reach. Maybe they will keep writing about your business, and that’s marketing that you just can’t buy.
Demean your unhappy customers publicly! Call them names. Accuse them of being dishonest or stupid. Hurl the worst insults you can think of, like “feminist.” Don’t worry about changing the opinions of your unhappy customers. Your real audience is prospective future customers. They want to know how you treat your current customers, and this is your chance to show them what life will be like if they decide to go with your business.
Do not try to resolve complaints! Never show weakness in any way. If you decide that it’s really important to offer some sort of refund or compensation for having failed to provide the product or service you promised, then make sure to include a statement blaming the customer for your failure. Remember, an unhappy customer tells many more people about your business than a happy customer does, and how you respond to failure is what truly decides whether customers are happy or unhappy.
Do not listen to your customers! You know your business better than anyone else, so why would you listen to people who have different priorities? They will wind up diverting you from your real priorities. There is nothing you can learn from listening to your customers, because customers are notoriously focused on silly distractions like pricing, products and services, and customer service.
Ignore the Better Business Bureau! The BBB is an antiquated holdover from before customers could talk to each other directly and before sites like Ripoff Reports or Google. Nobody cares about an F rating from the BBB any longer.
Hide behind multiple business names! Shell games have a long and glorious history. If your customers can’t figure out whether you are j2, eFax, TrustFax, RapidFax, or lots of other names, they won’t be able to figure out where those pesky credit card charges are really coming from. And you can stop them from leaving for months by pretending that they are contacting the wrong company. Want to cancel? Oops, guess again!
If all else fails, you can always buy another competitor, jack up the prices, and hope that some of their customers are too busy to notice and find a better alternative.
Posted by
Michael
at
2:16 PM
0
comments
Friday, September 30, 2016
An online chat with eFax (a j2 company)
Stanley Kox: Hi, my name is Stanley Kox. How may I help you?
Posted by
Michael
at
10:01 AM
16
comments