-
Notifications
You must be signed in to change notification settings - Fork 0
/
index4.html
274 lines (262 loc) · 23.8 KB
/
index4.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
<!DOCTYPE html>
<html lang="en">
<head>
<title></title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta id="keywords" name="keywords" content="">
<link id="stylesheet" rel="stylesheet" type="text/css" href="https://oskipa.github.io/theme/css/code.css"></link>
<link id="stylesheet" rel="stylesheet" type="text/css" href="https://oskipa.github.io/theme/css/site.css"></link>
</head>
<body>
<header class="header">
<h1 class="site-name">
<a class="home-link" href="https://oskipa.github.io">Dada</a><br />
|> Structures<br />
|> Algorithms</h1>
<nav>
<menu class="minimal-menu">
<li><a href="https://oskipa.github.io/pages/today-i-learned.html">til</a></li>
<li><a href="https://oskipa.github.io/pages/now.html">now</a></li>
<li><a href="https://oskipa.github.io/short_index.html">index</a></li>
<!--
<li><a href="category/log.html">web log<a></li>
<li><a href="">about<a></li>
<li><a href="">site map<a></li>
-->
</menu>
</nav>
</header>
<div class="container">
<div class="row">
<div class="col-md-8">
<h2><a href="/sketbook_vs_machine.html">The Sketchbook vs The Machine</a></h2>
<label>13 October, 2024</label>
<p>I find it the current technological moment frustrating because it feels that we are engaging in many misguided practices in the industry. They are common, they are popular, so they are often presented as "best practices." These "best practices" are often applied willy-nilly everywhere, even...
<h2><a href="/thoughts-on-array-puzzles.html">Thoughts on array puzzles</a></h2>
<label>14 September, 2024</label>
<p>This is my first blog, maybe the last one too, who knows, where I review different type of computer science puzzles used on coding interviews. I am opinionated on silly topics, so why not? I will give a rating from zero to 4 saddy faces, because it feels so appropriate.</p>
<h3>Array...
<h2><a href="/thoughts-on-inrias-advance-object-oriented-design-mooc-in-pharo-smalltalk.html">Thoughts on Inria's Advance Object Oriented Design MOOC in Pharo Smalltalk</a></h2>
<label>13 July, 2024</label>
<p><a href="https://www.inria.fr/en">Inria</a> has created another great Smalltalk Massive Online Open Course (mooc) called <a href="https://lms.fun-mooc.fr/courses/course-v1:inria+41031+session01/info">Advance Object Oriented Design and Development in Pharo</a>. It is a free,...
<h2><a href="/getting-started-with-rogue.html">Getting Started with Rogue</a></h2>
<label>01 April, 2024</label>
<p>As my entry for April Cool, I share a quick guide on getting started playing <a href="https://en.wikipedia.org/wiki/Rogue_(video_game)">Rogue</a>, the 1980s ascii adventure game.</p>
<p>I got into Rogue by playing <a href="https://rogule.com/">Rogule</a>, a daily minature roguelike online...
<h2><a href="/reflections-on-writing-an-elevator-simulator-in-scheme.html">Reflections on Writing an Elevator Simulator in Scheme</a></h2>
<label>29 February, 2024</label>
<p>This is another reflection on working with Scheme. <a href="scheme_retro_writing_a_slot_machine.md">I previously wrote one on writing a slot machine in scheme</a>.
This time I tried to write an elevator simulation game. Here is what I learned.</p>
...
<h2><a href="/reflections-on-writing-a-slot-machine-game-in-scheme.html">Reflections on Writing a Slot Machine game in Scheme</a></h2>
<label>11 February, 2024</label>
<p>This is a quick reflection on my experience writing a Slot Machine game using scheme. Specifically, I used <a href="https://www.biwascheme.org/doc/features.html">biwascheme</a>
All in all, I am so pleased with the experience. Here is a summary of what I have learned making this game</p>
...
<h2><a href="/a-set-data-structure-in-racket.html">A set data structure in Racket</a></h2>
<label>07 February, 2024</label>
<p>This is a little experiment with <code>racket</code>. I wanted to see how I could implement a set data structure. A set is a collection that can only have one copy of each member. This is the quick code that I came up with</p>
...
<h2><a href="/critical-thinking-quick-tutorial.html">Critical Thinking - Quick Tutorial</a></h2>
<label>14 January, 2024</label>
<p>I complained that we talk a lot about critical thinking without telling people what or how to exercise critical thinking. So I wrote a quick tutorial</p>
<p>Critical thinking is having good skepticism. We strive for a golden mean: we don't accept everything as true, but at the same time we...
<h2><a href="/price-vendors.html">The Price of Renting Software</a></h2>
<label>02 January, 2024</label>
<p>Renting software is considered the correct solution when we face the build vs rent question. There is an army of sales and marketing teams pushing the narrative that renting is going to be cheaper and better, allowing you to focus on your core business. As the common right answer, it is safer...
<h2><a href="/documentation-and-dreyfus-background.html">Documentation and Dreyfus' Background</a></h2>
<label>09 December, 2023</label>
<p>At some point some manager will come up with a solution for people moving away from teams and leaving with knowledge of the system. We can document it well, so people can come and go without the team losing knowledge. We just need to be sure to document everything in our undocumented...
<h2><a href="/general-notes-on-developer-documentation.html">General Notes on Developer Documentation</a></h2>
<label>01 December, 2023</label>
<p>Aphorism for better developer documentation</p>
...
<h2><a href="/try-vim-and-emacs-personal-history.html">Try Vim and Emacs: Personal History</a></h2>
<label>16 November, 2023</label>
<p>When I started programming, a lot of the experienced developers would encourage people to use vim or emacs. Some were so enthusiastic that they made it into a badge for being a real developer. </p>
<p>I wanted to be a real programmer, so I set off to learn them. I recall working through the...
<h2><a href="/try-vim-and-emacs.html">Try Vim and Emacs</a></h2>
<label>13 November, 2023</label>
<p>Vim and Emacs are old text editors, both created in the 1970s, about 50 years ago. Both of them have a steep learning curve. In both cases, the effort is worth it. You will learn new ways of working with text, code, and editors. You will learn tools that are free, easily available, and kind...
<h2><a href="/grounding-your-team-in-reality.html">Grounding your Team in Reality</a></h2>
<label>03 August, 2023</label>
<p>We should ground our teams in reality whenever we can. </p>
<p>As ridiculous as it sounds, it is necessary to remind us and remind others to reign in our hopes and dreams back to reality. Mainly because it is so easy to become untethered. Once we are disconnected from reality, it is hard to...
<h2><a href="/business-innovation-picking-a-computer-language.html">Business Innovation: Picking a computer language</a></h2>
<label>02 May, 2023</label>
<p>You are starting a small, two-person company. You are the technical partner. You are bootstrapping. Your product will go against well funded competitors. You are counting on speed and innovation as your advantage.</p>
<p>You are about to pick up a computer language. This is how you do it....
<h2><a href="/innovation-in-the-us.html">Innovation in the US</a></h2>
<label>02 May, 2023</label>
<p>One of the most attractive, powerful, and hard to imitate attributes of the United States is its culture of innovation. The United States generates a lot of new ideas, inventions, and new processes. Innovation appears in all aspects of society: engineering, yes, but also education, political...
<h2><a href="/the-myth-of-fear-of-change.html">The myth of fear of change</a></h2>
<label>02 May, 2023</label>
<p>What happens when you suggest changing how work is done, let's say, adopting waterscrum, the hot new process that adopts the best of waterfall with the best of scrum, and your employees start pushing back?</p>
<p>You could listen to your employees. After all, they are the people doing the...
<h2><a href="/the-meta-story-of-modern-software-development.html">The meta story of modern software development</a></h2>
<label>17 October, 2022</label>
<p>tl/dr: Writing software is facing our ignorance and faillability. Our practices mean that we don't know what to do, and when we do, we don't trust ourselves</p>
<p>Stories are the main way in which we communicate with each other. We want stories. We want them history, yes, but we also want...
<h2><a href="/small-steps-towards-functional-programming.html">Small Steps Towards Functional Programming</a></h2>
<label>05 April, 2022</label>
<p>Functional programming has been one of those topics that is popular for developers to study for a while now. Unfortunately most developers are not using a functional language to use at work, so this reduces the possible adoption, even when team members agree that it would make things...
<h2><a href="/quick-jinja-filter-in-pelican.html">Quick jinja filter in Pelican</a></h2>
<label>21 March, 2022</label>
<p>I have articles on this blog that has sample code. Sometimes that sample code appears early in the article. This causes a problem with the teaser sample because sometimes the code markup breaks the rest of the list of articles, so it looks ugly and broken.</p>
<p>I recalled that in Drupal you...
<h2><a href="/team-programming-dialect.html">Your team's programming dialect</a></h2>
<label>03 March, 2022</label>
<p>We in the software developer world believe that a programming language, let's say, Python, is a single language, which will look the same everywhere. Python in particular encourages this idea with their, "there is only one way to do it" philosophy. Yet as people hop from company to company,...
<h2><a href="/social-tech.html">The social context of technology work</a></h2>
<label>02 March, 2022</label>
<p>Software has a tech bias. Our culture emphasizes technology while ignoring social dynamics. We choose to lose ourselves in technological details. This gives us the option to ignore the social dynamics. Some of us do it more than others. Our current culture pushes us in that...
<h2><a href="/personal-software.html">Personal Software</a></h2>
<label>12 February, 2022</label>
<p>I have been writing personal software recently, <a href="https://small-tech.org/about/#easy-to-use">small tech</a>. Software that solves my problems in ways that adaps to how I think and work. </p>
<p>It is unpretentious software. It doesn't want to become a framework. Often, it doesn't want...
<h2><a href="/zettel-system-with-vim-and-rake.html">Zettel System with Vim and Rake</a></h2>
<label>12 February, 2022</label>
<p>Recently I built a simple <a href="https://zettelkasten.de/posts/overview/">zettelkasten</a> system using vim and Ruby's <code>rake</code> library. This was an exercise in personal software.</p>
<p>Zettelkasten is a method for keeping hyperlinked notes. Its goal is to organize ideas and...
<h2><a href="/tables-for-layouts-a-fable.html">Tables for Layouts: a Fable</a></h2>
<label>07 February, 2022</label>
<p>A long time ago many web developers used tables for layout. It was handy. It was an easy to do a layout. It was easy to understand. </p>
<p>"It is wrong, dead wrong," said the Tech Prophet.</p>
<p>"Tables are meant for data. Developers are misusing it for layout. It <em>data</em> markup, not...
<h2><a href="/a-poor-philosopher.html">A Poor Philosopher</a></h2>
<label>30 January, 2022</label>
<p>I am a bad philosopher. I admit that I don't have a philosophy degree. I don't write philosophy papers. I don't keep up with philosophical trends. I get paid to write business software.</p>
<p>Yet it is philosophy's method the one that use the most to understand the world. It is what I do. We...
<h2><a href="/it-doesnt-deserve-it.html">It doesn't deserve it</a></h2>
<label>13 January, 2022</label>
<p>A coworker from sales asks you if you can help her manage her list of potential clients.</p>
<p>You could start by designing a new kubernetes pod that includes Postgres as the database, Redis for caching, RabbitMQ for the queuing system. One container will run Node.js to serve the React user...
<h2><a href="/simple_programming.html">Simple Programming</a></h2>
<label>08 January, 2022</label>
<p>I have been interested in Design By Contract. I don't have access to Eiffel. I want to try them out in Ruby. I looked into the frameworks provided by Ruby, but I don't fully understand how it works. I read that they have a lot of limitation. Frameworks are in fact little languages that one...
<h2><a href="/the-missing-tech-context.html">The Missing Tech Context</a></h2>
<label>21 November, 2021</label>
<p>Recently I ran into a discussion on a Ruby forum about the "right" way to implement a <code>.double</code> function. One solution used a <code>case</code> block that checked on the object's type. The other one added <code>.double</code> methods to the <code>Numeric</code>, <code>Array</code>,...
<h2><a href="/what-is-good-writing.html">What is good writing?</a></h2>
<label>14 December, 2020</label>
<p>As I was writing a brief review of Strunk and White's "The Elements of Style", I began articulating what my current ideas on what good writing consists in. I haven't thought about it for about 20 years. I realized that it had change since then. </p>
<p>Good writing is about empathy. You have...
<h2><a href="/thoughts-on-pythons-iterators.html">Thoughts on Python's iterators</a></h2>
<label>07 August, 2020</label>
<p>I just read <a href="https://dbader.org/blog/python-iterators">Dan Bader's blog on iterators</a> [1]. Iterators were this fuzzy concept that sort of made sense, yet never did. I understood that they were there and how to use them. I read the blog, I try the example, and it clicks.</p>
<p>The...
<h2><a href="/pythons-args-and-kwargs.html">Python's args and kwargs</a></h2>
<label>05 August, 2020</label>
<h3>tldr</h3>
<p>The *args and **kwargs parameter pattern is a way to collect an unknown number of function arguments. The names "args" and "kwargs" is a convention; the important part is the single or double star. A single star will return the arguments as a list. The double start will return...
<h2><a href="/pythons-doctest.html">Python's doctest</a></h2>
<label>31 July, 2020</label>
<h3>tldr</h3>
<p><a href="https://docs.python.org/3/library/doctest.html">doctest</a> [1] is a library that allows you to write python examples in comments or text documents. This is handy because you can write examples, test them, and have the peace of mind that they work. </p>
<p>Here are...
<h2><a href="/pythons-yield.html">Python's yield</a></h2>
<label>30 July, 2020</label>
<h2>The short answer</h2>
<p>Python's 'yield' is used instead of 'result' when you are creating results via a generator function. Think of generators as some sort of a lazy, stateful function that returns one item at a time. Why would we want that? We would want this when consuming a huge amount...
<h2><a href="/pythons-with.html">Python's with</a></h2>
<label>28 July, 2020</label>
<h3>The point</h3>
<p>The "with" statement can be thought as syntactical sugar that replaces a try: except: finally: block with a cleaner syntax.</p>
<p>Let's focus on the practical application of with. This is an example taken from the PEP. You will see how clear the code is. What you see is...
<h2><a href="/on-misspelling.html">On Misspelling</a></h2>
<label>22 July, 2020</label>
<p>English is notoriously hard to spell. It is perhaps one of the biggest hurdles that people learning English have to go through, after learning how to make English sounds. Yet language learners and native speakers can both share in the frustration of its spelling system.</p>
<p>One would think...
<h2><a href="/slow-writing.html">Slow writing</a></h2>
<label>20 July, 2020</label>
<p>In the last year I have found it hard to write. It feels that it is hard to express what I am thinking in sentences. When I do write, I notice weaknesses in my logic; in my construction of sentences; in the grammar of the sentences; and a lot of misspellings.</p>
<p>I have thought a lot about...
<h2><a href="/pyenv-starter-pack.html">pyenv starter pack</a></h2>
<label>17 July, 2020</label>
<p>In my transition from Ruby to Python, I quickly found that there was a familiar experience that made me feel like I never left the Ruby: libraries won't work well in certain language versions.</p>
<p>The common solution for this problem is to find a version manager. For personal projects I...
<h2><a href="/power-makes-you-stupid.html">Power makes you stupid</a></h2>
<label>06 June, 2020</label>
<p>We all have heard how power corrupts and absolute power corrupts absolutely. Probably more worrisome is that power stupefies and absolute power stupefies absolutely.</p>
<p>Although we have been taught that intelligence is an individual trait, it is to a large extend a communal one. Humans...
<h2><a href="/frameworks-should-make-it-easy.html">Frameworks Should Make it Easy</a></h2>
<label>03 June, 2020</label>
<p>Frameworks should make your work easier. Yes, there will be moments when you will have to fight with the framework to get something done. These cases should be rare. In general, you should not think about a framework or be happy when using it. </p>
<p>Ideally a framework lets you get your...
<h2><a href="/agile-self-reflection.html">Why don't we practice self-reflection in Agile?</a></h2>
<label>01 June, 2020</label>
<p>Self-reflection is my favorite part from agile. Call it a retrospective or a post-mortem; at the end of the day it is self-reflection. This is the self-correcting mechanism. You see what you have done. If it is not working, you do something else. If it perhaps the essence of agile. You can...
<h2><a href="/goals-over-process.html">Goals over Process</a></h2>
<label>30 May, 2020</label>
<p>Sometimes when we learn a new methodology we become eager to implement it. It is like buying a new board game and being eager to play it with others. </p>
<p>In our zeal to implement these methodologies, we may lose track that a methodology is a means to achieve a goal. The discipline is not...
<h2><a href="/find-and-replace-recursively.html">Find and Replace Recursively</a></h2>
<label>27 May, 2020</label>
<div class="highlight"><pre><span></span><code>grep -rl "Chunky" . | LC_ALL=C xargs sed -i ".bak" "s/Chunky/Bacon/"
</code></pre></div>
<p>Every so often we need to mass edit some directories. That should be the job of sed. Yet sed doesn't find files, so you need...
<h2><a href="/listen-instead-of-getting-buy-in.html">Listen instead of getting buy in</a></h2>
<label>06 May, 2020</label>
<p>I learned recently that product owners and managers are trained to seek team members to buy-in into new process, goals, or plans. This was an unfortunate word selection. It undermines building trust in a team. It frames the relationship between managers and workers the wrong...
<h2><a href="/how-to-define-a-function.html">How to Design a Function</a></h2>
<label>05 May, 2020</label>
<p>This is a small template that teaches you how to write a function. This template distills a number of great practices into a brief checklist. This short checklist, which is the core teaching of <a href="https://htdp.org/">How To Design Programs</a> book, concentrates writing code,...
<h2><a href="/web-challenge-rails.html">Web App Challenge: Rails</a></h2>
<label>04 May, 2020</label>
<h2>Documentation</h2>
<p>Rails has a lot of documentation. Finding a solution on Google is easy, and if one pays enough attention to the version number, correct.</p>
<h2>Using postgres</h2>
<p>The process of finding the documentation along with implementing it was easy.</p>
<h2>Tools</h2>
<p>I...
<h2><a href="/the-five-minutes-problem.html">The Five Minutes Problem</a></h2>
<label>24 April, 2020</label>
<p>In fields like chess, math, and computer science, you need to do the problems to learn. You cannot learn just by watching a lecture. It is a skill that one must cultivate via doing.</p>
<p>But the question is, how much should you spend on a problem that you cannot solve?</p>
<p>One school of...
<h2><a href="/looping-in-ruby.html">Looping in Ruby</a></h2>
<label>22 April, 2020</label>
<p>Looping in Ruby is usually a delight. ...
<h2><a href="/intro-byebug.html">Getting Started With Byebug</a></h2>
<label>21 April, 2020</label>
<p>This is a very quick guide/checklist on how to install and get debugging with Byebug, a Ruby debugger. ...
<h2><a href="/functional-programming-in-ocaml-1-2.html">Functional Programming in OCaml, 1-2</a></h2>
<label>14 March, 2020</label>
<p><a href="https://www.cs.cornell.edu/courses/cs3110/2020sp/textbook/">Functional Programming in OCaml</a> is an online book compiled by Michael R. Clarkson. It is used by Cornell University for their functional programming course.</p>
<p>I enjoyed reading chapter one. They explain the goals...
<h2><a href="/survival-ruby-reflection.html">Survival Ruby Reflection</a></h2>
<label>10 March, 2020</label>
<p>Ruby has a strong reflection system. This is useful when you are debugging. The more you know, the easier debugging will be. But if you are starting, the following ones will make your life better. </p>
<p>my_object.inspect</p>
<p>This will give you a string representation of the object. Very...
<h2><a href="/when-you-are-new-to-rails.html">When you Are New To Rails</a></h2>
<label>09 March, 2020</label>
<p>Are you an experienced developer? Have you been tasked to help out in a Rails project? Do you feel confused because there are no 'require' statements and variables seem to mushroom out of nowhere? Does Rails seem too magical to you? </p>
<p>If this describes you, don't worry. I have gathered...
<h2><a href="/using-pelican.html">Using Pelican</a></h2>
<label>08 March, 2020</label>
<p>I am in the process of cleaning up the site so that I can start writing again. I have decided that I will do two kinds of writing. One is very careful; I think of them as real articles. The second type are quick learning notes. My ideal site would have a section for those more well thought...
<h2><a href="/django-first-impressions.html">Django, first impressions</a></h2>
<label>07 March, 2020</label>
<p>I am working through the Django tutorial. Here are some thoughts.</p>
<p>There aren't any real controllers. Interesting.</p>
<p>The instant admin area is amazing. </p>
<p>Pluggable apps are such a great idea.</p>
<p>The way to define fields seems pretty straight forward. Using a more object...
<h2><a href="/ruby-gui-debugger.html">A Friendly GUI Debugger for Ruby</a></h2>
<label>01 March, 2020</label>
<p>I have been learning Smalltalk. Smalltalk is very similar to Ruby. And Smalltalk have these great programming tools. I am particularly impressed by the object browser and its debugger. Smalltalk was designed so that the system would be learnable. If you wondered how something worked, you...
</div>
</div>
</div>
<footer class="footer">
<!-- <p class="about"><a href="http://hugoestr.github.io/blog/manifesto.html">About</a> --> <a href="https://oskipa.github.io/pages/about.html" >I am</a> a software developer. I code in Python, Ruby, Lisp, and many other languages. I like poetry, museums, and ukuleles. I try to guide my life on principles of dadaism and nonviolence.</p>
<p>
<a href="feeds/all.atom.xml">atom</a>
<!-- <a href="http://github.com/oskipa/">github</a> -->
</p>
<p>Artisanally built with <a href="https://blog.getpelican.com/">Pelican</a>. Content handcrafted in <a href="https://www.vim.org/" >Vim</a>. All hallucinations are human. 100% AI Free.</p>
</footer>
</body>
</html>