Leaving Google Fi

At every turn the Google Fi team was presented with a chance to make things better and every time they blew it. I’m sharing this because I hope a long form review of the process is helpful to other potential Google Fi customers. I’ve been a Google Fi customer since Sept 2016, when it was called Project Fi. I had a problem with one branch of Google: Google Fi, but that jeopardized my entire opinion of the company. I pay for Google Fi, Google Fiber, Youtube Red, apps + in-app purchases through Google Play, Google Play Music subscription, and Nest products.

Link  |  View on HN

How to Do Hard Things

This is a system I only somewhat tongue in cheek refer to as “The Fully General System For Learning To Do Hard Things”. Modify the easy thing so that it is like the hard thing in exactly one way that you find hard. Recursively apply the general system for learning to do hard things to the thing you’re stuck on. Write down a list of things you thought you did badly, and things you did adequately but struggled with. Try taking the hard thing and removing one hard aspect of it at a time until you get it to a point where removing any hard aspect would make it easy.

Link  |  View on HN

A Tale of Query Optimization

A tale of Query OptimizationLast December, I got an interesting bug report from the VWO support team. Those are provided in the query interface for customers, so they can make arbitrarily complex queries to slice and dice the data. SELECT id FROM urls WHERE url ILIKE '%enterprise_customer.com/jobs%'; id -------- ... (198661 rows) Time: 5231.765 msThe pattern matching query itself is taking only 5 seconds independently. Narrowing down the SuspectsI was ready to start tweaking the query to achieve any possible perf gains possible. While EXISTS was the performance booster that made things faster, it seemed like the && was the only remaining common factor in all versions of the slow query.

Link  |  View on HN

Australia Found a Way to Save Water from Plastic Pollution

This past summer authorities from the Australian city of Kwinana installed a new filtration system in the Henley Reserve. Both the government and the citizens have already seen the benefits of using it and they’re as content as can be. These pipes drain water from residential areas to natural areas and the trash and litter from these places can be overwhelming and be harmful to the environment. Moreover, this trash is usually washed away by heavy rains which pulls it all down to the drainage systems. So, it has been decided to install these litter “traps” all over the city and minimize the pollution to the wildlife and surrounding environment.

Link  |  View on HN

Tech Jobs Lead to the Middle Class, But Not for the Masses

Year Up “embodies strong forms of what we know makes sense and seems to work,” said David Fein, principal investigator for Pathways for Advancing Careers and Education, a multiyear evaluation of training and education programs. Today, Mr. Davis, 27, is a cybersecurity specialist working on an incident response team at the company. Partnerships with community colleges, begun as an experiment in 2012, have become the driver of growth for Year Up. By combining resources, the program can reduce its cost of $28,000 a student by 30 percent, Mr. Chertavian said. Their programs involve work-based learning at companies to link training with employer needs, and thus hiring.

Link  |  View on HN

Modern SAT solvers: fast, neat and underused (Part 3)

Approaches to SAT solvingModern SAT solvers fall into one of two groups: local search based solvers andConflict Driven Clause Learning (CDCL) based solvers. CDCL solversThe CDCL solvers are an evolution of the Davis-Putnam-Logemann-Loveland (DPLL) algorithm, which itself is a reasonably simple improvement over the naive backtracking algorithm. In this strategy, we decide on an upper limit of learnt clauses, and when adding a newly learnt clause exceeds this limit, the oldest learnt clause is deleted. Specifically, it will increase $c_{decay}$ when the learnt clauses are good, and decrease it when the learnt clauses are bad, as measured by a clause-quality metric such as LBD mentioned above. A bit more precisely, if there were at least X conflicts (and thus X learnt clauses) since the last restart, and the average LBD of the last X learnt clauses was at least K times higher than the average LBD of all learnt clauses, it is time for another restart.

Link  |  View on HN

Solid Principles: The Software Developers Framework to Robust, Maintainable Code

emailService = emailService ; } protected executeImpl ( ) : void { const mail = new Mail ( ... ) this . const mailGunService = new MailGunEmailService ( ) ; const mailchimpService = new MailChimpEmailService ( ) ; const sendgridService = new SendGridEmailService ( ) ; const createUserController = new CreateUserController ( mailGunService ) ; const createUserController = new CreateUserController ( mailchimpService ) ; const createUserController = new CreateUserController ( sendgridService ) ;Because we can interchange which implementation of an IEmailService we pass in, we're adhering to LSP. emailService = emailService ; } protected executeImpl ( ) : void { const mail = new Mail ( ... ) this . emailService = emailService ; } protected executeImpl ( ) : void { const mail = new Mail ( ... ) this . Additional reading"Clean Architecture" by Uncle BobExamples of SOLID codeIf you're interested in seeing some SOLID code, particularly the Email example, check out this repo.

Link  |  View on HN

A Decade of Remote Work

Remote is not for everyoneThe first thing that I would like to point out is that remote working is not for everyone. Usually, people who fail at remote work tend to either lack the self-discipline it requires, or they are simply socially oriented and thrive being around other people. Either you’re remote or you’re notEither you’re remote-only or you don’t do remote at all. As mentioned earlier, remote work is not for everyone. Sleep matters (shocking, I know…)Perhaps not related to remote work itself, but more the startup culture.

Link  |  View on HN

Google suspends some business with Huawei

Details of the specific services were still being discussed internally at Google, according to the source. Huawei attorneys are also studying the impact of the U.S. Commerce Department’s actions, a Huawei spokesman said on Friday. Huawei will continue to have access to the version of the Android operating system available through the open source license that is freely open to anyone who wishes to use it. But Google will stop providing any technical support and collaboration for Android and Google services to Huawei going forward, the source said. On Thursday the Trump administration officially added Huawei to a trade blacklist, immediately enacting restrictions that will make it extremely difficult for the technology giant to do business with U.S. companies.

Link  |  View on HN

Using an Atari ST as Unix/Linux Terminal

Copyright Emmanuel Kasper CC-BYhttp://creativecommons.org/licenses/by/3.0/fr/According to Wikipedia, a text terminal is "a serial computer interface for text entry and display". As a Text terminal requires extremely basic computing needs, it is easy to emulate in software, even on a 8 bit computer. Basically when you have your ST configured as a Text terminal, you will get something very similar to a GNU/Linux xterm or gnome-terminal, except if will be using the keyboard and screen of your ST. For using your atari ST as a Unix/Linux terminal you will need:a serial port, or an USB to serial adapter on your Unix/Linux computera null modem cable to connect the serial port of the ST to the serial port of your Linux system. an Atari ST or better with Terminal Emulator software.

Link  |  View on HN