HNHacker News
TopNewBestAskShowJobs

iamNumber4

251 karma · joined April 7, 2017

submissionscomments
iamNumber4··on Ask HN: Do We Need Folders?
No, just call them directories, thinking of them as logical buckets to place things in them, which can be used to store data or direct you down further to find and location any information placed within the hierarchy structure.

Please note, if it is not broke don’t fix it. As well as new does not mean improved.

Also the file system found within computer operating systems were modeled after ways to categorize and store information that is both easy to use, and understand. Humans have been using systems like this for so long the inventors of that system are all but forgotten, as the concept can be seen through out history from how libraries have organized their collections of knowledge building, floor, isle, case, shelf, book, page, paragraph, sentence; all of which are conceptual examples of a directory. As well as other forms of systems in the same vain, country, state, city, district/neighborhood, street, block, house, room, file cabinet, drawer, folder, document.

Then as other suggestions in comments relational databases having database, table, row, column.

Each of those are also the concept of a directory.

Which can be defined as the ability to hold something, including more directories.

And a storage system can be described as a system of associated directories with a means of linking, nesting, indexing to provide means of navigation for location of things held within the system.

So, if there is a better way, humans have not yet grasped upon or discovered yet.

If you have ideas, go for it, but make sure your not reinventing the age old design with different nomenclature. You may also like looking into graph theory and object oriented design as areas of topics to learn about/discover.

iamNumber4··on Native American Name Controversy
It’s not that hard folks.

Anyone born in America (north, central, and south) are native Americans.

Some are of indigenous descent.

So when referring to a group of people we should just use terms of person and human. As there is no difference and none are better or worse than another.

If a person has an additional identity they describe themselves as a member of, then those terms should be used, Latino, Lakota, Hoosier, French, etc... when referring to groups of people who self identify with that group.

As that any given person could be of; or any combination of; any given cultural group. As that a person could be of Latino, Cherokee, French, Chinese decent, but live in Indiana. Referring to them as a Hoosier is true, as a Latino is true, as a Cherokee is true, ... is true.

Most importantly a human being is true.

iamNumber4··on Ask HN: Do you follow a method to refactor your code?
Reduce reuse recycle comes to mind when I refactor code. Any code that is small does one useful thing that can be a candidate for a library. Catalog of useful library items should be well known within a code base so all code. When refactoring look out for things where the the current code may not be using existing library code and reinventing the wheel. Replace with code that does this with the library alternative. However if the current code has a fringe or divergent reason for not using the library function/method the library may need update to cover the fringe use case so there is no regression in the code your currently trying to refactor. Then also in the back of your mind be on the lookout for code that could be useful as a new library function, class or added to an existing class as a new method. When refactoring we want to reduce down as much as possible to useful reusable and code that can be well tested and well documented of its behavioral use cases.

The recycle is then to look at existing libraries to ensure they also follow the same rules as the current code which you are refactoring in the first place.

Then... you may still not be done. You need to then look at the pattern and structure of the code and look for code with bad smell (various levels of nested conditional statements, loops, etc...). Any thing you can do to remove layers of indented code, changing the structure if need be to be more linear top-down adding checks to short circuit, throw exceptions and then handle those exceptions. Basically anything you can do to improve the big-O of the code. This includes making sure all input parameters are validated and fail early if not. Then also output validation to ensure the return is sane. Then be on the lookout for security issues where the code may default to a true state, as you want to ensure if there is a problem you’re failing gracefully to a secure state so that there is not a hole or way to escalate security permissions, etc...

Then... look at unit tests, is there coverage of all of the code, is there well defined behavior documented in the unit tests, is there use cases you spotted not being covered by unit tests, is the code that rationally can’t be unit tested is that documented in the unit test code and then states this is end to end and logically can only be test through end to end testing, or other means (including documentation how those tests are run, if so).

When going through a process of refactoring, using reduce-reuse-recycle; you should develop a living document that is a check list of what to be on the look out for. Then when using the checklist, developers doing the refactoring process should start be taking notes of what the code does, intended use, and make observations based off what they are seeing. They can then later review those observations against code comments, api documentation, test frameworks, etc... to ensure that the code does what it says does against the previously existing documentation (if that even exists)

The other thing which is super important. Refactoring is not rewriting. You are not designing and implementing a solution or trying to change behavior. You are simply trying to make the code have a smaller cross section, and be more efficient be reducing it to common calls of library code. When you spot bad smell, questionable taste in design patterns you don’t fix it now, you document with code comments todo’s etc... and how to fix and open a new task to fix that section of code. Keep on going drilling down through the code layer to layer. Then you recycle again and start completely again when working those tasks just created. The goal is to create small easily worked rewrite tasks (at first) with sign posts to direct places in the code and what needs done. Then you will have a sense of scope needed to implement the refactor’s rewrite here, there, not using library here but should be, library is missing this feature move it from to there kinds of tasks.

Then risk management, and timeline management. Is it worth doing now, if so when do we do it and pencil it in?

Remember refactoring code is just math. Trying to reduce a complex equation down to its smallest form that can be easily understood.

iamNumber4··on Ask HN: Which perks do you negotiate for beyond base salary?
Severance package. Try to negotiate for a few months of severance. Make sure the wording includes language for no longer employed by. So that if you decide to quit, or they let you go they will pay you a wage before any unemployment for a given term. But also includes it being open if you do start another job right away that they still owe you. Also try to get health insurance during the term as well.

Then at review time try to get more added time added to it. So that over time you can get more weeks of pay. This can be a bargaining chip if they can’t afford a giving a raise, that you would accept more time for the severance package instead of a raise. While it might also seem silly if a raise is offered but no increase in severance counter with a proposal with a smaller raise and severance.

Do this until you have 6 months to a year of severance. Start low with say 2-4 weeks but try for 12 weeks.

This will buy you protection in the future if work becomes hostile, or a super visor start pulling crap trying to make up bs on performance reviews to try to justify letting you go.

Make it expensive for you to leave the company and that they need to be honest, fair and ethical with you at all times, or you can play the fuck it card and sit at home and still get paid while you look for work. If they let you go same deal, but you then get any unemployment after the severance terms are up.

iamNumber4··on Should you hire a lazy developer?
Laziness is the mother of innovation.

Hard working lazy people seek solutions to do the necessary work with smallest and most efficient way possible to achieve lowest level of effort possible.

iamNumber4··on Best Programing Language
Which all of above is the reason I like D Lang, as it is ABI compatible with C/C++. So all existing libraries and code written in C can just be used but also have the convenience of modern language design principles. Which unlike the other modern languages like Rust, Go, .Net, etc... it is not corporate owned and controlled. So being completely free and open source like C/C++, D is continuing build on top of what came before, but also bringing in modern languages safety for memory, types, as well as rtti (runtime type introspection), and being multi paradigm allowing procedural, OOP, and functional to all co-exist in the same code.

So that is why I think it is the best choice for my default language of choice.

iamNumber4··on Best Programing Language
D Lang is my default language

But it all depends on what. You should always use the right tool for the job. Don’t kill the fly with a bazooka when a fly swatter is all you need.

iamNumber4··on Apple Thinks a Day Has Only 18 Hours
Funny title, especially considering its 9 to 5 Mac’s article.
iamNumber4··on Tips for sysadmins to improve communication skills
The questions are; are you being accused of have poor communication skills by your boss?

Or are you just trying to improve your skill set?

If the just trying to improve look up effective communication, including topic like pathos, logos, and ethos, reading your audience, and non-verbal communication. You could also look at groups like toastmasters.

If you are being accused of poor communication by your employer or direct supervisor it’s time to look for a new job. As that this accusation is from certain management playbook techniques as was to deny employees promotions as it threatens the managers own career trajectory. As that you have done something intentional or not that makes them look bad or they need an excuse to justify a poor performance review.

iamNumber4··on How Hot Was July? Hotter Than Ever, Global Data Shows
Puff piece, no data, pure author opinions. If you like word salads then here is a good example.

Facts: the global temperatures average is still 2 degrees cooler than the 14th centuries. We are coming out of an ice age. Sure our pollution doesn’t help. I would like to point out, a single volcanic eruption produces more greenhouse gasses than humanity produces in a year. There are multiple massive eruptions every year in the ring of fire.

What does this mean?????

Plant a tree, several if you can. Will it do anything to solve global warming???? No but you’ll feel better.

Climate change is natural. Fertile areas become deserts, deserts become fertile. Ice melts, more green plants grow eventually sucking up the excess gasses. Eventually it becomes colder again.

It’s happened before us, it will happen after us.

iamNumber4··on Do not tell your expected salary. Let a company make an offer first
Whoever states a number first looses the negotiation!
iamNumber4··on Great Employees Are Raised, Not Hired
Or. Outlining the affect of the unwillingness of some employers to give far wages to existing employees when they bring in new employees at higher rates than existing employees.

As well as, reasons why people leave jobs for better pay and career growth.

If you hire new talent and compensate them better and don’t also raise compensation and or responsibilities for other existing employees your going to create feelings that lead to disengagement. Which gets us to people writing articles about how it’s better to grow employees vs, bringing in outside talent to the existing team.

If you have good culture, fair compensation and clear paths to career growth, then yes I agree growing in house skills will be better, with starting new employees at the bottom to not offend existing people you have invested in their career growth.

It sounds to me that the author has some experience with bad culture and was slighter by some new employees who may have gotten promoted or flat out hired above them without having more skills than they possess essentially killing their ability to move to higher rungs inside the organization.

iamNumber4··on Hipsters mostly look alike. There’s math to prove it
I know this so wrong, but my friends and play a game “hipster or homeless”. Where we attempt from pure subjective observation try to determine if the person is down on their luck, or intentionally dressing the way they look.

There is a fine line, between the two.

Full disclosure I have been homeless, but just because I was in an unfortunate situation, I still tried to be a presentable human being. The situation I was in should also not take my dignity as the two were not related.

iamNumber4··on Ask HN: What’s your laptop?
Lenovo flex 5 1570. It’s awesome. i7, upgraded to 16 gigs of ram. Running Ubuntu 18.04 everything works except fingerprint reader, but I don’t care about that.

Aluminum body, 15 inch form with a 10 keyless keyboard. So your hands are centered and don’t feel like your sitting left of the screen.

Was about 1000 bucks with the ram upgrade at the time. However now, it’s about 800 a year after I got mine.

iamNumber4··on Death-Cap Mushrooms Are Spreading Across North America
This just in posinous mushrooms common to North America found in North America
iamNumber4··on Compilers for Free
Nothing to see here, peaked my interest since “who would pay for a compiler??” In the modern age of open source.

Post has a missleading title, and is just rambles about ruby and compilers.

iamNumber4··on Doing more exercise won’t help you burn more calories
True, the simple fact is you can’t out run your mouth. Exercise is good for other health reasons not for weight loss. In fact if your severely overweight jumping on a treadmill will damage your joints.

Intermittent fasting, and eating diets like unethical vegetarian (meat sometimes) are great for weight loss.

If your going to eat junk, binge, get it out of your system. Try to limit this to rare and appropriate moments. Birthday parties, event dinners.

Don’t feel bad you enjoy food, don’t take it away, just don’t eat junk regularly.

Do low impact cardio like swimming or biking, do low joint stress strength training (yoga or resistance weight training)

Relax, don’t stress, sleep more, eat less ( when your body tells you to eat only not because of the clock).

Relearn thirst vs. hungry. Your probably not hungry, just thirsty most times.

iamNumber4··on Ask HN: Scrum vs. Kanban vs. Agile vs. Waterfall – what is working for you?
I think a mixture. Coining the term “Ban Scrum”. Which is a mixture of KANBAN and scrum sprints. Where the sprint is not over until an identified set of tasks/stories are completed. The truth about software development is, it takes as long as it takes. But you don’t have infinite time. So digest what needs done, carve up/reduce into the smallest workable step/task, group like things into sprints. Work those sprints until complete. This also allows for larger teams to work more sprints concurrently by dividing the dev teams up into smaller unit teams. Then having a single KANBAN board for management to watch progress. While also allowing for continuous development and rolling releases, eliminating the artificial deadline of the traditional scrum sprint and resulting crunch of code reviews a day or so before the end of sprint cycle.

Ritual meetings are similar, but there is never a end of sprint meeting/next sprint planning session. Rather a weekly sync up to talk about what’s working and what’s not, what can we do better. Then weekly backlog grooming to identify and group future sprints to get them ready to be started, when it is natural to start that work. Then of course daily standup to communicate roadblocks to managers so they are aware and can do their job to unblock the road, and also to promote general awareness to of other team members of what each other are doing.

iamNumber4··on Ask HN: How to Handle Argumentative Developers?
This is the time to have a conversation about their role in the organization. They have opinions, sure, are those opinions argumentative by themselves probably not.

Most engineers want to know the why’s. If there in the dark on the big picture it can impact the overall results as they make wrong choices in design and architecture if they don’t know.

The conversation needs to be about their career path, and the aspirations. If they’re a good engineer, maybe they want to be more. Maybe their ideas are sound and they are being ignored which leads to frustration and more friction because they have insights of a problem you don’t see or are blind to.

I would suggest scheduling this first conversation, then daily or weekly 1:1 sync meetings. Keep them in the loop and feeling they are valued members of your team.

After you have reset your rapport with them. Listen to them, reinforce you have their back and part of the team. Delegate some responsibility through stewardship make them the owner of something. Let them succeed or fail.

If they still exhibit the same behavior, and can’t handle what you delegated to them, then it’s time for them to go.

Don’t loose a talent because you labeled them with a “communication issue”. The issue may be you are not listening or effectively communicating the direction or tone.

It also sounds from you post and described issue, is a result from your management style and possibly being a micro-manager. I could be wrong, but that is what I inferred.

iamNumber4··on Ask HN: How do you take notes on your laptop?
Markdown, any existing text editor.

Low tech, shut the lid, place paper on it, use writing implement of your choice.

iamNumber4··on Ask HN: Going from Developer to Manager. What should I know or learn?
Learn to delegate through stewardship. Set clear expectations for outcomes. Your job is to remove obstacles to allow others to do their job, and direct traffic so the right people are working on the right things. Don’t micromanage. 90% of the job is setting expectations so you can convey that to your team, and up the chain of where things are.

So... you’ll need to develop ways to gather daily progress reports and monitor work is progressing. When it is not progressing you have to remove the road blocks if possible while also communicating up any roadblocks that might be causing delays to keep your bosses expectations inline with the current state of the projects progress.

You will also need to start thinking about the process in which people work, and make adjustments to the current process as problems show up. I have a Wednesday meeting with my leads/senior team to sync up and address pain points, I call this meeting “What’s working Wednesday” with the main topic to specifically look at and adress what is not working. So that my team and I can adjust our way of working. This allows me to get in front of problems when there small, and have knowledge of frustration/pain points.

iamNumber4··on Expert Excuses for Not Writing Unit Tests
Unit tests for code coverage or application functionality?

They are different. TDD, is a waste. As you don’t factor in protyping, you start by writing test. Tests should be always step 3. The saftey check and improve is what unit tests are for. I would even argue that unit tests should be written by someone else, later on as a way to share knowledge and checks and balances.

Ask yourself the question are we writing a testing application or a user application. When you focus on the mythical unit test perfection, you are in fact writing code to pass tests the same author devised. So the premise is flawed.

iamNumber4··on When is it OK to use goto?
In languages that support goto, but do not have try catch syntax. The appropriate use of goto for failure states to properly handle deallocation of allocated memory. If condition not met goto: cleanup
iamNumber4··on Tips to improve PC performance in Windows 10
A lesson I learned in life is to look a entire problem in a whole, and then look for ways to sidestep the entire problem.

The root cause is windows 10. So the side step is to not use windows 10 to avoid all the associated issues.

So I suggest installing Linux to have better performance on Your hardware.

iamNumber4··on Ask HN: Can you tell me your most frustrating case while working with Docker?
Docker for windows; crashing, or loosing connection to mobylinux, constantly needing to give permissions (windows sign in) to allow access to mounted volumes. Ergo lots of turn it off and on again style fixes, including windows reboot to get it going again.

Total garbage.

Since mobylinux is a vm in windows hypervisor, we moved to a Ubuntu vm, running LXD, an then proper lxc containers. Removing docker from the equation from our developer and production environments. No more issues because we don’t use docker.

iamNumber4··on Why don't developers seem to care about good documentation?
Documentation is a catch 22. We love having it, but it is a beast of burden create. We also feel the pressure from management or self imposed deadlines to get something done. So documentation is the first thing to slip.

You also can’t document everything. Well not at first. You always have gaps and most times they are filled when some needs something and it is not there.

Which then highlights the biggest issue, you have to maintain it. So since there is that constraint and burden, the sentiment is why have it. The source code should be self documenting. Yadda yadda

iamNumber4··on HTTP/3 will no longer use TCP
In other news, all network issues with packet loss are going to be fixed.

In other other news http v4 will again use TCP once v3 turns out to have bad user experience because udp packets are being dropped by poorly configured networks.

iamNumber4··on Should we ban states and cities from offering big tax breaks for jobs? (2014)
How about we just get rid of the root of the problem and get rid of corporate and income tax. Go to a national sales tax on all products and services.

Then everyone is paying taxes fairly, and corporations and people are free to complete on equal terms regardless in our capitalist society.

iamNumber4··on Ask HN: What would a better C look like?
As already mentioned. It exists, D Lang. It’s a better C and a better C++. It has a runtime, which you can choose or not use. It is ABI compatible with C, and C++ ABI is a work in progress.

You can switch from writing C to D, and still use all of the existing C libraries and code you do today. You can even use D libraries in your C projects.

There is the betterC flag that can be used as well which essentially turns off the D Lang runtime.

The runtime allows garbage collection and other memory safety that more modern languages like Java and C# have spoiled use with. Also allowing for write once, compile every where. Making it a very portable language.

http://www.dlang.org

The other benefit is it is a language not owned and developed by a corporation like Java, C#, objective-C and go. So there is no ulterior motive’s or agendas by said corporation.

iamNumber4··on OpenOffice does not print on Tuesdays (2009)
At least it is consistent, and not the first Tuesday after the second full moon. Aka once in a blue moon sort of problem. (Once a year problem)

Once in a blood moon, now that’s a hard bug to track down. (Once every 3 or so years)

It’s only a once a week issue, so it’s got that going for it

:)

Page 1 of 5Next →