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.
102 karma · joined October 12, 2014
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.
- 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-...
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.
One such example (Though I haven't used it personally): https://www.amazon.com/Amcrest-Splitter-Adapter-802-3af-comp...
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.
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.
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.
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.
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 _ _) = FalseThey 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.
> 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.
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
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.
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.
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).
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.
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.
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.