It didn't open a pandoras box, Russians are very creative in the escalation warfare. It was known for quite a bit of time that Russians were mapping these cables out. They are probably, like always, just testing to see the response (rather lack of it).
Anti-russian? Russia is a major security threat to Lithuania that engages in cyber warfare, disinformation and sabotage campaigns.
- Two months ago there were major arson attacks and failed attempts linked to Russians in multiple states like Poland and Germany.
- Russian linked agents at the beginning of school year dissiminated false information about bombs being planted at schools in Lithuania which disrupted the process in general and undermined trust of parents and children.
- They are also constantly creating false narratives about ongoing social events with ant-lithuanian anti-european spin and spreading them online.
- Lets also not forget that Russia is constantly using migrants to attack borders of European states.
Russians are trying to wage war in every gray area they can find. Why this paragon of free speech (kekw) constantly engages in anti-lithuanian policies?
Even more interesting recently they started mapping out locations of optic fibers scattered across the ocean. Lets hope they wont use this information.
All of these are real threats. Even the CSAM arguments have a grain of truth to it. What changes overtime is people’s relationship to these threats and their perception of what mitigating factors are actually going to be effective
No I disagree, what are you even refering to? What are these particular actions?, curiously we never refer to russian actions as anti-ukrainian, anti-polish, anti-european. Its always the other way round.
If he worded it like you did now "Russian line", I would agree--but he didnt. He used a word that Russia loves to use in cry bully situations. It implies that Lithuanians are doing this because they just happen to hate poor russians while they have legitimate reasons to be scared and are forced to react.
You may think that Im pedantic or whatever but Russia has history of subtly playing with words and thus dictating the discourse. For example term eastern europe was hijacked by soviets to enshrine and justify their sphere of influence which was a completely made up term which descends from germans and their ostsiedlung--the settling of lands to the east of germans states by germans.
I am not sure if built-in indexing supports only indexing subset of the tree. YOu want to selectively index for speed and accuracy. The complete tree might contain multiple definitions of the same functions, as headers get copied, pre-processed, etc.
It supports selective indexing, you can specify paths to exclude from indexing or you might open just a single module, here is more info: https://www.sublimetext.com/docs/indexing.html
Why are you assuming that all people try to become experts in order to impress, make an impact, earn money? Frequently top performers that commit themselves to these things are only partially motivated by them. Take for example e-sport youngsters, these people don't even have these things in sight but they still commit themselves fully into whatever they are doing.
I agree with you but then I don't think you can call this deliberate practice, deliberate practice is not just sitting down and pushing boundaries, it's also having a clear path. In programming (since you said Alan Kay) sitting down and knowing precisely what you need to do in order to get good is very rare. Here everything is displaced - once you know what is good, everything is downhill. The problem is always overcoming X - that place where you don't know where you are, you don't know where you are going and you somehow need to get to your destination.
To be fair OOP of today is much more similar to Simula then to Small Talk, reading the wikipedia I can see almost 1:1 mapping including the modeling philosophy and all that, people mostly yoinked the name from Alan Kay.
"By definition" proceeds to define the word in a way that most people won't agree with. Okay mate. Your definition is ass. The person that wrote the article doesn't agree with you, I don't agree with you. I will still use the word refactor when I talk about simplifying the application such that code becomes simpler through simplifying and improving the design.
Huh, I guess that's true, even on wikipedia. I will have to stop using the word then. Though I'm pretty sure most people use it in day-to-day with much more abandon.
The metaphor, I think, is that your code is a mathematical function, and, to be even more specific and "toy example" about it, let's say it's a polynomial. If the old code was
x^2 + x z + y x + y z
then you notice that you can express the same polynomial as:
(x + y)*(x + z)
It's still the same polynomial, but you "separated concerns", turning it into a product of two simpler factors.
Similar ideas apply to sets of tuples. Perhaps you were given
{(1, 1), (1, 4), (2, 1), (2, 4), (3, 1), (3, 4)}
and you notice that this can be expressed more simply as the Cartesian product:
{1, 2, 3} x {1, 4}
Again, a literal factoring. You can imagine how variations of this idea would apply to database tables and data structures.
That's where I think the word "refactor" comes from.
If you change the polynomial, you change the order of calculations and hence change behaviour. You might get overflows in case of integers or different precision in case of floats.
Nice to learn where the word originates from. Often the meaning of words change over time. E.g. today no horses need involved in bootstrapping.
He said "I think" implying that he is not fully sure about the etymology. There is a history section on wikipedia for refactoring if you are interested.
You are right but in fact the maths are only a means to an end, a model that isn't exactly equal to the final real world implementation in analog or digital electronics.
Sure. Whenever you post on a forum it's half for anybody else reading, right? I just thought it was interesting to consider the underlying metaphor; maybe people don't think about it. Metaphors, connotations, etymologies -- I find these interesting.
That's simply not true, goal of most businesses is to make money. You can clearly deduce this goal much more the bigger the company gets. What you say only makes sense if you are confusing the stated publicly goal, the appearance that company maintains and its true goal which is pursued by the executives (the capital).
Yes but the overarching structure they participate in is designed to pursue the goal of making money. If not every single person has the same idea then we cant deduce anything from the group as a whole? When you look at the heap of sand you also start saying things like this is not a heap of sand its just a bunch of sand grains?
My point is that there is no clear line between a heap of sand and a bunch of sand grains. But at some point the grains become a heap of sand regardless of this. Its easier for us to think about this multitude as a singular object. In the same way a collection of people as a whole can have goals, we can speculatively discern that even though a company has hundreds of people, all with their own goals and ideas. We can discern the general structure of all of them as a singular unit because it might be a useful insight. If a company as a whole given a decision always goes for the decision which will bring the most capital then we can say that the true goal of this company is to pursue money even though all the people might not be aware of this its still a useful and valid idea that is capable of predicting reality and so on.
If by abstraction you mean identifying unifying concepts then I cant understand how you reasoned yourself into thinking that identifying a common method and sharing it between multiple classes by the means of the super class is not abstraction. You have identified a commonality - the common code, common method. By your definition it's abstraction.
It's not abstraction because it's not presenting a simpler mental model. It's just shoving some code located somewhere else into scope. It's mere indirection.
If I said 'User', we both know exactly what that means. It's so semantically simple that laypeople know what it means. But our implementations could vary wildly. Someone who's just taken Java 101 will be thinking of a class with getName() and setName(). But someone who's just taken SQL 101 will think of a User as an INT or UUID, where features are added by referencing that user's id from different tables. User is abstract because it's understandable and not locked into any particular implementation.
I love Kafka. But it's a PITA to program against, at least in Java. I cannot code directly against it and always need to make my own wrapper classes to construct and poll it. I'll make ResumingKafkaReader and RewindingKafkaConsumerFactory, etc. These are not abstract, because they are very specific about what and how they do things. They are concrete behaviours wrapped with 1-2 levels of concrete indirection.
However, I might inject one of my Kafka indirections into a business logic class, interfaced as a Supplier<User>, which makes it abstract. I can then unit test my class, safe in the knowledge that my class cannot know if a User came from Kafka or just a test stub.
So I push back on the thesis of the article, and double-down on doing things abstractly first and foremost. This is closely related to the dependency inversion principle. Write (and test) your business classes around Users and other abstract things. Once you've done it wrong a few times and eventually gotten it right, then you can start writing the indirections (e.g. AbstractKafkaFactory) which the article rightly claims slow you down in the beginning.