Introduction
Introduction Statistics Contact Development Disclaimer Help
bridgetownrb_williamkennedy.ninja.atom.xml - sfeed_tests - sfeed tests and RSS …
git clone git://git.codemadness.org/sfeed_tests
Log
Files
Refs
README
LICENSE
---
bridgetownrb_williamkennedy.ninja.atom.xml (99283B)
---
1 <?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/200…
2 &lt;svg class=&quot;animate-spin text-center -ml-1 mr-3 h-40 w-40 text-i…
3 &lt;circle class=&quot;opacity-25&quot; cx=&quot;12&quot; cy=&quot;12&qu…
4 &lt;path class=&quot;opacity-75&quot; fill=&quot;currentColor&quot; d=&q…
5 &lt;/svg&gt;
6 &lt;p&gt;Loading article...&lt;/p&gt;
7 &lt;/div&gt;</content><author><name>William Kennedy</name></author><medi…
8
9 &lt;p&gt;I have been building small sites with Bridgetown for a while no…
10
11 &lt;p&gt;Even though it has evolved in ambitions, Bridgetown remains a s…
12
13 &lt;p&gt;What is a static site generator?&lt;/p&gt;
14
15 &lt;p&gt;Before the days of frameworks, Javascript build tools and rando…
16
17 &lt;p&gt;Now things are different, we have more advanced needs, but peop…
18
19 &lt;p&gt;Tangent aide, I have been using Bridgetown for about two years …
20
21 &lt;p&gt;This is a big deal because I grew up as an Irish farmer. Anyone…
22
23 &lt;p&gt;I wanted to upgrade to the latest version and use Esbuild. I ra…
24
25 &lt;p&gt;After following &lt;a href=&quot;https://www.bridgetownrb.com/d…
26
27 &lt;div class=&quot;language-ruby highlighter-rouge&quot;&gt;&lt;div cla…
28 &lt;span class=&quot;mi&quot;&gt;68&lt;/span&gt; &lt;span class=&quot…
29 &lt;span class=&quot;err&quot;&gt;╵&lt;/span&gt; &lt;span cl…
30 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
31
32 &lt;p&gt;&lt;img src=&quot;/assets/images/posts/pokemon_meme.jpeg&quot; …
33
34 &lt;p&gt;In the end, it turned out that this was because I updated Tailw…
35
36 &lt;p&gt;After I corrected my &lt;code class=&quot;highlighter-rouge&quo…
37
38 &lt;p&gt;Here is every step I followed:&lt;/p&gt;
39
40 &lt;ol&gt;
41 &lt;li&gt;Visited this &lt;a href=&quot;https://www.bridgetownrb.com/d…
42 &lt;li&gt;Add the &lt;code class=&quot;highlighter-rouge&quot;&gt;gem …
43 &lt;li&gt;Ran bundle &lt;code class=&quot;highlighter-rouge&quot;&gt;b…
44 &lt;li&gt;Created a separate bridgetown site and copied over files &lt…
45 &lt;li&gt;Ran &lt;code class=&quot;highlighter-rouge&quot;&gt;bin/brid…
46 &lt;li&gt;Removed &lt;code class=&quot;highlighter-rouge&quot;&gt;star…
47 &lt;li&gt;removed browser-sync and concurrently from my &lt;code class…
48 &lt;li&gt;Changed the &lt;code class=&quot;highlighter-rouge&quot;&gt;…
49 &lt;/ol&gt;
50
51 &lt;div class=&quot;language-ruby highlighter-rouge&quot;&gt;&lt;div cla…
52 &lt;span class=&quot;nb&quot;&gt;require&lt;/span&gt; &lt;span class=&qu…
53
54 &lt;span class=&quot;no&quot;&gt;Bridgetown&lt;/span&gt;&lt;span class=&…
55
56 &lt;span class=&quot;c1&quot;&gt;# Run rake without specifying any comma…
57 &lt;span class=&quot;n&quot;&gt;task&lt;/span&gt; &lt;span class=&quot;s…
58
59 &lt;span class=&quot;c1&quot;&gt;#&lt;/span&gt;
60 &lt;span class=&quot;c1&quot;&gt;# Standard set of tasks, which you can …
61 &lt;span class=&quot;c1&quot;&gt;#&lt;/span&gt;
62 &lt;span class=&quot;n&quot;&gt;desc&lt;/span&gt; &lt;span class=&quot;s…
63 &lt;span class=&quot;n&quot;&gt;task&lt;/span&gt; &lt;span class=&quot;s…
64 &lt;span class=&quot;no&quot;&gt;Bridgetown&lt;/span&gt;&lt;span class=…
65 &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
66
67 &lt;span class=&quot;n&quot;&gt;desc&lt;/span&gt; &lt;span class=&quot;s…
68 &lt;span class=&quot;n&quot;&gt;task&lt;/span&gt; &lt;span class=&quot;s…
69 &lt;span class=&quot;no&quot;&gt;ENV&lt;/span&gt;&lt;span class=&quot;p…
70 &lt;span class=&quot;no&quot;&gt;Bridgetown&lt;/span&gt;&lt;span class=…
71 &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
72
73 &lt;span class=&quot;n&quot;&gt;desc&lt;/span&gt; &lt;span class=&quot;s…
74 &lt;span class=&quot;n&quot;&gt;task&lt;/span&gt; &lt;span class=&quot;s…
75 &lt;span class=&quot;no&quot;&gt;Bridgetown&lt;/span&gt;&lt;span class=…
76 &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
77
78 &lt;span class=&quot;n&quot;&gt;namespace&lt;/span&gt; &lt;span class=&q…
79 &lt;span class=&quot;n&quot;&gt;desc&lt;/span&gt; &lt;span class=&quot;…
80 &lt;span class=&quot;n&quot;&gt;task&lt;/span&gt; &lt;span class=&quot;…
81 &lt;span class=&quot;n&quot;&gt;sh&lt;/span&gt; &lt;span class=&quot;s…
82 &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
83
84 &lt;span class=&quot;n&quot;&gt;desc&lt;/span&gt; &lt;span class=&quot;…
85 &lt;span class=&quot;n&quot;&gt;task&lt;/span&gt; &lt;span class=&quot;…
86 &lt;span class=&quot;n&quot;&gt;sh&lt;/span&gt; &lt;span class=&quot;s…
87 &lt;span class=&quot;k&quot;&gt;rescue&lt;/span&gt; &lt;span class=&quo…
88 &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
89 &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
90
91 &lt;span class=&quot;c1&quot;&gt;#&lt;/span&gt;
92 &lt;span class=&quot;c1&quot;&gt;# Add your own Rake tasks here! You can…
93 &lt;span class=&quot;c1&quot;&gt;# in order to write automations or othe…
94 &lt;span class=&quot;c1&quot;&gt;#&lt;/span&gt;
95 &lt;span class=&quot;c1&quot;&gt;# task :my_task =&amp;gt; :environment …
96 &lt;span class=&quot;c1&quot;&gt;# puts site.root_dir&lt;/span&gt;
97 &lt;span class=&quot;c1&quot;&gt;# automation do&lt;/span&gt;
98 &lt;span class=&quot;c1&quot;&gt;# say_status :rake, &quot;I&apos;m a …
99 &lt;span class=&quot;c1&quot;&gt;# end&lt;/span&gt;
100 &lt;span class=&quot;c1&quot;&gt;# end&lt;/span&gt;
101
102 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
103
104 &lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div cla…
105 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
106
107 &lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div cla…
108 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
109
110 &lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div cla…
111 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
112
113 &lt;p&gt;After that, I ran into the error where esbuild would not genera…
114
115 &lt;p&gt;Next, I had to update my liquid templated because collections w…
116 &lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div cla…
117 &lt;span class=&quot;k&quot;&gt;for &lt;/span&gt;post &lt;span class=&qu…
118 &lt;span class=&quot;c&quot;&gt;#After&lt;/span&gt;
119 &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;% &lt;span class=&quot;k&q…
120
121 In one of my components, I did the following to keep the same a tag href
122 &lt;span class=&quot;c&quot;&gt;# Before&lt;/span&gt;
123 post.url
124 &lt;span class=&quot;c&quot;&gt;# After&lt;/span&gt;
125 post.relative_url
126
127 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
128
129 &lt;p&gt;Then I changed my Netlify to run &lt;code class=&quot;highlight…
130
131 &lt;p&gt;After that, I had to update my head to use &lt;code class=&quot…
132
133 &lt;div class=&quot;language-html highlighter-rouge&quot;&gt;&lt;div cla…
134 &lt;span class=&quot;nt&quot;&gt;&amp;lt;meta&lt;/span&gt; &lt;span clas…
135 &lt;span class=&quot;nt&quot;&gt;&amp;lt;meta&lt;/span&gt; &lt;span clas…
136 {% capture resource_title %}{{ title | strip_html | strip_newlines }}{% …
137 &lt;span class=&quot;nt&quot;&gt;&amp;lt;title&amp;gt;&lt;/span&gt;{% if…
138
139 &lt;span class=&quot;nt&quot;&gt;&amp;lt;meta&lt;/span&gt; &lt;span clas…
140 &lt;span class=&quot;nt&quot;&gt;&amp;lt;link&lt;/span&gt; &lt;span clas…
141 &lt;span class=&quot;nt&quot;&gt;&amp;lt;script &lt;/span&gt;&lt;span cl…
142 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
143
144 &lt;p&gt;Finally, for the sitemap, I just installed this &lt;a href=&quo…
145
146 &lt;p&gt;Hopefully, that helps anyone who has run into trouble updating …
147
148 &lt;p&gt;Long live Bridgetown.&lt;/p&gt;</content><author><name>William …
149 &lt;span&gt;Photo by &lt;a href=&quot;https://unsplash.com/@timmossholde…
150 &lt;/span&gt;&lt;/p&gt;
151
152 &lt;h1 id=&quot;what-does-scale-mean-anyway&quot;&gt;What does scale mea…
153
154 &lt;p&gt;At different points in a software lifecycle, scale means other …
155
156 &lt;h2 id=&quot;performance&quot;&gt;Performance&lt;/h2&gt;
157
158 &lt;p&gt;One of the first definitions of scale is performance. Can your …
159
160 &lt;p&gt;In the Rails community, there is a meme &lt;em&gt;but does it s…
161
162 &lt;p&gt;For this reason, some engineers might create an application usi…
163
164 &lt;ul&gt;
165 &lt;li&gt;Network optimization&lt;/li&gt;
166 &lt;li&gt;performant technology practices (such as caching and databas…
167 &lt;/ul&gt;
168
169 &lt;h2 id=&quot;ability-to-build-fast&quot;&gt;Ability to Build Fast&lt;…
170
171 &lt;p&gt;Business-minded people point to technology choices as an inhibi…
172
173 &lt;p&gt;If a product catches the market’s attention, there will be a …
174
175 &lt;p&gt;The ability to change and improve the product is scale. The cho…
176
177 &lt;p&gt;As an application grows, it gets harder to change, update and i…
178
179 &lt;h2 id=&quot;support-staff&quot;&gt;Support Staff&lt;/h2&gt;
180
181 &lt;p&gt;If a product is successful, the chances are you might need to h…
182
183 &lt;p&gt;Knowledge is hard-earned by customer service staff after every …
184
185 &lt;h2 id=&quot;sales&quot;&gt;Sales&lt;/h2&gt;
186
187 &lt;p&gt;Like customer service, sales is another area that is difficult …
188
189 &lt;p&gt;If the product is complex, your sales process might include a t…
190
191 &lt;h2 id=&quot;processes&quot;&gt;Processes&lt;/h2&gt;
192
193 &lt;p&gt;McDonalds is one the most successful franchises globally becaus…
194
195 &lt;p&gt;You can focus on picking the right area, getting the initial fi…
196
197 &lt;p&gt;Processes are the hardest to scale because they cover many area…
198
199 &lt;p&gt;No matter what, we need to look at scale as something more than…
200 Photo by &lt;a href=&quot;https://unsplash.com/@kimberlyfarmer?utm_sourc…
201 &lt;h1 id=&quot;recently-read-2---irelands-dark-past-an-entrepreneur-who…
202
203 &lt;p&gt;This is the second in my series of recently read where I give a…
204
205 &lt;h2 id=&quot;high-performance-browser-networking-by-ilya-grigorik&quo…
206
207 &lt;h3 id=&quot;why-read-it&quot;&gt;Why read it?&lt;/h3&gt;
208
209 &lt;p&gt;I build web apps for a living, and I’m always keen to know ho…
210
211 &lt;p&gt;One thing that has not changed is latency and bottlenecks. The …
212
213 &lt;p&gt;Even though what we should do is obvious, the why things are th…
214
215 &lt;p&gt;It is an excellent book to read if you want to learn about the …
216
217 &lt;h3 id=&quot;what-i-learned&quot;&gt;What I Learned?&lt;/h3&gt;
218
219 &lt;p&gt;A lot. It would probably require more than one blog post to go …
220
221 &lt;h3 id=&quot;read-if&quot;&gt;Read if&lt;/h3&gt;
222
223 &lt;p&gt;You’re a web developer.&lt;/p&gt;
224
225 &lt;h2 id=&quot;the-prince-by-niccolò-machiavelli&quot;&gt;&lt;a href=&…
226
227 &lt;h3 id=&quot;why-read-it-1&quot;&gt;Why read it?&lt;/h3&gt;
228
229 &lt;p&gt;When Trump was elected, I heard that this was because of his Ma…
230
231 &lt;p&gt;I studied the author’s writings in college, and I have always…
232
233 &lt;p&gt;The Prince was a controversial book. The ideas frightened peopl…
234
235 &lt;h3 id=&quot;what-i-learned-1&quot;&gt;What I Learned?&lt;/h3&gt;
236
237 &lt;p&gt;From a historian’s perspective, this book must be a gem. Not …
238
239 &lt;p&gt;Machiavelli writes a lot about Cesare Borgia. Cesare Borgia was…
240
241 &lt;p&gt;That’s not to say Borgia only followed the Pope’s instructi…
242
243 &lt;p&gt;Cesare Borgia was the Pope’s son. He should not have been abl…
244
245 &lt;h3 id=&quot;read-if-1&quot;&gt;Read if&lt;/h3&gt;
246
247 &lt;p&gt;I found this a challenging read. I had to use Wikipedia to fill…
248
249 &lt;p&gt;What about our political leaders? Behind closed doors, do polic…
250
251 &lt;p&gt;Probably. Certainly, we can look to leaders such as Putin who h…
252
253 &lt;p&gt;This book has inspired great stories throughout the years and I…
254
255 &lt;h2 id=&quot;a-dangerous-visionary-by-eddie-oconnor&quot;&gt;&lt;a hr…
256
257 &lt;h3 id=&quot;why-read-it-2&quot;&gt;Why read it?&lt;/h3&gt;
258
259 &lt;p&gt;I have been &lt;a href=&quot;https://williamkennedy.ninja/revie…
260
261 &lt;h3 id=&quot;what-i-learned-2&quot;&gt;What I Learned?&lt;/h3&gt;
262 &lt;p&gt;One of Ireland’s most successful businessmen started his care…
263
264 &lt;p&gt;O’Connor has proven to be one of those people. After starting…
265
266 &lt;p&gt;A lot of his book covers his management style, which involves a…
267
268 &lt;p&gt;“The problem with a lazy worker is that they want to make oth…
269
270 &lt;p&gt;After leaving Board Na Mona, he covered how the media dragged h…
271
272 &lt;p&gt;Nowadays, Ireland produces a lot of energy from wind. Solar and…
273
274 &lt;h3 id=&quot;read-if-2&quot;&gt;Read if&lt;/h3&gt;
275
276 &lt;p&gt;If you want a personal and passionate perspective on renewable …
277
278 &lt;p&gt;If you’re Irish and you like the idea of public servants bein…
279
280 &lt;h2 id=&quot;republic-of-shame-by-caelainn-hogan&quot;&gt;&lt;a href=…
281
282 &lt;h3 id=&quot;why-read-it-3&quot;&gt;Why read it?&lt;/h3&gt;
283
284 &lt;p&gt;When travelling abroad and meeting new people, particularly Ame…
285
286 &lt;p&gt;In 2017, news travelled around the world about a collection of …
287
288 &lt;p&gt;The Catholic Church used to have a firm grip on Ireland much to…
289
290 &lt;p&gt;The Church’s shackles are slowly being shattered piece by pie…
291
292 &lt;p&gt;Many were unaware of Ireland’s ‘industrial shame complex’…
293
294 &lt;p&gt;I lost my faith at the age of 15. School in 90’s Ireland neve…
295
296 &lt;p&gt;This experience and many others led me to view the church with …
297
298 &lt;h3 id=&quot;what-i-learned-3&quot;&gt;What I learned&lt;/h3&gt;
299
300 &lt;p&gt;Caelainn Hogan is a terrific writer. She does a fantastic job o…
301
302 &lt;p&gt;The last mother and baby home closed in 1996. It’s on the str…
303
304 &lt;p&gt;What was even more harrowing was the state’s involvement and …
305
306 &lt;p&gt;The nuns come across as heartless. There are countless examples…
307
308 &lt;p&gt;The survival rate of the children in mother and baby homes only…
309
310 &lt;p&gt;Vulnerable women seemed to have no place to run. Ostracised by …
311
312 &lt;p&gt;The choice these women had was an illusion. In some cases, the …
313
314 &lt;h3 id=&quot;read-if-3&quot;&gt;Read if&lt;/h3&gt;
315
316 &lt;p&gt;You’re Irish and want a detailed overview of the mother and b…
317 &lt;span&gt;Photo by &lt;a href=&quot;https://unsplash.com/@cookiethepom…
318
319 &lt;p&gt;No matter how much you try, refactoring is a hard sell. Why cha…
320
321 &lt;p&gt;Refactoring is specific to software development as code is mall…
322
323 &lt;p&gt;However, bad code can make life difficult for the next develope…
324
325 &lt;p&gt;Yet, explaining the upsides of refactoring to anyone outside of…
326
327 &lt;h2 id=&quot;adopt-a-good-citizen-culture-at-work&quot;&gt;Adopt a Go…
328
329 &lt;p&gt;Refactoring can be as simple as reducing copy and paste code. I…
330
331 &lt;p&gt;The next time you’ve wandered in the thick swathes of messy c…
332
333 &lt;p&gt;Nothing needs to be said to anyone outside of the development t…
334
335 &lt;h2 id=&quot;keep-refactoring-small&quot;&gt;Keep refactoring small&l…
336
337 &lt;p&gt;If you try to refactor too much, it may take focus away from th…
338
339 &lt;p&gt;Here is an example of refactoring I did once as part of a more …
340
341 &lt;div class=&quot;language-ruby highlighter-rouge&quot;&gt;&lt;div cla…
342 &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;…
343 &lt;span class=&quot;vi&quot;&gt;@post&lt;/span&gt; &lt;span class=&…
344 &lt;span class=&quot;o&quot;&gt;...&lt;/span&gt;
345 &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
346
347 &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;…
348 &lt;span class=&quot;vi&quot;&gt;@post&lt;/span&gt; &lt;span class=&…
349 &lt;span class=&quot;o&quot;&gt;...&lt;/span&gt;
350 &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
351
352 &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;…
353 &lt;span class=&quot;vi&quot;&gt;@post&lt;/span&gt; &lt;span class=&…
354 &lt;span class=&quot;o&quot;&gt;...&lt;/span&gt;
355 &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
356
357 &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;…
358 &lt;span class=&quot;vi&quot;&gt;@post&lt;/span&gt; &lt;span class=&…
359 &lt;span class=&quot;o&quot;&gt;...&lt;/span&gt;
360 &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
361 &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
362 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
363
364 &lt;p&gt;The above is an example; the real controller was 900 lines long…
365
366 &lt;div class=&quot;language-ruby highlighter-rouge&quot;&gt;&lt;div cla…
367 &lt;span class=&quot;n&quot;&gt;before_acton&lt;/span&gt; &lt;span cla…
368
369 &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;…
370 &lt;span class=&quot;o&quot;&gt;...&lt;/span&gt;
371 &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
372
373 &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;…
374 &lt;span class=&quot;o&quot;&gt;...&lt;/span&gt;
375 &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
376
377 &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;…
378 &lt;span class=&quot;o&quot;&gt;...&lt;/span&gt;
379 &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
380
381 &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;…
382 &lt;span class=&quot;o&quot;&gt;...&lt;/span&gt;
383 &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
384
385 &lt;span class=&quot;kp&quot;&gt;private&lt;/span&gt;
386
387 &lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;…
388 &lt;span class=&quot;vi&quot;&gt;@post&lt;/span&gt; &lt;span class=&…
389 &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
390 &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
391 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
392
393 &lt;p&gt;Now we have removed four lines of code by adding a &lt;code cla…
394
395 &lt;p&gt;This example was a simple refactor I did as part of another tas…
396
397 &lt;p&gt;And that is what being a good citizen is all about.&lt;/p&gt;</…
398 Photo by &lt;a href=&quot;https://unsplash.com/@kimberlyfarmer?utm_sourc…
399
400 &lt;h2 id=&quot;intro&quot;&gt;Intro&lt;/h2&gt;
401
402 &lt;p&gt;Recently I took a holiday which allowed me to catch up on some …
403
404 &lt;p&gt;However, most of the recent books I enjoyed were non-fiction.&l…
405
406 &lt;h2 id=&quot;how-to-avoid-climate-disaster-by-bill-gates&quot;&gt;&lt…
407
408 &lt;h3 id=&quot;why-i-wanted-to-read-it&quot;&gt;Why I wanted to read It…
409
410 &lt;p&gt;Even though I’ve heard about climate change since I was young…
411
412 &lt;h3 id=&quot;what-i-learned&quot;&gt;What I Learned?&lt;/h3&gt;
413
414 &lt;p&gt;There is one important number to know. 

51 billion. 
Thi…
415
416 &lt;ul&gt;
417 &lt;li&gt;Making things(cement, steel, plastic) 31%&lt;/li&gt;
418 &lt;li&gt;Electricity 27%&lt;/li&gt;
419 &lt;li&gt;Growing Things(plants, animals) 19%&lt;/li&gt;
420 &lt;li&gt;Getting around (cars, planes, trucks, cargo ships) 16%&lt;/l…
421 &lt;li&gt;Keeping warm and cool(heating, cooling, refrigeration) 7%&lt…
422 &lt;/ul&gt;
423
424 &lt;p&gt;The other thing I learned is that we can do this. As individual…
425
426 &lt;p&gt;It can also work the other way. Some solutions save money. For …
427
428 &lt;h3 id=&quot;read-if&quot;&gt;Read if&lt;/h3&gt;
429
430 &lt;p&gt;You want a broader understanding of climate change with some nu…
431
432 &lt;h2 id=&quot;atlas-shrugged-by-ayn-rand&quot;&gt;&lt;a href=&quot;htt…
433
434 &lt;h3 id=&quot;why-i-wanted-to-read-it-1&quot;&gt;Why I wanted to read …
435
436 &lt;p&gt;One of my favourite games is called &lt;a href=&quot;https://en…
437
438 &lt;blockquote&gt;
439 &lt;p&gt;Lacking its own ingenuity, the parasite fears the visionary. …
440 &lt;/blockquote&gt;
441
442 &lt;p&gt;Ayn Rand calls the parasites ‘looters’ in &lt;a href=&quot;…
443
444 &lt;p&gt;Bioshock is one of my favourite games, and when I heard that th…
445
446 &lt;h3 id=&quot;what-i-learned-1&quot;&gt;What I Learned&lt;/h3&gt;
447
448 &lt;p&gt;I joke that this is the most exciting book about building a rai…
449
450 &lt;p&gt;This book is fictional, but it was written midway during the Co…
451
452 &lt;p&gt;Suffice it to say; I love reading books that are so divisive. T…
453
454 &lt;h3 id=&quot;read-if-1&quot;&gt;Read if&lt;/h3&gt;
455
456 &lt;p&gt;I won’t recommend this book unless you’re pretty centrist. …
457
458 &lt;p&gt;Rand is a terrific writer. Somehow, she was able to get me to r…
459 Rand is a champion of the free market with little to no government inter…
460
461 &lt;h2 id=&quot;amusing-ourselves-to-death-by-neil-postman&quot;&gt;&lt;…
462
463 &lt;h3 id=&quot;why-i-wanted-to-read-it-2&quot;&gt;Why I wanted to read …
464
465 &lt;p&gt;If you would like to learn precisely how TV changed the minds o…
466
467 &lt;p&gt;This book espouses the values of a ‘typographic mind’ and c…
468
469 &lt;h3 id=&quot;what-i-learned-2&quot;&gt;What I Learned&lt;/h3&gt;
470
471 &lt;p&gt;The book is laid out in 2 parts. In the first part, Postman lay…
472
473 &lt;p&gt;In the second part of the book, Postman then talks about the ef…
474
475 &lt;p&gt;Early America had an unusually high literacy rate compared to o…
476
477 &lt;p&gt;Contrast this with today, where key figures use a combination o…
478
479 &lt;p&gt;Postman thinks the 1980s was closer to the book Brave New World…
480
481 &lt;p&gt;If Postman lived till 2021, he would see that Huxley and Orwell…
482
483 &lt;h3 id=&quot;read-if-2&quot;&gt;Read If&lt;/h3&gt;
484
485 &lt;p&gt;If you find it hard to explain why you should read, this is a g…
486
487 &lt;p&gt;However, this book does not use science or statistics. Instead,…
488
489 &lt;h2 id=&quot;deep-sea-and-foreign-going-by-rose-george&quot;&gt;&lt;a…
490
491 &lt;h3 id=&quot;why-i-wanted-to-read-it-3&quot;&gt;Why I wanted to read …
492
493 &lt;p&gt;Rose George is easily one of my favourite authors. She explores…
494
495 &lt;p&gt;My knowledge of the physical movement of goods around the world…
496
497 &lt;h3 id=&quot;what-i-learned-3&quot;&gt;What I learned&lt;/h3&gt;
498
499 &lt;p&gt;In the book, she is travelling on a Maersk ship which is a comp…
500
501 &lt;p&gt;There is also no manifest on board that matches what’s on the…
502
503 &lt;p&gt;The Suez Canal takes ten days off the trip to the south because…
504
505 &lt;p&gt;Piracy is still a problem. Somalian pirates can make more from …
506
507 &lt;p&gt;The book is packed with even more exciting nuances exploring la…
508
509 &lt;h3 id=&quot;read-if-3&quot;&gt;Read If&lt;/h3&gt;
510
511 &lt;p&gt;Do you ever wonder how stuff gets to your home? The answer is s…
512
513 &lt;p&gt;Shipping has a lot of challenges ahead. We have to modernize a …
514 Photo by &lt;a href=&quot;https://unsplash.com/@kaitlynbaker?utm_source=…
515
516 &lt;p&gt;One of the biggest mistakes I made with my clients is not makin…
517
518 &lt;p&gt;Usually, I build the whole app with Rails with the marketing si…
519
520 &lt;p&gt;However, changes are inevitably requested. There are generally …
521
522 &lt;ol&gt;
523 &lt;li&gt;
524 &lt;h4 id=&quot;design-changes&quot;&gt;Design Changes&lt;/h4&gt;
525 &lt;/li&gt;
526 &lt;li&gt;
527 &lt;h4 id=&quot;business-logic-changes&quot;&gt;Business Logic Chang…
528 &lt;/li&gt;
529 &lt;li&gt;
530 &lt;h4 id=&quot;static-content-changes&quot;&gt;Static Content Chang…
531 &lt;/li&gt;
532 &lt;/ol&gt;
533
534 &lt;p&gt;The first two are down to my team and me. The 3rd one is differ…
535
536 &lt;p&gt;Let’s illustrate. The client adds a task in Basecamp with wha…
537
538 &lt;p&gt;A back and forth begins with the client that can drag out for h…
539
540 &lt;p&gt;Changing text should not be a big deal, but we’ve made a big …
541
542 &lt;p&gt;Simply put, my client deserves the same rapid feedback that dev…
543
544 &lt;h2 id=&quot;stop-back-and-forth&quot;&gt;Stop Back And Forth&lt;/h2&…
545
546 &lt;p&gt;In this industry, we spend a lot of time trying to improve the …
547
548 &lt;p&gt;For me, Editmode is a step in the right direction for teams to …
549
550 &lt;p&gt;So how does it work?&lt;/p&gt;
551
552 &lt;p&gt;Editmode acts as the central repository where the whole team ca…
553
554 &lt;p&gt;It’s pretty straightforward. Instead of littering your codeba…
555
556 &lt;p&gt;Then your product manager, co-founder or copywriter can press C…
557
558 &lt;p&gt;They can also update the text using the Editmode website.&lt;/p…
559
560 &lt;p&gt;The content is aggressively cached and served via Cloudflare.&l…
561
562 &lt;p&gt;The company is new, but since it could save me quite a lot of t…
563
564 &lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https:…
565
566 &lt;h2 id=&quot;when-not-to-install-editmode&quot;&gt;When Not To Instal…
567
568 &lt;p&gt;In terms of product-market-fit, Editmode targets teams. For thi…
569
570 &lt;p&gt;Editmode becomes useful when you want to expand beyond yourself…
571
572 &lt;p&gt;The next time I start a project with a non-technical person, th…
573
574 &lt;p&gt;Component driven design is one of the best things to come out o…
575
576 &lt;p&gt;In a codebase, it’s easy for the different erb files to quick…
577
578 &lt;p&gt;&lt;em&gt;Consistency.&lt;/em&gt;&lt;/p&gt;
579
580 &lt;p&gt;View Components along with Storybook, can help solve this issue…
581
582 &lt;h2 id=&quot;why-use-storybook-with-view-components&quot;&gt;Why use …
583
584 &lt;p&gt;The main reason is that you can test edge cases with your desig…
585
586 &lt;ul&gt;
587 &lt;li&gt;Test edge cases with your design dynamically&lt;/li&gt;
588 &lt;li&gt;Share your style guide with your team, including your manage…
589 &lt;li&gt;Document use cases&lt;/li&gt;
590 &lt;li&gt;Test components for accessibility issues.&lt;/li&gt;
591 &lt;/ul&gt;
592
593 &lt;p&gt;If I have convinced you at all, feel free to follow along.&lt;/…
594
595 &lt;h2 id=&quot;1-set-up-a-rails-app-optional&quot;&gt;1. Set up a rails…
596
597 &lt;p&gt;Experienced Rails developers usually read this blog. I’m assu…
598
599 &lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highl…
600 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
601
602 &lt;h2 id=&quot;2-install-the-necessary-gems&quot;&gt;2. Install the nec…
603
604 &lt;p&gt;To note. As of writing, there is no generator for the &lt;a hre…
605
606 &lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highl…
607 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
608 &lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highl…
609 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
610 &lt;p&gt;Add &lt;code class=&quot;highlighter-rouge&quot;&gt;require &q…
611
612 &lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highl…
613 require_relative &apos;boot&apos;
614
615 require &apos;rails/all&apos;
616 require &quot;view_component/storybook/engine&quot;
617 ....
618 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
619
620 &lt;p&gt;Add &lt;code class=&quot;highlighter-rouge&quot;&gt;*/*.storie…
621
622 &lt;h2 id=&quot;2-configure-asset-hosts&quot;&gt;2. Configure Asset Host…
623
624 &lt;p&gt;If your view components depend on Javascript, CSS or other asse…
625
626 &lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highl…
627 config.action_controller.asset_host = &apos;http://localhost:3000&apos;
628 end
629 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
630
631 &lt;p&gt;Naturally, you can do the same for staging and production.&lt;/…
632
633 &lt;h2 id=&quot;3-install-storybook-via-yarn&quot;&gt;3. Install Storybo…
634
635 &lt;ol&gt;
636 &lt;li&gt;Add Storybook server as a dev dependency. The Storybook Cont…
637 &lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;h…
638 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;/div&gt;
639 &lt;/li&gt;
640 &lt;li&gt;Add an NPM script to your package.json to start your Storybo…
641 &lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;h…
642 {
643 &quot;scripts&quot;: {
644 &quot;storybook&quot;: &quot;start-storybook&quot;
645 }
646 }
647 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;/div&gt;
648 &lt;/li&gt;
649 &lt;li&gt;Create a folder called &lt;code class=&quot;highlighter-roug…
650 &lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;h…
651 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;/div&gt;
652 &lt;/li&gt;
653 &lt;li&gt;Create a file called .storybook/main.js file to configure St…
654 &lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;h…
655 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;/div&gt;
656 &lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;h…
657 module.exports = {
658 stories: [&apos;../test/components/**/*.stories.json&apos;],
659 // stories: [&apos;../spec/components/**/*.stories.json&apos;], i…
660 addons: [
661 &apos;@storybook/addon-controls&apos;,
662 ],
663 };


664 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;/div&gt;
665 &lt;/li&gt;
666 &lt;li&gt;Create the .storybook/preview.js file to configure Storybook…
667 &lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;h…
668 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;/div&gt;
669 &lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;h…
670 export const parameters = {
671 server: {
672 url: `http://localhost:3000/rails/stories`,
673 },
674 };
675 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;/div&gt;
676 &lt;h2 id=&quot;4-your-first-storybook-component&quot;&gt;4. Your Fi…
677 &lt;/li&gt;
678 &lt;/ol&gt;
679
680 &lt;p&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;ViewComponent::…
681 Suppose our app has a &lt;code class=&quot;highlighter-rouge&quot;&gt;B…
682 &lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highl…
683 def initialize(button_text:)
684 @button_text = button_text
685 end
686 end
687 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
688 &lt;p&gt;We can write a stories describing the &lt;code class=&quot;hig…
689 
So in spec/components/stories or test/components/stories, put in t…
690 &lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highl…
691 story(:with_short_text) do
692 constructor(title: &quot;my title&quot;)
693 end
694
695 story(:with_long_text) do
696 constructor(title: &quot;my title&quot;)
697 end
698 end
699 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
700
701 &lt;h2 id=&quot;5--generate-storybook-json&quot;&gt;5. Generate Storybo…
702
703 &lt;p&gt;Generate the Storybook JSON stories by running the rake task:&l…
704
705 &lt;p&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;rake view_compo…
706
707 &lt;p&gt;Now you should be able to start the rails app and run the Story…
708 rails s
709 yarn storybook # in separate tab&lt;/p&gt;
710
711 &lt;h2 id=&quot;configuration-rspec-only&quot;&gt;&lt;strong&gt;Configur…
712
713 &lt;p&gt;By Default ViewComponent::Storybook expects to find stories in …
714
715 &lt;p&gt;&lt;code class=&quot;highlighter-rouge&quot;&gt;config.view_com…
716
717 &lt;h2 id=&quot;gotchas&quot;&gt;Gotcha’s&lt;/h2&gt;
718
719 &lt;p&gt;I had to add rack-cors gem and configure wildcard access for de…
720 &lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highl…
721 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
722 &lt;p&gt;In config/development.rb, I added the following lines:&lt;/p&gt;
723
724 &lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;div class=&quot;highl…
725 config.action_controller.asset_host = &apos;http://localhost:5000&apo…
726 config.middleware.insert_before 0, Rack::Cors do
727 allow do
728 origins &apos;*&apos;
729 resource &apos;/rails/stories/*&apos;, :headers =&amp;gt; :any, …
730 end
731 end
732 &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
733
734 &lt;p&gt;Another Gotcha, I ran into. After you update the HTML for the c…
735
736 &lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;
737
738 &lt;p&gt;There you have it. Hopefully, this has gotten you up and runnin…
739
740 &lt;p&gt;Happy coding.&lt;/p&gt;
741
742 &lt;p&gt;


&lt;/p&gt;</content><author><name>William Kennedy</nam…
743 Photo by &lt;a href=&quot;https://unsplash.com/@villxsmil?utm_source=uns…
744
745 &lt;p&gt;When it comes to project management, I don’t have any answers…
746
747 &lt;p&gt;However, this article is not about how &lt;em&gt;I&lt;/em&gt; b…
748
749 &lt;p&gt;I once contracted with a company where the staff were petrified…
750
751 &lt;p&gt;Ignorance was scorned, and employees scolded for not knowing mo…
752
753 &lt;p&gt;After a few weeks, I could see the cause of the “slow product…
754
755 &lt;p&gt;After each sprint, there would be new bugs that would arise fro…
756
757 &lt;p&gt;The Jira tickets assigned to each developer started to compound…
758
759 &lt;p&gt;I’ve observed this pattern in 2 other companies leading me to…
760
761 &lt;p&gt;The first company I was able to help by making a presentation a…
762
763 &lt;p&gt;The other companies I could not rescue.&lt;/p&gt;
764
765 &lt;p&gt;It’s funny reading the &lt;a href=&quot;http://agilemanifesto…
766
767 &lt;p&gt;Even the word sprint implies 100% all-out until you hit the fin…
768
769 &lt;h2 id=&quot;retro---lets-talk-about-what-went-wrong-more-than-what-w…
770
771 &lt;p&gt;It’s good to talk about how we can improve. When playing any …
772
773 &lt;p&gt;Yet, for some reason, critiquing the process becomes frowned up…
774
775 &lt;p&gt;Even worse, people continue on this hedonic treadmill towards b…
776
777 &lt;p&gt;The idea of the retro is to suggest improvements to the process…
778
779 &lt;h2 id=&quot;daily-standup---lets-talk-about-what-we-already-talked-a…
780
781 &lt;p&gt;Another strange part of sprints is the daily meeting is the def…
782
783 &lt;p&gt;Creative work is the result of deep work from hours of focus. S…
784
785 &lt;p&gt;Let people self-motivate and treat them like adults. Everything…
786
787 &lt;h2 id=&quot;lifestyle&quot;&gt;Lifestyle&lt;/h2&gt;
788
789 &lt;p&gt;The worst thing I would hate to do to my employees is have a da…
790
791 &lt;p&gt;The two-week sprint cycle does not factor in mistakes and meeti…
792
793 &lt;h2 id=&quot;final-thoughts&quot;&gt;Final thoughts&lt;/h2&gt;
794
795 &lt;p&gt;My sample size is small. Three companies in 5 years is not the …
796
797 &lt;p&gt;I’ve seen development cycles done well, but it was never spri…
798
799 &lt;p&gt;My partner is a product manager, and she regularly exclaims how…
800
801 &lt;p&gt;Overall, when starting a project, taking the pain and barriers …
802
803 &lt;p&gt;&lt;strong&gt;Are too many bugs being created?&lt;/strong&gt;&l…
804
805 &lt;p&gt;Then write tests and use a CI build to help keep them under con…
806
807 &lt;p&gt;&lt;strong&gt;Is there pressure to get features in?&lt;/strong&…
808
809 &lt;p&gt;Then hold off and make sure the parts you’re bringing in are …
810
811 &lt;p&gt;&lt;strong&gt;Is it hard to onboard a new team member?&lt;/stro…
812
813 &lt;p&gt;Lower the barrier to get code to production.&lt;/p&gt;
814
815 &lt;p&gt;Ship small. Ship early. Ship smart. Ship often.&lt;/p&gt;</cont…
816 Photo by &lt;a href=&quot;https://unsplash.com/@lastly?utm_source=unspla…
817
818 &lt;p&gt;I get asked about mobile apps a lot.&lt;/p&gt;
819
820 &lt;p&gt;My clients, who are not tech people, believe apps are pretty di…
821
822 &lt;p&gt;To satisfy this requirement in the past, I turned to React Nati…
823
824 &lt;p&gt;I know my feelings are subjective, but I don’t love building …
825 Building for mobile involves more constraints than building for the web.…
826
827 &lt;p&gt;Out of all the different options for building cross-platform mo…
828
829 &lt;p&gt;When Basecamp announced the release of &lt;a href=&quot;https:/…
830
831 &lt;p&gt;After completing &lt;a href=&quot;https://www.hackingwithswift.…
832
833 &lt;p&gt;Turbo promised to make turning your Rails app into an iPhone ap…
834
835 &lt;p&gt;However, you still have some complex gaps to fill in yourself.&…
836
837 &lt;ul&gt;
838 &lt;li&gt;Native Authentication, i.e. allow users to log in to your ap…
839 &lt;li&gt;Push Notifications - send notifications from your app to the…
840 &lt;/ul&gt;
841
842 &lt;p&gt;I started down this road and fiddled away on my own for a few w…
843
844 &lt;p&gt;The answer was yes. 
&lt;/p&gt;
845
846 &lt;p&gt;After playing around with it for a few days, it’s hard not to…
847
848 &lt;p&gt;Aside from wrapping your Rails app in a native view, it’s pos…
849
850 &lt;ul&gt;
851 &lt;li&gt;From day 1, my current project, &lt;del&gt;Koach&lt;/del&gt;…
852 &lt;li&gt;From day 1, I was able to quickly delegate &lt;a href=&quot;…
853 &lt;li&gt;Able to offer native experiences for certain sections of my …
854 &lt;/ul&gt;
855
856 &lt;p&gt;I’m still building the iOS app for Koach, but my other projec…
857
858 &lt;ul&gt;
859 &lt;li&gt;Your web app needs to be &lt;a href=&quot;https://turbo.hotw…
860 &lt;li&gt;Knowledge of Swift is helpful, but I think many developers c…
861 &lt;li&gt;Your web app should be mobile friendly by design to accommod…
862 &lt;li&gt;For non-Jumpstart rails web app apps, you will have to do a …
863 &lt;/ul&gt;
864
865 &lt;p&gt;Jumpstart does not endorse me, but I hope by writing this, I en…
866
867 &lt;p&gt;This is a game changer for small businesses. The promise of Rea…
868
869 &lt;p&gt;A world of high-quality hybrid apps awaits us. It should not be…
870
871
You are viewing proxied material from codemadness.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.