Slashdot Mirror


Blinking Cursor Devours CPU Cycles in Visual Studio Code Editor (theregister.co.uk)

An anonymous reader shares a report on The Register: Microsoft describes Visual Studio Code as a source code editor that's "optimized for building and debugging modern web and cloud applications." In fact, VSC turns out to be rather inefficient when it comes to CPU resources. Developer Jo Liss has found that the software, when in focus and idle, uses 13 percent of CPU capacity just to render its blinking cursor. Liss explains that the issue can be reproduced by closing all VSC windows, opening a new window, opening a new tab with an empty untitled file, then checking CPU activity. For other macOS applications that present a blinking cursor, like Chrome or TextEdit, Liss said, the CPU usage isn't nearly as excessive. The issue is a consequence of rendering the cursor every 16.67ms (60 fps) rather than every 500ms.

236 comments

  1. Holy Blinking Cursor, Batman! by BeerCat · · Score: 5, Funny

    13 per cent CPU. For a blinking cursor. That's... impressive.

    But not in a good way

    --
    "She's furniture with a pulse"
    1. Re:Holy Blinking Cursor, Batman! by drnb · · Score: 4, Insightful

      13 per cent CPU. For a blinking cursor. That's... impressive. But not in a good way

      This is why coding tests are given during job interviews.

    2. Re:Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      Coding tests are given to prove you're a young college graduate who just did the same coding problem on your final exam last week.

    3. Re:Holy Blinking Cursor, Batman! by number6x · · Score: 5, Interesting

      Reminds me of the map of system calls in Apache vs MS IIS. An exercise in design analysis.

    4. Re:Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      If coding tests were so important they would require you to submit to them every year.

      They are in fact nothing to do with code but giving someone a problem and watching how they react.

      No test can in fact reveal how much knowledge a person has, just how well they do in certain situations.

    5. Re:Holy Blinking Cursor, Batman! by erapert · · Score: 1

      Said the actress to the bishop...

    6. Re:Holy Blinking Cursor, Batman! by drnb · · Score: 1

      If coding tests were so important they would require you to submit to them every year.

      Your job performance is the followup "coding test".

      They are in fact nothing to do with code but giving someone a problem and watching how they react.

      If they react in a catastrophically bad manner that is useful data.

      No test can in fact reveal how much knowledge a person has, just how well they do in certain situations.

      True, but it can help demonstrate how little they know, if they fail one situation after another after another.

    7. Re:Holy Blinking Cursor, Batman! by BitterOak · · Score: 1

      13 per cent CPU. For a blinking cursor. That's... impressive.

      But not in a good way

      Yeah, my old Commodore 64 had a blinking cursor, and it somehow managed that remarkable feat with an 8-bit 6510 CPU running at 1MHz!!!

      --
      If I can be modded down for being a troll, can I be modded up for being an orc, or a balrog?
    8. Re:Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      Indeed, and it didn't need that fsck'ing HARDWARE cursor emulation that the PC needed, either!

      (Yes, Hercules, CGA, EGA and VGA had the text-mode cursor in hardware (including the blinking)). VGA (and maybe EGA, I forget) also had a single "sprite" for the "hardware" cursor.

    9. Re:Holy Blinking Cursor, Batman! by lgw · · Score: 4, Funny

      Yeah, my old Commodore 64 had a blinking cursor, and it somehow managed that remarkable feat with an 8-bit 6510 CPU running at 1MHz!!!

      Behold the power of Javascript! It gives a modern PC with 8-16 GHz of total CPU ... less actualy processing power than a Commodore 64.

      Well done JS engine guys. Well done.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    10. Re:Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 2, Interesting

      I hire C++ developers. I give a simple coding test to all applicants. 95% of all coders fail even the simplest of tests. There's a reason that trivial tests like FizzBuzz are used during programmer interviews. That's because most "programmers" are utter crap. They don't know their tools. They don't know the language that the program in. They don't stay up-to-date. They cannot reason about problems. 95% can't do the simplest of problems. You have to really deep before you find people who can talk about design principles, design by contract, etc.

      "Tell me what a class invariant is."

      Blank stare.

      "What is the Liskov substitution principle?"

      Deer in headlights.

      Thank you for your time.

      I work in the financial industry. We pay shit-tons of money if you know how to engineer software. But even here the talent pool is miserable.

    11. Re:Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      Step 1 during coding test, open vim.

      Nothing else needed! You pass!!! :-D

    12. Re: Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 5, Insightful

      There's a difference between remembering the piece of trivia that is the name a certain environment calls a concept and understanding the concept.

      The question becomes: are you looking for a software engineer, a computer programmer, or a trivia expert?

    13. Re:Holy Blinking Cursor, Batman! by mwvdlee · · Score: 1

      You always blame the language authors' for crappy code written in the language?
      That's like blaming Shakespeare for what Trump says.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    14. Re:Holy Blinking Cursor, Batman! by lgw · · Score: 2

      The engine devs are not the language authors. I think the language authors are idiots, too, but not for any reason related to this story.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    15. Re:Holy Blinking Cursor, Batman! by rockmuelle · · Score: 1

      Indeed, and it didn't need that fsck'ing HARDWARE cursor emulation that the PC needed, either!

      (Yes, Hercules, CGA, EGA and VGA had the text-mode cursor in hardware (including the blinking)). VGA (and maybe EGA, I forget) also had a single "sprite" for the "hardware" cursor.

      I was coming here to make exactly this point. Cursors used to be hardware sprites that required no additional CPU cycles. At some point windowing systems took over the task of rendering the cursor, but still typically used XOR'd sprites to keep things fast and efficient. Then they started using GPU-optimized code and software CPU emulators as a fallback and things went downhill from there...

      I still keep my 80s-era graphics programming books on my shelf as a reminder of how to do fast graphics when all you have is the ability to draw pixels... ;)

      -Chris

    16. Re: Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 1

      The question becomes: are you looking for a software engineer, a computer programmer, or a trivia expert?

      None of the above. Anyone who links to Stack Overflow is looking for a trendy techbro. Some interviewers try to be sneaky about it by asking questions that only a member of Stack Overflow would know. Some interviewers just ask outright, "Do you participate in Stack Overflow?" It's an elitist frat boy mentality where they only hire fellow members of their club.

    17. Re:Holy Blinking Cursor, Batman! by CanadianMacFan · · Score: 4, Insightful

      "What is the Liskov substitution principle?"

      I didn't know what it was until I looked it up in the article. So basically you want me to remember that some guy came up with a name for using inheritance and if I don't remember it I'm a bad programmer?

      Test to see how the person will fit into your team because no matter how great they are if they disrupt how the team works. Then for programming skill and then for things like remembering the exact definition of terms that they could use Google to get.

    18. Re:Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      Shakespeare invented the English language?

    19. Re:Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      It's written in JavaScript.

      Nuff said.

    20. Re:Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      Some tests make sense. Others are head-scratching. For UNIX admin jobs, I have been asked moving a database from first normal form to DK normal form, but in reality, I've yet to see any DBA go past 3NF unless it is some specialized data warehouse/data mart task.

      Some questions make sense. Stuff like "you don't have a /bin/ls, but you want to see files... how do you do it?" are one thing which make sense. However, it seems to descend into trivia oftentimes.

    21. Re:Holy Blinking Cursor, Batman! by vel-ex-tech · · Score: 0

      Some womyn-born-womyn came up with a lot more than just using inheritance, asshole.

    22. Re:Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      It gets worse. He only hires C++ developers who are MIT alumni and who know Barbara Liskov personally.

    23. Re:Holy Blinking Cursor, Batman! by farble1670 · · Score: 1

      Your job performance is the followup "coding test".

      That'd be fine, except it's extremely hard, labor intensive, and legally risky to "fire" someone. I'm not describing the way it should be, only the way it is.

    24. Re:Holy Blinking Cursor, Batman! by Darinbob · · Score: 1

      That's why rapid prototyping skills are good for prototyping but are horrible at making a product.

    25. Re:Holy Blinking Cursor, Batman! by CanadianMacFan · · Score: 1

      From the article linked to: "Functions that use pointers or references to base classes must be able to use objects of derived classes without knowing it."

      That's pretty much using inheritance. I don't care if I point to A or the subclass of A. Whoop-dee-doo. I'm making use of the inheritance.

    26. Re:Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      I especially enjoy meeting interviewers who desperately try to eliminate me with trivia questions and get more and more pissed off with every question I answer correctly. Of course I don't get the job anyway because I'm not indian and therefore not qualified for technical work.

    27. Re:Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      AKA Bloat.

    28. Re:Holy Blinking Cursor, Batman! by Darinbob · · Score: 1

      If you're a senior programme who claims to be programming every day, then a coding problem on an interview should be a piece of cake. If the candidate struggles at this then the message being sent is that the candidate will need hand holding and remedial training and will not be able to function as a mentor.

    29. Re:Holy Blinking Cursor, Batman! by Darinbob · · Score: 1

      For some of this I disagree. Liskov Substituion principle is not the sort of thing you run across in school or in the workplace, unless you hang out with the sorts of people who have memorized all the design patterns by name. Now if you're in a specialized field of sofware design then you're much more likely to know Liskov substitution prinicple but outside of that I think it's rare.

      Analogously I ask about Priority Inversion and Deadlock, because that's the context I'm dealing with. I am not surprised if some people don't know priority inversion but I am a bit dismayed if they don't know deadlock (and didn't take the time ot cram before the interview) because it occurs everywhere and not just on low level systems. Then I meet a guy who says he's building his own RTOS and yet admits he doesn't know what a deadlock is during an interview and I have to struggle to keep a straight face.

    30. Re:Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      Programming every day doesn't mean you're using every obscure feature of the language every day. Professional programmers don't memorize reference manuals. That's why they're called reference manuals, because you're supposed to refer to them as you work. When I need to choose a data structure for something, I have a good idea of which template classes I want to use, but I'm certainly going to double-check the documentation for relevant details, because memorizing everything is a waste of time and rushing to implement something based on faulty memorization is even worse.

    31. Re:Holy Blinking Cursor, Batman! by Megol · · Score: 1

      Some (but not all) SVGA cards had a sprite for the mouse pointer, the VGA standard didn't.

      The big problem of using software drawn mouse pointers on the normal PC was that there wasn't a vertical blank interrupt on most VGA and SVGA cards (the original IBM VGA did support it IIRC but strangely it wasn't copied in the clones). That meant that there wasn't a guarantee that the drawing of the pointer was complete in a certain displayed frame leading to flicker and tearing.
      Compatible code had to assume that the only way to synchronize with a frame was polling. Polling wasn't cheap then and it is even worse now (it uses an unusual feature of the x86 architecture, a separate I/O address space - handled very slow today for some reason), using double buffering wasn't trivial either even though the hardware would handle the buffer flip. One could simulate a VBL by timing a video frame with a timer and then set the timer to go off a little bit earlier than the start of the next frame - the interrupt handler would then poll the graphics card till the frame actually started, adjust the timer and call the drawing code. That wastes processor cycles and removes a precious timer for other use. Nowadays there are a lot of different timers available in the PC standard, back then there were very few and some (e.g. the RTC periodical timer) wasn't generally reliable.

      The easy solution was to add one limited hardware sprite. Well adding a VBL interrupt would have been even easier for the graphics card manufacturer but getting an extra interrupt allocated back then wasn't realistic as a general solution.

    32. Re:Holy Blinking Cursor, Batman! by TechyImmigrant · · Score: 2

      It gets worse. He only hires C++ developers who are MIT alumni and who know Barbara Liskov personally.

      You had me at C++.

      --
      I should use this sig to advertise my book ISBN-13 : 978-1501515132.
    33. Re:Holy Blinking Cursor, Batman! by TechyImmigrant · · Score: 2

      Some tests make sense. Others are head-scratching. For UNIX admin jobs, I have been asked moving a database from first normal form to DK normal form, but in reality, I've yet to see any DBA go past 3NF unless it is some specialized data warehouse/data mart task.

      It was 1st NF --> 2nd NF --> 3rd NF --> BC NF when I went to college. I'd never get past your interview. But then I don't want a DB job so it's all good.

      --
      I should use this sig to advertise my book ISBN-13 : 978-1501515132.
    34. Re:Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      Then I meet a guy who says he's building his own RTOS and yet admits he doesn't know what a deadlock is during an interview and I have to struggle to keep a straight face.

      Maybe you're the idiot in that situation because the guy is a genius who naturally designed a system in which deadlock is impossible since it's so incredibly obvious to him that deadlock shouldn't happen and he can't even conceive of a need to name the concept.

    35. Re: Holy Blinking Cursor, Batman! by Darinbob · · Score: 3, Interesting

      I agree there. I have used many programming languages and so many of them make up their own terms for things that were previously well known by different names in the industry. Most of these new terms were for things that were known in the 70s and 80s. I think a lot of people who are in their own bubble, making up their own terms, without knowing what goes on elsewhere.

    36. Re:Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      You ask me what a Liskov substitution is in an interview as a serious primary question and not just as trivia, I'm going to give you a deer in headlights. Afterwards, I'm going to look it up, find out what it was, and even if your company gave me a job offer I'm going to reject it because there's no way in hell I want to work with people who would ask obscure trivia as serious job interview questions. I would never fault a person for not knowing what Levenshtein distance was off the top of their heads.

    37. Re:Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 4, Insightful

      13 per cent CPU. For a blinking cursor. That's... impressive.

      The failure to understand anything more than any one level of the stack is the root cause of the problem:

      In fact, I'm willing to bet it's not a coincidence that it's 13%. It's likely 12.5%, as in 100% of one thread on a quad-core CPU with hyperthreading enabled, then rounded up to 13% for the presentation in the task manager. On a dual-core with HT, it'd be 25%, on a dual-core without HT, it'd be 50%, and if anyone can get it to run on an old single-core Pentium IV or something it'll just peg that CPU.

      People would have to know something about hardware to figure that out, and webdevs, well, they just... don't.

    38. Re:Holy Blinking Cursor, Batman! by sexconker · · Score: 3, Insightful

      That's because most "programmers" are utter crap. They don't know their tools. They don't know the language that the program in. They don't stay up-to-date.

      I don't "know the tools" or "know the language" until I'm fucking using them. Then I google whatever the fuck it is I need to do using whatever the fuck it is some clown has put in front of me, RTFM, and get it done. Interviews test for the dumbest fucking shit. I for one generally don't care what fucking language or environment I'm in. With documentation (the fucking internet 99.9% of the time) learning how to do X in Y is trivial. Knowing that you need to do X instead of x is the trick. When you give an applicant a test to do X in Y, you're just testing if they know Y and maybe if they have memorized X. You're not finding out if they understand anything or can think critically.

      They cannot reason about problems. 95% can't do the simplest of problems. You have to really deep before you find people who can talk about design principles, design by contract, etc.

      When your "problems" are all pulled from the same "Shitty Questions and Tests for Shitty Interviews" site/book, what do you expect? If you're looking for people who talk about "design principles" or "design by contract", you're retarded. There are only three design principles: Correct, secure, and fast. There is only one design contract: Deliver X for $Y. If you don't understand what X is or why it's X and not x (even if the customer doesn't, or if the customer asks for X when they need x) then you're gonna have a bad time. See Oracle and IBM and anyone who's ever contracted with them.

      You're getting mindless applicants because you're asking mindless questions. You cannot discern a competent programmer/developer from an incompetent one because you're looking for memorization, certifications, etc. Of course, the people conducting the interviews are typically not competent programmers/developers, so they don't know what else to look for or how else to evaluate applicants.

    39. Re:Holy Blinking Cursor, Batman! by beelsebob · · Score: 1

      I mean, those 80s graphics books are well worth having, and excellent sources of how to take shortcuts when shortcuts are necessary.

      However, it's worth remembering, that they're exactly that - shortcuts. The techniques used in those books are usually much less general than those used by modern windowing systems, and because of that, don't support all kinds of things that turn out to be important to user experience.

      They don't support doing any kind of blending of layers, only blitting bits. They don't support any kinds of transforms on things that you're bitting. They don't support being able to smoothly animate things.

      All of these are livable with, but not a great user experience. Hence why we've moved away from them, and to applying general purpose massively parallel compute to the embarrasingly parallel task of drawing things on a screen.

    40. Re:Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      The works of Shakespeare and the King James Bible are considered the defining texts of the early modern English language.

    41. Re:Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      When your user experience is chewing up 16% of a modern CPU just to blink the cursor, it is no longer a great user experience.

      I'll take fast over fancy any time.

    42. Re:Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      So true

      When we give interviews the only 'coding' type thing we ask is to look at a function (thats littered with mistakes) and point out as many as possible. Ranging from obvious to one or two tricky ones (for a new college grad) generally just to see where they are at, if they get about half we generally consider that good enough for a new engineer.

      The main thing we focus on is how do they design, implement, do they think about possible future use cases. We give them a problem and tell them to design us an api, however you want with psuedo code or not, doesnt matter as long as we can understand your goal. Just to see how they organize and think and structure. Thats all we care about. All the other trivial shit you can learn on the job quickly. Any other questions you ask, like the parent, are going to be trivial memorization algorithm bullshit that doesnt matter for 99.999% of people

      Ive had a few interviews that Ive done recently, and nothing pisses me off more than being interviewed for a senior/principal job and being asked college algorithm and memorization asinine questions. Do you want someone who has experience in architecture and actually doing this job? or someone who doesnt need google to answer a question that will never come up in practice?

    43. Re:Holy Blinking Cursor, Batman! by Anaerin · · Score: 4, Insightful

      Opening VIM is the easy part. If you can successfully CLOSE VIM afterwards, that's the passing point.

    44. Re: Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      A perfectly fine answer is "No, I've never heard of it before. What is it?" Then we can have a conversation. I'm not looking for trivia experts. I'm gauging whether the candidate has bothered to read some important books in the field of software engineering. Anyone who's read Robert C. Martin's books or articles would know what that is. It's the "L" in SOLID. I'm not asking them to name some concept. I'm asking them to define a named concept -- big difference. A lot of my questions are to probe whether they have bothered to read books that are not typically part of the college curriculum but are important references for a professional software engineer.

      I find it interesting that so many latched on the Liskov question -- and read their own deficiencies into the question -- and ignored the one about invariants. These are concepts. We have a language that we use to discuss software engineering concepts. If the candidate does not know what a pre-condition is and cannot have a conversation with me about it, they are not going to do well with most of the engineers I work with. Yes, I expect them to know what polymorphism is. But I expect them to know way more than that. I expect them to be able to identify structural problems in polymorphic designs.

      If they are fresh out of school, that's one thing. But I'm typically hiring people with 5, 10+ years of experience. Most of these people have titles like "lead engineer" or "software architect." I want them to tell me what books they have read. "Tell me what engineering practices and principles are important to you and guide the way you design and develop software." I need to know that they will write secure & correct software because it's important to them, not because someone told them to do it. It is the difference between hiring a professional and an amateur.

    45. Re:Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      Yup, having done a few interviews recently, the ones I got offers from were the ones who asked me about my experience, give examples of projects, show what layouts of data and api's I came up with for various problems. The ones I did not get offers from, guess what, they asked bullshit coding problems based on algorithms I haven't used in 15 years and are in no way a good judge of senior level talent

    46. Re: Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      Uh, yeah.. because stuff written well over a decade ago about software design is "trendy techbro" shit.

    47. Re:Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      Tearing - for a cursor? Anyone seriously worry about that? Just blink the tiny little cursor - nobody care if there is tearing. It is hard to notice even if you try looking for it. Stop worrying, don't test anything - and the cursor will blink with no overhead at all.

      Think about tearing when doing something big, like a window repaint or scrolling.Cursors - or any other equally small things - don't care!

    48. Re:Holy Blinking Cursor, Batman! by thegarbz · · Score: 2

      But even here the talent pool is miserable.

      The talent pool is quite large but you're not looking for talented engineers. You're looking for people with a photographic memory.

    49. Re:Holy Blinking Cursor, Batman! by mattsday · · Score: 2

      Preferences and then:

      "editor.cursorBlinking": "solid",

      Job done!

      --
      Now there's one hoopy frood who really knows where his towel is!
    50. Re: Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 1

      Called out for name-dropping Liskov, you name-drop Robert C. Martin instead. Called out for expecting candidates to read your favorite web sites, now you claim candidates should read your favorite books. Still looking for like-minded candidates seeking social status by association to famous names. Fuck yourself.

    51. Re:Holy Blinking Cursor, Batman! by avandesande · · Score: 4, Insightful

      Obviously the OP suffers from incredibly lazy thinking to believe that he can find a good candidate with just a couple of questions. You certainly don't want to work there.

      --
      love is just extroverted narcissism
    52. Re:Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      Actually...
      I would list the KJV, Le Morte d'Arthur, and Canterbury Tales. Not because they were seminal works, they were, but because they were among the first _Printed_ works in English, where for the first time, books could be reproduced in vast numbers for an increasingly literate England. By the time of Shakespeare, such things as a sometimes standardized spelling, (Or misspelling...), and certain basic rules of layout and punctuation had already been invented by Caxton, Printer, out of sheer convenience.

    53. Re: Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      Uh, yeah.. because stuff written well over a decade ago about software design is "trendy techbro" shit.

      Fine, its passe techbro trivia.

    54. Re:Holy Blinking Cursor, Batman! by bored · · Score: 3, Funny

      You probably just made it consume 100% of the CPU as it tries to flash the cursor at an infinite rate...

    55. Re: Holy Blinking Cursor, Batman! by drnb · · Score: 2

      A perfectly fine answer is "No, I've never heard of it before. What is it?" Then we can have a conversation.

      Perfect. Sadly, then you write the following ...

      I'm not looking for trivia experts ... A lot of my questions are to probe whether they have bothered to read books that are not typically part of the college curriculum but are important references for a professional software engineer.

      Perhaps a beginning software engineer. As one with 30+ years of experience I might look at a summary of Martin's SOLID topic and think "not much new here", low priority or pass.
      "S Single responsibility principle
      a class should have only a single responsibility (i.e. only one potential change in the software's specification should be able to affect the specification of the class)
      O Open/closed principle
      “software entities should be open for extension, but closed for modification.”
      L Liskov substitution principle
      “objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program.” See also design by contract.
      I Interface segregation principle
      “many client-specific interfaces are better than one general-purpose interface.”
      D Dependency inversion principle
      one should “depend upon abstractions, [not] concretions.”"
      https://en.wikipedia.org/wiki/...

      I find it interesting that so many latched on the Liskov question -- and read their own deficiencies into the question -- and ignored the one about invariants

      Well the Liskov question was much more trivia than invariants. Liskov mere formalized in an academic sense what many skilled programmers already knew, so many reading Liskov's abstract would probably take a pass. Do not confuse the concept with the name of someone who wrote about the concept.

      What may seem new and innovative to the trade to a person with modest experience may not seem new to someone with extensive experience. Agile for instance, a bit of it seemed merely common sense to those of us with a bit of experience.

      These are concepts. We have a language that we use to discuss software engineering concepts.

      Correct on the first, wrong on the second with respect to Liskov, you have a niche buzzword. Many SOLID adherent may not recall the name that L represents but still recall the concept.

      Focus on a buzzword recognition and you may miss someone who actually understands the concept very well. Again, I refer back to your first sentences which were absolutely spot on correct: "A perfectly fine answer is "No, I've never heard of it before. What is it?" Then we can have a conversation."

    56. Re:Holy Blinking Cursor, Batman! by arglebargle_xiv · · Score: 4, Funny

      "Tell me what a class invariant is."
      Blank stare.
      "What is the Liskov substitution principle?"
      Deer in headlights.

      Prove that every even number > 2 can be expressed as the sum of 2 primes

      Empty look.

      Show that the Riemann zeta function has its zeros only at the negative even integers and complex numbers with real part 1/2.

      Panicked expression.

      Demonstrate that If k graphs each having k vertices have the property that every pair of complete graphs has at most one shared vertex then the union of the graphs can be colored with k colours.

      Runs from room.

      Sigh, kids these days...

    57. Re:Holy Blinking Cursor, Batman! by drnb · · Score: 1

      You ask me what a Liskov substitution is in an interview as a serious primary question and not just as trivia, I'm going to give you a deer in headlights. Afterwards, I'm going to look it up, find out what it was, and even if your company gave me a job offer I'm going to reject it because there's no way in hell I want to work with people who would ask obscure trivia as serious job interview questions. I would never fault a person for not knowing what Levenshtein distance was off the top of their heads.

      After a lead engineer gave me a written programming test with a lot of such trivia questions I was back in the project managers office. He asked me how things went. I said OK, I skipped some questions since they were trivia easily looked up in references, things I have not needed to memorize since taking an exam in college. I then went on to describe why their test was flawed and how a better test would go about things. His response, "you're right, the test does sound like something just slapped together in a half assed fashion." I received an offer a few days later.

    58. Re:Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      The point is that people abuse inheritance and write behaviour that makes it so that you DO have to care which class you point at.

    59. Re:Holy Blinking Cursor, Batman! by drnb · · Score: 3, Funny

      Opening VIM is the easy part. If you can successfully CLOSE VIM afterwards, that's the passing point.

      Extra credit for a minimal number of beeps while using it. :-)

    60. Re:Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      Not sure about the c64, but many (most?) 8 bitters had screen attribute ram that had bits to control inverse, blink etc on a per character on screen basis, so there was no concept of "rendering" the cursor: you just set a few bits in attribute ram and let the crtc do its thing.

    61. Re:Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      *Flips the hard power switch on the PC's power supply, waits 10 seconds, and then turns it back on*
      Does it still count as zero beeps if I've unplugged the speaker from the motherboard, or does it count as one silent beep from the POST?

      (j/k I actually prefer vim when I'm not using an IDE.)

    62. Re:Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      kill from another shell is probably the quickest way that requires the fewest keystrokes.

    63. Re:Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      In those days, the cursor was done in hardware by the CRTC (cathode ray tube control) registers. These handled the where the vertical and horizontal blanks started and stopped, where the cursor was located, whether it was in a on or off state, and the blink speed. Even the font would be handled in hardware. If you knew how to, you could change the hardware font as well.

      This was carried on into VGA and SVGA through BIOS calls. Once you go into windowed GUI's, Microsoft brought in HAL (Hardware Abstraction Layers). Now, all of that has to be emulated in software or accelerated by suitable graphics hardware. Each window becomes it's own virtual screen.

    64. Re: Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      He is unlikely to be swayed by any of this, he is sure he 'knows'.

    65. Re: Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      Glad to know I'll never have to work for anyone so unprofessional and uninformed as yourself. Knowing how to make sure code runs, doesn't create vulnerabilities or black holes, is important to me. Learning what particular dialect of crap my colleagues talk is something I can pick up quickly.

    66. Re:Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      lol, that was my thought more or less. We had a 4MHz minicomputer that could blink 7 cursors AT ONCE ;)

      oh well. Not like my current quickbooks in any faster than our accounting system was 20 years ago :(

    67. Re:Holy Blinking Cursor, Batman! by Jeremi · · Score: 1

      13 per cent CPU. For a blinking cursor. That's... impressive.

      Yeah, but the blinking cursor looks so much more realistic when rendered at a full 60 frames per second. It really gives it that extra "pop".

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
    68. Re: Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 2, Insightful

      This reminds me so much of that rookie question: "what programming languages do you know?"

      I dunno, with a reference manual, all of them. It is immaterial because I'm going to have to learn another one for the next project or the next software platform.

      And they'll have their own names for common ideas, which you'll see once and realize what it actually is.

    69. Re:Holy Blinking Cursor, Batman! by Bengie · · Score: 1

      "Tell me what a class invariant is."

      I don't know most terms myself. I typically self discover nearly everything that I know by thinking about a problem for a little bit. I didn't know the term "race condition" when I was 8 years old when I theorized they would be an issue within a few minutes of learning that multi-core CPUs exist. I've been using "tiling" for years to optimize memory access without knowing what it was called. These things just seem blindly obvious when you see the problem.

    70. Re:Holy Blinking Cursor, Batman! by Bengie · · Score: 2

      Knowledge seems inversely related to understanding. /sarc

      But really. In psychology, it is known that accessing memory while attempting to learn hampers your ability to learn. Internalizing a concept such that you no longer need to access memory, but instead "just think that way" frees up your memory. A typical person can only hold a hand full of concepts in their head at once. If you're dealing with a complex system, memorizing it is incredibly inefficient. Learning to think like the system allows you to effectively hold it all in your head without having to use your memory.

      Like Minecraft, if you instead algorithmically generate your "memories" you can free up your actual memory. Minecraft manages to compress an entire map down to a small seed and only has to store the differences. This is how you deal with large complex system.

      I literally have a memory disability, but I can manage hugely complex systems in my head by designing the system using simple patterns and making sure the patterns can express the complexity of the system. Like a fractal. I compensate for my disability by "regenerating" my memory in real time. I have difficulty telling the difference between something I just thought of or something that I remembered because thinking is nearly the same as remembering for me.

      This breaks down outside of logical systems. Day-to-day activities give me issues. Sometimes I forget my own birthday. It took me nearly 6 months to remember my wife's name while we were dating, and I saw her almost every day. I had to give her a pet name. At first she didn't like it, but it grew on her. Most people who meet me think I'm fairly normal but slightly dunce. That is until they get me working on something that requires abstract reasoning.

      I think anyone could do what I do, but I take a much longer time getting up to speed because it takes time for me to internalize a concept into my way of thinking. But once I integrate a concept, I no longer have to remember anything about it, it become natural for me to think that way. I am forced to do this because of my disability, but if people were not in such a hurry to crank out some code, they to could free up their limited memory for other more important things, like learning.

    71. Re:Holy Blinking Cursor, Batman! by drnb · · Score: 1

      To be clear, by knowledge I do not mean regurgitating textbook definitions. What I want demonstrated is a practical usage of some bit of knowledge. [Borrowing from another post] Rather than ask:
      Q. What is the Liskov substitution principle?
      I would probably ask something like:
      Q. A Square class is derived from a Rectangle class. Function foo has a non-const parameter of type Rectangle. Function foo is called using a variable of type Square. Is this safe, if not why?

    72. Re: Holy Blinking Cursor, Batman! by Miamicanes · · Score: 1

      ...made worse by the fact that modern graphics subsystems are basically the descendant of a 3dfx card integrated onto the most minimal dumb hardware frame buffer possible.

      It's why Android tablets (even fast ones) take at least a half second to render pdf pages using a 2.5GHz 4+ core SoC, but even a ghetto $150 mid-90s video card could do it instantly on a computer running at 100MHz... the old video cards had hardware spline acceleration. Now, they use the CPU to lay out 400 million triangles, then pump them through the GPU to render them. One step forward, one step diagonally-backwards to the left.

    73. Re: Holy Blinking Cursor, Batman! by apparently · · Score: 2

      God, I bet the nickname your subordinates have for you is fucking priceless.

    74. Re:Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      And how efficient and/or popular is your scripting language douche-nozzle?

    75. Re:Holy Blinking Cursor, Batman! by Aighearach · · Score: 1

      You have to really deep before you find people who can talk about design principles, design by contract, etc.

      OMG, I agree so strongly with what you actually said! I probably don't agree with much of what you meant to say, but what you did say I agree with.

    76. Re:Holy Blinking Cursor, Batman! by beelsebob · · Score: 1

      Right, indeed - it's completely retarded that they're chewing 13% CPU to blink a little square on the screen. Thankfully, modern graphics architectures don't require that.

      Only shitty coding and crappy interpreted languages get you that.

    77. Re:Holy Blinking Cursor, Batman! by lgw · · Score: 1

      And how efficient and/or popular is your scripting language douche-nozzle?

      Scripting language? I directly edit the memory of a running process with a hex editor to do what I want. Kids these days.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    78. Re: Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      Is there such a thing as a pedantic joke? It sounds like you just made one.

    79. Re:Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      lol u should kill yourself

    80. Re:Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      > Prove that every even number > 2 can be expressed as the sum of 2 primes

      This is a test of English interpretation rather than Maths.

      The sum of 2 primes is more likely to be interpreted as "two *distinct* primes" than the more general "any 2 primes, even allowing for duplicates".

      The former case is not true, the latter is true.

    81. Re:Holy Blinking Cursor, Batman! by Bite+The+Pillow · · Score: 1

      Remove the lines and the graph is still chaotic. I didn't see a methodology on there either.

      I don't doubt it is horrible, but remember that confirmation bias exists. Sharing an image without methodology is irresponsible. Even if it ultimately is legit.

    82. Re:Holy Blinking Cursor, Batman! by adonoman · · Score: 1

      That just makes you an asshole programmer regardless of what the principle is called. You don't need a "principle" to tell me not to use misleading function names. You don't need a principle to tell you not to invoke undefined behavior. Yes, it's all possible to do, but if your programmers are doing this crap, then a book on design principles is unlikely to be helpful.

    83. Re: Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      Scintilla based editors (Notepad2, Notepad++ etc.) use CPU time even when the app is inactive and minimized. Not a lot of CPU but still annoying...

    84. Re:Holy Blinking Cursor, Batman! by Bite+The+Pillow · · Score: 1

      I interviewed with this guy (diff language but same interview). Failed the trivia game, got the job anyway. Now people think he is an ineffectual dick, and I get stuff done.

      Obviously my perspective has bias, but you can include the trivia bits to gauge formal learning from experience. A good formal education, complete with real world examples, can make a good interview, and an employee just good enough to be hard to fire. So you really should include some trivia.

      Even if your sole purpose is to avoid the guy whose code reviews reject things on academic grounds, and allow system file exposure.

    85. Re:Holy Blinking Cursor, Batman! by ncc74656 · · Score: 1

      Yeah, my old Commodore 64 had a blinking cursor, and it somehow managed that remarkable feat with an 8-bit 6510 CPU running at 1MHz!!!

      ...though, to be fair, keyboard input on those old 8-bitters was usually a busy loop of some sort (looks like /.'s gonna thwart my attempt at indenting the following):

      LOOP LDA $C000
      BPL LOOP
      BIT $C010

      That's 100% CPU usage right there, though without a need to share it with other processes (because there were no other processes), the concept is somewhat meaningless in this context.

      --
      20 January 2017: the End of an Error.
    86. Re:Holy Blinking Cursor, Batman! by sjames · · Score: 1

      Not in the U.S. In most states the employer need not even have an articulable reason.

    87. Re:Holy Blinking Cursor, Batman! by sjames · · Score: 1

      That depends, are we talking fizz buzz or recognize an apple in a jpeg in 10 lines or less?

    88. Re:Holy Blinking Cursor, Batman! by sjames · · Score: 1

      Of course, a blinking cursor that doesn't eat 13% of the CPU can be fairly important to the user experience.

    89. Re:Holy Blinking Cursor, Batman! by ndykman · · Score: 1

      I didn't know what it was until I looked it up in the article. So basically you want me to remember that some guy came up with a name for using inheritance and if I don't remember it I'm a bad programmer?

      Just as an aside, it's some gal. Barbara Liskov, Turing award winner. While I don't disagree such questions aren't the best in interviews, a bit of history also doesn't hurt. Also, in some circles, the SOLID acronym is gaining traction, and Liskov substitution principle is the L.

    90. Re: Holy Blinking Cursor, Batman! by suutar · · Score: 1

      Eh. The link may be to stackoverflow, but they could also have linked to wikipedia, youtube, infoworld or Joshua Bloch's Effective Java. Would you have classified those as "trendy techbro"?

    91. Re:Holy Blinking Cursor, Batman! by farble1670 · · Score: 1

      That's the theory, yet every employer I've worked for (tech) has decided to let poor performers hang on until a larger "downsizing". For the most part I don't see people get fired in tech.

      Yes very narrow viewpoint I know.

    92. Re:Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      I totally agree. That's why we give applicants a problem to solve, using either code or algorithm depending on the level they're applying for, and only after that comes back reasonably good do we bring them in for an interview which is solely to determine whether their personality will fit with the company. An interview is not the place to determine whether someone has the skills for the job. To know about their skills, you have to get them to use their skills. I did have an interview once where they asked a couple questions and then had me do a programming task live. They didn't hire me because I was too good on my own and didn't ask for help, even though I completed their problem faster than anyone else they interviewed. Interviews are also for the applicant to evaluate the interviewers.

    93. Re:Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      I didn't know what it was until I looked it up in the article. So basically you want me to remember that some guy came up with a name for using inheritance and if I don't remember it I'm a bad programmer?

      some *GIRL*. Seriously this is so basic I don't even know where to begin. Please go back to school and learn this stuff properly.

    94. Re:Holy Blinking Cursor, Batman! by Anonymous Coward · · Score: 0

      "Tell me what a class invariant is."

      I don't know most terms myself. I typically self discover nearly everything that I know by thinking about a problem for a little bit. I didn't know the term "race condition" when I was 8 years old when I theorized they would be an issue within a few minutes of learning that multi-core CPUs exist. I've been using "tiling" for years to optimize memory access without knowing what it was called. These things just seem blindly obvious when you see the problem.

      So true; I had the same issue recently where a newbie coworker ran a session on code efficiency and optimization for his peers, and kept referring to Big O Notation.
      I had to ask him to clarify what "Big O" was, and then proceeded to correct him on almost every declaration he was making about how to optimize code, as he was just spewing the most basic case textbook answer for small datasets residing in perfectly purpose-built DB structures.

    95. Re:Holy Blinking Cursor, Batman! by jbrizz · · Score: 1

      But if you limit the frame rate to 30 fps you'd save some CPU and get that cinematic feel.

    96. Re:Holy Blinking Cursor, Batman! by Bengie · · Score: 1

      For all non-social or coding aspects of programming, abstract reasoning is universally considered the single most important ability. Yet this ability allows one to solve problems with zero prior knowledge. It is by definitive the ability to recognize a new problem and solve it with no prior knowledge of anything. Knowledge is virtually useless for anyone with decent abstract reasoning. If anything, knowledge is a hindrance that makes it more difficult to learn because accessing knowledge is mentally expensive.

      You make a clean discretion between "text book" knowledge and the ability to use knowledge, but the same ability that allows you to use knowledge also makes knowledge moot. There are people who can "use" knowledge but have weak abstract reasoning, but they also have the problem of not knowing when to NOT use their knowledge. This is dangerous. Behold, the golden hammer. The only way these people learn is from making mistakes over very long periods of time and the luck of happen-stance allows them to realize their error.

      This is why there is virtually zero correlation between experience and ability in the tech industry. People with knowledge are useful as reference books.

      Another related topic is about forgetting. Turns out forgetting is an important part of learning. The brain regularly needs to make room. Research seems to be leaning towards the inability of older people being able to learn and reason seems to be highly correlated with how much knowledge they have. Being able to quickly learn and quickly forget is important. Abstract reasoning allows for quick learning. They even say abstract reasoning peaks in your teens, for a normal person. After that, they assume people start to rely more on their knowledge, allowing their abstract reasoning to atrophy.

  2. That's what you get... by Kormoran · · Score: 4, Funny

    ...when you hand the task over to the HALO crew. Absolutely NO flicker, man. Oh, wait...

  3. Maybe they shouldn't use Javascript ... by drnb · · Score: 5, Funny

    13% of CPU at 60 fps. Maybe they shouldn't use Javascript and a cross platform framework for drawing the cursor. ;-)

    1. Re:Maybe they shouldn't use Javascript ... by Anonymous Coward · · Score: 0

      Yeah should be using Ruby on Rails.

    2. Re:Maybe they shouldn't use Javascript ... by DickBreath · · Score: 1

      Um, excuse me? There is nothing wrong with using Javascript and a cross platform framework for drawing the cursor.

      Just be sure that each time the cursor is redrawn (even if it hasn't changed appearance from the last refresh) that you launch that Javascript environment in a fresh sandboxed VM. For safety. Think of the children.

      --

      I'll see your senator, and I'll raise you two judges.
    3. Re:Maybe they shouldn't use Javascript ... by Anonymous Coward · · Score: 0

      yeah, 13% should be enough to render entire screen frame at 60 fps

    4. Re:Maybe they shouldn't use Javascript ... by Anonymous Coward · · Score: 0

      yeah, 13% should be enough to render entire screen frame at 60 fps

      Says the heathen C/C++ programmer, worshiper of the pagan gods of hardware architecture.

    5. Re:Maybe they shouldn't use Javascript ... by beelsebob · · Score: 1

      No, as the C/C++ programmer, 0.13% of the CPU should be enough to render the entire screen at 60fps.

    6. Re:Maybe they shouldn't use Javascript ... by Carewolf · · Score: 1

      No, as the C/C++ programmer, 0.13% of the CPU should be enough to render the entire screen at 60fps.

      Depends on the screen resolution and speed of your memory. 13% of "CPU" doesn't sound too far off, though almost all of that time would be waiting on memory. Let's say you can blit 1080p in about 2ms (first in CPU memory and then to GPU memory), that would be 120ms per second for 60FPS or 12%

    7. Re:Maybe they shouldn't use Javascript ... by beelsebob · · Score: 1

      Why the hell would anything be in the CPU's memory when you're rendering the screen? All of this should be happening on the GPU, without any bitting of things from CPU memory.

      If you're spending 2ms per frame to do nothing but render windows in a standard windowing environment, then you're wasting *huge* amounts of resources. 2ms is enough to render hundreds of draw calls with millions of polygons.

      That's why you don't see your system sat their idling at 13% CPU usage as you drag a window around the screen.

      Remember - your system today is roughly 10 times faster than the system you had 4 years ago. Are you trying to claim that 4 year old systems needed 100% of the CPU just to render windows on the screen?

    8. Re:Maybe they shouldn't use Javascript ... by Anonymous Coward · · Score: 0

      Unfortunately, this is not the case. CPU rendering is still moderately expensive. Without proper dirty tracking, full screen rendering at about 30fps will usually hit the CPU at around ~6-8%.

    9. Re:Maybe they shouldn't use Javascript ... by beelsebob · · Score: 1

      Which is of course, why you shouldn't be rendering anything on the CPU ;)

      The CPU shouldn't be doing anything other than issuing draw calls to the graphics hardware.

      Further to that. Your assertion is effectively equal to "it's reasonable to use all the CPU to do nothing but render the screen on 5 year old hardware".

      That's clearly not true.

    10. Re:Maybe they shouldn't use Javascript ... by Carewolf · · Score: 1

      Why the hell would anything be in the CPU's memory when you're rendering the screen? All of this should be happening on the GPU, without any bitting of things from CPU memory.

      Because that is how most 2D rendering works and how Chrome works (which this product uses). It is rendered with CPU based rasterization to tiles which are uploaded to the GPU and then composited by the GPU.Unless the you disable GPU compositing, then there is also a CPU based fallback.

    11. Re:Maybe they shouldn't use Javascript ... by Carewolf · · Score: 1

      Why the hell would anything be in the CPU's memory when you're rendering the screen? All of this should be happening on the GPU, without any bitting of things from CPU memory.

      Because that is how most 2D rendering works and how Chrome works (which this product uses). It is rendered with CPU based rasterization to tiles which are uploaded to the GPU and then composited by the GPU.Unless the you disable GPU compositing, then there is also a CPU based fallback.

      Note, my base assumption is still that they are doing it wrong and stupidly. Rerendering the entire screen on CPU 60fps. That would fit with 12% CPU. A smart CPU rerendering would only rerender the pixels changing (which is easy on CPU based algorithms because there is no double buffering) and use 0.1% CPU, a smart GPU based rerendering would rerender the entire screen but still use less than 0.1% CPU because only GPU instructions would be issued.

    12. Re:Maybe they shouldn't use Javascript ... by YoungManKlaus · · Score: 1

      Except they aren't ... the cursor is purely a CSS animation ... just the blink engine majorly fucking up.

  4. Probably a minor oversight. Will likely be fixed. by Anonymous Coward · · Score: 5, Insightful

    Seems like a minor oversight. It will probably be fixed soon, if it hasn't already been.

    Microsoft has actually done a good job with Visual Studio Code. It's a lot better to use than, say, Atom or EMACS. It has some great plugins, they're easy to install, and overall it provides a good compromise between a plain text editor and a full-featured IDE.

    I'm not going to hold this minor bug against them.

  5. I'll stick with Linux by Anonymous Coward · · Score: 0

    Penguin fucking power engage!

    1. Re:I'll stick with Linux by Cmdln+Daco · · Score: 1

      Penguin fucking power engage!

      Why would you want to fuck a penguin?

  6. I think there is more to it. by freeze128 · · Score: 1

    I think that VSC is doing more then just blinking the cursor. Perhaps it's monitoring the keyboard for input, monitoring the file structure for changes, etc...

    1. Re:I think there is more to it. by Anonymous Coward · · Score: 0

      I think that VSC is doing more then just blinking the cursor. Perhaps it's monitoring the keyboard for input,

      You don't need to poll continuously with a high cpu rate to check for keyboard input.

      Windows tells the program when there is keyboard input.

    2. Re:I think there is more to it. by RatherBeAnonymous · · Score: 3, Informative

      According to TFA, adding "editor.cursorBlinking": "solid" to the app's settings.json fixes the high CPU consumption. That makes me think there isn't anything more to it.

    3. Re:I think there is more to it. by Anonymous Coward · · Score: 0

      Why would it be actively monitoring such things? Is signalling and events new to you?

    4. Re:I think there is more to it. by MightyMartian · · Score: 1

      Um, doesn't the operating system do that?

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    5. Re:I think there is more to it. by DickBreath · · Score: 1

      > Perhaps it's monitoring the keyboard for input, monitoring the file structure for changes

      Um, real operating systems, used by those who wear big boy pants, have APIs to give you a callback when there are changes to a folder you designate for watching.

      --

      I'll see your senator, and I'll raise you two judges.
    6. Re:I think there is more to it. by EvilSS · · Score: 1

      Perhaps it's monitoring the keyboard for input

      Let's hope they are not that amateurish. I've run into that in my job more than once but it's always been in a homegrown app vs commercial software (well commercial software written in the past two decades at least). Software using an entire core waiting for user input. Developer "I wonder if that's why my laptop fan turns on when I leave the application sitting" Ya think?

      --
      I browse on +1 so AC's need not respond, I won't see it.
    7. Re:I think there is more to it. by Anonymous Coward · · Score: 0

      That's crazy-talk. How will you ever know if your machine has frozen? Not worth it.

    8. Re: I think there is more to it. by Anonymous Coward · · Score: 0

      And that's the Killian experience.

    9. Re:I think there is more to it. by Anonymous Coward · · Score: 0

      The reason its flashing is because it's taking pictures of you, to go with the other telemetry data collected.

    10. Re:I think there is more to it. by Carewolf · · Score: 1

      Um, doesn't the operating system do that?

      The Chrome browser IS an operating system, or at least it is intentionally written as one, so even outside of ChromeOS it acts as one.

    11. Re:I think there is more to it. by Brian+Feldman · · Score: 1

      i.e. any modern Unix, Mac OS X, Windows, etc.

      --
      Brian Fundakowski Feldman
  7. blinking and beeping and flashing - by fustakrakich · · Score: 2

    they're *flashing* and they're *beeping*. I can't stand it anymore!

    --
    “He’s not deformed, he’s just drunk!”
    1. Re:blinking and beeping and flashing - by Anonymous Coward · · Score: 0

      Why the hell aren't I notified about these things?

  8. Devil in the Details... by EndlessNameless · · Score: 5, Interesting

    Is it rendering the cursor specifically at 60 FPS, or is it the entire active window?

    Because I can imagine a good reason for rendering the active window in an IDE every frame. Your brain is definitely capable of registering visual changes faster than once every 500ms.

    If you have smart syntax highlighting, you want the squiggly lines, tab-complete indicators, color coding, and highlights to appear ASAP. The sooner you notice a mistyped function name, the less characters you have to back over to fix it.

    A fast, responsive window refresh is essential to modern IDEs.

    I mean, feel free to call them out if Eclipse or whatever is much better at it, but I can totally see why they would rerender the entire window. If it is the active window (per the summary), then you can assume it's being used and therefore deserves the most responsive output possible.

    --

    ---
    According to the latest ruleset, this post should be modded as Vorpal Flamebait +5.
    1. Re:Devil in the Details... by Anonymous Coward · · Score: 0

      Framework bug forces total refresh instead of just some components.

      Details matter, just a matter of which details. Not good, but not their fault either.

      -------------

      Google Chrome product manager Paul Irish, posting to a thread on Hacker News, said, "Chrome is doing the full rendering lifecycle (style, paint, layers) every 16ms when it should be only doing that work at a 500ms interval. I'm confident that the engineers working on Chrome's style components can sort this out, but it'll take a little bit of work. I think the added visibility on this topic will likely escalate the priority of the fix."

    2. Re:Devil in the Details... by drnb · · Score: 3, Insightful

      Is it rendering the cursor specifically at 60 FPS, or is it the entire active window? Because I can imagine a good reason for rendering the active window in an IDE every frame.

      Pro tip: when rendering an entire window, or an entire screen in a game, you might want to consider "dirty rectangles" and only redraw what has changed.

    3. Re:Devil in the Details... by JoeMerchant · · Score: 1

      I smell a bug-fix at work here - something in the partial update rendering was not working on the first try, so they just render the entire window at 60fps and you never notice.

      Responsiveness is good, but nervousness is not. When I'm staring at a page of code, I expect it to be static - not wobbling around at 60fps.

    4. Re:Devil in the Details... by Anonymous Coward · · Score: 0

      Don't worry dude it'll be all wobbly again when you upload a video of your brilliant coding session to Twitch so you can show-and-tell all your social coder bros how elite you are.

    5. Re:Devil in the Details... by DontBeAMoran · · Score: 1, Funny

      When you watch porn, all your screen is a "dirty rectangle".

      --
      #DeleteFacebook
    6. Re:Devil in the Details... by Anonymous Coward · · Score: 0

      Your brain is definitely capable of registering visual changes faster than once every 500ms.

      Not a whole lot of change when idle, though...

    7. Re:Devil in the Details... by Anonymous Coward · · Score: 0

      Maybe your porn is a dirty rectangle. I prefer tasteful nudes.

    8. Re:Devil in the Details... by Anonymous Coward · · Score: 0

      Aren't you on Slashdot?

    9. Re:Devil in the Details... by Anonymous Coward · · Score: 0

      I dunno am I on slashdot? I don't see any gnna posts about cum guzzler timmy cook taking n1gger cock up the ass. Maybe I'm not on slashdot.

    10. Re:Devil in the Details... by sourcerror · · Score: 1

      Only if you watch Japanese porn.

    11. Re:Devil in the Details... by AmiMoJo · · Score: 1

      The framework (Chromium) they used actually does that, but either there is a bug or they screwed up and made it think the whole window needs rendering every frame.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    12. Re:Devil in the Details... by CanadianMacFan · · Score: 1

      You should be letting the OS do all that management. I don't want the cursor blinking at different rates in every application. Let me set it up in the system preferences and don't think you know better than I do. How fast the cursor blinks doesn't actually impact how fast the window is refreshed.

      Why are you wanting the red line to appear if you start to type a function name wrong? In Xcode when you start to type a function it lists all functions that match and as you continue typing the list gets smaller. When you select one the function appears and all you need to do is fill in any parameters if there are any. But the application shouldn't be dealing with any of that stuff. It's all down at the OS level no matter where you are running.

    13. Re:Devil in the Details... by DontBeAMoran · · Score: 1

      Damn you, mosaic censorship! I'm trying to pixelate here!

      --
      #DeleteFacebook
  9. Re:Probably a minor oversight. Will likely be fixe by Richard_at_work · · Score: 4, Interesting

    It looks like its actually an underlying issue with Chromium, which is what powers Electron, the UI framework which VS Code is based on.

    https://bugs.chromium.org/p/ch...

    Simple CSS Keyframe Animation Causes Too High CPU Usage

    Steps to reproduce the problem:
    It happens on my Mac.

    Demo page here: http://output.jsbin.com/vogaxa

    Add a simplest keyframe animation to an element and Chrome will use 5-6x more CPU than it should.

    e.g: .blinking { animation: 1s blink step-end infinite; }

    @keyframes "blink" {
        from, to { visibility:hidden; }
        50% { visibility:visible; } }

    What is the expected behavior?
    CSS animation should consume equal (or close to equal) CPU load than its Javascript animation alternative.

    Javascript setInterval consumes around 1.2% CPU on my Mac (Chrome's task manager)

    1.2% for Javascript animation of a blinking cursor btw is the same usage that I get with no animation and the default cursor inside an input element.

    CSS animation should produce the same results.

    What went wrong?
    CSS keyframe based animation consumes 7-8% CPU which is unjustified for such a simple case.

  10. assumption error by Anonymous Coward · · Score: 0

    The word "just" makes your claim unsustantiated. Nothing stated here verifies that other computations are not occuring.

  11. More likely a stuck thread on an 8 core CPU by Anonymous Coward · · Score: 0

    This explanation seems very unlikely. Rendering a small line at 60 fps is much faster than that, even if hardware acceleration is not involved.
    13% sounds like a single thread running continuously (no sleep/idle) on an 8-core CPU. Most likely it's just a bug where the thread is in an active loop, failing to go to sleep. It may be the cursor rendering thread, but that doesn't mean it takes all that time to render it at 60fps.

    1. Re:More likely a stuck thread on an 8 core CPU by thinkwaitfast · · Score: 1

      Sounds like an accounting problem. Like why TaskManager uses 25% of cpu time.

    2. Re:More likely a stuck thread on an 8 core CPU by YoungManKlaus · · Score: 1

      > 13% sounds like a single thread running continuously (no sleep/idle) on an 8-core CPU

      Thanks captain obvious.

      The reason for it is still the cursor blinking ... or rather: chromium sucking at doing keyframe animations.

  12. Worse than it sounds by lucasnate1 · · Score: 0

    I understand that there was a bug that caused them to render the cursor at 60fps, but why does it take 13% of the CPU? I used to play games that rendered full frames at 30 or 60 fps, if only a cursor takes 13% I would expect that to be impossible. Something is terribly inefficient somewhere, way beyond just rendering too many fps.

  13. ...and this is why you're not engineers by Anonymous Coward · · Score: 0

    you're a bunch of wankers. You *rely* on real engineers to build the CPUs to run your shitty code.

    1. Re:...and this is why you're not engineers by thinkwaitfast · · Score: 1

      This. I do real time code and some of the things I've seen done make you want to ask the person who wrote the code if they thought about how it would be used for more than 5 seconds. Do no pre-optimize is not an excuse to be stupid. You do not need to run a sort routine inside an interrupt handler, even if it is only 5 elements.

  14. 60 FPS is the minimum these days by tobiasly · · Score: 5, Funny

    Well I would hope that a modern IDE released in 2017 would have 60 FPS! I also have the 4K cursor, HDR cursor, 3D cursor, Retina cursor, and VR cursor plugins all enabled, but I realize that may be overkill for some people. As soon as I get my new water cooling rig set up it'll be buttery smooooth.

    1. Re:60 FPS is the minimum these days by Anonymous Coward · · Score: 0

      Don't forget 64X anti-aliasing!

    2. Re:60 FPS is the minimum these days by mugurel · · Score: 1

      Yes, you wouldn't want any aliasing on those horizontal and vertical edges of the cursor!

  15. Is it a good test? by 140Mandak262Jamuna · · Score: 1, Interesting

    The blinking cursor render gets called every 16.67 ms because there is nothing else going on. So the cpu usage is 13% to render cursor and 87% idle. Unless there is a 13% additional cpu usage when I doing something meaningful, it does not matter.

    --
    sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
    1. Re:Is it a good test? by mark-t · · Score: 3, Insightful

      Using the CPU draws more power than if it were just idle, so it is incorrect to say it does not matter.

    2. Re:Is it a good test? by epyT-R · · Score: 1

      No.. 100/12.5=8. It's an 8 core (probably 4/8 HT). One core is being maxed out. Instead of idling, the code (chrome runtime) revolved around blinking the cursor is forcing the window context to refresh at the display refresh rate except only when it has to redraw (every 500ms).

    3. Re: Is it a good test? by Zero__Kelvin · · Score: 1

      It doesn't work that way actually, though I can see where you might mistakenly think it is. The fact that 4 cores each have 25% usage doesn't in any way suggest that one core would be occupy 100%.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    4. Re:Is it a good test? by thegarbz · · Score: 1

      Unless there is a 13% additional cpu usage when I doing something meaningful, it does not matter.

      13% CPU is the difference between a CPU going to one of its C-states. i.e. It's the difference between 8 hours battery life and 3 hours battery life on many laptops.

      You should be strung up by the short and curlies for suggesting that this kind of performance for a blinking cursor doesn't matter.

  16. Depends on who you're asking by DontBeAMoran · · Score: 0, Flamebait

    Microsoft describes Visual Studio Code as a source code editor that's "optimized for building and debugging modern web and cloud applications".

    The Hitchhiker's Guide to the Galaxy describes Visual Studio Code as a bloated pile of almost but not quite working spaghetti code written by ape descendants.

    --
    #DeleteFacebook
  17. Microsoft Response: it's By Design by Anonymous Coward · · Score: 0

    Microsoft Response: it's By Design

    1. Re:Microsoft Response: it's By Design by thinkwaitfast · · Score: 1

      No, it's by customer request. Microsoft listens to its customers.

  18. Re:Probably a minor oversight. Will likely be fixe by drnb · · Score: 1

    It looks like its actually an underlying issue with Chromium, which is what powers Electron, the UI framework which VS Code is based on.
    Simple CSS Keyframe Animation Causes Too High CPU Usage

    Well if this is the development approach for modern tools and applications I'm glad I splurged and upgraded to the i7 during build to order. It does seem true that software development practices "grow" to fit whatever amount of CPU resources are available.

  19. FUD by Anonymous Coward · · Score: 0

    This is also... fud. Process does not consume anything like 13% under the conditions described. More likely, the person had some extension installed that was either misbehaving, or some background processing was going on, like linting or indexing etc.

  20. Oblig by Anonymous Coward · · Score: 0

    Netscape's founders have just assigned to Microsoft, all IP rights related to blinking text.

  21. if (window.changed) { window.render() } by raymorris · · Score: 1

    You shouldn't be rendering a window every few milliseconds if it hasn't changed. This:

    function paint {
            if (window.changed) {
                    window.render();
            }
    }

    function render {
          window.gdiPaint();
          # In Windows, most screen elements are "window"s
          for child window.children {
                    child.paint()
            }
    }

    Not this:

    while true {
          window.gdiPaint();
                  for child window.children {
                    child.gdiPaint()
            }
    }

  22. Re:Probably a minor oversight. Will likely be fixe by Tailhook · · Score: 5, Interesting

    Microsoft has actually done a good job with Visual Studio Code.

    If you're willing to completely dismiss performance concerns then yes, great work. On the other hand, if you care about performance, and memory usage, it's pretty hard to do worse than VSCode without including including something like Eclipse or Intellij in the survey.

    --
    Maw! Fire up the karma burner!
  23. Re:Probably a minor oversight. Will likely be fixe by Grishnakh · · Score: 5, Insightful

    No, it sounds like the problem is the insane idea of running local code through a web browser. The web itself is probably the most Rube Goldberg-esque way of displaying interactive data and controls to a user (HTML, a backend language like PHP/Java, a client-based language (JavaScript), and then a crappy markup language for style attributes (CSS)). It's understandable how it evolved, but it makes no sense at all to use this for local applications.

  24. I'm pretty sure it's doing more than blinking. by Anonymous Coward · · Score: 0

    No doubt IntelliSense is being checked, there is background indexing of files, etc.
    There's no possible way for this person to have profiled performance and found that blink_cursor() was responsible for 13% of the CPU load.

  25. Maybe I'm just out-of-touch... by Pezbian · · Score: 1

    How is it that today's average 3+GHz 8-core badass CPU can be hobbled like that?

    My jerry-rigged 486 DX/4-100MHz machine of 20 years ago didn't have that problem. What the hell am I missing?

    My Pentium MMX 166MHz machine a year later was even less-handicapped.

    GPUs, SSDs, there should be no excuses ... what crucial bit am I missing? I'm serious. I haven't written any code in a very long time and something critical got overlooked.

    --
    In a world of the blind, the one-eyed man is king--and the two-eyed man is a heretic.
    1. Re:Maybe I'm just out-of-touch... by epyT-R · · Score: 3, Insightful

      The constant unyielding unending march of useless abstraction.

      hardware (hypervisor) -> kernel (per process hardware abstraction for userland) -> interpreted runtimes (nodejs/java/.net etc).

      That last part is why modern 'apps' are bloated piles of garbage that need multighz machines to be responsive doing things that could be done on a 486 (eg winNT/mirc on a 486 vs discord on a haswell@4.7ghz). The argument is security and ease of development (zomg! cloud!). The former's been readily disproved and the latter sacrifices significant capability and performance. I think we're well past the point of diminishing returns and into the realm of significant drawbacks.

    2. Re:Maybe I'm just out-of-touch... by TroII · · Score: 1

      My jerry-rigged 486 DX/4-100MHz machine of 20 years ago didn't have that problem. What the hell am I missing?

      20 years ago, people weren't trying to write a friggin' IDE in JavaScript of all things.

    3. Re:Maybe I'm just out-of-touch... by Tenebrousedge · · Score: 1

      Kids these days, amirite?

      The reason why modern apps are bloated is that programmers are expensive and expectations are high. The whole point of this profession is to save labor, and guess what? That includes programmer labor. You may have puffed up your ego about your perfect, unbloated, handcrafted code, but in the meantime the requirements have changed, the client is on the phone about how all the headings are 2px too wide, and the boss is leaning on your desk, asking you when exactly you can get those five new features prototyped.

      mirc may be lean, but it's insecure, and it doesn't run on most devices. Frankly I'd like to see you try to duplicate all of Discord's features on any sort of timescale -- keeping in mind that feature parity is a moving target.

      Performance is not what we optimize for. We optimize for cost of development and user experience, because those things will bite you in the ass far sooner. Things like app size or memory usage simply do not make the priority list. Your users do not care, and what your post says to me is that you've allowed yourself to become complacent with whatever technology you're comfortable with and stopped learning new stacks. That is actually a semi-rational choice; the upgrade treadmill is vicious, and sticking with (e.g.) C++ is at least one way to optimize your own efficiency. But show me anything written in straight C++ that has both mobile and web interfaces, provides a secure communications channel and a polished, responsive layout. Any one of those features developed without a library or framework would take years. Standards are high, and today's most popular computing platform didn't exist ten years ago.

      Your shit does, in fact, stink. That you seem to have an axe to grind about "the cloud" and performance suggests to me that you're a systems programmer that is wondering where their platform went, and this

      I think we're well past the point of diminishing returns and into the realm of significant drawbacks.

      tells me that you have no idea what you're talking about and should consider exiting the profession.

      --
      Those who advocate genocide deserve every protection afforded by law, and none afforded by common human decency.
    4. Re: Maybe I'm just out-of-touch... by Anonymous Coward · · Score: 0

      This is slashdot. They probably write the shit you use.

    5. Re:Maybe I'm just out-of-touch... by epyT-R · · Score: 1

      1. This has nothing to do with my ego. With all that babble about 'high standards,' I think it might have to do with yours, however.

      2. These 'web stack' applications eat far too much host resource for given tasks, don't integrate well with targets, and, with all that extra often-redundant boilerplate code running, are more bug and exploit prone as a result. So much for meeting high expectations.

      3. Dumbing down the development process to make programming more 'accessible' to less capable people costs too. These costs are passed to the customers. They (and their support staff) are then stuck running/supporting this slapped-together spaghetti code garbage linking a half dozen runtimes and frameworks that were never intended to do what they were kludged into doing. Again, so much for high standards.

      4. You wanted examples of C/C++? What do you think those "polished interfaces" and "secure communications channels" are written in? Same goes for many of these runtimes you hold dear. The fact you think C programmers never use libraries (and even frameworks) shows your ignorance.

      5. You talk about user experience yet you seem to have no idea what that means. That does not mean huge fonts, annoying transition animations (that can't be turned off), lots of wasted space, extremely limited functionality, no configurability, and custom tacky widgets that don't integrate with the target system's UI conventions. Oh and don't forget the here-today-changed-tomorrow-fuck-it-we-got-em-now user-hostile mentality that is central to SaaS. 'appy guy' here on slashdot parodies guys like you for a reason.

      6. So does yours. 'The cloud' is a system too, complete with its own drawbacks, as I've partly illustrated. It's obvious you're quite blind to them. Perhaps you should do your users and the industry a favor and take your own advice.

  26. This is a bit absurd... by ZorinLynx · · Score: 2

    How is it that four decades into the personal computing era and ANYTHING in the UI is using any significant amount of CPU?

    A blinking cursor?? The Apple II had a blinking cursor in 1977, and it was implemented in hardware. It used zero percent of the CPU.

    My gods, programmers have gotten lazy. What's next, extra CPU consumption for bold text? The system slowing down every time it beeps?

    1. Re:This is a bit absurd... by Anonymous Coward · · Score: 0

      Four decades into the personal computing era and guys like Woz are unemployable today. Technical skills are worthless. Social skills are everything. Woz is lucky to be a millionaire because if he were starting out today with his skill set he would be homeless in the gutter.

    2. Re:This is a bit absurd... by myrdos2 · · Score: 1

      My system slows down every time it beeps. I added a sound effect to let me know when a batch script completes:

      powershell -c (New-Object Media.SoundPlayer "%exBinDir%\finished.wav").PlaySync();

      It locks for about five seconds before finished.wav starts beeping.

    3. Re:This is a bit absurd... by Anonymous Coward · · Score: 0

      You're surprised when PlaySync does a SYNChronous load?

      Let me read the fucking manual to you, like this is Stack Overflow, idiot!

      The PlaySync method uses the current thread to play a .wav file, preventing the thread from handling other messages until the load is complete. You can use the LoadAsync or Load method to load the .wav file to memory in advance. After a .wav file is successfully loaded from a Stream or URL, future calls to playback methods for the SoundPlayer will not need to reload the .wav file until the path for the sound changes.

      Using the wrong method, complaining about the result, you're a piece of shit.

    4. Re:This is a bit absurd... by Jeremi · · Score: 1

      My gods, programmers have gotten lazy. What's next, extra CPU consumption for bold text? The system slowing down every time it beeps?

      Or, we could at least allow for the possibility that the behavior was unintentional. If you've never written a program that inadvertently spins a core rather than correctly blocking while waiting for the next event in the event loop, then feel free to cast the first stone, but I imagine most programmers have made that mistake.

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
  27. Re:Probably a minor oversight. Will likely be fixe by Anonymous Coward · · Score: 0

    It does seem true that software development practices "grow" to fit whatever amount of CPU resources are available.

    Somewhat. It's mainly out of some performance bugs being harder to notice on the powerful testing hardware. Not malice, just impatience and not testing on the lower levels of consumer hardware.

    As a prime example, one of the internal builds of Morrowind was absolutely beautiful, even by modern rendering standards. However, it could only run on Bethesda's development servers (or better hardware) and took a few DVDs to install. Many graphical aspects were traded down to make an XBox/PC dual release, but the result was still a good game and fit on a single CD with room to spare (the GotY version with Bloodmoon and Tribunal still fit on one CD). The biggest thing consoles have done for PC gaming is to keep the hardware requirements sane.

  28. don't use the 'web stack' for desktop applications by epyT-R · · Score: 5, Informative

    It duplicates functionality and kills performance

  29. Not a Microsoft Issue by nuckfuts · · Score: 4, Insightful
    Funny how the summary and the article both start by saying...

    Microsoft describes Visual Studio Code as a source code editor that's "optimized for building and debugging modern web and cloud applications.

    But then the article goes on to say...

    The underlying issue is with Chromium, which is a part of the Electron Shell (Visual Studio Code and others like Atom and Slack utilize this shell in their apps)"

    and then...

    Google Chrome product manager Paul Irish, posting to a thread on Hacker News, said, "Chrome is doing the full rendering lifecycle (style, paint, layers) every 16ms when it should be only doing that work at a 500ms interval. I'm confident that the engineers working on Chrome's style components can sort this out, but it'll take a little bit of work."

    1. Re:Not a Microsoft Issue by johannesg · · Score: 1

      Google Chrome product manager Paul Irish, posting to a thread on Hacker News, said, "Chrome is doing the full rendering lifecycle (style, paint, layers) every 16ms when it should be only doing that work at a 500ms interval. I'm confident that the engineers working on Chrome's style components can sort this out, but it'll take a little bit of work."

      Why on earth would anything with a simple static 2D interface need to repaint every single frame? Yes, we can have nice animations - but does it really also need to refresh when no actual animation is going on? What madness is this? Who on earth writes a 2D gui framework and decides to just repaint at 60Hz whether the application is idle or not?

      At any rate, this goes a long way to explaining where our computer power went. Apparently selectively refreshing the screen, and only doing so when necessary, are no longer a thing. Bloody hell, I have my own GUI framework that I carefully optimized not to do any unnecessary drawing because that tends to be expensive, and other people are doing _this_? Either I am mad, or they are.

      Oh, and since we are here. Last night I noticed Firefox occasionally moving text on an otherwise static screen. It looked very much like there were two rendering engines competing who was going to have the last word on positioning the text, with parts of sentences shifting back and forth by a single pixel every second. Madness, I say...

    2. Re:Not a Microsoft Issue by Anonymous Coward · · Score: 0

      As an aside, I find it "funny" how nobody accuses Google of a deliberate effort by Google to sabotage a Microsoft product, but everyone on Slashdot thinks Microsoft was deliberately sabotaging Chrome with the recent issue in OneDrive...

    3. Re:Not a Microsoft Issue by Anonymous Coward · · Score: 0

      Last night I noticed Firefox occasionally moving text on an otherwise static screen. It looked very much like there were two rendering engines competing who was going to have the last word on positioning the text, with parts of sentences shifting back and forth by a single pixel every second. Madness, I say...

      Subliminal Focus Grabbing.

    4. Re: Not a Microsoft Issue by Anonymous Coward · · Score: 0

      I don't know why you find it funny. We're pretty open about hating Microsoft here. We don't even like it when they do good things. I'm not even kidding. We pretty much fucking hate Microsoft. I'm am not sure why you'd be surprised, we told you this many times.

  30. Re:Probably a minor oversight. Will likely be fixe by DickBreath · · Score: 5, Funny

    Please do not knock Emacs.

    Emacs is very popular. Popularity seems to correlate highly with the set of users who once started up Emacs, were unable to figure out how to exit from Emacs, then had no choice but to write Emacs Lisp extensions to accomplish all other necessary tasks.

    I don't think VS Code can make that claim.

    --

    I'll see your senator, and I'll raise you two judges.
  31. Re:don't use the 'web stack' for desktop applicati by Anonymous Coward · · Score: 0

    How I wish I could mod you up!
    (full disclosure: I do web development as part of my profession)

  32. Keep it simple. by CptLoRes · · Score: 1

    You know back in the day this used to be a solved problem, using hardware cursor functionality. But today everything has at multiple layers of abstraction that is JIT compiled into some universal binaries running on an emulated machine in your browser framework that is sandboxes from your OS with nine circles of separation from your hardware . You know, all in the name of progress..

  33. Yet VSC is better than Eclipse, NetBeans, etc by Anonymous Coward · · Score: 2, Interesting

    I've been a web developer for many years. I don't particularly like the entire web stack. Yes, it's shitty in many ways.

    But here's the thing: somehow, Microsoft has managed to make an advanced text editor that's responsive, extensible, and enjoyable to use on all of the major platforms. And they've done it using some of those web technologies.

    Visual Studio Code is an absolute pleasure to work with compared to IDEs like Eclipse or NetBeans or Intellij. It feels much faster than them, even with this blinking cursor issue (which as a long time Visual Studio Code user I didn't even notice). It's easier to extend. The plugins that others have written are much better. It's a smaller initial download. It's easier to keep updated.

    Then there's a native text editor like Gedit. One look at Gedit's UI makes me want to vomit.

    Kate is perhaps the only native text editor that isn't a complete joke. But it's too tied to KDE to make it easily usable on non-Linux platforms.

    I'd love to use a native or pseudo-native (like Java-based) text editor that offered the benefits of Visual Studio Code. But I've yet to find one that comes anywhere close to comparing to Visual Studio Code.

    Rag on the technologies used to build Visual Studio Code all you want. All that I know is that it's a piece of software that works much better than all of its competitors.

    1. Re:Yet VSC is better than Eclipse, NetBeans, etc by Billly+Gates · · Score: 1

      Nah it's from Microsoft so it must suck! Enough said you heathen go use emacs like a good gnu like everyone else and gloat in your superiority of a better editor and wonder why anyone else hasn't come to your conclusions?

    2. Re:Yet VSC is better than Eclipse, NetBeans, etc by dmbasso · · Score: 1

      Of course, they should just change the User-Agent to "Microsoft Edge" and the CPU consumption will drop to 1%.

      --
      `echo $[0x853204FA81]|tr 0-9 ionbsdeaml`@gmail.com
    3. Re:Yet VSC is better than Eclipse, NetBeans, etc by Anonymous Coward · · Score: 0

      they've done it using some of those web technologies.

      Not directly. I used to work at Microsoft. The majority, if not all, of that 'website' was written in better languages and then compiled down to web languages.

  34. Re:Probably a minor oversight. Will likely be fixe by Anonymous Coward · · Score: 0

    What keeps PC gaming sane is that many gamers are using onboard video chipsets, integrated graphics. When you bring the hardware survey data to the graphics programmers and artists and show them how many current customers are using integrated intel video, the horror on their faces ...

    Let devs have new boxes every two or three years, but let them keep their old system(s) for testing. Old systems that have that video card left by that visiting Nvidia rep removed, and that extra bank of RAM removed as well.

  35. Re:Probably a minor oversight. Will likely be fixe by Anonymous Coward · · Score: 0

    This is what happens when people try to build entire fucking desktop applications in Javascript. Some people really need to get it through their thick skulls that the entire computer is not a web browser and, as well, the web browser is not the only purpose of a computer.

  36. Tried it. Doesn't check out. by Anonymous Coward · · Score: 0

    Tried to replicate the issue. VSC CPU was between 0.2% and 0.0%.

  37. The blinking cursor on CPU? Should be a GPU job. by Anonymous Coward · · Score: 0

    Why to use CPU for that? It should be something for the GPU.

  38. Think That's Something? by Anonymous Coward · · Score: 1

    Check out firefox... just navigate to the titlebar (top of the window) and click and hold the left mouse button. You don't even have to move the mouse. It consumes 39% of my Core i5 in Windows 10. I have often marvelled at this.

  39. The blinking cursor writes, by PPH · · Score: 1

    and having writ, blinks on.

    --
    Have gnu, will travel.
  40. Gloves off! by Kludge · · Score: 5, Interesting

    OK, buddy, vi vs. emacs flame wars were funny, and perhaps justifiable.
    But comparing VS to emacs?? No freaking way! Emacs totally kicks VS ass.
    And it never used 13% of my cpu to flash a cursor.

    1. Re:Gloves off! by bored · · Score: 1

      Well emacs has regularly consumed 100% of my CPU syntax highlighting. Which I always excused it of (its lisp what are you going to do (shrug)), but looking at those editor benchmarks I had no idea that vim and a bunch of other editors are actually worse.

      Wow, if your editor consumes more ram and is slower than emacs then you are _REALLY_ doing something wrong.

    2. Re:Gloves off! by rsilvergun · · Score: 1

      And it never used 13% of my cpu to flash a cursor.

      Don't worry, I'm sure EMACs has a mode for it (and VI can emulate that mode).

      --
      Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
    3. Re:Gloves off! by YoungManKlaus · · Score: 1

      > And it never used 13% of my cpu to flash a cursor.

      Go blame Google. It's a chromium bug.

  41. Way to go! by AndyKron · · Score: 1

    And they've been working on this for how many years?

  42. Re:Probably a minor oversight. Will likely be fixe by Billly+Gates · · Score: 1

    Well IE 6 uses only 32 megs of ram. MS should silence the critics here and use vbscript and jscript then for the internals. No critics here for such a move then.

  43. Re:Probably a minor oversight. Will likely be fixe by Billly+Gates · · Score: 1

    All the cool kids use node.js editors. Atom and brackets are no different in that regard as code. Can anyone verify if same bug appears?

  44. Re:Probably a minor oversight. Will likely be fixe by burhop · · Score: 1

    Please do not knock Emacs.

    Emacs is very popular. Popularity seems to correlate highly with the set of users who once started up Emacs, were unable to figure out how to exit from Emacs, then had no choice but to write Emacs Lisp extensions to accomplish all other necessary tasks.

    I've always wondered how Emacs became my favorite operating system.

  45. Cursorgate! by BrendaEM · · Score: 1

    Perhaps this will lead developers to spare our machine resources--probably not.

    --
    https://www.youtube.com/c/BrendaEM
  46. Only APPS can app apps! by Anonymous Coward · · Score: 0

    This is just Visual Studio for Apps asserting its appiness over LUDDITE software by taking CPU control away from the LUDDITE operating system! Only LUDDITES would hate this!

    Apps!

  47. Mining bitcoin . . . by Anonymous Coward · · Score: 0

    . . .probably . . .

  48. Re:Probably a minor oversight. Will likely be fixe by tobiasly · · Score: 1

    Microsoft has actually done a good job with Visual Studio Code. It's a lot better to use than, say, Atom or EMACS. It has some great plugins, they're easy to install, and overall it provides a good compromise between a plain text editor and a full-featured IDE.

    All joking aside, I will say that I quite agree with this statement. It's quickly becoming my go-to coding editor. Finally having a good experience that's the same on Linux and Windows is huge for me.

    I just hope that the Git visualization support (history, blame, diffs etc) gets better, either in the core product or via plugins. Nothing on Linux has come close to the speed, ease of use, and feature set of TortoiseGit for me. All the existing plugins seem to want to render the log history as a single list, as opposed to a graph tree showing merges etc.

  49. Terrible interview questions ... by drnb · · Score: 4, Insightful

    What is the Liskov substitution principle?

    That is a very poor question. It exhibits the common naive programming test that is more of a trivia test, or basically a programming test derived from some old college quiz. Better questions ask people to perform relevant tasks or to discuss relevant problems. For example rather than ask about "Liskov", ask about the concepts involved:

    Q. A Square class is derived from a Rectangle class. Function foo has a non-const parameter of type Rectangle. Function foo is called with using a variable of type Square. Is this safe, if not why?

    Note that in the discussion they may inadvertently discuss class invariants.

    You say that some programmers do not understand or lack certain tools. The same is true for managers, and your hypothetical questions suggest that you may be lacking the tools necessary to conduct technical interviews and evaluations.

  50. Why web apps tend to suck in general by istartedi · · Score: 1

    When there are so many layers between you and "the metal", it's just a matter of time before one of those layers creates a road block. You can get around these road blocks in at least two ways: 1. install native code and get to the metal, or 2. use less efficient techniques to get around the block.

    Taking route 1 means you can't claim "cross platform browser app" any more. Taking route 2 leads to slow code. It looks like MS chose route 2 and decided to use a frame-by-frame animation instead of using the obvious "timer and XOR" that's been used since the dark ages. I'm guessing that timers and/or XOR aren't available in whatever API was exposed by the browser environment.

    After that, it becomes less clear why it's so slow. Even though rendering a cursor frame-by-frame is still less efficient, it shouldn't be *that* inefficient. As others have pointed out, you have a dirty rectangle and an update 60 times per second. Maybe the underlying API is re-rendering the entire screen.

    And that's how you get to 13% CPU to blink a cursor, and a lot of other things. That's why web apps keep sucking. It's a problem that can, in theory, be solved; but it won't be solved because it's a lot of work across many different organizations, each with different objectives all trying to hit a moving target of changing architectures and standards.

    --
    For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
  51. Re:Probably a minor oversight. Will likely be fixe by neoRUR · · Score: 1

    That actually happened to me a long time ago. I was on a dumb terminal at a contractors site. I never used Emacs before and I needed to just write a few notes, I some how opened Emacs and then I couldn't figure out how to quit, save or get out... I ended up killing the process and opened vi instead.

    I did later learn Emacs and used it all the time.

  52. Re:don't use the 'web stack' for desktop applicati by djbckr · · Score: 3, Interesting

    I partially agree. But I have a situation where I need to make a moderately simple app that reads/writes local files and calls out to utility command-line tools, and I need it to be cross-platform.

    I've researched high and low for a system that doesn't require me to learn a friggin huge framework (QT?), in a language I don't care to use (C/C++)** or an unreliable end-user setup (Python UI or Java Swing)

    I just need simple and I need it to work. Yes, Electron is bloated, but it's simple (to build apps with), it works on all platforms, and it allows me to build an app in a few days rather than a few weeks. And the performance for what I'm doing is perfectly acceptable.

    ** I don't dislike those languages, they are just overkill to get something simple done

  53. Read the article! by Anonymous Coward · · Score: 0

    Okay, I've noticed that some people have read the article but does anybody think it's relevant that they are talking about vsc running on a mac?

    1. Re:Read the article! by Anonymous Coward · · Score: 0

      Replying to my own comment again. Sorry to say I didn't read the article past the mac bit to find out it was written on a cross platform framework. Maybe it works just as horribly on windoze!

      PS. the captchas for submitting these comments are really funny.

  54. Unable to reproduce by Anonymous Coward · · Score: 0

    OS: Ubuntu 17.04

    Ran the steps, in the foreground, watching the cursor blink, 0% CPU used, 0.00.5s CPU time. Of course, I didn't have fucking chrome debugger running against my editor at the same time. Seems like the author of the "bug" doesn't know how to eliminate variables from a performance test.

  55. Node is the culprit by Anonymous Coward · · Score: 0

    I love how this discussion has devolved in to war of words by elitist programmers.

    First, I just gave this a try and VS Code never exceeded 3% of CPU just sitting idle with the app in the foreground. I suspect if someone is seeing high CPU load on with the app just sitting there, it's attributeable to factors like either 3rd party plugins, or the app possibly doing some VCS checks in the background while idle (which it will do from time to time). Perhaps the user opened a rather large project and VS Code was indexing it in the background? Who knows. But I've never seen this type of behavior and I run VS Code thru it's paces every day.

  56. DOS Multitasking, DESQview and Tame by innocent_white_lamb · · Score: 1

    Everything old is new again. A lot of DOS programs had a problem when someone tried to multitask them under something like DESQview or DoubleDOS since they were written to be run on a single-tasking computer and they would go into a tight loop when waiting for input from the keyboard (or modem, or whatever):

    They used a tight getch() loop or something similar to keep re-reading the keyboard buffer until something showed up. And this would crank the CPU usage to 100%. Not a problem on a single-tasking DOS computer, but when you multitask it, issues obviously arise.

    Programs like Tame (and a few others) were invented to control the keyboard polling interval and keep these programs from eating the whole computer when they are running in a multitasking environment.

    --
    If you're a zombie and you know it, bite your friend!
  57. Re: Probably a minor oversight. Will likely be fix by p91paul · · Score: 1

    what about gitk?

  58. so how many threads was that blinking cursor using by Anonymous Coward · · Score: 0

    I wonder if perhaps the causality derived from the test is a little flawed. So if there are only 2 threads running then fine...one for IDE and one for the cursor...but I doubt that's the case. This is like saying that a car can't idle @ 13% of the redline...and if it does then it's flawed.

  59. Yes by rsilvergun · · Score: 1

    and after 20 years of outsourcing, H1-Bs and a complete lack of protectionism... I'll get them.

    --
    Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
  60. Re:don't use the 'web stack' for desktop applicati by Anonymous Coward · · Score: 1

    You're supposed to use your installer to create the environment you need. Python and Java can be installed locally to just your program, though I wouldn't recommend it as it'll make your download larger. People both love and hate that JVM feature.

    You could have used Lua. Or you could have wrote a Batch script and Bash script then told the user to click one and if it doesn't display Ok then click the other one. Or better yet, your installer only installs the Batch or Bash version depending on the operating system and the user gets a nice shortcut to the program.

    But in general I agree with you. If all the effort that has gone into the web instead when to a standardized application installation system, the computing world would be far ahead of where it is now and end users would have a superior UX.

  61. PAL vs NTSC by Anonymous Coward · · Score: 0

    The PAL extremists will never rest.
    Long live 60Hz.

  62. haha by Anonymous Coward · · Score: 0

    good ole m$ ...

  63. Many reasons why I don't use Aton.io based apps by Anonymous Coward · · Score: 0

    This and a resource whore. Is why I don't use Atom.io based applications.

  64. Google by Latent+Heat · · Score: 1

    Hey, our questions to be asked during an interview are proprietary information!

  65. X-15 pilot promoted to nuclear carrier captain by Latent+Heat · · Score: 1

    Milton Thompson's book on the X-15 rocketplane program spoke of one of his colleagues flying the X-15 and a Navy officer.

    The anecdote goes that after the X-15, the Navy interviewed him for serving as Executive Officer of a nuclear carrier. Why someone who was skilled at flying the hottest aircraft in the sky and in precision flying to collect aeronautical research data for the engineers, why that person should be promoted to second-in-command of a nuclear carrier is not clear, but the armed services are "up or out" in terms of career building and an officer does whatever the Navy tells them to.

    Said Navy officer was subjected to one of these condescending interviews. Instead of the Liskov substitution principle it was something along the lines of knowing what to do if 6 of the 8 reactors were to malfunction. His response was that he didn't know and when scolded about it (it may have even been Rickover himself doing this), he replied that he would rely on his "Chief" (as in a Chief Petty Officer, the high-ranking enlisted person in charge of the ships Engineering section). When pressed on this, his further response was that if the Chief of Engineering or his immediate subordinates didn't know what to do, the ship was in deeper trouble than he as Executive Officer could do anything about.

  66. Welcome to 2005 by Anonymous Coward · · Score: 0

    Intellisense in Visual Studio has been hogging CPU and memory for over a decade. It's simply the cost of doing business in Visual Studio and the primary reason why I mostly use a simple editor and command line builds for WIN32 application/library development these days.

  67. Bonus by Mats+Svensson · · Score: 1

    Blinking Cursor ...
    + scanning your drives for nude pix to post online, and vacation videos to insert commercials into.

  68. Use the builtin? by ebvwfbw · · Score: 1

    Why didn't they just use the cursor stuff built into the OS software? Blinking cursor is really old stuff. Used to be I think it was 20 lines of code for an Apple 1.

  69. Re:Probably a minor oversight. Will likely be fixe by Anonymous Coward · · Score: 0

    How quickly can I go from "never heard of your app" to "in your app, with credentials"? With web, that takes 30 seconds. Click a link, wait for ~1.5MB, SSO sign in, and you're ready to go.

  70. 165Hz display by Anonymous Coward · · Score: 0

    They have the galls to impose a 60fps limit! I'm going to code at 165Hz!

  71. Re:Probably a minor oversight. Will likely be fixe by YoungManKlaus · · Score: 1

    Riiight, because comparing "ed" to a full size IDE totally makes sense ... Not to mention, the issue discussed here is a Blink/Chromium issue and got nothing at all to do with VSC.