HNHacker News
TopNewBestAskShowJobs

pinkythepig

102 karma · joined October 12, 2014

submissionscomments
pinkythepig··on TurboTax’s fight against free tax filing
Why would an open source solution improve on that though? If anything, that would be way lower on their priority list as anyone doing large numbers of investments would (should?) have money to pay for a nicer UX solution and probably would want to, as the risk of an audit is a bigger 'cost' than $50-80 in filing fees.

The sheer number of changes that the Tax code makes every year would be hard enough to keep up with for an open source project, let alone making integrations with all of the brokerages to make this process less painful.

pinkythepig··on TurboTax’s fight against free tax filing
There are already affordable alternatives. The people still using turbotax are the same people that spend 0 time looking into alternatives or there is some import feature that an opensource platform realistically would not have the manpower to replicate. Freetaxusa is $15 at a minimum (state fee) and $50ish at the max if you opt into everything. UI isn't loaded with fake loading screens, and they only try to upsell maybe 2 or 3 times during the whole process. My parents complain about turbotax every year and every year I tell them about alternatives... But they still won't switch because 'its what they know'.
pinkythepig··on A few things to know before stealing my 914
Surprisingly enough, you can get that from the BMW i3.

- The monitor is necessary but it is not a touch screen and it comes with a nice clicky knob to control it. Plus you can make shortcuts to go to certain screens with the radio station buttons.

- 2014 - 2017? all shipped with a 3g module that is now unsupported and not working.

- You can get access to munros teardown report for $10(1), and if you know where to look ;) you can find the service tech training manuals and their repair instructions for free which are all very detailed.

- realoem.com has exploded parts diagrams with part numbers for everything.

The only negatives really is:

- buying OEM parts comes with that BMW price premium and the dealer will 100% rip you off if you ever take it to them for repairs.

- The OEM tires, the only kind that fit on the OEM wheels, have terrible tread life.

(1)https://munrolive.com/support-%2F-store/ols/products/bmw-i3-...

pinkythepig··on “I just got a copyright claim for *TYPING ON MY KEYBOARD*”
I have to wonder, at some point with googles system not being the DMCA, when does it become copyright infringement on the part of youtube that they are hosting your copy righted works and making money off ads from them. Even if they are not taking a cut, they are still facilitating it. Someone selling fake gucci bags at cost of materials would still be in trouble even if they aren't making money off it.
pinkythepig··on Valve Steam Deck
This has so much more potential because its a desktop OS. You could e.g. play WoW using this. Not to mention the huge selection from emulators. I've tried gaming with Android before and the game selection is awful. Realistically, the only good gaming options are from e.g. snes emulators. On top of that, most phone GPU drivers are horrendously broken when doing advanced 3d stuff so even if a good game was released for android, you wouldn't be able to play it on 80% of phones.
pinkythepig··on The wrong way to switch operating systems on your server
I feel like a lot of this article really should be about how bad tarsnap is. Defaults to no progress updates, has no builtin multithreading, has failures around large files, can't backup sym links properly, no builtin way to detect an in progress restore so you have to manually tell it to resume, etc.

If tarsnap didn't have a bad UX, this entire article would have instead been 'the time I forgot to backup my .env file', none of the other issues would have occurred.

pinkythepig··on I’ve made a Cursed USB-C 2.0 device
my phone had an issue with charging cables falling out. Turns out the port had compacted lint jammed in it. Turned the phone off and used a needle to clean it all out, phone retains cables now like the day it was new.
pinkythepig··on Be skeptical of Ring's indoor security drone
You can buy splitters that convert the PoE into standard network + barrel power plug. Cost 20ish dollars and a roughly raspberry pi sized device in physical space.

One such example (Though I haven't used it personally): https://www.amazon.com/Amcrest-Splitter-Adapter-802-3af-comp...

pinkythepig··on Let's guess what Google requires in 14 days or they kill our extension
I can do this with fastmail, though fastmail is a subscription (like $5/month? IIRC, mine auto renews every 2 years so not sure). I have my primary email setup as <firstname>@<lastname>.org. If you set your dns records correctly with them, that allows you to use without any ahead of time setup <randomtag>@<firstname>.<lastname>.org. Setting a different tag where I have <firstname> is can be done too, but you need to set those up individually.

replying to emails, I can change <randomtag> to whatever I want.

They also offer random domains that you can setup burners under, though that does involve some ahead of time setup.

pinkythepig··on The Fry’s Era
Pretty quick to watch the tapes and see what register you bought from. You have to scan membership id at checkout, so then seeing whos membership was used is simple.
pinkythepig··on A World Without Power (2013)
The natural gas genny portion exists, the water one does not. The water one doesn't exist for two reasons:

1. There is only energy in the water system because your city has pumps/water towers to give it pressure. So in a disaster, you running your hydro setup is just placing more strain on the water infra who are likely running on generators.

2. Hydro plants need huge amounts of water to provide power. To even power a single outlet, you are talking in the range of tens of thousands of gallons of water per hour. Your water bill would quickly eclipse the cost of just buying a generator.

---

Going back to natural gas, you are looking for an automatic transfer switch. When the power cuts, it disconnects you from the grid, turns on the generator automatically, and you then have power again. When the power is back, it switches you back to grid and turns generator off. Only downside is that there will be a several second power cut while generator turns on. You generally can only get this feature on midrange cost and up generators. For cost savings measures, you can also buy a manual transfer switch, with the obvious downside of you having to flip the switch and go start the genny.

pinkythepig··on We Lost Our Ability to Mend
I had this exact problem on mine. I took a panel off from back of inside freezer compartment, and there was a solid block of ice below coils. I didnt own a hairdryer, so used a turkey baster and hot water to melt it. Spray hot water in, wait 30 sec, suck it back out, get fresh hot water, repeat till you get drainage.
pinkythepig··on Chatbots were the next big thing: what happened?
I feel like the real problem here is that bash is still the default and bash defaults/UX are straight up awful. The fish shell gets a lot of things right in regards to a sane out of the box experience, though there are a few things it could do better.

The tools themselves leave a lot to be desired from a UX experience too. Things like nonsense names, bad defaults and/or no inherent intelligence in the program, means you have to specify numerous options manually for things that should be easy to automate.

The whole experience would benefit greatly by telling people about things like man/apropros on first startup and other one time tutorials.

There are some days where I feel tempted to write small helper scripts whose sole purpose would be to rename/reorient the default experience/flags of various CLI apps, so that it is not a jumbled mess full of historical accidents that can no longer be changed.

pinkythepig··on Employers are monitoring computers, toilet breaks, even emotions
As soon as you walk by someone or shake someones hand, they can copy your implanted RFID. Now, if you want to 'change the locks' to your house and car, you will need to dig out the chip in your hand and implant a new one.

To me, adding the capability to a watch, fitbit or other such wrist wearable is the far more practical option. Easy to change out if it gets compromised, plus you can build in a switch so that it is only capable of broadcasting when you press a button.

pinkythepig··on The End of Windows
I use an xps13 9350. I am running fedora on it and quite literally everything works out of the box on install.
pinkythepig··on Getting any Facebook user's friend list and partial payment card details
First 6 is shared across the cards a particular bank issues. Its not a secret as you can google the first 6 to find the bank or even the reverse google the bank to see what BINs they use. Last 4 is intended to be human visible so people can identify the card in use. When you factor in the check digit ruling out 90% of the remaining combinations, there are still 10,000 valid cc combinations plus an expiration date you would have to guess just to get a single acct.
pinkythepig··on How I Learned to Stop Worrying and Love the State Machine
In Haskell, this would look something like:

  data Player =
      Player (Maybe Weapon) Class
  
  data Weapon =
        Sword
      | Staff
      | Dagger
  
  data Class =
        Warrior
      | Wizard
  
  type Error = String
  
  mkPlayer :: Maybe Weapon -> Class -> Either Error Player
  
  mkPlayer (Just Sword) Warrior = Right (Player (Just Sword) Warrior)
  mkPlayer (Just Dagger) Warrior = Right (Player (Just Dagger) Warrior)
  mkPlayer Nothing Warrior = Right (Player Nothing Warrior)
  mkPlayer (Just Staff) Warrior = Left "A Warrior cannot equip a Staff"
  
  mkPlayer (Just Staff) Wizard = Right (Player (Just Staff) Wizard)
  mkPlayer (Just Dagger) Wizard = Right (Player (Just Dagger) Wizard)
  mkPlayer Nothing Wizard = Right (Player Nothing Wizard)
  mkPlayer (Just Sword) Wizard = Left "A Wizard cannot equip a Sword"
A player is always a defined class(wizard or warrior), but they may not have a weapon equipped. This solution is a bit wordy, but comes with the benefit that if you ever add a new weapon/class, the compiler will scream at you if you haven't handled the case for it properly.

You would only export the mkPlayer function in the library and you could potentially have much fancier error handling, such as building a data structure that contains an 'invalid' player anyways (e.g. `Left (Player (Just Sword) Wizard)`) so you can custom build an error message at the call site ("A $class cannot equip a $weapon") or even completely ignore the error if that is a potential usecase (such as building an armor/weapon preview tool, where you don't care whether they can use the weapon/armor).

Modifying it is pretty easy too. Say I wanted to allow for 2handed weapons, plus offhand weapons (shields, orbs, charms, etc.) I could encode that in a data type like:

  data EquippedWeapon =
        TwoHanded TwoHandWeapon
      | OneHanded (Maybe OneHandWeapon) (Maybe Offhand)
      | Unequipped
and swap it into the Player definition:

  data Player =
      Player EquippedWeapon Class
And now I wouldn't be able to compile until I fixed the mkPlayer function and any other place that uses a Player and is dependent upon the weapon portion of the data structure.

e.g. This function wouldn't need to change

  areYouAWizardHarry :: Player -> Bool
  areYouAWizardHarry (Player _ Wizard) = True
  areYouAWizardHarry (Player _ _) = False
pinkythepig··on Let’s talk about usernames
gmail makes josh@... and josh+swife@... resolve to the same thing, but there is no guarantee that all other email services behave like that. For all you know, there is an email service that lets you register an email like that, so you have 2 users now whose email is: john+smith@... and john+brown@...
pinkythepig··on The Economics of Privacy (2005)
Isn't this model already relatively heavily used? There are loads of apps that have a free ad supported version, but if you pay for it, all ads are removed.

They could spin it in a similar way:

Ad supported version is free. As part of this free service, you are tracked extensively to build a valuable profile for sale to ad companies.

By paying for the service, all ads and the associated tracking required to make your profile valuable to advertisers is disabled.

In this way, the tracking is spun as a necessary evil for the ad supported model to work.

This would probably require them to be pretty open about what sort of tracking is going on.

pinkythepig··on Integrating “safe” languages into OpenBSD?
This is off topic a bit, but there is a solution for this:

> Slow compilation: more than a minute (makes to start browsing HN, missing the end, thus losing even more time)

See the thread here: https://askubuntu.com/questions/409611/desktop-notification-...

TL;DR install undistract-me, add 2 lines to bashrc, and you will get a desktop popup when a command that takes longer than 10 seconds to complete is finished.

Fedora does this by default on install and I have found it so handy. Kick off a compile etc, then just browse HN/reddit til I get the popup.

pinkythepig··on Privacy Policy Update Notice
https://emby.media/ is an open source alternative.
pinkythepig··on Ask HN: Is coding like speaking another language?
I like to equate it to giving instructions to someone who takes everything you say extremely literally. Ask me to make a PB&J? If you tell me to stick the knife in the PB, since you didn't specify what side to stick in, I sometimes put it in handle first, sometimes knife edge first, depending on how I found it. To make a successful program, you would need to account for all the possible inputs (the different orientations of the knife in the drawer, the possibility that there might not be a knife, etc.). The difference between good software and bad software is that the good software will properly handle all of these error conditions, and the bad software will either do the wrong thing (sticking it in handle first, because the instructions assumed the knife was always oriented correctly) or will crash when something unexpected happens (such as there not being any more knifes, or running out of peanut butter half way through making a sandwich).
pinkythepig··on Bollinger B1: An electric truck with 360HP and up to 200 mile range
J1772 plug (the one that every EV has) is an AC connection and there is a converter in the car that converts it to DC.

The super charge ports (CHAdeMO/CCS/etc) use DC power and are basically direct hookups to the battery.

https://en.wikipedia.org/wiki/SAE_J1772 https://en.wikipedia.org/wiki/CHAdeMO

pinkythepig··on When Rust Makes Sense, or the State of Typed Languages (2015)
Your list of 3 is filled by Haskell, have you looked into the concurrency options available? If not, there is a good book that you can read online: http://chimera.labs.oreilly.com/books/1230000000929/index.ht...

I can't really imagine there being an easier way to have concurrency unless it were to be something inherently built into the language (which would cause all sorts of other issues).

As one example from that book: http://chimera.labs.oreilly.com/books/1230000000929/ch03.htm...

In that example, you initially build the program as a single threaded application and can validate that it's behavior is correct. Once you know that it is, you can literally 'bolt on' concurrency without changing the result of the computation.

Reading the whole book is extremely eye opening on what sorts of strategies are available.

pinkythepig··on Introducing Surface Laptop
You would have to upgrade the Windows license first. These ship with a version of Windows that only allows installations from the windows app store. To upgrade to a 'real' Windows license will cost an extra $50.
pinkythepig··on The myth of using Scala as a better Java
Haskell has lots of large projects written in it.

Besides the ones others have mentioned, Haxl is probably one of the bigger known industry uses of it. It is used at facebook as their spam filter:

https://github.com/facebook/Haxl

If you scroll to the bottom of that github page, you can find several papers and articles that go into detail about it.

pinkythepig··on Do Developers Need College Degrees?
Closed source is what is unique.

I can tear apart any engine to understand how it works.

I can rip out the bathroom in my house and install a totally new one.

With closed source, I can't just rip out component X and replace it with component Y. I can't read the binary to understand how it works (Technically I could, but I mean that with modern languages, the assembly looks massively different from the original source).

pinkythepig··on Richard Feynman Put Himself on the FBI’s Do Not Call List
He was prone to 'rattling the bars' so to speak and out of boredom, learned how to break the 'secure' file cabinets/safes that all the top secret stuff was kept in.

Basically, all of the combination locks had 2 digits of leeway. So if your first code was 20, you could set the lock to anything from 18 - 22 and it would still open.

This meant that instead of the locks having 100 x 100 x 100 = 1,000,000 combinations, they instead had something closer to 20 x 20 x 20 = 8000 combinations. He would then brute force the 8000 combinations through a combination of trying the more likely ones first and if that failed, just brute forcing it over a few hours.

The locks were made easier to brute force in that unlike modern locks, the 3 combinations would be input on 3 separate dials so you can set the first two to the 'right' value, then just spin the third while attempting the handle at the same time. This meant you could try literally every possible combination in ~10 hours of work.

As for an example of easy ones would be a birthday or anniversary.

- code 1 = day 1-30(6 combos)

- code 2 = month 1-12(3 combos)

- code 3 = year 1-99 (20 combos) (This would likely be 9-10 combos if he accounted for the distribution of likely dates)

So to try every date combo, you would only need to try 360 attempts in the worst case.

pinkythepig··on Tim Cook assures employees that Apple is committed to the Mac
My XPS 13 9350 works perfectly with Fedora 25. Installed Fedora and literally everything works out of the box. That includes things like HiDPI auto scaling, touch screen, suspend, media keys, etc.

When it was first released, there were some issues with suspend and the touch screen, but they were all resolved a few months later in a newer kernel release. Fedora 25 ships with that newer kernel by default.

pinkythepig··on Just Finished Lear You a Haskell for Great Good. What Now?
I found that learn you a haskell is pretty nice for learning the abstract 'mathy' parts of haskell, but it is pretty terrible at explaining how to actually apply that knowledge and it also does not cover advanced concepts and seems to just end abruptly.

If you are still not understanding how to actually make programs, I'd recommend you either go with http://book.realworldhaskell.org/ or http://haskellbook.com.

Real World Haskell explains the concepts decently and is free... But its syntax is very out of date so you can't just copy stuff from the book with modern versions of libraries and expect it to work.

haskellbook is better, but it costs 60 dollars. It does a better job than RWH imo, although it is still in early access and has some rough edges. For example, chapter 1 is unintelligible gibberish to me (at least when I read it, maybe its better now), but the rest of the book is mostly good. Also, due to being new, it covers things like stack as well.

Page 1 of 2Next →