<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://ronware.org/w/index.php?action=history&amp;feed=atom&amp;title=Blog%2FJuly_2013%2FJul_19th</id>
	<title>Blog/July 2013/Jul 19th - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://ronware.org/w/index.php?action=history&amp;feed=atom&amp;title=Blog%2FJuly_2013%2FJul_19th"/>
	<link rel="alternate" type="text/html" href="https://ronware.org/w/index.php?title=Blog/July_2013/Jul_19th&amp;action=history"/>
	<updated>2026-05-31T05:57:37Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://ronware.org/w/index.php?title=Blog/July_2013/Jul_19th&amp;diff=8578&amp;oldid=prev</id>
		<title>Ron at 10:25, 26 July 2013</title>
		<link rel="alternate" type="text/html" href="https://ronware.org/w/index.php?title=Blog/July_2013/Jul_19th&amp;diff=8578&amp;oldid=prev"/>
		<updated>2013-07-26T10:25:40Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 10:25, 26 July 2013&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l56&quot; &gt;Line 56:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 56:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;shabbat shalom&amp;#039;&amp;#039;!&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;shabbat shalom&amp;#039;&amp;#039;!&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{nav|Blog|Blog|Blog/July 2013/Jul 12th|Jul 12th||}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{nav|Blog|Blog|Blog/July 2013/Jul 12th|Jul 12th|&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Blog/July 2013/Jul 26th&lt;/ins&gt;|&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Jul 26th&lt;/ins&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ron</name></author>
	</entry>
	<entry>
		<id>https://ronware.org/w/index.php?title=Blog/July_2013/Jul_19th&amp;diff=8570&amp;oldid=prev</id>
		<title>Ron: Created page with &quot;&lt;!-- vim: tw=0 complete=.,w,b,kspell spelllang=en :   --&gt;  {{blog}}  {{bheadernew|Jul 19th|http://ronware.org/devar/vaethanan5773.pdf}}   Hi, again!  Victory!  After a somewhat p...&quot;</title>
		<link rel="alternate" type="text/html" href="https://ronware.org/w/index.php?title=Blog/July_2013/Jul_19th&amp;diff=8570&amp;oldid=prev"/>
		<updated>2013-07-19T06:40:11Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;lt;!-- vim: tw=0 complete=.,w,b,kspell spelllang=en :   --&amp;gt;  {{blog}}  {{bheadernew|Jul 19th|http://ronware.org/devar/vaethanan5773.pdf}}   Hi, again!  Victory!  After a somewhat p...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;!-- vim: tw=0 complete=.,w,b,kspell spelllang=en :  &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{blog}}&lt;br /&gt;
&lt;br /&gt;
{{bheadernew|Jul 19th|http://ronware.org/devar/vaethanan5773.pdf}} &lt;br /&gt;
&lt;br /&gt;
Hi, again!&lt;br /&gt;
&lt;br /&gt;
Victory!  After a somewhat pointlessly long process, I managed to convince the CEO to let me work &amp;quot;half-time&amp;quot;.  So I maintain an income stream (albeit half what it was), and gain free time to build up my business and work on the products I want to develop.  Actually, the CEO only agreed to &amp;quot;try it for a month&amp;quot;... so it may be that I only get one month of this arrangement before heading back to the negotiation table.  In the meantime, I need to make hay while the sun shines!&lt;br /&gt;
&lt;br /&gt;
Besides dealing with our post-9&amp;#039;th-Av laundry pile, Esther continued attending the &amp;quot;small business course&amp;quot;.  Most of the information they&amp;#039;re giving is not new to her, though the Hebrew terminology is.  She gets a bit frustrated at her fellow &amp;quot;students&amp;quot; who needlessly argue with the instructor. &amp;quot;Needlessly&amp;quot;, because they clearly don&amp;#039;t know what they are talking about.  I feel her pain.&lt;br /&gt;
&lt;br /&gt;
Our new-immigrant guest Dinah has already started an [https://en.wikipedia.org/wiki/Ulpan &amp;#039;&amp;#039;ulpan&amp;#039;&amp;#039;], and has also started looking for an apartment.  Leaving the nest so quickly!  Our daughter Sarah has been so busy with her filming work this week, that we&amp;#039;ve only seen her twice.  We think she&amp;#039;s still in the Land, but can&amp;#039;t swear to that.  Daniela and Jeremy have, after only a year of marriage, needed to expand their bookcase collection in order to accommodate their scholarly tendencies.  I&amp;#039;m jealous!  And nephew Chris has been having a great time on his yeshiva-study program; we look forward to seeing him next week.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;extreme geekiness follows:&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-left:4em; margin-right:4em;&amp;quot;&amp;gt;&lt;br /&gt;
One of the guys at work came to me, desperately seeking a solution to a seemingly simple problem: &amp;quot;how can I grab the data from a file, starting from the &amp;#039;&amp;#039;last&amp;#039;&amp;#039; occurrence of some text, until the end of the file&amp;quot;?  He came to me because, well... you know.&lt;br /&gt;
&lt;br /&gt;
So I did what I always do, first off: check Google to see what others have come up with.  Though I found solutions for &amp;#039;&amp;#039;first&amp;#039;&amp;#039; occurrence-to-end-of-file (which is trivial), I couldn&amp;#039;t find the other.  So I broke the problem into two parts: (1) find the line number of the last occurrence of the text, and (2) dump the file from that point to the end.&lt;br /&gt;
&lt;br /&gt;
Finding a bit of text in a file is easy.  Just use [https://en.wikipedia.org/wiki/Grep grep]. So the first part is like this (looking for the string &amp;#039;foo&amp;#039; in the file &amp;#039;thefile&amp;#039;):&lt;br /&gt;
&lt;br /&gt;
 grep -n foo thefile | tail -n 1 | cut -d: -f1&lt;br /&gt;
&lt;br /&gt;
This little bit says &amp;#039;find &amp;#039;&amp;#039;foo&amp;#039;&amp;#039; in &amp;#039;&amp;#039;thefile&amp;#039;&amp;#039;, with line-numbers, and then take the last line of what you found, and snip off the number at the front&amp;#039;.  So the result is just the line number of the last occurrence of the text being looked for.  How can you use that?  It turns out you can also tell &amp;#039;tail&amp;#039; to dump from a line number.  So you grab the previous information and give it to tail:&lt;br /&gt;
&lt;br /&gt;
 tail -n+`grep -n foo thefile | tail -n 1 | cut -d: -f1` thefile&lt;br /&gt;
&lt;br /&gt;
Voilà!  There might be an easier way to do it, but this is pretty cool.  And it demonstrates how to piece together the unix command-line tools to accomplish bigger tasks.  Sorry for the diversion...&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What else?  Well:&lt;br /&gt;
* Our neighbors [http://www.israelnationalnews.com/Articles/Article.aspx/13563 continue to pollute our aquifers], in violation of the &amp;quot;Oslo Accords&amp;quot;.  Not that they have ever been in compliance with them.&lt;br /&gt;
* Why you [http://arstechnica.com/information-technology/2013/07/you-may-already-be-a-winner-in-nsas-three-degrees-surveillance-sweepstakes/ may already be a winner] in the NSA three-degrees of surveillance sweepstakes!&lt;br /&gt;
* Using Google Backup?  [http://it.slashdot.org/story/13/07/18/1726227/google-storing-wlan-passwords-in-the-clear They apparently store your passwords] &amp;quot;in the clear&amp;quot;.  No, that&amp;#039;s not a Good Thing.&lt;br /&gt;
* There is a [http://www.washingtonpost.com/national/broad-coalition-sues-feds-to-halt-electronic-surveillance-by-national-security-agency/2013/07/16/28e467a6-ee3a-11e2-bb32-725c8351a69e_story.html coalition to halt the surveillance].  Good luck!&lt;br /&gt;
&lt;br /&gt;
Those in power &amp;#039;&amp;#039;always&amp;#039;&amp;#039; seek more power.  Once they have acquired that power, they don&amp;#039;t give it up willingly.  Oh sure, everyone is now aware of what the more paranoid among us have been saying for years... that the gov&amp;#039;t is, in fact, collecting your private information.  Do you &amp;#039;&amp;#039;really&amp;#039;&amp;#039; think they will stop collecting it because it&amp;#039;s illegal for them to do so?  If you really do, I&amp;#039;ve got some prime beach-front property here in Maʿale Adummim for sale, dirt cheap.  Trust me...&lt;br /&gt;
&lt;br /&gt;
Next week I hope to have a few more articles written for my site, explaining &amp;#039;&amp;#039;what you can do&amp;#039;&amp;#039; about all this.  I&amp;#039;ll be working on putting the finishing touches on the site by the start of August, when I become &amp;quot;half-freeman, half-slave&amp;quot; (I&amp;#039;ve been waiting to use that &amp;#039;&amp;#039;halakhic&amp;#039;&amp;#039; term, even though it&amp;#039;s not really appropriate).  Until then, you&amp;#039;ll have to be patient.&lt;br /&gt;
&lt;br /&gt;
Finally!  We&amp;#039;re back to a &amp;quot;normal&amp;quot; &amp;#039;&amp;#039;shabbat&amp;#039;&amp;#039; at home.  No guests this week, we&amp;#039;ll serve up:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;kebabs&amp;#039;&amp;#039;,&lt;br /&gt;
mushroom soup,&lt;br /&gt;
veggie burgers,&lt;br /&gt;
beet salad,&lt;br /&gt;
potato salad,&lt;br /&gt;
egg salad,&lt;br /&gt;
and a dessert platter from our wonderful &amp;#039;&amp;#039;meḥutanim&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Until next week,&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;shabbat shalom&amp;#039;&amp;#039;!&lt;br /&gt;
&lt;br /&gt;
{{nav|Blog|Blog|Blog/July 2013/Jul 12th|Jul 12th||}}&lt;/div&gt;</summary>
		<author><name>Ron</name></author>
	</entry>
</feed>