Skip to content

Commit 019d88e

Browse files
ruby one-liners book announcement
1 parent 8f25f67 commit 019d88e

File tree

15 files changed

+110
-18
lines changed

15 files changed

+110
-18
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ I'm addicted to reading fantasy/sci-fi books, so I have a [blog](https://learnby
66

77
## Posts
88

9+
* [Ruby One-Liners Guide book announcement](https://learnbyexample.github.io/ruby-oneliners-guide-announcement/)
910
* [Understanding Ruby Regexp book announcement](https://learnbyexample.github.io/understanding-ruby-regexp-announcement/)
1011
* [2023: year in perspective](https://learnbyexample.github.io/2023-year-in-perspective/)
1112
* [Festive offers for books on Python, Linux, Regular Expressions and more](https://learnbyexample.github.io/programming-deals-2023/)

atom.xml

+93-7
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,94 @@
55
<link href="https://learnbyexample.github.io/atom.xml" rel="self" type="application/atom+xml"/>
66
<link href="https://learnbyexample.github.io"/>
77
<generator uri="https://www.getzola.org/">Zola</generator>
8-
<updated>2024-02-02T00:00:00+00:00</updated>
8+
<updated>2024-02-20T00:00:00+00:00</updated>
99
<id>https://learnbyexample.github.io/atom.xml</id>
10+
<entry xml:lang="en">
11+
<title>Ruby One-Liners Guide book announcement</title>
12+
<published>2024-02-20T00:00:00+00:00</published>
13+
<updated>2024-02-20T00:00:00+00:00</updated>
14+
<link rel="alternate" href="https://learnbyexample.github.io/ruby-oneliners-guide-announcement/" type="text/html"/>
15+
<id>https://learnbyexample.github.io/ruby-oneliners-guide-announcement/</id>
16+
<content type="html">&lt;p&gt;Hello!&lt;&#x2F;p&gt;
17+
&lt;p&gt;I am pleased to announce a new version of my &lt;strong&gt;Ruby One-Liners Guide&lt;&#x2F;strong&gt; ebook. Examples, exercises, solutions, descriptions and external links were added&#x2F;updated&#x2F;corrected.&lt;&#x2F;p&gt;
18+
&lt;p&gt;When it comes to command line text processing, there are several well known tools like &lt;code&gt;grep&lt;&#x2F;code&gt; for filtering, &lt;code&gt;sed&lt;&#x2F;code&gt; for substitution and &lt;code&gt;awk&lt;&#x2F;code&gt; for field processing. Compared to such tools, &lt;strong&gt;Ruby has a feature rich regular expression engine, plenty of builtin modules and a thriving ecosystem&lt;&#x2F;strong&gt;. Another advantage is that Ruby is more &lt;strong&gt;portable&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
19+
&lt;p&gt;This ebook will show examples for filtering and substitution features, field processing, using standard and third-party modules, multiple file processing, how to construct solutions that depend on multiple records, how to compare records and fields between two or more files, how to identify duplicates while maintaining input order and so on.&lt;&#x2F;p&gt;
20+
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;&lt;br&gt;
21+
&lt;h2 id=&quot;release-offers&quot;&gt;Release offers&lt;a class=&quot;zola-anchor&quot; href=&quot;#release-offers&quot; aria-label=&quot;Anchor link for: release-offers&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
22+
&lt;p&gt;To celebrate the new release, you can download PDF&#x2F;EPUB versions of &lt;strong&gt;Ruby One-Liners Guide&lt;&#x2F;strong&gt; for FREE till 29-February-2024. You can still pay if you wish ;)&lt;&#x2F;p&gt;
23+
&lt;ul&gt;
24+
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;learnbyexample.gumroad.com&#x2F;l&#x2F;ruby-oneliners&quot;&gt;Gumroad&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
25+
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;leanpub.com&#x2F;ruby-oneliners&#x2F;c&#x2F;new_release&quot;&gt;Leanpub&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
26+
&lt;&#x2F;ul&gt;
27+
&lt;p&gt;&lt;strong&gt;Ruby Text Processing&lt;&#x2F;strong&gt; bundle is free as well:&lt;&#x2F;p&gt;
28+
&lt;ul&gt;
29+
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;learnbyexample.gumroad.com&#x2F;l&#x2F;ruby-textprocessing&quot;&gt;Gumroad&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
30+
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;leanpub.com&#x2F;b&#x2F;ruby-textprocessing&#x2F;c&#x2F;new_release&quot;&gt;Leanpub&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
31+
&lt;&#x2F;ul&gt;
32+
&lt;br&gt;
33+
&lt;h2 id=&quot;what-s-new&quot;&gt;What&#x27;s new?&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-s-new&quot; aria-label=&quot;Anchor link for: what-s-new&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
34+
&lt;ul&gt;
35+
&lt;li&gt;Command version updated to &lt;strong&gt;Ruby 3.3.0&lt;&#x2F;strong&gt;&lt;&#x2F;li&gt;
36+
&lt;li&gt;Added more exercises&lt;&#x2F;li&gt;
37+
&lt;li&gt;Long sections split into smaller ones&lt;&#x2F;li&gt;
38+
&lt;li&gt;In general, many of the examples, exercises, solutions, descriptions and external links were updated&#x2F;corrected&lt;&#x2F;li&gt;
39+
&lt;li&gt;Updated Acknowledgements section&lt;&#x2F;li&gt;
40+
&lt;li&gt;Code snippets related to info&#x2F;warning sections will now appear as a single block&lt;&#x2F;li&gt;
41+
&lt;li&gt;Book title changed to &lt;strong&gt;Ruby One-Liners Guide&lt;&#x2F;strong&gt;&lt;&#x2F;li&gt;
42+
&lt;li&gt;New cover image&lt;&#x2F;li&gt;
43+
&lt;&#x2F;ul&gt;
44+
&lt;br&gt;
45+
&lt;h2 id=&quot;videos&quot;&gt;Videos&lt;a class=&quot;zola-anchor&quot; href=&quot;#videos&quot; aria-label=&quot;Anchor link for: videos&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
46+
&lt;p align=&quot;center&quot;&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; loading=&quot;lazy&quot; src=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;embed&#x2F;nsWVepZruws&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;&#x2F;iframe&gt;&lt;&#x2F;p&gt;
47+
&lt;p&gt;On this blog, I &lt;a href=&quot;https:&#x2F;&#x2F;learnbyexample.github.io&#x2F;tips&#x2F;&quot;&gt;post tips&lt;&#x2F;a&gt; covering Python, command line tools and Vim. Here are video demos for these tips:&lt;&#x2F;p&gt;
48+
&lt;ul&gt;
49+
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=THSMmCZQn1A&amp;amp;list=PLTv2U3HnAL4PlFDiH3FXTHXRbhWs2sB3F&quot;&gt;Python tips&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
50+
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=p0KCLusMd5Q&amp;amp;list=PLTv2U3HnAL4PNTmRqZBSUgKaiHbRL2zeY&quot;&gt;Linux command line tips&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
51+
&lt;&#x2F;ul&gt;
52+
&lt;br&gt;
53+
&lt;h2 id=&quot;testimonials&quot;&gt;Testimonials&lt;a class=&quot;zola-anchor&quot; href=&quot;#testimonials&quot; aria-label=&quot;Anchor link for: testimonials&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
54+
&lt;blockquote&gt;
55+
&lt;p&gt;This Ruby one-liners cookbook is incredible. Pretty mind boggling all the stuff you can do.&lt;&#x2F;p&gt;
56+
&lt;p&gt;— &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;jbrancha&#x2F;status&#x2F;1506766118756786189&quot;&gt;feedback on twitter&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
57+
&lt;&#x2F;blockquote&gt;
58+
&lt;br&gt;
59+
&lt;h2 id=&quot;table-of-contents&quot;&gt;Table of Contents&lt;a class=&quot;zola-anchor&quot; href=&quot;#table-of-contents&quot; aria-label=&quot;Anchor link for: table-of-contents&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
60+
&lt;ol&gt;
61+
&lt;li&gt;Preface&lt;&#x2F;li&gt;
62+
&lt;li&gt;One-liner introduction&lt;&#x2F;li&gt;
63+
&lt;li&gt;Line processing&lt;&#x2F;li&gt;
64+
&lt;li&gt;Field separators&lt;&#x2F;li&gt;
65+
&lt;li&gt;Record separators&lt;&#x2F;li&gt;
66+
&lt;li&gt;Multiple file input&lt;&#x2F;li&gt;
67+
&lt;li&gt;Processing multiple records&lt;&#x2F;li&gt;
68+
&lt;li&gt;Two file processing&lt;&#x2F;li&gt;
69+
&lt;li&gt;Dealing with duplicates&lt;&#x2F;li&gt;
70+
&lt;li&gt;Processing structured data&lt;&#x2F;li&gt;
71+
&lt;&#x2F;ol&gt;
72+
&lt;br&gt;
73+
&lt;h2 id=&quot;web-version&quot;&gt;Web version&lt;a class=&quot;zola-anchor&quot; href=&quot;#web-version&quot; aria-label=&quot;Anchor link for: web-version&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
74+
&lt;p&gt;You can also read the book online here: &lt;a href=&quot;https:&#x2F;&#x2F;learnbyexample.github.io&#x2F;learn_ruby_oneliners&#x2F;&quot;&gt;https:&#x2F;&#x2F;learnbyexample.github.io&#x2F;learn_ruby_oneliners&#x2F;&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
75+
&lt;br&gt;
76+
&lt;h2 id=&quot;github-repo&quot;&gt;GitHub repo&lt;a class=&quot;zola-anchor&quot; href=&quot;#github-repo&quot; aria-label=&quot;Anchor link for: github-repo&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
77+
&lt;p&gt;Visit &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;learnbyexample&#x2F;learn_ruby_oneliners&quot;&gt;https:&#x2F;&#x2F;github.com&#x2F;learnbyexample&#x2F;learn_ruby_oneliners&lt;&#x2F;a&gt; for markdown source, example files, exercise solutions, sample chapters and other details related to the book.&lt;&#x2F;p&gt;
78+
&lt;blockquote&gt;
79+
&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;info.svg&quot; alt=&quot;info&quot; &#x2F;&gt; See also &lt;a href=&quot;https:&#x2F;&#x2F;learnbyexample.github.io&#x2F;customizing-pandoc&#x2F;&quot;&gt;my blog post&lt;&#x2F;a&gt; on how to customize &lt;code&gt;pandoc&lt;&#x2F;code&gt; for generating beautiful PDF&#x2F;EPUB versions from GitHub style markdown.&lt;&#x2F;p&gt;
80+
&lt;&#x2F;blockquote&gt;
81+
&lt;br&gt;
82+
&lt;h2 id=&quot;newsletter&quot;&gt;Newsletter&lt;a class=&quot;zola-anchor&quot; href=&quot;#newsletter&quot; aria-label=&quot;Anchor link for: newsletter&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
83+
&lt;p&gt;Subscribe to &lt;a href=&quot;https:&#x2F;&#x2F;learnbyexample.gumroad.com&#x2F;l&#x2F;learnbyexample-weekly&quot;&gt;learnbyexample weekly&lt;&#x2F;a&gt; — free newsletter covering programming resources, updates on what I am creating, tools, ebooks and more, delivered every Friday.&lt;&#x2F;p&gt;
84+
&lt;br&gt;
85+
&lt;h2 id=&quot;feedback-and-errata&quot;&gt;Feedback and Errata&lt;a class=&quot;zola-anchor&quot; href=&quot;#feedback-and-errata&quot; aria-label=&quot;Anchor link for: feedback-and-errata&quot;&gt;🔗&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
86+
&lt;p&gt;I would highly appreciate it if you&#x27;d &lt;strong&gt;let me know how you felt about this book&lt;&#x2F;strong&gt;. It could be anything from a simple thank you, Gumroad rating, pointing out a typo, mistakes in code snippets, which aspects of the book worked for you (or didn&#x27;t!) and so on. Reader feedback is essential and especially so for self-published authors.&lt;&#x2F;p&gt;
87+
&lt;p&gt;You can reach me via:&lt;&#x2F;p&gt;
88+
&lt;ul&gt;
89+
&lt;li&gt;Issue Manager: &lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;learnbyexample&#x2F;learn_ruby_oneliners&#x2F;issues&quot;&gt;https:&#x2F;&#x2F;github.com&#x2F;learnbyexample&#x2F;learn_ruby_oneliners&#x2F;issues&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
90+
&lt;li&gt;E-mail: &lt;code&gt;echo &#x27;bGVhcm5ieWV4YW1wbGUubmV0QGdtYWlsLmNvbQo=&#x27; | base64 --decode&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
91+
&lt;li&gt;Twitter: &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;learn_byexample&quot;&gt;https:&#x2F;&#x2F;twitter.com&#x2F;learn_byexample&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
92+
&lt;&#x2F;ul&gt;
93+
&lt;p&gt;Happy learning :)&lt;&#x2F;p&gt;
94+
</content>
95+
</entry>
1096
<entry xml:lang="en">
1197
<title>Understanding Ruby Regexp book announcement</title>
1298
<published>2024-02-02T00:00:00+00:00</published>
@@ -4427,7 +4513,7 @@ Specifying a greater than &lt;code&gt;0&lt;&#x2F;code&gt; start index when using
44274513
<entry xml:lang="en">
44284514
<title>Programming ebooks by Sundeep Agarwal</title>
44294515
<published>2022-08-09T00:00:00+00:00</published>
4430-
<updated>2024-02-02T00:00:00+00:00</updated>
4516+
<updated>2024-02-20T00:00:00+00:00</updated>
44314517
<link rel="alternate" href="https://learnbyexample.github.io/books/" type="text/html"/>
44324518
<id>https://learnbyexample.github.io/books/</id>
44334519
<content type="html">&lt;p&gt;This post lists my programming ebooks with details like PDF&#x2F;EPUB purchase links, GitHub repos, web versions, testimonials, etc. All my ebooks are self-published. You can get these ebooks individually or as part of bundles. You can also read them online for free.&lt;&#x2F;p&gt;
@@ -4443,13 +4529,13 @@ Specifying a greater than &lt;code&gt;0&lt;&#x2F;code&gt; start index when using
44434529
&lt;li&gt;&lt;strong&gt;Awesome regex&lt;&#x2F;strong&gt;: &lt;a href=&quot;https:&#x2F;&#x2F;leanpub.com&#x2F;b&#x2F;regex&quot;&gt;leanpub&lt;&#x2F;a&gt; or &lt;a href=&quot;https:&#x2F;&#x2F;learnbyexample.gumroad.com&#x2F;l&#x2F;regex&quot;&gt;gumroad&lt;&#x2F;a&gt;
44444530
&lt;ul&gt;
44454531
&lt;li&gt;Python, Ruby, JavaScript Regular expressions&lt;&#x2F;li&gt;
4446-
&lt;li&gt;GNU grep, ripgrep, GNU sed, GNU awk cli tools (BRE&#x2F;ERE, PCRE, Rust regex crate, PCRE2)&lt;&#x2F;li&gt;
4532+
&lt;li&gt;GNU grep, ripgrep, GNU sed, GNU awk CLI tools (BRE&#x2F;ERE, PCRE, Rust regex crate, PCRE2)&lt;&#x2F;li&gt;
44474533
&lt;li&gt;Vim regexp&lt;&#x2F;li&gt;
44484534
&lt;&#x2F;ul&gt;
44494535
&lt;&#x2F;li&gt;
44504536
&lt;li&gt;&lt;strong&gt;Magical one-liners&lt;&#x2F;strong&gt;: &lt;a href=&quot;https:&#x2F;&#x2F;leanpub.com&#x2F;b&#x2F;oneliners&quot;&gt;leanpub&lt;&#x2F;a&gt; or &lt;a href=&quot;https:&#x2F;&#x2F;learnbyexample.gumroad.com&#x2F;l&#x2F;oneliners&quot;&gt;gumroad&lt;&#x2F;a&gt;
44514537
&lt;ul&gt;
4452-
&lt;li&gt;GNU grep, ripgrep, GNU sed, GNU awk, Ruby, Perl cli tools&lt;&#x2F;li&gt;
4538+
&lt;li&gt;GNU grep, ripgrep, GNU sed, GNU awk, Ruby, Perl CLI tools&lt;&#x2F;li&gt;
44534539
&lt;&#x2F;ul&gt;
44544540
&lt;&#x2F;li&gt;
44554541
&lt;li&gt;&lt;strong&gt;Learn by example Python bundle&lt;&#x2F;strong&gt;: &lt;a href=&quot;https:&#x2F;&#x2F;leanpub.com&#x2F;b&#x2F;python-bundle&quot;&gt;leanpub&lt;&#x2F;a&gt; or &lt;a href=&quot;https:&#x2F;&#x2F;learnbyexample.gumroad.com&#x2F;l&#x2F;python-bundle&quot;&gt;gumroad&lt;&#x2F;a&gt;
@@ -4459,7 +4545,7 @@ Specifying a greater than &lt;code&gt;0&lt;&#x2F;code&gt; start index when using
44594545
&lt;&#x2F;li&gt;
44604546
&lt;li&gt;&lt;strong&gt;Ruby Text processing&lt;&#x2F;strong&gt;: &lt;a href=&quot;https:&#x2F;&#x2F;leanpub.com&#x2F;b&#x2F;ruby-textprocessing&quot;&gt;leanpub&lt;&#x2F;a&gt; or &lt;a href=&quot;https:&#x2F;&#x2F;learnbyexample.gumroad.com&#x2F;l&#x2F;ruby-textprocessing&quot;&gt;gumroad&lt;&#x2F;a&gt;
44614547
&lt;ul&gt;
4462-
&lt;li&gt;Ruby regular expressions, Ruby one-liners cookbook&lt;&#x2F;li&gt;
4548+
&lt;li&gt;Ruby regular expressions, Ruby One-Liners Guide&lt;&#x2F;li&gt;
44634549
&lt;&#x2F;ul&gt;
44644550
&lt;&#x2F;li&gt;
44654551
&lt;&#x2F;ul&gt;
@@ -4657,9 +4743,9 @@ Specifying a greater than &lt;code&gt;0&lt;&#x2F;code&gt; start index when using
46574743
&lt;li&gt;Feedback: &lt;a href=&quot;https:&#x2F;&#x2F;twitter.com&#x2F;learn_byexample&quot;&gt;Twitter&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
46584744
&lt;&#x2F;ul&gt;
46594745
&lt;br&gt;
4660-
&lt;h1 id=&quot;ruby-one-liners-cookbook&quot;&gt;&lt;p style=&quot;color: #ff9933&quot;&gt;Ruby one-liners cookbook&lt;&#x2F;h1&gt;
4746+
&lt;h1 id=&quot;ruby-one-liners-guide&quot;&gt;&lt;p style=&quot;color: #ff9933&quot;&gt;Ruby One-Liners Guide&lt;&#x2F;h1&gt;
46614747
&lt;p&gt;Example based guide for text processing with Ruby from the command line. Exercises are also included to test your understanding.&lt;&#x2F;p&gt;
4662-
&lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;&#x2F;images&#x2F;books&#x2F;ruby_oneliners.png&quot; alt=&quot;Ruby one-liners cookbook cover image&quot; loading=&quot;lazy&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
4748+
&lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;https:&#x2F;&#x2F;raw.githubusercontent.com&#x2F;learnbyexample&#x2F;learn_ruby_oneliners&#x2F;master&#x2F;images&#x2F;ruby_oneliners_ls.png&quot; alt=&quot;Ruby One-Liners Guide cover image&quot; loading=&quot;lazy&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
46634749
&lt;ul&gt;
46644750
&lt;li&gt;&lt;a href=&quot;https:&#x2F;&#x2F;github.com&#x2F;learnbyexample&#x2F;learn_ruby_oneliners&#x2F;blob&#x2F;master&#x2F;sample_chapters&#x2F;ruby_oneliners_sample.pdf&quot;&gt;Sample chapters&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
46654751
&lt;li&gt;Buy pdf&#x2F;epub from:

books/index.html

+1-1
Large diffs are not rendered by default.

images/books/ruby_oneliners.png

-21.4 KB
Binary file not shown.

0 commit comments

Comments
 (0)