HNHacker News
TopNewBestAskShowJobs

expopinions

17 karma · joined March 6, 2019

submissionscomments
expopinions··on Ask HN: Tricks to Avoid Eye Problems?
Your eyes are an important part of your health. There are many things you can do to keep them healthy and make sure you are seeing your best. Follow these simple steps for maintaining healthy eyes well into your golden years.

Have a comprehensive dilated eye exam. You might think your vision is fine or that your eyes are healthy, but visiting your eye care professional for a comprehensive dilated eye exam is the only way to really be sure. When it comes to common vision problems, some people don’t realize they could see better with glasses or contact lenses. In addition, many common eye diseases such as glaucoma, diabetic eye disease and age-related macular degeneration often have no warning signs. A dilated eye exam is the only way to detect these diseases in their early stages.

During a comprehensive dilated eye exam, your eye care professional places drops in your eyes to dilate, or widen, the pupil to allow more light to enter the eye the same way an open door lets more light into a dark room. This enables your eye care professional to get a good look at the back of the eyes and examine them for any signs of damage or disease. Your eye care professional is the only one who can determine if your eyes are healthy and if you’re seeing your best.

Know your family’s eye health history. Talk to your family members about their eye health history. It’s important to know if anyone has been diagnosed with a disease or condition since many are hereditary. This will help to determine if you are at higher risk for developing an eye disease or condition.

Eat right to protect your sight. You’ve heard carrots are good for your eyes. But eating a diet rich in fruits and vegetables, particularly dark leafy greens such as spinach, kale, or collard greens is important for keeping your eyes healthy, too.

i

Research has also shown there are eye health benefits from eating fish high in omega-3 fatty acids, such as salmon, tuna, and halibut.

Maintain a healthy weight. Being overweight or obese increases your risk of developing diabetes and other systemic conditions, which can lead to vision loss, such as diabetic eye disease or glaucoma. If you are having trouble maintaining a healthy weight, talk to your doctor.

Wear protective eyewear. Wear protective eyewear when playing sports or doing activities around the home. Protective eyewear includes safety glasses and goggles, safety shields, and eye guards specially designed to provide the correct protection for a certain activity. Most protective eyewear lenses are made of polycarbonate, which is 10 times stronger than other plastics. Many eye care providers sell protective eyewear, as do some sporting goods stores.

Quit smoking or never start. Smoking is as bad for your eyes as it is for the rest of your body. Research has linked smoking to an increased risk of developing age-related macular degeneration, cataract, and optic nerve damage, all of which can lead to blindness.

Be cool and wear your shades. Sunglasses are a great fashion accessory, but their most important job is to protect your eyes from the sun’s ultraviolet rays. When purchasing sunglasses, look for ones that block out 99 to 100 percent of both UV-A and UV-B radiation.

Give your eyes a rest. If you spend a lot of time at the computer or focusing on any one thing, you sometimes forget to blink and your eyes can get fatigued. Try the 20-20-20 rule: Every 20 minutes, look away about 20 feet in front of you for 20 seconds. This can help reduce eyestrain.

Clean your hands and your contact lensesproperly. To avoid the risk of infection, always wash your hands thoroughly before putting in or taking out your contact lenses. Make sure to disinfect contact lenses as instructed and replace them as appropriate.

Practice workplace eye safety. Employers are required to provide a safe work environment. When protective eyewear is required as a part of your job, make a habit of wearing the appropriate type at all times and encourage your coworkers to do the same.

expopinions··on Ask HN: How to get practical experience in developing scalable apps
One way to get some experience could be to find an open source project dealing with this kind of system and contribute there.

Examples of such open source applications in use for distributed, large scale systems all over the world are tensorflow, elasticsearch, and hystrix; this is just the tip of the iceberg.

Contributions to OSS will also be beneficial if you need to find a job in the business.

expopinions··on Ask HN: How can I learn and get better at maths on my own?
A huge part of math is learning how things work, how to look at things, when there’s actually an easier way to do things than that one formula you just learned. Even if a book can perfectly teach you this, you still lose a lot of perspective.

If you get a teacher, or at the very least someone who is helping you, or even just learning alongside you, you’ll learn far more efficiently, as what the other person thinks may be put in a phrasing, or use a tactic, or have some reasoning, the list goes on, that you could never have come up with on your own. Even if you’re smarter than Newton - well - Newton didn’t get to where he got without a little help throughout his life.

HOWEVER.

That’s not to say it’s impossible. If you really have a love for mathematics, there a loads of ways to learn more math. If you’re looking just to get some random math knowledge, then roaming YouTube is actually a pretty effective method of gaining some fun knowledge. Those guys are average joes just like you and I. They always have something fun to get your hands on.

If, however, you’re looking for a specific subject, or something that would otherwise replace a class, then get the best textbook you can find and get a tutor. Maybe you’ll be fine on your own, but two heads are still better than one, especially with education. Math builds on itself. If you just barely scrape by in Algebra, Calculus isn’t going to be fun. You need to have a pretty good understanding of everything. That’s why its so hard.

One last tip: pace yourself. If you think you’ve got a topic after reading it and working on a couple of problems, still take a day on it. You’ll find something you missed, find a shortcut, or something, and it’ll make the next topic just that much easier. And again, that’ll carry on.

expopinions··on Ask HN: How do you keep your files organized on macOS?
You can right click on any file/s and select a colored label from the menu. After that you can click on any of the colored labels on the sidebar and see what files you tagged with which color.
expopinions··on Ask HN: What are your thoughts of Leetcode and HackerRank
I’ve used both platforms pretty extensively to beef up my data structures and algorithms knowledge.

Hackerank Strengths

Tons, and I mean tons, of questions and organized into Tracks. Want to learn about how to use Regular Expressions/ Java/ SQL/ Algorithms/ Data Structures/ Python/Math? Each one of those topics and more have specific paths with specific sub topics. If you are using these sites to get interview prep, a lot of companies send their coding challenges through Hacker rank as apart of the interview process, so it’s good to get familiar. Expedia, GE, Goldman Sachs and Optiver to name a few You get almost all functionality (if not all) from the website for free. On Leetcode without the paid subscription, there are definite drawbacks. For instance you can’t always submit your solution right away, due to how they run the solution to rank against all other solutions. Almost all problem statements have examples of 1 or 2 test cases and answers and pretty thorough explanations of why the answer is the way it is. That’s much less common on Leetcode. Every question posted on Hackerrank has a verified solution on the “Editorial” tab. Not every Leetcode question has one ( Though you could easily get an answer on both platforms clicking on the “discussions” tab) Both sites have visible test cases to run your code with before submitting. Hackerrank does a pretty good job of making those visible ones the common cases, while Leetcode almost always uses an edge case for the visible test. Hackerrack has vim bindings! (If you’re into that) Leetcode Strengths

Something I love about Leetcode is that they have straight to the point problem statements. Hackerrank tends to have a bit lengthy introductions and drawn out scenarios that mask the actual task. For example: Hackerrank could be like “Sally loves chocolate but only wants to eat chocolate with the lowest amount of sodium. Given an array of sodium levels, return the lowest chocolate with lowest sodium” Leetcode equivalent would be “Given an array of integers, return the min element” Both Hackerrank and Leetcode compare the run time costs of your algorithm by timing the solution with test cases. However, once your solution has been approved, it lists it against all approved solutions in the same programming language and the percentage of how many solutions you beat out for speed. The testing environment is far superior. When you enter a custom test case it also runs the correct solution too so you can immediately know if your’s is right or wrong. On Hackerrank, running a custom test case only runs your solution. Another thing I love, for every problem, the coding interface requires only working with some predefined function signature. In Hackerrank, a lot of the time you have to handle the input/output, and it runs string matching to validate the answer which can get a little annoying Seriously… why I should print “YES” or “NO” when the quicker equivalent is just keeping a Boolean object? Leetcode has that fancy “Question was asked by X Company with Y% frequency”, that you can access with the subscription. I personally think that this tool isn’t that useful, and gives false impression that people can just memorize all those specific questions once they get an interview with X company. I personally like LeetCode better and, ultimately, it comes down to what you’re using it for.

expopinions··on Ask HN: What is the best keyboard driven Git clients?
First choice - Lubuntu 16.04 LTS, it is quite Window$ like in function and appearance.

Second - Ubuntu 16.04 LTS, the full version of Lubuntu. Not quite as Window$ like but close enough for most people to run without too much trouble. My wife’s new build kitchen PC came to life with Ubuntu 14.04, upped to 16.04, and she has had very few issues.

Third - Maybe Fedora, I am trying it out now and seems to install and run very well.

Stay away from Mint, Mate and Cinnamon, they are just skins for Ubuntu and a new comer does not need another later of confusion. I could not get Arch or Manjaro to install and run in either of my test machines. One is a 32 bit laptop, and Arch does not have a 32 bit version. Stick with a distribution that will write to a USB via UnetBootin or RUFUS, a newbie will not run 5 lines of code to build a USB drive.

expopinions··on Ask HN: Does Amazon Hire Without BS?
It is possible. As others said, you will have a somewhat of a tough time getting an interview, but if you get one and nail it, you will get an offer just the same. As to how to get an interview in such situation? - be very proactive and find alternative ways to get your resume in front of the eyes of engineers or engineering managers. If you rely only on submitting through the standard Jobs page, your resume will most likely never make it through the layers of automated software and recruiters filtering. Find a friend that works in one of these companies and ask them to help you out, lurk in the groups where employes frequent and try to make a name for yourself, make sure one of your apps is moderately successful and meets a need for one of these companies.

Note that getting an offer is also contingent on your eligibility to work in US. If you are not a US citizen or a green card holder, the requirements to get an H1 visa are to have the equivalent of four years of education, where each three years of work experience counted as a year of education. (There are other H1 class visas, but they are not as common in the computer industry) But the company has to like you really a lot to go through the trouble in that case...

And since you managed to pique my interest, Id be curious to look at your resume. I'll leave out the part of figuring out how to send it (without it being caught by the junk filters) as an exercise to you. Shouldn't be that hard..

expopinions··on Why isn’t CPU time more valuable?
Depends on what you mean by speeds, but there's a huge confluence of reasons that processors are where they are today.

If you mean the clock speed specifically, then it's largely due to the inability to manufacture smaller gate widths in silicon. The Core 2 architecture by Intel, for example, uses a 45 nanometer gate width for transistors in each core. Core 2 was part of the Penryn family. The latest family is Nehalem, and it, too, uses 45 nanometer gate widths. Core i5 and i7 belong to this family, among others.

Since the gate widths didn't shrink from the Penryn family to the Nehalem family, the power consumption of a single state change in a given transistor didn't decrease. Since the heat dissipation (and, therefore, power consumption) is proportional to both the gate width and the clock speed, this new architecture couldn't change the state of the transistors any faster than the previous one. Therefore, core clock speeds remained pretty constant.

Getting to 45 nm was really tough. Going to the next frontier, which will likely be 32 nm, will be even tougher. So tough, in fact, that STMicroelectronics, Freescale Semiconductor, NXP Semiconductor and Texas Instruments have all decided to stop their process research. An article in 2007 claimed that Intel, IBM and Matsushita, AMD and Renesas would be the only organizations still pursuing R&D in this area. That's a vastly reduced set of brains and dollars on the gate width problem.

If your question about "speed" is more general, well, then there's another discussion around multi-core architectures that's also fascinating. The primary technical advances in Nehalem versus predecessor families are its multithreading, caching, bus and memory management schemes. If you keep each core at 3 GHz, how can you efficiently use two 3 GHz cores to get, say, 1.5 times the speed of a single core? How can you efficiently use four 3 GHz cores to get, say, 1.5 times the speed of two cores? in this respect, processor speeds have increased significantly in the last 5 years, and will continue to do so as software is written to take advantage of these new architectures.

But, then again, when was the last time you really found yourself waiting for your processor? It was probably your disk, your network or your brain that was the bottleneck in the first place. :-)

expopinions··on How to pass a programming interview (2016)
The key to success in any interview, but especially in a programming interview, is practicing as much as possible. It's not enough to start just a few days before the real thing. The best method of preparing is incorporating your interview prep into your everyday coding practice, so that you'll never fall behind, even if you aren't currently searching for a job. But the plan "to practice" is too vague and leaves a lot of programmers unsure of how to get started in the process, which can be overwhelming. If you're frustrated and aren't sure how to get going on your coding interview practice, follow these steps to get started.

1. Review the basics. Even experienced programmers and engineers can get tripped up when questions about algorithms and data structure come up. If you haven't yet mastered the basics, focus on this for a few weeks or months to get yourself ready to tackle the bigger problems. It's crucial, not only for a coding interview, but for the entirety of your professional career, that you understand the basics. They are your foundational skills upon which you will build and master your expertise.

2. Solve coding problems and work on projects. Online coding practice problems are a great place to start. Apply your knowledge and work on projects you enjoy. Write code. Build things. Put your skills to use. This should be the fun part - if you aren't enjoying the journey and the process of building your coding skills, you'll have a difficult career as a programmer. Sure, there will be moments of frustration where you'll want to smash your computer screen and throw your mouse at the wall. But forge on. Keep trying. Find those bugs and destroy them. Build great things, and immerse yourself in online forums and other communities where you can turn to for help when you really get stuck.

3. Use online coding interview platforms for practice. This is a great way to get exposure to how the real coding interview will feel. Smash your nerves and anxiety by conducting a full coding interview with a partner. On platforms like Pramp and Leetcode, you'll get paired with another programmer of a similar skill level, so it will scale to your ability. Together you'll experience the coding interview from both perspectives. Performing the role of the interviewer and the interviewee will teach you a lot. After the mock run, you'll both leave each other feedback, and this is a great thing to have to tailor your practice schedule and for identifying what you need to work on the most.

expopinions··on How random can you be?
Life is anything but random. It is nothing but a collection of actions and outcomes, both of which are tightly coupled and definitely connected.

Let's take a simple example: you had an important meeting at 9 am but since you were stuck in traffic, you were late by 10 mins.

The final outcome can be clearly explained by actions that directly or indirectly led to them. May be there was an accident causing the traffic jam. May be you woke up 10 mins late than usual thereby getting caught in rush hour traffic. May be the cab you took to work, arrived late at your destination cause he woke up late.

All of the above are totally controllable actions, albeit not in your direct control. Hence the feeling that life is random. Because none of us have any control over the outcomes of the actions of others, who subtly influence our lives on a daily basis.

Think of it this way: our life is intertwined with the lives of others in one way or the other. From the cab driver who drives us to work to our loved ones who shatter our hearts, their actions influence us, some more than the others, but influence us nonetheless.

It's a complex equation, with a whole lot of variables, most of which are beyond our control and unknown and the solution to this equation is the outcome of an event.

I believe that if one knew the values to all the variables at any given point of time, then one would be able to solve the equation with precision

expopinions··on How to Refactor Your Finances – An Interview with a Programmer Who Retired at 34
Being able to have a tight grip on one's budget is important. It helps you secure your future and provide a better tomorrow not just for yourself but your family, as well.

Check out some of these tips on how you can save more and manage your finances:

Create a budget plan according to how much you earn. Your budget and spending should be something that is in-line how much money that comes in regularly. A budget helps you live and experience life to the fullest without overspending. Under-budgeting yourself and your family is also no good since that would mean you are actually lowering your standard of living in some aspects.

Make sure that you are sticking to your budget plan. As I have said earlier, a budget plan helps you live life to the fullest without breaking your bank account, and in order for this to happen, you have to stick with your budget as much as possible. Keep a close track of your spending and list down every spending you make. Keep a tight leash to that madman inside you that screams buy this and that that actually do not have any important use t you.

Make an itinerary of your daily activities the night before. Having a daily to-do list helps curb your spending urges by reminding you that you are in a saving mode. Having a set routine also helps you become more productive because now, you have set tasks to do instead of thinking what other stuff you can buy.

Plan and budget your meal plans. I am one of those people who spends too much money on food. Having a set budget helps you limit your food choices. I live in the Philippines so the currency rate here is like 50 pesos is to one dollar, and that’s how much we spend on every meal excluding rice. It limits our choices to veggies and a few slices of meat most of the time, and it helped me curb my overspending habit when it comes to food. It also helped us save a lot. You do not have to eat extravagant food in order to be healthy.

*Use processes when planning an outing. We all love going out, and that means shelling out some money. Planning your outing and sticking to a budget helps you enjoy the moment and affording yourself a relaxing day without going broke

expopinions··on Why We Don't Like Our Underground House
I think that primarily, as others have said, we need sunlight. However, one can introduce sunlight into an underground structure with various skylights, including those that use mirrors to bring the light just about anywhere underground.

It’s mostly the excavation, drainage, and more robust structural requirements that increase the cost of construction of an underground house to a point where it outweighs the benefits of such a house. One would want to locate any underground structure on a site that is well above the water table, and well above a flood zone - so again, the cost of locating such a plot of land increases the difficulty and expense of building such a home.

However, I think that there are advantages to residences that are - half-buried. In other words, built into a hill on a slope. The advantages to such a house would be significant if it were sited correctly with a well-engineered drainage system. For example, in the Northern hemisphere the energy savings of a house on a slope with a glass curtain wall facing south would significantly reduce heating and cooling requirements regardless of latitude. Temperatures within the structure would be pretty constant year round. In winter, when the sun recedes to the south and stays lower to the horizon, sun would shine in, and warm, the house for a major portion of the day. In the summer as the sun rises more to the East and is higher in the sky, the earth surrounding the house except for its south-facing wall would insulate the house from radiant heat, and the cooler temperature of the earth would also keep the house from warming up much.

Our summer house in New Jersey faces South, and that long side of the house is windows the entire length of the house, and about half of the surface area of that wall. In winter, on a sunny and below freezing day, the temperature inside that long room can get as high as 80 degrees F (27 C). Midday the furnace doesn’t come on at all (unless it’s a very windy day). The basement is at ground level on the south side, completely underground on the north side. The basement maintains a pretty steady temperature year-round. Had this house been built in the past 20 years rather than 60+ year ago it would have had solar panels running fans to use the basement coolness to air condition the house on the (relatively few) hot days in summer, and distribute the excess heat in winter throughout the house. As it is, it’s an extremely energy-efficient structure.

expopinions··on How to Set Up Your Python Project for Success -with Tests, CI, Coveralls Andmore
You can find lot of information about different libraries and stuffs , i would focus on slightly underrated area (not just for python but for any other language you need to master this skill to become successful programmer )

One of the most important skills you need to acquire to be a successful programmer is the ability to debug your programs. Debugging might be the most under-appreciated, and under-taught, skill in introductory computer science.As programmers we spend 99% of our time trying to get our program to work. We struggle, we stress, we spend hours deep in frustration trying to get our program to execute correctly. Perhaps the most important lesson in debugging is that it is largely avoidable – if you work carefully.

Start Small , Start with something really small. Maybe just two lines and then make sure that runs ok. Hitting the run button is quick and easy, and gives you immediate feedback about whether what you have just done is ok or not. Another immediate benefit of having something small working is that you have something to turn in. Turning in a small, incomplete program, is almost always better than nothing. Keep it working Once you have a small part of your program working the next step is to figure out something small to add to it. If you keep adding small pieces of the program one at a time, it is much easier to figure out what went wrong, as it is most likely that the problem is going to be in the new code you have just added. Less new code means its easier to figure out where the problem is. This notion of Get something working and keep it working is a mantra that you can repeat throughout your career as a programmer. It’s a great way to avoid the frustrations mentioned above.

Debugging a program is a different way of thinking than writing a program. The process of debugging is much more like being a detective. Here are a few rules to get you thinking about debugging.

Everyone is a suspect (Except Python)! It’s common for beginner programmers to blame Python, but that should be your last resort.

Find clues. This is the biggest job of the detective and right now there are two important kinds of clues for you to understand

Error Messages Print Statements Make sure you take the time to understand error messages. They can help you a lot.

print statements are your friends. Use them to help you uncover what is really happening in your code.

Work backward from the error. Many times an error message is caused by something that has happened before it in the program. Always remember that python evaluates a program top to bottom.

expopinions··on Ask HN: Game devs, what is the hardest part about designing an AI for your game?
None of those (e.g. lighting, physics, graphics) are truly difficult today with the advent of modern game tools (e.g Unity). Assuming you know basic vector math and can think in 3 dimensions, most problems related to sound, physics, graphics etc can be solved by some Googling.
expopinions··on How to Spoof PDF Signatures
The Digital Signature of a message is based on the content of the message and the private key of the signer. Therefore a digital Signature is bound to a particular user and a specific message.

So, If I copy your digital signature and attach with my message, the receiver (relying party) would be able to (instantly) determine (through a PKI enabled Application) that I have not signed the message.

expopinions··on Ask HN: How to create a service similar to Patreon?
There are a lot of sites doing similar things, which aren’t as well known as Patreon. Patreon is popular, but it does have some drawbacks, such as only taking USD.

Some alternatives include:

Sther - A site all about inclusivity, aimed at the LGBTQ and POC communities. Steady - Designed more as a way for freelancers to fund their work. Podia - Recently launched membership crowdfunding, building on their short course and digital download platform. Ko-Fi - It is a freemium model that requires paid membership to receive monthly payments from fans, instead of one offs. Drip - A recently opened membership funding site which is owned by Kickstarter. Liberapay - A site for repeat donations. Open Collective - for transparent ongoing funding of groups. Backerpass - Another membership funding alternative, based on reaching goals. SubscribeStar - For subscribing to Social Media influencers and helping them with payment subscriptions. Collide - Yet another alternative which has recently been launched. Ratafire - Another small creator membership site. Minds - A Cryptocurrency option for subscriptions. Kind of. I’m sure there’ll be many more sites like these in future, as fan funding is certainly something that’s catching on!

expopinions··on Should Law Subsidize Driving?
Uber is the biggest loser, setting a record for losses of a startup. Silli-con billionaires have supported these losses (subsidized). Sustained losses are unsustainable. Uber presently keeps about 40% of ride cost. When uber raises prices and/or increases uber cut, competition will increase. Autonomous cars will not solve the problem and are a fantasy solution. I.e., no solution.