HNHacker News
TopNewBestAskShowJobs

penpapersw

569 karma · joined January 28, 2017

Software developer for hire

Wrote cleancoders.com

Portfolio: https://sdegutis.com/

LinkedIn: https://www.linkedin.com/in/steven-degutis/

GitHub: https://github.com/sdegutis

Email: sbdegutis (gmail)

submissionscomments
penpapersw··on My son died in 1994 but his heart only stopped beating this year
If your parents felt the same way, you wouldn't have been born to enjoy all the good things you enjoyed in life so far.
penpapersw··on My son died in 1994 but his heart only stopped beating this year
This sounds noble and good and all, but us parents can't justify the risk. We need to be here for our children.
penpapersw··on Total.js Messenger – A small alternative to Slack
I'm afraid that at this point Slack has too strong a network effect to be replaced with something better except in niche circles.
penpapersw··on Show HN: My first native iOS app – Cone, a real time color picker
I thought it was just the right speed.
penpapersw··on Why Chinatown Produce Is Cheap (2016)
Could it be that they just don't have the cruft & boilerplate & inefficiencies that traditional retail has? Having been in several types of workforce, I've seen plenty of missed opportunities that continued indefinitely because of management incompetence, so I wouldn't doubt it if they're able to have high quality & cheap produce just by cutting out the middleman and by being competent.
penpapersw··on Jeff Atwood on growing Discourse
Well also, they seem to have a weird idea of what "modernizing" a web app means. While it's true that traditional web forums have plenty of usability issues, I don't really think Discourse actually solves them. It just hides them with fancier ones IMO.
penpapersw··on Kotlin doesn’t need an LLVM backend (2016)
No, the A in ARC means you don't have to write retain/release yourself anymore, the compiler inserts these calls for you. Very different concept from the optimization you're describing.
penpapersw··on Kotlin doesn’t need an LLVM backend (2016)
So in theory Go programs can't be considered reliable across multiple versions of macOS without recompilation then?
penpapersw··on Kotlin doesn’t need an LLVM backend (2016)
Speaking of GC, why aren't more newer languages designed using the ARC system that Objective-C uses? It seems to work amazingly well, it's very high performant from what I hear, and although it has a few small caveats, they seem worth the trade-off.
penpapersw··on Couple turns to viruses to beat back superbug
Right. But that's implied by the fact that the phrase exists.
penpapersw··on Couple turns to viruses to beat back superbug
It kind of sounds like you have a very specific context in mind when you say this. Mind explaining?
penpapersw··on Vue Loop – Infinite scrolling
Hmm, if you get near the bottom and then resize your window smaller, it doesn't "jump" back up to the top.
penpapersw··on Ask HN: How do you keep improving?
First of all it's not bad to keep using what you know, if what you know works well and is the right way to do something. Like if you're very good with the delegate pattern, don't throw it out just because you heard closures are Better™.

What I personally do is to use what I know well, and when some code feels clunky or I notice problems with it, I'll google the problem and be open minded about new solutions, even if they're really different. And I do a bit of research on the good ones (like 20 minutes or so), making sure they don't have other flaws and just ensuring they fit my use-case.

Case in point, I'm doing iOS development again for the first time since iOS 3 or 4, and when I started trying to use CAKeyframeAnimation again, it felt a bit difficult and didn't look all that great either. So I googled for ways to animate with a bounce effect in iOS, and found the newer UIView method to animate with a spring effect, and another solution using UIDynamicAnimator which was new to me also.

After like 5 or 6 hours of reading, googling, writing code, deleting code (custom segues turned out to be the wrong way to use it in my case), and lather rinse repeat, I finally ended up with not only a good end product, but the knowledge of how to use several new APIs and several new concepts. During that I also incidentally found out some cool Objective-C tricks that came out since I last used it.

Plus I felt really uncomfortable with understanding how ARC works (previously it felt like just a bit of magic to me), so I used the same principle of googling my questions & concerns about it, read some stackoverflow answers and blog posts for 20 or 30 minutes, and gained a much better / fuller understanding of ARC that gave me a lot more confidence writing code.

penpapersw··on Teller Reveals His Secrets (2012)
> "We often follow a secret move immediately with a joke. A viewer has only so much attention to give, and if he’s laughing, his mind is too busy with the joke to backtrack rationally."

I've seen this same trick used a lot, by self-serving people who want to convince others of a lie when it's especially not in their favor. It seems very manipulative and wrong.

penpapersw··on Understand Go pointers
The first language I learned was QBasic, so when I started to learn C++, the concept of pointers was bizarre and took longer to learn than it should have, but after it finally clicked, it gave me a special love for pointers, the simplicity of C, and low-level programming in general.
penpapersw··on The Dripping Sarcasm Voice
I can relate too well with the author here with knowing more than others, but I see it from a different perspective. From the perspective that there are other forms of being smart besides knowledge. There is a bigger picture of culture, which just means how we interact with the world and people around us, and intelligence is only a small part of that.

Culture is hard. I thought it was just me at first, but I've been meeting more and more people who just don't "fit in", and I think it's because they never really "got" the culture around them.

And now I'm seeing it more and more in my children, the fact that some people don't just naturally pick up the culture around them like others do. For some it's harder to learn than others and takes more effort.

As I grow older I realize more and more of this was caused by me being an arrogant kid. That arrogance stopped me from learning from around me because I would be too focused on the thoughts inside my own head, believing them to be more worthwhile than anything externally.

So I never picked up learning from the world around me during the time I was supposed to, and I was decades late to the party. Case in point, I'm 31 and only gave beer a real chance for the first time this year (conclusion: I like it!).

And I've accidentally passed that on to my own children, the arrogance and the cultural internalization. I just wish I had spent more time being quiet and listening to the world around me than thinking too much.

Half the time I wasn't actually "smarter" than anyone around me even though I thought I was, and the other half when I actually was, my intelligence did more harm than good to myself.

Some of the people I look up to the very most are "ignorant" by the standards I held myself to growing up (and maybe society did too). They're "uneducated fools". But they're kind, patient, quiet and thoughtful, good listeners, meek and humble, compassionate and understanding, forgiving. I find myself wanting to be around them just because they're them, and wishing I was more like them.

penpapersw··on Metaprogramming is less fun in D
An important factor in choosing a language is platform. I'm not going to choose Go or D to write an iOS app in, because it would be painful and buggy, if it's even possible in the first place. I'm restricted to Objective-C(++) if I want it to really be a high quality & native app.
penpapersw··on Microsoft to shut down Wunderlist in favor of its new app, To-Do
There's plenty of full-featured Todo list apps, but what's really missing is a quick & easy todo app that's got just the right amount of features.

Using Reminders and Notes for this feels clunky and awkward, and using a more full-featured todo app makes it hard to just get right to making a quick & dirty list.

Plus usually todo apps have weird design choices. Like, having a checkbox ticked for completed items brings more attention to them than to the remaining items, even though it's the remaining items that are most important to the user. Strange and unhelpful UI/UX choice, and it's so standard that even MS's new To-Do app does this!

So we decided to make an app that fills that niche, Accomplish[1]. We've barely started marketing it yet, but I have high hopes for this app because it feels like a very much untapped and overlooked market.

[1] http://penandpapersoftware.com/accomplish/

penpapersw··on Simplifying Firefox Release Channels
I'm always a bit skeptical when someone defends an organization by saying it's non-profit. AFAIK, the only difference between non-profit and for-profit is that the owners of a non-profit don't get to keep them money for themselves per se, although they're just like for-profits in all other ways, including the ability to name their own salaries and waste money frivolously and use their resources inefficiently. I don't know how Mozilla works internally, but I'm not about to give them the benefit of the doubt without cause.

Also, where is Mozilla getting money from in the first place? They only offer free products. The last time I checked, they're getting most of their money from Google. That doesn't automatically mean Google has Mozilla in their pocket, but it's definitely a red flag.

penpapersw··on Simplifying Firefox Release Channels
Considering Edge is improving steadily on Windows, and Chrome is pretty good and cross-platform, what is the niche of Firefox at this point?
penpapersw··on Ask HN: Best tool to build a single page, text-focused static content site?
For http://penandpapersoftware.com/accomplish/ and the accompanying blog we entirely used GitHub Pages. Took me about 3 hours to fully make everything in that website from content to style, except the blog posts which were each an hour and were written entirely in markdown. And since we hand rolled all the content and style it was trivial to make it work great on both mobile and desktop. Try scrolling through the blog code snippets, silky smooth!
penpapersw··on Apple's cash hoard swells to $246B
The article implies that Apple would take too big of a tax hit by doing so, to the point where it's better to wait until the laws change to make it more profitable for Apple to do so.
penpapersw··on ObjC equivalents to Swift solutions #1: Avoiding ObjC class name collisions
Really? That's not good. Well, as long as they're not using any kind of class-aware RPC, you can probably just add prefixes to all the classes yourself. Would take about 10 minutes using the Rename Class feature of Xcode, and it would be tedious, but it should work.
penpapersw··on ObjC equivalents to Swift solutions #1: Avoiding ObjC class name collisions
Good point! Just updated the blog post to mention this. Ultimately I don't think it's still too big of an issue. It just means that you may need to rename your classes in the future if an OS update causes a class name collision.
penpapersw··on ObjC equivalents to Swift solutions #1: Avoiding ObjC class name collisions
Very good point. I addressed our reasoning behind choosing Objective-C to some extent in the previous blog post[1].

A big reason behind this was to minimize the binary size, which means a much faster download.

Because we used Objective-C and didn't use any third party code, our todo-list app Accomplish[2] is only 289 KB, whereas the most similar competing app (MinimaList) is 8.8 MB and almost all the other competing apps are between 60 and 80 MB each.

It may seem like an unnecessary optimization, but we're hoping a faster download/install experience, along with close attention to detail in other ways, will give our app a competitive edge.

[1] http://penandpapersoftware.com/blog/2017-04-13-using-objc-fo...

[2] http://penandpapersoftware.com/accomplish/

penpapersw··on Hulu’s Live TV service to cost $39.99/month with ads, sources say
It's only consistent because they've lowered people's standards over time, like boiling a frog. The sooner people realize there's better ways to spend their time, and that they can get better and more relevant news and sports coverage much quicker than traditional TV by using the internet properly (on their phones presumably), they'll be that much quicker to jump ship and move to things like Netflix or library DVDs.
penpapersw··on Hulu’s Live TV service to cost $39.99/month with ads, sources say
Yep. We really enjoy watching the new Marvel movies when they come out, and watching older superhero movies from anything before the 2000s is painful at this point. But things like Star Trek TNG or Stargate SG-1 really hold up to the test of time.
penpapersw··on Hulu’s Live TV service to cost $39.99/month with ads, sources say
We're going on a half century of still-good television and films that have already been made! That's probably more TV than someone could watch in a whole lifetime! Even if all you do is borrow DVDs from the library (usually for free), you can still get an hour or two of quality video entertainment every night for a few decades (if not the rest of your life!) without ever seeing any new television/film content made after today. So the TV/film industry's "need" to produce (all too often low-quality) content 24/7 is no longer something anyone has to put up with!
penpapersw··on Dale – A Lisp-flavoured C
Everything is done for a reason. Sometimes that reason is just "to have fun / learn something new / expand ones horizons" and that's okay. But sometimes the reason is "to get the same amount of work done faster" and that's also okay. A lot of the mainstream languages were made for the second reason, but probably most hobbyist languages were made for the first.
← PreviousPage 4 of 4