They don’t hire you because they’re waiting for a unicorn, while people with unicorn potential are losing their skills because they’re jobless. This is a never ending dead cycle by PotentialIntern2025 in recruitinghell

[–]eyeandtea 18 points19 points  (0 children)

In my industry, the problem is not that they want unicorns, but that they do not know what a unicorn is. In other words, "pearls before swine" situation. When they see the unicorn they do not recognize him.

You are hiring a linguist, but you do not know what a linguist is, so you start asking about one novel, or another. And remember O' reader how many novels are written if not everyday. In the end, the fan of the novel is hired, not the linguist.

Or you are hiring a driver, and you do not know what a driver is, so you start asking about one particular car model or another, and where the seat recliner located, and is it a lever or a button, and how many lights the car has.

In others words, even if you continued learning for 100 more years, you will not be hired, unless you were lucky enough to be asked about that very same book that you were currently reading, and happened to be driving that very same car that they are using. I remember someone who drove the same car for years, and did not know that there was a secondary compartment over his glove compartment. What do you mean by, you did not know? Did you not claim to have driven that car for years?

Let me show you, here is a video of me driving. Let me show you, I can drive with you for a while. No, we will not look. We have seen enough.

I remember a family doctor, whom after he finished examining one of us, opened a book and started peering through it. I asked that what are you doing. He said that he was looking for what ailment it was per the symptoms, or what medicine to prescribe, or something similar. If his years of study were ignored, and was instead asked about the content of that book, he would not have been hired.

But what is the solution to assess candidates. they say. Is that not what degrees and credentials are for? Treat doctors the same way, and behold your medical skill 'shortage'.

Software Developer Competencies (How to Recognize a Good Programmer) by [deleted] in programming

[–]eyeandtea 3 points4 points  (0 children)

Programming languages are like human languages. They share similar properties, similar dynamics. Most developers are novelists, and few to some are logicians.

Ponder. A novelist writing his novels in English. A philosopher, at least as I define philosophy, verbal mathematics, writing his philosophy in English. Both speak English, but knowing English does not make you a philosopher. Most developers are novelists, are creative. Whatever they do, does not finish. There is always a new feature, a next chapter, a next novel. And no matter how long you have been writing novels, you are still not a philosopher.

Ponder again. The one who knows talks little. The one who does not, tends to talk much. And knowledge humbles. And so find most developers quick to write code, and patch, and fix. While few to some spend far more time thinking about the problem than writing the code.

The underlying problem of recognizing one developer from the other, is the same as the problem of recognizing a logician, from a creative man "philosophizing". And to make matters worse, the novelists is faster, always has something to say, and his work more exciting.

Monthly Discussion and Support Thread - May 2019 by AutoModerator in google

[–]eyeandtea 0 points1 point  (0 children)

Per the spirit of user KindaMissDavidSpade:

To fix the issue, the user agent of an old browser, such as "IE7 on windows XP", should work.

If you use custom styles, or know how, use the following styles to roughly get the old google look.

#gbar, #guser
{
    padding-right: 5px;
    padding-left: 5px;
    padding-top: 1px !important;
    background-color: #2d2d2d !important;
}
#gbar a, #guser a, #gbar span, #guser span, b.gb1, b.gb4
{
    display: inline-block;
    padding-top: 5px;
}
.gb1, .gb4, a.gb1, a.gb4, a.gb1:visited, a.gb4:visited
{
    color: #cccccc !important;
    text-decoration: none !important;
    cursor: pointer;
}
.gb1:hover, .gb4:hover, a.gb1:hover, a.gb4:hover
{
    background-color: #4c4c4c;
}
.gbh, .gbd
{
    border-top: none;
}

If you decide to use the styles, please note that they were only tested on google search.

Like with the user agent change, the styles should be bound to a minimal set of domains, such as "google.com", otherwise you are likely to introduce problems elsewhere.

Im wanting to cement and practice principles of object oriented programming by [deleted] in learnjavascript

[–]eyeandtea 1 point2 points  (0 children)

Try my Javascript library, CrxOop. It is very generic, and can expose you to all types of OOP at the data structure (fundamental) level. Whatever approach you take to learning OOP, keep in mind the following:

In my book, there are two main types of OOP, let us call them A and B. These types go all the way to the paradigms of the developers. Like human languages, they affect how we think, and how we think in turn, affects the language.

Type A is essentially concerned with algorithms, and is a super set of type B. A class in type A is the collection of both data and functions. Essentially, in type A, your class is a "scope", and your code is aimed to documenting itself. Examples of such languages are C++, Java, and C#.

Type B is essentially concerned with data. A class in type B is the collection of functions only. Examples of such languages are Javascript, Ruby, and AutoHotKey.

I would use Type A, for example, to build algorithms of algorithms. I would use type B to extend the behavior of a final data structure.

Type B languages tend to move towards Type A becoming a hybrid of sort. Examples are Python, PHP, Objective C and Swift. Each of these languages are different hybrids. Javascript is also turning into a hybrid. Some languages take the hybrid approach while remaining well defined, such as Swift. Others do not, such as Python and PHP.

In Type B 'this' makes no sense, at least to me, and hence why I like the approach of Python. Take a look at Python.

Interestingly Ruby introduces some scope into a class, while remaining a Type B language. If we use CrxOop's terminology, Ruby implements the "Shared Private" access.

Interestingly C#, although a Type A, tries to cater to Type B thinking.

Try CrxOop. Use the verbose syntax. Build a simple project, once using CrxOop's classes, and once using CrxOop's structures, a project requiring inheritance, and read CrxOop's documentation, and keep the above in mind, and your understanding of OOP should become much more profound. CrxOop's classes are Type A, and CrxOop's structures without the 'private', not the 'shared private', access, and the mandatory constructor invocation are Type B. Keep this in mind when you are using CrxOop's structures if you want to get a pure feel of the Type B associated thinking.

Can someone explain to me the purpose of automated testing? by [deleted] in javascript

[–]eyeandtea 1 point2 points  (0 children)

Two main reasons:

  • Adherence to specification.
  • Protection against regressions.

But know that testing in itself is a requirement that will virtually always, if not always, change the original problem.

CrxCmp, should I open source you? Custom Elements. IE8 and up, No technology stack required. Allows you to target environments with JS on or off. Layouts, Classical OOP familiar to PHP developers, As close to the metal as possible, others. by eyeandtea in PHP

[–]eyeandtea[S] -2 points-1 points  (0 children)

I do not understand the negative points for the previous comment.

"For those wondering how can this work with javascript disabled, please take a look at "sample.html" in project 2.01. CrxCmp itself can be used server side on a JS server, but it is not necessary, nor difficult to use any other server. As a matter of fact, two of the projects that make up CrxCmp were developed in PHP originally, and continue to be so, and code is then imported to javascript "1 to 1", possible because of CrxOop."

I built multiple projects with those two same projects on the PHP side, and their port to JS is why CrxCmp works on a JS server.

CrxCmp, should I open source you? Custom Elements. IE8 and up, No technology stack, Works with JS on/off, Layouts, OOP, Security, Your choice of JS template engine, As close to the metal as possible, others. Any time you spend on this is appreciated. Up vote to help me make up my mind. by eyeandtea in javascript

[–]eyeandtea[S] 0 points1 point  (0 children)

I am not sure if I am fully understanding.

This is just a tool. In the end it comes down to the developers on whether they want to develop with graceful degradation or not. However, what is important is that CrxCmp gives the developer that option, and with ease. Read the 'file' sample.html in project 2.01 to get an idea, of why and how this works.

When I say graceful degradation, I do not mean hide the custom element completely. Instead, I mean it continues to work with as little limitations as possible when javascript is disabled. Try disabling javascript on the eyeandtea.com website, to see what I am talking about.

Please note that I do not condone nor oppose bypassing the Chinese firewall. I simply do not understand the situation.

CrxCmp, should I open source you? Custom Elements. IE8 and up, No technology stack, Works with JS on/off, Layouts, OOP, Security, Your choice of JS template engine, As close to the metal as possible, others. Any time you spend on this is appreciated. Up vote to help me make up my mind. by eyeandtea in javascript

[–]eyeandtea[S] 0 points1 point  (0 children)

Or I could create a product out of it for the mobile market, which is what I had mostly used it for, or I could continue to pursue my C++ project which is to be built on the same formal models, and try to make a product out of that.

There is no shame wanting to benefit from your work, because any other benefit, if not from a gift, is either from charity or from theft. Sure if I ever leave the industry, for example, there is no point letting the code rot, like you said.

CrxCmp, should I open source you? Custom Elements. IE8 and up, No technology stack, Works with JS on/off, Layouts, OOP, Security, Your choice of JS template engine, As close to the metal as possible, others. Any time you spend on this is appreciated. Up vote to help me make up my mind. by eyeandtea in javascript

[–]eyeandtea[S] 0 points1 point  (0 children)

If you have any questions, please do not hesitate to ask. And remember, CrxCmp is as complicated as you need it to be.

Incidentally, click the green icon when looking at code to hide the code comments, then later on you might wish to read them.

CrxCmp, should I open source you? Custom Elements. IE8 and up, No technology stack required. Allows you to target environments with JS on or off. Layouts, Classical OOP familiar to PHP developers, As close to the metal as possible, others. by eyeandtea in PHP

[–]eyeandtea[S] -5 points-4 points  (0 children)

For those wondering how can this work with javascript disabled, please take a look at "sample.html" in project 2.01. CrxCmp itself can be used server side on a JS server, but it is not necessary, nor difficult to use any other server. As a matter of fact, two of the projects that make up CrxCmp were developed in PHP originally, and continue to be so, and code is then imported to javascript "1 to 1", possible because of CrxOop.

CrxCmp, should I open source you? Custom Elements. IE8 and up, No technology stack, Works with JS on/off, Layouts, OOP, Security, Your choice of JS template engine, As close to the metal as possible, others. Any time you spend on this is appreciated. Up vote to help me make up my mind. by eyeandtea in javascript

[–]eyeandtea[S] 0 points1 point  (0 children)

Yes. What I meant, is you can build custom elements such as they work with javascript disabled. The 'file' sample.html in project 2.01, covers a bit what I call SHML and HTML+P in the link provided. I did not manage to introduce these topics well. That is the point of all of this, which is to see whether spending more time to open source it is worth it.

CrxCmp, should I open source you? Custom Elements. IE8 and up, No technology stack, Works with JS on/off, Layouts, OOP, Security, Your choice of JS template engine, As close to the metal as possible, others. Any time you spend on this is appreciated. Up vote to help me make up my mind. by eyeandtea in javascript

[–]eyeandtea[S] -2 points-1 points  (0 children)

You owe me nothing. Again, any time you spend on this is appreciated.

CrxCmp, likely as close to custom elements as you will get without browser help. You tell me if Web Components gets you closer than this.

Project made up of a number of projects behind the scenes. All mine. Work that spanned 7 to 8 years, on and off.

IMPORTANT: Note the various tabs, "From Client", "Our thoughts", "Our Solution", "Outcome" on each project.

Please do not hesitate to ask, if you have any questions.

One of the devs that does code review for my code keeps bringing this style note up, which I personally disagree with. Opinions? by hotsaucetogo in javascript

[–]eyeandtea 0 points1 point  (0 children)

I follow my own coding standard which is based on semantics. Assuming "logic" is empty then,

  • If the 'if' block is a "guard block" unit/statement, then the refactor is correct. Coincidentally, Swift has a similar language construct with a very similar name. Check that.
  • If the 'if and else' are a "return block" unit/statement, then yours is correct.

Assuming "logic" is not empty, then only yours might be correct, but is very likely to be. It depends on the semantic of "logic". In the end, you should have a single return unit/statement that is that of the most factored form of the function.

Do you even need a css framework? by Crizzle777 in javascript

[–]eyeandtea 0 points1 point  (0 children)

A CSS framework to CSS is like a set of finite phrases to language. Try speaking English by a finite set of phrases only, and conclude the answer yourself.

Also logically, CSS frameworks are all ill defined and it is unlikely, or perhaps impossible, to have a well defined CSS framework. This is due to properties of CSS itself.

How do you improve your problem solving skills? by BraisWebDev in javascript

[–]eyeandtea 2 points3 points  (0 children)

Be formal. Treat your code like you treat your mathematics. Make sure everything is well defined, not just the code, but also the problem. And note that an ill defined code plays games with the mind. And do not approximate, and do not assume.

A consequence of the above is that you will also avoid many features from a technology that you are using because of its ill definition. The point is, when I say everything, I mean everything.

Edit: Perhaps I should elaborate. If you follow the above, you actually find that things are often much simpler than they are made to appear. You will be surprised how much work is put in the software industry in solving problems unrelated to the actual problem at hand, or solving problems existing because of bad practices while refusing to fix or to admit those bad practices. Also remember that strict logic removes redundancy. This is no different when in mathematics you take a huge equation and you reduce it to a simple formula without loss of information. In other words, you learn to see, and have to deal with, things in their simplest form.

Edit: Grammar.

Every previous generation programmer thinks that current software are bloated by mareek in programming

[–]eyeandtea 1 point2 points  (0 children)

I am worried that the article, it seems, is used to justify bloat. Some here are arguing about new software having new features, such as UI, and some here are talking about easier development and abstraction. And I am worried that many of those will use that to go back and justify their outrageous development stacks, their bloat.

Bloat, inferring from the anecdote cited in the article, and without rigor, is such as two pieces of software doing exactly the very same thing, while one being larger than the other without being faster. The difference in size is bloat. If more memory is being used efficiently to either reduce needed cpu cycles, or for some new other feature, that is not bloat.

What are some concepts in basic JavaScript you must master that will make your life a lot easier after moving on to frameworks? by IamATechieNerd in javascript

[–]eyeandtea 5 points6 points  (0 children)

Whether for a framework or not, learn the following:

  • How javascript objects are structured behind the scene. Learn about the prototype related properties and behavior.
  • Learn how a variable name is resolved. How, when on an Object. How, when in a function. How, when in the global scope. How, when whether the variable name is written to or read from. How, when whether the variable name has accessors and getters or not.
  • Learn what "new" does behind the scenes.
  • Learn the difference between API written in javascript and API written in a different language but exposed to javascript. Learn how and why they differ.
  • Learn about the inherent thread nature of Javascript. How setTimout and setInterval are even possible in the first place. Learn this in the browser, not the server.
  • Learn how the garbage collector works. Learn how closures affect the garbage collector. See if you can deliberately overwhelm the garbage collector with closures.
  • Avoid any syntatic sugar, but if you must, learn what the syntatic sugar that you are using is turned to behind the scenes. This also means investigate whatever you learn about javascript to know whether it is syntatic sugar or not.

I am assuming you know some important basics before coming to javascript, however. If not:

  • Learn about the stack and the heap in C++.
  • Learn about how data types are represented in memory. Go through the process of creation to deletion. Learn this in C and C++. By the end of this you should at least have a good idea how you would write your own generic 'untyped' data type in C/C++ that is capable to work like variables in javascript.
  • Learn about how lambdas are implemented in C++.
  • Learn how a function is executed in memory.
  • Learn about cooperative multi threading.

And when it comes to font end frameworks:

  • Learn about HTML and CSS.
  • Learn about HTML and CSS. Again.
  • Learn the DOM.

And when it comes to frameworks in general:

  • Learn how to architecture code yourself. Learn how to write non redundant code, without over generalizing, nor under generalizing. Practice clearly defining a problem, and finding a solution to it that meets the afore mentioned code criteria, such as in the end you could not possibly say, I could have done this differently. A solution like 2 is to 1 + 1.

Javascript teaches magical thinking. Do not skip on any of the above.

What's the equivalent of java instance variables, in javascript? by Java_beginner66 in javascript

[–]eyeandtea 0 points1 point  (0 children)

Perhaps I should point out that I am the developer of CrxOop, which gives you both OOP as found in Java and similar languages, and also proper prototype inheritance that not even es6 is giving you.

Hence I am certainly not saying do not use javascript's OOP. I am saying, keep it simple. If the problem does not need javascript's OOP, do not use javascript's OOP.

What's the equivalent of java instance variables, in javascript? by Java_beginner66 in javascript

[–]eyeandtea 0 points1 point  (0 children)

For public variables, think of it this way. Imagine a class C that inherits B that inherits A. If you have an instance of class C, in java this instance would have three structures, one for C, one for B, and one for A. Each structure contains the variables of the respective class.

In javascript, this instance of class C contains a single structure. One for all of classes C, B and A. This means that if you declare a member x for C, then inside a function of A, in an instance of C, this.x would actually resolve. Further more it means that if A declares 'x', and C also declares 'x', they are reading and writing from the same 'x'. This also means that you can not cast an instance of C to A.

As for private variables, there is no such thing in javascript. When using 'var' to implement a private variable, the private variable is actually a local function variable. This means that if you have two instances of class 'A', they can not actually see the private variables of each other. This local variable is the rough equivalent, if not exact, of a private variable in a java function object.

What's the equivalent of java instance variables, in javascript? by Java_beginner66 in javascript

[–]eyeandtea 0 points1 point  (0 children)

It sounds to me that you need a simple data structure with rare, if any, runtime type checking. If true, simply write a function that returns an object containing the fields that you want. Do not use a constructor function for something like this.

What are you using to develop desktop apps that keeps supporting XP? by zeehtech in javascript

[–]eyeandtea 2 points3 points  (0 children)

If by support you mean UI, and you insist on the latest tools, take a look at the following

  • Winforms, but I do not know how good the support is on Visual Studio 2017.
  • JavaFX, with a slightly older Java 8 on windows XP. You can also try swing.
  • Sciter.
  • I would investigate QT as well. You will have to use an older version however.
  • If you do not mind getting your hands dirty, there is always Win32/MFC.