<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: cowile2</title><link>https://news.ycombinator.com/user?id=cowile2</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 13 May 2026 14:48:47 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=cowile2" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by cowile2 in "Googlebook"]]></title><description><![CDATA[
<p>Exactly. Good ads are a service to me that inform me of things I want to buy. They aren't tricking me into buying stuff. Sometimes I see an ad and immediately believe the product would improve my life and it does.<p>I think the problem with HN/Engineer types is they basically never see ads designed to appeal to them because they aren't a large enough audience.</p>
]]></description><pubDate>Wed, 13 May 2026 08:46:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=48119367</link><dc:creator>cowile2</dc:creator><comments>https://news.ycombinator.com/item?id=48119367</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48119367</guid></item><item><title><![CDATA[New comment by cowile2 in "Ask HN: How to Change Industries?"]]></title><description><![CDATA[
<p>I have thought of that possibility, but find two things strange about it.<p>1. Half a dozen companies being dishonest in exactly the same way is tough to believe. It's too much coincidence. I don't see a reason for dishonesty in that area. Technically insufficient solutions should be easy to explain as a rejection reason.<p>2. Having attended the interviews in question, I rarely choked on that kind of question and earned plenty of praise from interviewers with little assistance. I'm not long out of school and typically have a knack for those kinds of problems. While I can't see how strict the standards are and what the other candidates are like, I'm not seeing the negative feedback that indicates improvement needed.</p>
]]></description><pubDate>Thu, 11 Jul 2019 03:41:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=20408931</link><dc:creator>cowile2</dc:creator><comments>https://news.ycombinator.com/item?id=20408931</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20408931</guid></item><item><title><![CDATA[Ask HN: How to Change Industries?]]></title><description><![CDATA[
<p>I left my job as a systems programmer at a large defense contractor back in February. After two years, I knew it wasn't where I wanted to be, and an ongoing merger squeezing budgets and creating a toxic environment forced my hand.<p>Approaching the six month mark, I feel down about my prospects. I have found plenty of interviews, but the only offers come from big contractors like I am trying to escape.<p>I recently got several onsite interviews[0] with startups in the Bay Area and elsewhere. Frustratingly, even when companies thought I was technically excellent and a good cultural fit, they rejected in favor of candidates with closer matching professional experience.<p>How can I find work in a new industry?<p>[0] Triplebyte referral link: https://triplebyte.com/iv/K1tBqiw/cp/out_a. The overall experience was amazing even if it didn't work out, and I would appreciate the referral money if anyone is looking.</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=20407122">https://news.ycombinator.com/item?id=20407122</a></p>
<p>Points: 6</p>
<p># Comments: 2</p>
]]></description><pubDate>Wed, 10 Jul 2019 22:10:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=20407122</link><dc:creator>cowile2</dc:creator><comments>https://news.ycombinator.com/item?id=20407122</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20407122</guid></item><item><title><![CDATA[Let's Create a CLI with Python – Part 1]]></title><description><![CDATA[
<p>Article URL: <a href="https://medium.com/@shamir.stav_83311/lets-create-a-cli-with-python-part-1-ae4fe9e0258b">https://medium.com/@shamir.stav_83311/lets-create-a-cli-with-python-part-1-ae4fe9e0258b</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=19566559">https://news.ycombinator.com/item?id=19566559</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 03 Apr 2019 19:42:40 +0000</pubDate><link>https://medium.com/@shamir.stav_83311/lets-create-a-cli-with-python-part-1-ae4fe9e0258b</link><dc:creator>cowile2</dc:creator><comments>https://news.ycombinator.com/item?id=19566559</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19566559</guid></item><item><title><![CDATA[Password Hashing Explained with Bad Drawings]]></title><description><![CDATA[
<p>Article URL: <a href="https://cswithbaddrawings.wordpress.com/2019/04/01/keeping-passwords-secret/">https://cswithbaddrawings.wordpress.com/2019/04/01/keeping-passwords-secret/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=19551322">https://news.ycombinator.com/item?id=19551322</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 02 Apr 2019 05:29:14 +0000</pubDate><link>https://cswithbaddrawings.wordpress.com/2019/04/01/keeping-passwords-secret/</link><dc:creator>cowile2</dc:creator><comments>https://news.ycombinator.com/item?id=19551322</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19551322</guid></item><item><title><![CDATA[ABS: A Programming Language for Shell Scripting]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.abs-lang.org/">https://www.abs-lang.org/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=19549607">https://news.ycombinator.com/item?id=19549607</a></p>
<p>Points: 5</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 01 Apr 2019 23:53:07 +0000</pubDate><link>https://www.abs-lang.org/</link><dc:creator>cowile2</dc:creator><comments>https://news.ycombinator.com/item?id=19549607</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19549607</guid></item><item><title><![CDATA[New comment by cowile2 in "APL deserves its renaissance too"]]></title><description><![CDATA[
<p>> Finding qualified programmers and having access to libraries so you don't reinvent the wheel.<p>Lots of niche languages have the same problem, notably lisp, but it doesn't do to say they aren't popular for those reasons. It's circular reasoning. Languages get those things by being popular. They get popular by having those things.<p>Every current "popular" language with good libraries and a large userbase started with no popularity, no libraries, and no users. They built these things over time.<p>The problem is these languages can't create a robust community. They are powerful, so people don't need large teams to do what they want. They are different, so it is a bigger investment to understand them. The combination means they attract the kind of elitists who are not willing to help newcomers or write basic libraries, the kind of people who are perfectly capable of reinventing every wheel and doing it better than last time.<p>No one teaches these languages. How popular could they get if companies and universities spent millions of hours collectively drilling even the most marginal programmer on how to use them like they do for C++ and Java?<p>They would never do it though. Large companies don't want more powerful languages. They will take the productivity loss for fungible employees. It's part ego. Middle managers look much more important if they have 20 programmers write 1,000,000 lines of code over 5 years than two programmers write 10,000 over six months even if functionality is equivalent. It's part bargaining and risk. If you only have a few programmers, the individual programmer is worth a lot more. It is also riskier to employ one because she could leave or get hit by a bus at any time.</p>
]]></description><pubDate>Mon, 28 May 2018 22:37:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=17175268</link><dc:creator>cowile2</dc:creator><comments>https://news.ycombinator.com/item?id=17175268</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=17175268</guid></item><item><title><![CDATA[New comment by cowile2 in "Show HN: Forsh – A Unix shell embedded in Forth"]]></title><description><![CDATA[
<p>A few of the words right now implicitly depend on machine word size to operate correctly.<p>I could write versions that worked on 32-bit, but I don't have a 32-bit machine to test on.</p>
]]></description><pubDate>Fri, 17 Nov 2017 00:50:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=15718120</link><dc:creator>cowile2</dc:creator><comments>https://news.ycombinator.com/item?id=15718120</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=15718120</guid></item><item><title><![CDATA[New comment by cowile2 in "Show HN: Forsh – A Unix shell embedded in Forth"]]></title><description><![CDATA[
<p>What are your metrics?<p>What Forth is best at is boostrapping from bare metal to a reasonably high level language with the simplest design possible. Forth was first written at a time when there was a staggering amount of hardware in existence, so reimplementing the base language as quickly as possible was a huge plus. It's got a low floor but a high ceiling. It is a free-wheeling language that allows both very clever and very stupid things.<p>Unfortunately, this legacy means lots of fragmentation. There is not one cohesive community or set of standard libraries. Forth is very much a "do it yourself" language.<p>Forth can be very concise because all parameters are passed implicitly on the data stack by default. Parameters and arguments lead to a lot of duplication of expression in traditional languages because you need to give them explicit names both inside and outside the function.<p>If you prefer, it helps to treat it as a functional language where all functions take a stack and return a stack. All programs are a space separated list of function names. Of course, nothing stops you from using all the global variables you want.</p>
]]></description><pubDate>Fri, 17 Nov 2017 00:48:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=15718112</link><dc:creator>cowile2</dc:creator><comments>https://news.ycombinator.com/item?id=15718112</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=15718112</guid></item><item><title><![CDATA[New comment by cowile2 in "Show HN: Forsh – A Unix shell embedded in Forth"]]></title><description><![CDATA[
<p>Hello, everyone. I would have responded sooner but I spend most of my workday in a closed network for security reasons (defense contractor), and don't have much internet access over the course of the day.<p>There is nothing stopping Forsh from being used that way. The convenience words from the README use a global variable to tell them where to build commands and overwrite the memory for every new command because the common case is that you as a user don't really care much about having arbitrary history (In any case, gforth already uses readline, so I get history for free). The words underneath all take that location as an argument on the stack. You could write some words that allocate space for each new command without changing the underlying libraries.<p>The key to thinking about pipe words in Forsh is that they execute a given command and <i>consume and/or leave a file pointer</i> to a command's stdout on the stack. This is why there are multiple pipe words. They have different stack effects.<p>`>|` (begin pipeline) only leaves a file pointer.
`|` (continue pipeline) consumes and leaves a file pointer.
`|>` (end pipeline) only consumes a file pointer.<p>This allows the pipe words to interoperate with any file I/O words in gforth.<p>If you want to "save a command to a variable", you just use a regular Forth word. [bracket] words make things work in compile mode.<p>`: hack [c] echo [p] hack! $ ;`<p>Executing hack will then build and execute the command. This also works with arbitrary pipeline fragments.<p>I did my best with syntax, but existing shells have already aggressively minimized typing for short commands. The most I could do was have people type `l ` instead of `--` for long options and `s ` instead of `-` for short options. However, I find quoting much improved over existing shells. You specify the quote character when you type the command, so there is no escaping. You just pick a character that doesn't exist in the string. You are ok as long as your string does not included every printable ASCII character.</p>
]]></description><pubDate>Fri, 17 Nov 2017 00:30:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=15718023</link><dc:creator>cowile2</dc:creator><comments>https://news.ycombinator.com/item?id=15718023</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=15718023</guid></item><item><title><![CDATA[Show HN: Forsh – A Unix shell embedded in Forth]]></title><description><![CDATA[
<p>Article URL: <a href="https://bitbucket.org/cowile/forsh">https://bitbucket.org/cowile/forsh</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=15709671">https://news.ycombinator.com/item?id=15709671</a></p>
<p>Points: 76</p>
<p># Comments: 20</p>
]]></description><pubDate>Thu, 16 Nov 2017 01:40:05 +0000</pubDate><link>https://bitbucket.org/cowile/forsh</link><dc:creator>cowile2</dc:creator><comments>https://news.ycombinator.com/item?id=15709671</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=15709671</guid></item></channel></rss>