Posts

Qt auto connecting widget events

 I had no idea this was a thing until I couldn't figure out how a slot was being fired. Qt will auto-connect event handlers with the right name. This applies to dialogs or widgets using a .ui file from QT Designer, and maybe they have to use multiple inheritance of the UI? If the there's a widget named okButton and a slot with a name void on_okButton_clicked(); Qt moc stuff will auto-connect the clicked signal to that slot. Hopefully I've got enough of that right that you can recognize it when you see it. Definitely had me stumped for a little bit!

All Things Open trip report

Image
I attended All Things Open 2023 this year, and would recommend it to anyone who touches open source software and wants to know more. It's held in Raleigh NC, near my workplace at Kitware in Carrboro, NC, so I can drive over each morning and park for $10, making it easy to attend. I wanted to share what stood out for me: Github Copilot I hadn't seen a good demo of what Copilot could do , and I was impressed. I still haven't tried it myself, but I will in the near future. There was this interesting cycle of development that you could do -  Start writing a function, and have it suggestion completions Write a comment that explains the function, and have it write the function for you If it doesn't seem right, have it generate multiple versions of that function Ask it to evaluate the function it just generated for correctness and possible bugs Ask it to explain the function line-by-line Besides that, it can also comment code, or write unit tests for code. Those seem super-u

Doxygen warning: Internal inconsistency: member MyEnunVal does not belong to any container!

Found an weird Doxygen-ism today. Related to a doxygen list post , I found that if I had an `enum class` inside a namespace that was undocumented, I got this warning: Generating XML o/home/aron.helser/projects/cmb/smtk/src/smtk/io/mesh/MeshIO.h:31: warning: Internal inconsistency: member EntireResource does not belong to any container! The code that generated this error is from smtk . The outer namespaces are already documented. namespace smtk { namespace io { /// Mesh IO <<< adding this documentation fixed the warning. namespace mesh { /// Mesh subset types enum class Subset : unsigned int {   EntireResource,   OnlyDomain,   OnlyDirichlet,   OnlyNeumann, };   Hope that helps another confused Doxygen user.

npm, I'm not ready for a commitment

Hi aron.helser! A new version of the package react-tooltip (3.4.3) was published at 2018-04-11T15:16:48.128Z from . The shasum of this package was 449531f1758487c5fbb2abf812fd8b 7a89a506cf. If you have questions or security concerns, you can reply to this message or email  support@npmjs.com . npm loves you.

Web tools: semantic-release and npm organizations

I like continuous-integration,  Travis  and semantic-release . They make new code available immediately, after automated testing. I'm working on VeraInView , and I hit a snag I wanted to note. Normally, if you set up Travis and end with 'npm run semantic-release', it will publish your new module to NPM. However, with this project I got a 'forbidden' error returned from NPM. I am using an Org  for this project, so its package name is @doe-casl/verain-view. That namespace means that the package is by default private, and as a result 'npm publish' defaults to private - which requires a paid npm account. The solution is to publish your package manually the first time: npm publish --access public --tag 1.0.0 I left off the --tag argument, and ended up with the first version being '0.0.0-semantic-release', which is why I added it above. Hope that helps!

Followup: Ubuntu persistent USB console boot, or why won't my car read this USB stick?

I finished my project using Ubuntu, and went to recycle one of those 32Gb USB stick for playing music in my car. The 2011 Honda Accord and 2014 Honda Odyssey both said nope "device incompatible" or "device unreadable" or something similar. Reformatting didn't help. I discovered that the live-USB stick formatting program I used had increased the default offset of the partition from 1K to 4K, I think. I actually had to use " diskpart " to delete the partition and create a new one to reset the offset to the default value. I didn't see how to do that in Disk Manager's GUI. Now I have my 32 Gb of music.

Review: Javascript, The Good Parts, by Douglas Crockford

I'm convinced  " JavaScript, The Good Parts " is one of the best JavaScript books for JavaScript doubters, especially those coming from a traditional object-oriented language like me. It really addresses whether JavaScript is just a mess (it definitely has messy parts) or whether there is something good in there. I'm convinced that by avoiding some problematic parts of the language, there is a very useful, functional language core that can express some interesting use-patterns. One of the cool concepts emphasized is that JavaScript has object-inheritance, not class-inheritance. There are no classes. Instead, you can inherit from an object. Something that looks like a class is actually just an object that you essentially make copies of and use in a consistent way. One of the implications is there are mixin/inheritance patterns that can't be expressed in Java/C++ that you can do in JavaScript. I haven't gotten my head around when they might be the best way t