[01:17] Hi. Is there a version of Quickly for C++? [01:19] I've been working on a C++ project for Ubuntu for a while; and I realized it would be nice to introduce people (especially those who are new to development on POSIX systems) to app development on Ubuntu; specifically dealing with the build system (GNU make, GNU autotools, libtools, etc). When I started I had to get data from several different sources; there wasn't a nice tutorial in one place like there is for Python. [01:19] Why is this? [01:19] Or is there a nice tutorial somewhere that I wasn't aware of? [01:22] In my opinion providing Linux developers with C++ tools right away could improve the quality of the platform, as native languages typically (though not always) lead to higher quality applications. Unless I'm mistaken and Python has a fast, ahead-of-time native compiler now [01:23] Personally I think app developers should not just be able to create a Python app for Ubuntu in under five minutes, but also a C++ app in under five minutes, which is why I've been working on some libraries to make it easier to develop in C++, and create cross-platform apps. [01:24] Library is open-source and is available on Launchpad under the GPL license [01:24] https://launchpad.net/crosslibs [01:24] Goal is to allow people to "quickly" create C++ apps [01:25] IDWMaster: hit up dpm during Spain office hours...he'd be interested in this. [01:25] Who's dpm? [01:26] david planella...he does a lot for developer relations in the ubuntu community team [01:26] Do you have any contact information for him; or at least a Launchpad account URL? [01:27] https://launchpad.net/~dpm [01:27] Thanks [01:27] Wow. Sure a lot of e-mail addresses registered with that one account! [01:27] he's a geek [01:28] Good. It's hard to find good geeks these days. [01:28] Especially in the US it seems like -- I'm a computer science major and most of my class isn't even interested in programming! [01:28] They're just taking it to satisfy requirements for biology, math, or physics. [01:29] I was going to start an app developers' club at my school but there was absolutely no interest. [01:29] he's on during central european time so in ~5 hours or so you'll see him in this channel [01:29] wow...really? [01:30] Yeah [01:30] i can't believe that...there has to be some interest...even the smallest schools have IEEE clubs or others where programming is of interest [01:30] Not Augsburg College [01:30] oh. ok. [01:31] I've tried to start one up but it just hasn't gotten any traction. I'll keep trying though :) [01:31] Lots of people have negative pre-conceptions about programming in general, and especially C++ [01:32] well...Minneapolis is big enough...there's bound to be some interest outside of school. [01:33] I gave a speech at a major university (University of Minnesota) recently about how C++ can actually simplify common development, and how to properly abstract things. Most of the people at my speech were graduate students, professors, or professionals though, not many undergrads. [01:33] I can see that...it can be daunting compared to python [01:33] One new addition I made is called StdVal in my library [01:33] For example [01:33] is it they don't want to work hard? [01:34] Think they're just frightened by the mere mention of pointers [01:34] even when it's a friendly std::shared_ptr [01:34] auto somevalue = StdVal(5)+StdVal("Hello world!"); [01:34] Console->WriteLine(somevalue); [01:34] /Above line prints "5Hello world!" [01:34] Text is always stored in Unicode format in the platform locale [01:34] I use ICU when writing to a file though [01:34] Example: [01:35] std::shared_ptr filestream = inst->Open("somefile.txt",ReadWrite); [01:36] std::shared_ptr utftext = parser->GetBytes(somevalue); [01:36] std::shared_ptr task = filestream->WriteAsync(utftext,utftext->sz); [01:36] /Above line gets an asynchronous operation for writing to a file [01:37] /we can run this operation now using task->Run and pass in a completion callback [01:37] task->Run([=](std::shared_ptr returnvalue) { [01:37] std::shared_ptr rval = CastShared(returnvalue,StreamRetVal); [01:38] } [01:38] ); [01:38] where rval is an error code for the asynchronous write operation [01:38] All of my library functions are thread-safe, except for IC80FS functions [01:38] All I/O is done asynchronously by default [01:39] parser (an instance of a std::shared_ptr) is a platform-independent data formatter [01:39] It writes data in standardized formats which can be readable by nearly any modern computer system [01:40] It takes Endianness, byte sizes, and string encodings into account, and abstracts all of these concepts for the developer [01:40] Also; memory allocation is cheap in my library because I wrote a custom memory allocator for it; so you don't have to worry about how many times you can call "new" in a tight loop without slowing down your application. [01:41] malloc (called by new) is faster in Linux than Windows, but I chose to still use a custom allocator because I want it to be portable to other platforms like Windows, where malloc is very slow. [01:42] Memory pool is also thread-safe and supports multiple pools for different threads, but also allows sharing of objects between threads. [01:42] Although I've recently ran into a very annoying bug which I will probably get to fixing this weekend. [01:42] It's a random segfault when calling a method in a lambda function passed by value across a thread boundary. [01:43] I've determined the problem is somehow related to my allocator but haven't figured out exactly what the problem is yet. [01:43] Currently only affects my IC80FS libraries (normal file system support still works just fine). [01:45] BUG FOUND: Quickly doesn't work on computers with small monitors! [01:47] Anyways; I'm probably the only one who uses a netbook to code anyways. [02:07] IDWMaster: still around? [02:07] Yes [02:08] https://launchpad.net/quickly-community-templates I think has a quickly template for C++ and Qt [02:08] you can make a quickly template for pretty much anything [02:09] Thanks [02:09] np [02:10] also, what do you mean quickly doesn't work on computers with small monitors? [02:10] it's all CLI === duanedes1gn is now known as evilduanedesign === davidcalle_ is now known as davidcalle