HNHacker News
TopNewBestAskShowJobs

fjfaase

2,267 karma · joined March 20, 2017

Software engineer with more than 30 years experience writing software in mostly C++. Interest in parsers, interpreters and combinatorics problems.

* https://www.iwriteiam.nl/ * https://github.com/FransFaase * https://fjfaase.at.hn

submissionscomments
fjfaase··on Hard-to-swallow truths they won't tell you about software engineer job
After being a software engineer for over 30 year, I agree with all the points. I have come to the conclusion that being a software engineer is one of the hardest jobs. Also because your often confronted with your weaknesses. But that also gives you room to grow. I also have come to realize that being a software engineer, changes how you view the world, because it forces you to think deeper about problems. The problems behind the problems. In sense that alienates you from all those people who do not have to deal with hard problems, are not used to think deeply about problems. And there are a lot of those kind of people in the world, at least a lot that use their voice.

But in the end, I never regret becoming a software engineer, and I also realized that it has profoundly shaped who I have become.

fjfaase··on Ask HN: How to deal with the short vs. long function argument
An important quality of a professional software engineer is being able to work in a team and being able to deal with personal differences. And those difference go beyond coding styles. With respect to coding styles, I always tell junior software engineers to not change the code formatting, the names of classes and methods, and abstain from refactoring code just fit it to your preferences.

My personal preferences is to keep the code base as small as is needed for the moment. I avoid creating functions/methods that are only called once. If possible, (like in C#) I prefer using local methods and lambda expressions. I try to avoid code dupplication (beyond the trivial). I am carefull with introducing abstractions as often it makes it harder to navigate and/or debug the code.

fjfaase··on My 1976 KIM-1
If I am not mistaken, we had a pratical where we had to use a KIM-1, when I was studying computer science. I guess this was in 1982.
fjfaase··on America's shoplifting problem, explained by retail workers and thieves
I think these processes are also driven by the fact that more and more people are living at or below the poverty level (due to an evert getting bigger gap between the rich and the poor) and reduction in social-economical mobility. The 'American dream' is no longer a reality in the USA. When large parts of socity live at the bare minimum and have no hope for improving their situation except through crime, it is to be expected that crime rates will increase.
fjfaase··on Ohm: A library and language for building parsers, interpreters, compilers, etc
Looks interesting. I understand that you can just provide the grammar as a string. Which seems to imply that it is an interpretting parser. There are not many interpretting parsers. (I did implement one myself [1].)

I wonder if it can also deal with ambigious grammars and/or if it is a back-tracking parser.

It also has a single grammar for lexical and syntax description. (My interpretting parser is based on a hard-coded lexer.)

[1] https://fransfaase.github.io/ParserWorkshop/Online_inter_par...

fjfaase··on Are colonoscopies worth it?
The side effects are only mentioned in the first paragraph of the article. I wonder how many people have died (or suffered considerable and possible lasting harm) as a result of colonoscopies performed during the period of the investigation and who were otherwise healthy.
fjfaase··on Light and gravitational waves don't arrive simultaneously
There are about 4.1e14 seconds in 130 million years. The two seconds delay is thus very small. I wonder what is the role of the fact that interstellar vacum is not an absolute vacum. I read some where that there is about one atom in each square cubic cm. The number of cm in one light year is 9.4605284e17.
fjfaase··on Metric Time
I once (around 1983) met someone who had an astrological (astronomical) watch, that showed 'time' depending on the position of the earth with respect to the zodiac. He believed that periods when a sign would appear on the horizon (and another disappear) were periods that you beter could not start another activity. I am not sure if it was one made by Jaap Venker. Jaap Venker made 1500 of these watchs which now sell for hunderds of Euro/USD.

I think having a clock that depends on the position of the earth with respect to the center of our galaxy is an interesting idea.

fjfaase··on Metric Time
I stayed in Urumqi four times (in 1993, 1996, 2006 and 2010), each time for some weeks. It is really confusing that the (traditional) working hours are from 10AM to 2PM and 4PM to 8PM. I found myself everytime looking at the clock substracting two hours. Similar as to when we changed currencies in the Netherlands when the Euro was introduced. I guess it would have taken about half a year stop doing the reverse time calculations.
fjfaase··on That is not dead which can eternal lie: the aestivation for Fermi's paradox
It sounds a bit implausible. I wonder if it is possible to preserve energy over very long periods to later use it more effectively. We are talking billions of years.

I think that the 'suicide' explaination is more plausible. When an advanced civilisation concludes that there is no eternal life, that there is no ultimate meaning to life and that life always comes with suffering, it might decided that the best solution is not to produce more offspring or commit active suicide.

fjfaase··on Family Echo – Free online family tree maker
For genealogical research you need something more than just a tree builder, you need a system to record facts based on documents (like birth certificates) and a mechanism to link those records (I think person A mentioned in birth certificate C the same person as person B mentioned in marriage certificate D). The family tree is the accumulation of these the documents and the assumptions you made. It is possible that when you encounter a new document, you have to drop some of your assumptions, because, for example, it does occasionally happen that a person with a same (or similar) name is born on the same date in the same city.
fjfaase··on Puzzle Languages (2009)
I think it is not that simple. The OP seems to have worked with different programming language and paradigms. It also has to do with the type of problem domain you have to deal with. For some type of problems, functional languages are great. For other types, they are simply not.

In my experience things get 'complicated' when you have to deal with a distributed system where multiple actors are querying and changing a shared state. (And that shared state can be stored in one or more databases and/or in files in a file system.)

fjfaase··on I got robbed of my first kernel contribution
I think that OP had not so much a problem with the PowerPC maintainer coming up with his own solution (which is basically the same, except maybe fitting the coding style better), but the fact that all his efforts for finding the root cause of the bug were not recognized.

The PowerPC maintainer could have send him a message like: "Thank you for the patch. Thank you for diving into this bug and finding the root cause. I will attribute your effort. I have taken the liberty to come up with a solution that better matches the coding standards. I hope you do not mind. I will submit the following patch." and I think the OP would be perfectly happy.

fjfaase··on Homebrew Website Club
My domain is https://www.iwriteiam.nl/ . It is just plain HTML with some JavaScript for some pages, some animations, and some functionality.

I am happy with my design, which has not changed in the past twenty years, but I am open for suggestions about improvements.

fjfaase··on Linear code is more readable
When you grow older, and become lazier, you only create function/methods when they need to be called more than once. Some languages, like C# and JavaScript, also allow you to define them local (inside a method). When these are used to perform some checks, I usually just place them before they are used, and when the perform some operation, I usually place them just below where they are called. The latter usually involves async of parallel execution. I just realize that this helps to keep the code more linear. So, I think I have a strong preference for linear code.
fjfaase··on Infrastructure credentials leaked in Dutch election software
This is not as big a deal as it is reported. First of all, it is only about summing the votes and secondly, all the original reports of ballot counting of individual polling stations are published (on the website) of municipalies and as Election Markup Language files. The summations are also published in this format. It is relatively easy to verify the summation. I actually wrote a program for doing this for the province I live in. See: https://www.iwriteiam.nl/D2305.html#26 and previous blog entries.
fjfaase··on I wrote a string type
I do not think that such a language has been developed. The complexity of how a CPU, with several levels of caching, RAM, harddrives (with their own caching), and network storage (with their own caching) is simply mind boggling.

For that reason, I think that this route is not often taken. I guess that whenever modeling of execution is performed it is done to analyse the behaviour of an existing implementation in order to find ways to improve it.

If there is someone who has made an attempt to do something in this direction, I think it is Donald E. Knuth in his 'The Art of Computer Programming'. I think, for example about section 5.4 'External sorting' in Volume 3 'Sorting and Searching' [1].

[1] https://seriouscomputerist.atariverse.com/media/pdf/book/Art...

fjfaase··on I wrote a string type
Nice library with many features. But I do not always understand the focus on memory usage. I guess that the reason behind this is that less memory allocations, have a positive effect on execution times. In a parser, where you often have to compare identifiers, it is a good idea to put all strings for identifiers into a unique pointer with the help of a hash table.

In my interpreting parser [1] I use a hexa hash tree [2] for storing identifiers. It is not very memory efficient, but very fast. It turns every string (from the input buffer) into a unique pointer for that string pointing to a copy of the string. In this way comparing string (identifiers) is equivalent to comparing pointers.

The idea of the hexa hash tree is that is a tree where each node has sixteen child nodes. Which node is selected is based on a step wise evaluated hash function that first takes the lower four bytes of successive characters in the string, and after reaching the end of the string, the higher four bytes of the characters. The nodes often taken up more memory space than the strings themselves.

[1] https://github.com/FransFaase/IParse/

[2] https://github.com/FransFaase/IParse/blob/master/software/Id...

fjfaase··on Farms that create habitat key to food security and biodiversity
Herenboeren Usseler Es is working together with the ITC institute of the University of Twente in a project that is called 'Developing climate smart water management in agriculture on a farm run by citizens' [1]. For this project a weather station has been installed. At two locations sensors have been installed to measure the humidity in the soil at various depths. Remote sensing techniques have been used to measure crop rates. For a short video (in Dutch) about this, see [2]. The ITC is the former International Institute for Geo-Information Science and Earth Observation that from 1 januari 2010 has been incorporated by the University of Twente.

[1] https://www.utwente.nl/en/sustainability/climate-centre/news...

[2] https://www.youtube.com/watch?v=g4OnvKziki8

fjfaase··on Farms that create habitat key to food security and biodiversity
I was not aware of this criticism. I also do not know if the expressed criticism is valid for every farming co-op. The one I am involved with is working in close cooperation with the local government. Even the planting plans are agreed upon with the local government from which the lands are leased.

The farmers I have talked with seem knowledgable and one of them has been running her own biological farm for 29 years.

I am not sure whether it can compete with commercial farming. At the start of year a bio-deversity measurement was performed at which at three places one square meter was examined. I understand that only one earthworm was found. This year, a lot of rye was sown (together with flowers) in order to improve the quality of the soil. I understand that soil improvement is a slow process and needs many years.

From what I hear in the news, I understand that food production in the Netherlands is strongly influenced by big agracultural companies (who focus on scaling up and reducing the number of farmers) and that farmers who want to transition to biological farming often experience a lot of resistance from banks.

fjfaase··on Farms that create habitat key to food security and biodiversity
I understand that they are aware of this and that they are thinking about changing it.
fjfaase··on Farms that create habitat key to food security and biodiversity
A few months ago, I have become member of a farming co-op just 8 minutes biking from where I live (in the Netherlands). The co-op aims at sustainable food production with some livestock. Increasing bio-diversity is one of the primary goals. The co-op leases about 30ha hectares which in the past decades were primarily used for producing corn to feed cows. There are about 18 farming co-ops like this in the Netherlands [1]. I very much enjoy helping with the weeding.

[1] https://www.herenboeren.nl/wp-content/uploads/2017/11/Herenb...

fjfaase··on The Reasons Not to Use Scrum
It is not only that, but I have known a lot of developers who simply hate the daily stand-ups, either because they were lead in the wrong way or because it did not match with their introvert personality, and that this added a lot of anxiety that it had a negative effect on their performance. Anxiety is an important factor in procrastination.
fjfaase··on The Reasons Not to Use Scrum
Formal and/or scheduled meetings are not the only and often not the most effective way of communication between team members. Highly effective teams often have a lot of informal interactions between team members by various means of communication not restricted to one-on-one talks or small group meetings before white boards. I know many introvert developers that rather write a detailed comment on an issue raising some discussion points than have a discussion on the subject. In a highly effective team, the team members know the strong and weaknesses of fellow team member and are often able to arrange things without having to rely on regular scheduled meetings and/or stand-ups.
fjfaase··on The Reasons Not to Use Scrum
The biggest problem that I have experienced with Scrum are the Scrum Masters. They play such a central role in Scrum. I have twice experienced that the role of Scrum Master was given to a 'junior' software developer who had ambitions for becoming a manager. In both case, I left the company. In my opinion, Scrum can only work when you have a Scrum Master that is there 100% for the team. A person who has a sixth sense for friction within the team, either with developers struggling with themselves, among eachother or with people outside the team, and someone that knows what to do about the cause of the friction. And these Scrum Masters should be given enough power to also change things in the organisation. I think that organisation that want to embrace Scrum, often do this for the wrong reasons and do not assign the right persons for the roles of Scrum Master and/or limit their authorithy rendering them ineffective.
fjfaase··on Legalizing online gambling doubled Dutch State's gambling income to €1B
This seems to imply that the income of gambling companies also has doubled. It probably also means that the number of people with problem gambling has increased.

Many experts warned the government that legalizing online gambling was the wrong way to go. With the legalization also came a flood of advertisements on TV and Internet, targetting young adults. Attempts to reduce the impact of those advertisements have proven difficult. Influencers have profitted from this.

fjfaase··on A mystery company has purchased thousands of acres to build a new city near SF
I am reading some tweets suggesting that Elon Musk, Garry Tan 陈嘉兴 and Paul Graham are also involved. There is a tweet stating that: 'Elon Musk and Y Combinator's CEO are trying to blacklist a law firm, because it does pro-bono work for the civil rights of homeless people.' [1]

[1] https://twitter.com/loomdoop/status/1695252674764313067

fjfaase··on Implementing Interactive Languages
Forth is a language that is simple to parse and executed by a virtual machine with a stack, possibly using byte code. However, this is not the type of compilation that the article is talking about. Performing operations on a stack (that can grow deep) is often not as efficient as assembly code that can use several registers to store immediate results.
fjfaase··on Camera crushes Lidar, claims startup
The cameras being 1.2m apart is nice for accurate triangulation at a larger distance, but in a crowded location with obstancles near the road, it could lead to substantial blind areas at closer distances. I also guess that in the dark, reflections of lights in puddles on the road could lead to a stark reduction of valid 3D points or even mismatches.
fjfaase··on Camera crushes Lidar, claims startup
It is known that in neurological vision there is are also top-down pathways, where later stage processing influences early stage processing. Especially in poor conditions, the interpretation of images is based on an already established 3D model of the environment and information about ones own direction of movement.

It is nice that the system can generate 40 million 3D data points per second, but those point still need to be processed (and interpreted) in later stage processing.

← PreviousPage 15 of 32Next →