Nice thing about Python is that you can mix in C or C++ :
https://docs.python.org/2/extending/extending.html
But if you want to do non Pypy projects. But Pypy is catching up fast.
Heh, the boost folks have complained heavily that Microsoft's preprocessor is absolute shit, and because Microsoft writes the headers to their libraries with that preprocessor in mind, it has a negative impact on everyone else's efforts to build a decent compiler (in particular, LLVM) that uses the right way to preprocess source files for C/C++.
All of this said, they do some amazing, sick, and incredible stuff with preprocessing in this library.
Around like 139, DOIT(); DOIT(); DOIT(); and so on.
Reminds me of Andy Hertzfeld's story [http://tinyurl.com/ny8xmux] about how their prototype confirmation dialogs originally had "Do It" and "Cancel" instead of "OK" and "Cancel." "Do It" in a sans-serif font with only a tiny space between the words looked a lot like "Dolt" which is what the testers thought the computer was calling them.
I have been meaning to find another project to work on with Python and Boost:
http://www.boost.org/doc/libs/1_57_0/libs/python/doc/
The last bit of code I did was to wrapper this fun backup tool:
With a Python web interface. It was a semi-functional tool using Boost, but it looks like Boost has stalled. I had some issues with some of the Boost implementation. I can't of course remember what exactly, but we quit using that backup system shortly after that. A pity as it was quite a good backup!
Around like 139, DOIT(); DOIT(); DOIT(); and so on.
Heh, reminds me of an open-source Perl script that I made a few changes to, in a prior decade. Every 80 lines or so, you would see:
goto dengo;
http://www.wired.com/2014/12/obama-becomes-first-president-write-computer-program/
We accept you, one of us! Gobble Gobble! One of us!
I found the code:
if ( (year >= 2008) && (year <= 2015)) {
hide("~/real_birth_certificate.pdf");
publish("~/forged_birth_certificate.pdf");
system("rm -fr /usr/share/doc/united_states_constitution.txt");
}
2014-12-10 14:31 from IGnatius T Foobar @uncnsrdI found the code:
if ( (year >= 2008) && (year <= 2015)) {
hide("~/real_birth_certificate.pdf");
publish("~/forged_birth_certificate.pdf");
system("rm -fr /usr/share/doc/united_states_constitution.txt");
}
Best I've seen in YEARS!
Too bad that those who need to learn the lesson you just taught are also those who are least likely to understand what you wrote, and even if they did, are absolutely the least likely to give a rat's ass.
Mon Dec 08 2014 05:14:19 AM EST from fleeb @ Uncensored
Did you join boost's mailing list to work through why it might have stalled?
No, but I should have. Just lost interest after the last customer quit using it.
I've never used any of those as variables in my code.
I have, however, used this:
HANDLE messiah = 0;
Maybe one or two of you guys have dealt with Mercurial before, and can laugh at me.
I have a rather poor background with regards to source control, in all due fairness. My first exposure to source control involved the fucking hell that Source Safe from Microsoft provides as a kind of affront to source control, so I tend to look at source control from those fractured lenses. It's terrible, I know it, but that's the shitty foundation of learning I have to build upon.
Later, I became at least somewhat familiar with subversion. It has a relatively familiar feel to it, as it's kind of monolithic, yet edges me into a modern source control tool that doesn't completely suck or make me want to give up software engineering altogether. Branch, work on shit, merge the branch to trunk, tag it when you're ready to bag it, wash, rince, and repeat.
Mercurial and git were designed with a different sort of need in mind. Or, at least, git was. The jury is still out on Mercurial, at least from my perspective. With git, you have this sense of a local repository from which you work on your code, saving changes to it and all that. With other people doing the same thing, when you want to send your updates to the remote repository, you first have to pull down any changes from the remote repository and resolve it with your local repository (merge, 'shelve', or obliterate with the remote file or local file depending on whichever one you want to keep). After resolving it locally (thus also making the thing work with whatever changes you've checked in locally), you push it out to the remote server, and everything does the happy dance.
At least that feels to me like something that would make sense. It feels like the way we would work. Mercurial, though, feels... different.
It adds a layer of mystery. Or perhaps it's just TortoiseHg's interface that defeats me. I have no fucking idea if my changes are making it to the remote repository.
I'll work on my code for a bit, and click 'commit' to save my code to the local repository. Mercurial complains that I did something wrong, even though I haven't pulled any remote changes to the local repository since I started working on the damned code.
So, I assume that it's complaining about something that change in the remote repository. Sure enough, the remote repository has changes. I pull them to my local repository, resolve any problems, and then discover that I've already committed. I have no fucking idea if I've committed to the local or remote repository. The interface seems to tell me that I've already committed to the remote repository, but now I'm suspicious.
It's just... I can't tell if this is a social experiment, or if I'm honestly doing something right, but just overly concerned about proper source control when I oughta just say 'fuck it' and risk obliterating everything anyone else has done for shits and giggles.
having worked with hg over at gemalto for half a year or so, one thing I can tell you is that you want to enable mercurial queues
its similar to the git stash, though it can un-apply commits, rebase them, and re-apply them on a relative automatic fashion.
that way you can avoid the merge commit git has in any way.
I don't think that hg is that inferiour to git anyways; i'd compare it to llvm / GCC. opponents of similar strength being playground for new features, one inspiring the other.