Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
M

Mike Winiberg

@Mike Winiberg
About
Posts
192
Topics
3
Shares
0
Groups
0
Followers
0
Following
0

Posts

Recent Best Controversial

  • Microsoft Loop
    M Mike Winiberg

    Indeed so - that was my point (I think!). OneNote could have become much more, but was effectively abandoned (probably for good reason, at least from the MS company culture viewpoint). If you have to start over with Loop, then that's fine for new teams etc, but for us oldies with years of project notes etc already, it makes more sense to move to something that allows us to retain/migrate our existing workflow etc. As almost always happens with MS (and indeed most large orgs) the attraction of the shiny and new is greater than the consideration for what has gone before and so long-term customers are, once again and at best, simply not considered.

    The Lounge sharepoint collaboration asp-net visual-studio com

  • Microsoft Loop
    M Mike Winiberg

    So, is it just me or does Microsoft Loop look like a gound up re-work of OneNote? Microsoft Loop: Collaborative App | Microsoft 365[^] Many of the core facilities of Loop were already available (admittedly by somewhat dubious pathways) in OneNote (real-time collaboration, embedding of documents and web pages, live sketching/writing sharing etc) albeit in a much 'clunkier' UI. However, with a little investment, OneNote could IMHO have become a fantastic real-time collaboration tool without the need to be permanently on-line (something that is only possible on a small percentage of the world's surface despite what MS, Governemnts, telcos etc tell you) -improved handwriting tools and better recognition, plus the ability to properly embed/edit PDFs would have got it very close to the Loop feature-set, adding a code window linked to git, VS (locally hosted or on-line) or other dev environments would have got it the rest of the way. I did try to log in to the discussion forum provided (which had no comments when I tried), but I got an 'unknown error', all of which rather sums up the whole mess of Teams/OneNote/Loop/Sharepoint etc - tools which all seem to provide lots of advantages if you can get them to work, but only seem to work in certain very tightly specified environments that most smaller orgs etc do not, and cannot, run cost-effectively. I have relied on OneNote almost since it first came out (Desktop not APP version) but recently, after extensive research for something with a better feature set re handwriting/PDFs etc) have switched to Nebo Nebo[^] , which does everything and more that OneNote did, across multiple platforms, is still being actively developed, and still allows for off-line working and later sync. THe only drawback for me really is the 'app'-like UI, but I can live with that... I'd be interested in hearing what you think!

    The Lounge sharepoint collaboration asp-net visual-studio com

  • C++ has lost its way?
    M Mike Winiberg

    Quite by chance this passed across my feed just after my reply above: https://medium.com/@CognitiveProgrammer/modern-c-programming-things-that-shouldnt-be-used-anymore-f7f046f09c04[^] Reinforces both our points I feel! :-D

    The Lounge c++ com business performance question

  • C++ has lost its way?
    M Mike Winiberg

    I'm not sure I entirely agree with that view 8) but its utility and closeness to the metal gave it wings, especially in the early days of desktop computing when efficiency was very important, and once such systems become ubiquitous then one tends to get stuck with them. See COBOL and indeed FORTRAN (never mind MS Word which is as unlike a word processor as it is possible to get whilst still handling text) for further examples...

    The Lounge c++ com business performance question

  • C++ has lost its way?
    M Mike Winiberg

    A few vaguely related further comments: TL;DR - just my musings 8) "If you don't use it you don't pay for it" is - IMHO - a good philosophy, and why C++ remains such a good dev environment for cutting edge stuff. It is indeed perfectly possible to use C++ as an 'improved' C and only adopt specific features - but surely in that case you might as well go for a dev environment that is more closely matched to the domain you are working in (if one exists of course)? Attempting to stick with C++ when it isn't a good fit can lead to the kind of thing you see today with web app dev: I regularly see devs posting about the 'stack' they use, sometimes comprising 20 or more different frameworks all bolted together using another framework, simply to create simple web pages that could be easily produced with just HTML and CSS (itself a bit of a dog's breakfast IMHO!). --- Never has KISS been more appropriate than in some of today's dev processes. The interdependencies of such 'stacks' make the whole thing so fragile that one defect or change in the hosting environment can bring the whole thing tumbling down. Pile on the inappropriate adoption of 'Agile' processes and TDD and you end up with the kind of mess you see in the UK on so many GOV.UK web pages: The pages pass all their tests and hence are deemed 'correct' and yet don't perform as the users have a right to expect: I have one classic example that I have reported repeatedly but which has still not been fixed after many years: paying your vehicle excise duty: You are sent a document with a 16 digit number in the same format as a credit card: 4 groups of 4 digits. When you type this into the online form, if you include the spaces and don't notice that the input box only accepts 16 characters (ie you lose the last 3 if you include the spaces), then complete the rest of the page, when you hit submit the page fails but the error message is displayed next to the box itself which by now is off the top of the screen. You have to scroll back up to see it! There is no warning in advance that the spaces must be omitted. Either accepting and ignoring or silently dropping the spaces is a very simple thing to implement but hasn't been done - a typical noob web dev mistake. It gets better though: a bit later you have to enter your card details, which comprise a 16 digit number in four groups of 4. On this page you can enter this with or without spaces and it is accepted quite happily. By chance I met a dev working for GOV.UK on this stuff: he couldn't see the problem, the

    The Lounge c++ com business performance question

  • C++ has lost its way?
    M Mike Winiberg

    "I don't see that article supporting your assertion..." Well, YMMV indeed, but it demonstrates quite nicely, I think, how - in an attempt to maintain backward compatability - the C++ environment has required ever more esoteric procedures to keep it usable both compiling the code and learning the language and its libraries etc. That one should need to have precompiled headers, write add-ons (which even google had to do) to make compilation times acceptable etc speaks very well to the increasing complexity of the whole ecosystem, in my view. Don't get me wrong, I'm not saying it isn't a good powerful dev environment - my team developed a whole airline/shipping/freight system in C++, and financial applications using parallel C++ for market-maker using a Transputer farm. But I reached a point where I realised it was taking far longer (for us anyway) to learn how to make good use of the ever increasing new features than it was to solve the problems we were facing. Having made extensive use of one feature (manipulators on streams) to control printing, only to have that broken - and hence needing a rewrite - in version 2, followed by a partial regression in version 3 (another rewrite!), then complete collapse of our system after a third-party database library we were using was updated and broke references (implementing them by copying FFS) we came to the conclusion we were spending more time fighting the language environment than writing software. Switched to Java, then later to Python, and heve not used C++ in a meaningful manner since. If there is one thing I have learnt in my altogether too-long time in software dev, it is that - with a few domain specific exceptions - the language you develop with is largely irrelevant, so the less it gets in the way of the task you want to accomplish, the more productive you can be.

    The Lounge c++ com business performance question

  • C++ has lost its way?
    M Mike Winiberg

    As an incredibly enthusiastic user of C++ from its very first release, I've expressed this (personal) opinion a number of times over recent years: C++ has lost its way - it now takes more time, learning, effort and skill to make good, efficient use of C++ than it takes to solve the problems one is using it for. A caveat: I am thinking specifically of business tasks and related domains - I accept that for the most cutting edge stuff near to the metal it still offers the one of the best overall effort/performance ratios. In part, the effort to maintain backwards compatability at almost any cost (despite the fiasco of i(o)streams and manipulators between versions 1,2 and 3) whilst adding ever more features adds huge amounts of technical debt that then has to be fought against in other ways. This article I think demonstrates this nicely Speeding Up C++ Build Times | Figma Blog[^] Discuss! (ducks for cover...)

    The Lounge c++ com business performance question

  • I thought it was a cardinal sin to force a server to reboot...?
    M Mike Winiberg

    On our older (2012 etc) servers, the performance degrades as updates build up until, in the end, you are forced to reboot to keep using the machines (DC, SQL Server etc). I suspect this is a deliberate strategy to force you to update. Only our desktop Windows machines reboot without warning. My win11 desktop restarted overnight last night, from within hibernation FFS! (Not the first time either...)

    The Lounge sysadmin question

  • Your Most Absurd Pet Peeves
    M Mike Winiberg

    I share most of the ones mentioned later in this thread, but one not mentioned yet that really gets my goat: When somebody of note dies (eg Nelson Mandela) the media (esp. rolling news TV) will not only ignore anything else happening around the world, no matter how important (esp. to those involved), but will spend all its time finding people to interview to ask either for their reminiscences about the person concerned - whether they knew them or not! - or their thoughts about what other people who might have known that person are feeling about other people who might have known that person are feeling. (Recursion: see Recursion.) Surprisingly, this didn't happen as much as I expected when Prince Philip and The Queen died, possibly because there is both more respect for them and there was also plenty of other stuff associated with their deaths to cover. For Mandela though, we ended up with the rediculous situation of someone who had never met or known him asking another perosn who might just possibly have glanced at a photo of Mandela on a newspaper page once many years ago (perhaps whilst looking over the shoulder of a commuter on the Tube) being asked what Mandela's family were feeling at the moment etc. (Repeat endlessly until something more newsworthy comes along, like the presenter dropping their pencil etc.) This carrries on still in a minor way, with long, insensitive interviews with people who have suffered some tradegy, not with the aim of improving the victim's lot, but because it makes for 'good' emotional TV and hence draws in the rubber-neckers to increase viewing figures. (Think of the coverage of that poor woman with mental health issues who drowned recently.) ... AND another thing! This trope (adopted by just about every media co now) of sending someone to stand outside a building (often in the dark/and or rain etc) with a TV crew to tell you something that the studio presenter could easily report, or which that same reporter could have said in the studio. I'm not talking about on-the-ground live-coverage/breaking news stuff here (eg reports from Kyiv etc), but when there is - for example - a ministerial or business statement. Some poor reporter and team is sent to relate the contents from outside a closed office building, or No 10 with only Larry the Cat and the policeman for company. Such a waste of time and money. --- Sorry, I'll get me coat...

    The Lounge question discussion learning

  • Connector standard
    M Mike Winiberg

    in answer to your last para: YES!

    The Lounge question css hardware announcement

  • Connector standard
    M Mike Winiberg

    Sorry to be negative, but whilst there are design standards for such connectors (indeed often called 'headers' when on devices) there are so many 'standards' for so many different kinds of connectors used in so many situations (eg soldered on a PCB, in-line in a cable, surface mount) not to mention for different purposes (eg RS232 - lots of different ways of wiring these even with a standard to follow), SCSI, USB (four 'standards for this in current use and rising), power (uncounted numbers of DC power plug connectors), video monitors (at least 8 that I know of) that all you can do is try to establish which ones you are connecting to and match that type. Even then, some connectors are made for a particular manufacturer for a specialised purpose and will only connect to their 'headers' etc (eg early Apple iPhone) Physical interconnections are still, after all these years, very much not standardised except for a small range of consumer products, and even these (eg USB - C) can vary depending on what uses they are intended for... Sorry again!

    The Lounge question css hardware announcement

  • I'm pretty sure it's not because I'm getting old ...
    M Mike Winiberg

    That sounds very sensible. I went to an job interview once at a big gov. - supposedly 'agile' - dev place. I was given a pair programming task to write a test for a function, using tools I was already very familiar with. As soon as I sat at the keyboard I could see a glaring error in the function I was supposedly testing (an uninitialised variable in a language that enforces initialisation), so not only would the test fail, the code wouldn't even compile. My pair stopped me correcting that error until I had written a test that showed the function failing - which of course couldn't be done because the code wouldn't compile. I wasn't offered the job, as I wasn't a good fit for their culture... 8)

    The Lounge com beta-testing lounge

  • I'm pretty sure it's not because I'm getting old ...
    M Mike Winiberg

    THis is, of course, the real benefit of pair programming. My (admittedly limited) experience of how pair programming works in large orgs is that it is competition, not collaboration. Which makes it less than helpful.

    The Lounge com beta-testing lounge

  • The Bing, Google, etc.
    M Mike Winiberg

    Yes. That would be good - I was trying to say that the serendipty often encountered in search in the past has been removed. you can never tell when that will actually lead you to a better result!

    The Lounge tutorial

  • The Bing, Google, etc.
    M Mike Winiberg

    I find overall that Google still (just) tends to return the most comprehensive range of results but that is less so than it was. It can often take scrolling through at least one page full of only marginally related adverts (sorry, 'sponsored results') to find the nuggets. It does increasingly depend on how you ask the question too. These days, even if you insist that the results must contain certain words in order to narrow down to a specific result, Google in particular will return many results that do not contain that word, possibly by using similar meanings or spellings? Search used to be very 'serendipity' driven (can't think of a suitable word here), whereby you might often discover something different about a subject because the hits were somewhat random. Nowadays the engines are so focussed on pushing results based on what it is the engine thinks you are looking for (rather than what you are actually looking for) that you often end up with pages of irrelevant answers that don't contain known results you previously found. This is the same 'feature' that causes you to see endless adverts for washing machines for weeks after you have bought one on-line - how many does the AI think one person needs! Woe betide you search for something for a friend that you have no interest in - for example I often buy historical ebooks for my wife through my account - guess what fills my feeds for days afterwards! It's hard to express this clearly, but I think in an attempt to return more closely focussed results, search has gradually become less useful because the engine tries to eliminate things that it thinks are not relevant to the query you have made, and yet - for the more obscure subjects - those results are often the ones that lead you to an answer.

    The Lounge tutorial

  • Looking for new keyboard
    M Mike Winiberg

    When my various Logitech wireless keyboard/mouse sets became unreliable, I tried a Logitech G413 (clicky gaming keyboard) but it has a wired connector with a cable thick and stiff enough to tow a truck with which meant things falling off the desk every time you moved it etc. I've now switched to a G613 (also clicky) which has some programmable function keys on the left (like the original IBM function keys back before most PC users today were born, and which I much prefer to having them out of reach on the top of the keyboard). So far it has been extremely reliable and batteries last for ages. YMMV of course!

    The Lounge question

  • Looking for a Crystal Reports alternative...
    M Mike Winiberg

    Some years since I used it and I haven't kept up to date as the project was pulled, but I used Jasper Reports in the past with some success. Not sure if it fits what you want but it runs on its own server (so can be cloud hosted) and doesn't tie itself to any particular back-end. Just a thought!

    The Lounge javascript cloud csharp linq com

  • a generic question about database table
    M Mike Winiberg

    Although it used SQL as the backend, I remember a Customer Relationship Management system called Maximiser that took a similar approach. There were, ISTR just two tables, one to hold all the relatively constant client data itself and one to hold the collection of notes linked to that. In the Maximiser app there were complex joins on one table producing 'subtables' that held various views on the data. Some columns contained numbers that indicated what other columns actually held! I was given the job of moving all the data held in this system to another SQL based program. It took ages (in the absence of any database schema documentation) to unravel the various actual combinations of joins required to get what we wanted. Here's just one query to extract a little of the info: All the tables named as a, b, c, d etc duplicate joins used in 'built-in' queries on the maximiser database. I thought you might find an example of the stuff I had to build mildly amusing 8)

    -- Build the View of the Maximiser data that shows what we want and store it

    SELECT
    CASE
    WHEN c.Record_Type = 1 THEN c.Name
    WHEN c.Record_Type = 31 THEN d.Name + ' - ' + c.First_Name + ' ' + c.Name
    WHEN c.Record_Type = 2 AND len(c.Firm) > 0 THEN c.Firm
    WHEN c.Record_Type = 2 AND len(c.Firm) < 1 THEN c.First_Name + ' ' + c.Name
    WHEN c.Record_Type = 32 THEN
    (
    CASE
    WHEN len(d.Firm) > 0 THEN d.Firm + ' - ' + c.First_Name + ' ' + c.Name
    WHEN len(d.Firm) < 1 THEN d.First_Name + ' ' + d.Name + ' - ' + c.First_Name + ' ' + c.Name
    END
    )
    ELSE c.Name
    END AS Company,
    CASE
    WHEN c.Address_Id > 0 AND c.Record_Type IN (1, 31) THEN e.Address_Line_1
    WHEN c.Address_Id < 1 AND c.Record_Type = 31 THEN g.Address_Line_1
    WHEN c.Address_Id > 0 AND c.Record_Type IN (2, 32) THEN f.Address_Line_1
    WHEN c.Address_Id < 1 AND c.Record_Type = 32 THEN g.Address_Line_1
    ELSE c.Address_Line_1
    END AS Address_1,
    CASE
    WHEN c.Address_Id > 0 AND c.Record_Type IN (1, 31) THEN e.Address_Line_2
    WHEN c.Address_Id < 1 AND c.Record_Type = 31 THEN g.Address_Line_2
    WHEN c.Address_Id > 0 AND c.Record_Type IN (2, 32) THEN f.Address_Line_2
    WHEN c.Address_Id < 1 AND c.Record_Type = 32 THEN g.Address_Line_2
    ELSE c.Address_Line_2
    END AS Address_2,
    CASE
    WHEN c.Address_Id > 0 AND c.Record_Type IN (1, 31) THEN e.City
    WHEN c.Address_Id < 1 AND c.Record_Type = 31 THEN g.City
    WHEN c.Address_Id > 0 AND c.Record_Type IN (2, 32) THEN f.City
    WHEN c.Address_Id < 1 AND c.Record_Type = 32 THEN g.City
    ELSE c.City
    END AS C

    The Lounge question database

  • Back to the Future - MS Edition
    M Mike Winiberg

    What gets me about a lot of changes (especially to UI) with MS is that they never actually seem to research the effects of the changes on actual, real-world, not in the MS eco-system users, so things that make no sense get through, only to be retracted or tweaked later when real users start bitching! Like so many dev firms, its more important to have something new and shiny than to provide something actually useful. The latest Windows 11 upgrade has, for example, severely impacted my 4K laptop usability: Until now, if using in laptop mode (ie with keyboard and mouse) all file search menus were like my desktop (also 4K Win 11) with nice compact lists of files, easy to scan and select from with the mouse. Now, because my laptop CAN be folded into a tablet (which used to switch tablet mode on automatically) it is now in tablet mode permanently, so file search lists are widely spaced for better usability with touch and the option to use 'desktop' mode has been removed. So despite having 4K desktop and 4K laptop, the usability of the laptop has been reduced by the removal of a very useful and long-lived feature for no apparent reason. This is a minor thing but reflects the whole MS culture around UI. Think back to the win8 debacle, when a whole new UI was introduced but with absolutely, positively no on-screen help or prompts as to how to drive it. Turn on the machine, you are faced with maybe an icon to launch something, no indication or guides as to the touch or mouse gestures needed to interact with the machine and - if you had a keyboard attached - nothing about the UI in the F1 help either - which in any case didn't work at all if you weren't displaying the desktop rather than the (default) front touch menu. Another major UI failing is the introduction of the 'button' bars across the top of Office applications etc. Just as the world was adopting ever wider ie landscape screens, the apps for working on documents (the vast majority of which are portrait) removed large vertical spaces from the screen for their 'menus' making viewing significant portions of the thing you are working on much harder. Likewise the recent decision by MS to stop you from moving the taskbar to the side of the screen to give you more vertical working area - why? Who's work is made easier by doing that? Sorry, rant over, but this kind of stupidity really boils my piss!

    The Lounge performance

  • An eye opener for all you workaholics out there...
    M Mike Winiberg

    Hmm, Done both of those! 8) Worst for me was - on a production system - deleting an 'old' copy of a database from the backup filestore during a very busy morning. You guessed it - not the 'old' copy at all! This was all long before SQL (or even Linux) was a thing on PCs. Had to restore from the overnight tape backup (we did have backups, and they were regularly tested, fortunately) and then get the reservation staff to go through all the paper printouts of that day's bookings to recover the mornings transactions, whilst suspending new ones to guard against double bookings. (Fortunately I also produced a paper copy of every transaction as - back in the day - neither the power nor tape backups were 100% reliable). I was not Mr popular that day, I can tell you! I learnt my lesson though and added an hourly local backup to a .zip file of transaction data just in case. That saved my bacon a few times too!

    The Lounge javascript cloud csharp linq com
  • Login

  • Don't have an account? Register

  • Login or register to search.
  • First post
    Last post
0
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups