509 karma · joined October 27, 2015
The C standard says: When integers are divided, the result of the / operator is the algebraic quotient with any fractional part discarded (This is often called ‘‘truncation toward zero’’).
So it should be 0 (as per C standard, not sure what C++ standard says)
This returns -1 for x = INT_MIN and y = INT_MAX were the answer should be 0 (for an example). so not a correct solution
int mid(int x, int y) {
return (x/2 + y/2) + (1 & x & y);
}
would be a more readable solutionedit: Actually, this fails on mid(INT_MIN, INT_MAX) and possibly other mixed sign values (returns: -1, expected: 0 (or -1 is okay?), where the precise answer is -0.5)
more edit: The C standard says: When integers are divided, the result of the / operator is the algebraic quotient with any fractional part discarded (This is often called ‘‘truncation toward zero’’).
So -1/2 should be 0.
> https://download-mirror.savannah.gnu.org/releases/pgubook/Pr...
There is an updated version of the book from the author: "Programming Under the Hood" or "Learn to Program with Assembly". See[0]
And some agencies may be more interested in these exclusion databases. So I don't think there is any way to get out of this maze. When you sign up to exclude from a list, you get included in many other.
[0] https://mail.gnome.org/archives/gtk-devel-list/2019-February...
A good compiler (eg: gcc) will warn if any token is interpreted as a trigraph
Edit: digraph works a bit differently [0]
Is that the case? Reading the updated standard draft[0] they also included strdup and strndup. May be they rejected first, then chose to add later.
[0] http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2385.pdf
That's not how [LA]GPL works. You are free to fork, and not share the changes. The modified source code can be provided only to the people whom you gave the binary (Edit: AGPL has bit more terms, as said in comment below), and you can make it private to the rest of the world (though you can't add additional restrictions).
As Mattermost is dual licensed under AGPL, anyone who uses it under the terms of AGPL can live safe as long as they obey AGPL.
Software pieces using GPL licenses can't add additional restrictions to the software, but of course authors are free to dual license under different terms.
Say for example some one can specify the following for their project: "We provides the project under the terms of MIT for you to modify and run for your own purposes." This might look a harmless statement, but it could mean something very different and may be intentionally written, that essentially makes it non-free. GPL doesn't allow such additional clauses.
Disclosure: IANAL. So I don't know how/if it works in court
Mattermost Licensing
SOFTWARE LICENSING
You are licensed to use compiled versions of the Mattermost platform produced by Mattermost, Inc. under an MIT LICENSE
- See MIT-COMPILED-LICENSE.md included in compiled versions for details
You may be licensed to use source code to create compiled versions not produced by Mattermost, Inc. in one of two ways:
1. Under the Free Software Foundation’s GNU AGPL v.3.0, subject to the exceptions outlined in this policy; or
2. Under a commercial license available from Mattermost, Inc. by contacting commercial@mattermost.com
You are licensed to use the source code in Admin Tools and Configuration Files (templates/, config/default.json, model/, plugin/ and all subdirectories thereof) under the Apache License v2.0.
So that means, only the binary provided by Mattermost is MIT, not its source code, the usage of 'MIT' in their website sounds deceiving.
[0] https://github.com/mattermost/mattermost-server/blob/master/...
Well, then a better choice would be "I can't know."
Say for example, in question 5, the statement "return i++ + ++i;" is undefined, because the value of i is read and modified twice in a single sequence point (and of course, the order of addition is unspecified), which is not allowed in C. So the answer is "Undefined." (The explanation given in the page not accurate enough in terms of C)
And for question 1, the code is valid, but the result is not strictly defined. It depends on the implementation. So the answer is "Implementation defined."
The usage of "main()" hurts me, the strictly conforming way is to write it as "int main(void)" (or similar)
I feel like the questionnaire piss off people who really knows C.
Really? the feeling of being secure may come first. Think of how much modems/routers/phones or any other embedded device comes with obsolete software pieces with lots of security bugs. The non-free methodology of software development, I feel, is actually killing security, and making everybody more vulnerable.
Most firms don't like giving the source code of the devices away. I understand that they have their own reasons for that (whether it is right is another thing). But at least, there should be an official way to unlock those devices and run custom software pieces (which of course, voids warranty).
These days more people are moving to "Open Source," but not "Free Software." See how Linux & busybox essentially making any hardware non-free. Hope people understand the difference and help make the world better.
Well, using paper costs more water than using water itself. Also, the ecological problems of using paper is far worse than using water alone[0][1].
[0] https://en.wikipedia.org/wiki/Environmental_impact_of_paper
[1] https://en.wikipedia.org/wiki/Toilet_paper#Environmental_con...
[0] http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2346.pdf
I myself uses HTTPS mirror provided by Amazon aws (https://cdn-aws.deb.debian.org/). I do so because My ISP sometimes forward to it's login page when I browse HTTP URLs. Also, it does sometime include Ads (Yeah, it's really bad, but it does remind me that I'm being watched).
If you are not aware, recently (since GLib 2.44), the boilerplate code required in C is a lot less than it was required before. Say for example see app.c and app.h files at https://gitlab.gnome.org/GNOME/gtk/tree/master/examples/appl...
For commandline applications all you need is to develop for GNU/Linux. It should work pretty fine on Librem 5 too. If you want to develop GUI applications see libhandy[0], a GTK+ widget library developed by Purism for Librem 5.
If you need to, you can get motivations from https://gitlab.gnome.org/Teams/Design/app-mockups and HIG guide for GNOME is available at https://developer.gnome.org/hig/stable/
Yeah, and the important part is that migrating from RHEL 7 with KDE to RHEL 8 is not supported: https://access.redhat.com/documentation/en-us/red_hat_enterp...
For those that matters, MongoDB is not included because it uses Server Side Public License: https://access.redhat.com/documentation/en-us/red_hat_enterp...
I consider the following as possible reasons:
1. GTK+ is completely (GNOME) community owned (QT is a company owned, which companies like to avoid)
2. QT is LGPLv3+/GPLv3+. This, I assume, is to encourage buying commercial license than promoting free software. GTK+ is LGPLv2.1+, a lot of individual/small team developers prefer [L]GPLv2 over [LA]GPLv3.
3. Accessibility is pretty bad in GNU/Linux in general. But if there is one, the only choice is AT-SPI[0]. It's a GNOME project. I think KDE is a bit behind (I'm not sure though).
4. GNOME, GTK+ are GNU projects (Or many people prefer GNOME because it's a GNU project). I have seen many people in our Free Software User Group using GNOME just because of this.
> Gnome is approaching a crisis point, stripping away features as the debt comes due for bad design decisions made
We have seen a lot of software pieces whose development stalls, just because the code complexity increases way beyond some limit, or the main developer quits. Many (vocal) users prefer well configurable software pieces - but it comes with a high price. Many implement every possible feature to look the application c00l. But eventually as we gain experience, we may eventually abandon the project just because it's bloated (code wise), or even re-write it with less features, so that the code is more maintainable. If we look the code of many abandoned projects, we can see how bloated the code is, with many hacks, and bad designs.
I think GNOME is in the path of porting their applications to maintainable pieces, and eventually adding features as the code gets better.
[0] https://en.wikipedia.org/wiki/Assistive_Technology_Service_P...
Is it really right? In C, isn't it considered bad to cast malloc result as it masks some mistakes? Also, the code doesn't check for NULL for the malloc result.
Now run emacs:
~/web$ emacs --batch -q -l src/htmlize.el\
-l src/my-web.el -f org-publish-all
See https://gitlab.com/sadiq/sadiq.gitlab.io/blob/master/.gitlab...You can simply download/clone the complete repo[1] and run the above command from its root directory.
[0] https://github.com/hniksic/emacs-htmlize/blob/master/htmlize...