====== docs ====== some documents/articles that i think are interesting. ===== things i wrote ===== some articles/chapters i've wrote or was coauthor of. * [[docs:3D printing 101:3D printing 101]] -- some of my notes on 3D printing, that i found useful over the time. * {{:docs:dzieci.pdf|dzieci - niepoważne przemyślenia, bezużyteczne rady}} (PL) -- a short set of absurd observations, rooted in rising a little child. * [[docs:job interview - candidate questions:job interview - candidate questions]] -- my list of questions to potential employer. * [[https://www.baszerr.eu/doku.php/blog/2014/09/10/dispatcher_in_c_14|dispatcher in C++14]] -- article presenting neat and compact mechanism for dispatching serialized messages, that require minimal user's attention. * [[:blog:2012:11:23:1|Geek In The Shell]] -- article on shell programming, published in [[http://www.programistamag.pl|Programista Magazine]]. * [[cpp11_progmag:cpp11_progmag|C++11 in Programista Magazine]] -- continuation of the C++0x from SDJ. * [[http://www.springerlink.com/content/978-3-642-28266-9/#section=1036723&page=1|Building a National Distributed e-Infrastructure–PL-Grid Scientific and Technical Achievements]] -- book on [[wp>PL-Grid]] initiative development. i am coauthor of [[wp>ACARM-ng]] chapter. * [[:docs:cpp0x_sdj:cpp0x_sdj|C++0x in SDJ]] (PL) -- C++0x series of articles i took part in. * [[:docs:cache usage effects on modern CPUs:cache usage effects on modern CPUs]] -- short summary (with ready-to-go examples) of article by [[http://people.redhat.com/drepper/|Ulrich Drepper]]. * {{:docs:dr_raport_semestralny.pdf|FOA state of art}} (PL) -- semester report about artificial systems for focusing of attention (FOA) which i planned to do during my PhD. * [[pharmacist's tincture]] -- a recipe for good tincture! :) * {{:docs:otwarcie_ad.pdf|otwarcie a.d.}} (PL) -- story of love and enlightenment i wrote some time ago. * {{:docs:praca_dyplomowa.pdf|praca dyplomowa}} (PL) -- my master thesis. description of some aspects of using AI in mobile robotics. as part of project mobile robot has been created along with necessary software. more information about software-hardware part can be found on [[:prjs:tier:tier|TIER]] mobile robot project page. ===== my presentations ===== some publicly available presentations/materials from my past talks. * {{:docs:3d_printing_programmers_perspective.pdf|3D printing - programmer's perspective}} ([[https://www.youtube.com/watch?v=JNMgx_casLI|recording]]) -- an introduction to the world of 3D printing, as seen by a software engineer. * {{:docs:structured_logging.pdf|structured logging}} ([[https://www.youtube.com/watch?v=Fl0bQP-Rua0|recording]]) -- novel concept of log library, that preserves logged data structure. i.e. instead of getting tons of useless text lines you get a fully-structured documents, describing exactly what is needed, in a machine-readable format. [[https://github.com/el-bart/but/tree/master/src/But/Log|C++ implementation of the library]] is available for free as a part of [[https://github.com/el-bart/but|BUT library]] i maintain. * {{:docs:taming_of_the_software_cpp_embedded_and_more.pdf|taming of the software - C++, embedded... and more}} ([[https://vimeo.com/198561242|recording]]) -- talk about building, composing and testing software for embedded platforms (but not only). * {{:docs:komputer_za_kierownica.pdf|komputer za kierownicą}} (PL) -- a short popular-science talk about computer-driven cars, with a focus on neural-networks, presented on [[http://www.festiwal.wroc.pl|DFN]]. * {{:docs:komputerku_powiedz_przecie.pdf|komputerku powiedz przecie...}} (PL) -- a short popular-science talk about talking/chatting with a computer, presented on [[http://www.festiwal.wroc.pl|DFN]]. * {{:docs:cpp_vs_c_the_embedded_perspective.pdf|C++ vs C the embedded perspective}} ([[https://www.youtube.com/watch?v=PDSvjwJ2M80|recording]]) -- talk on how C++ can outperform C, while generating smaller binaries at the same time... if used correctly. :) C++ is just way more than most C programmers see. * {{:docs:algorithms_for_cloud_computing.pdf|algorithms for cloud computing}} -- interesting presentation prepared for Nokia's internal training, that [[http://nokiawroclaw.pl/nokia-wroclaw/po-godzinach/|has been made public]]. * {{:docs:when_order_does_not_matter.pdf|when order does not matter: a different approach to C++ functions' arguments passing}} ([[https://vimeo.com/140311751|recording]]) -- presentation from NDC Oslo 2015 conference, showing how to implement functions that can take arguments in any order, and provide defaults for those that are not provided. everything in a compile time! :) * {{:docs:cpp14_prostszy_niz_kiedykolwiek.pdf|C++14 prostszy niż kiedykolwiek}} (PL) -- C++14 simpler than ever. talk during [[http://nokiawroclaw.pl/knowcamp|KnowCamp]] on C++ in 2015. * {{:docs:synchronicznie_czy_asynchronicznie_oto_jest_pytanie.pdf|synchronicznie czy asynchronicznie? oto jest pytanie!}} ([[https://vimeo.com/123442021|recording]]) (PL) -- synchronous vs. asynchronous logging with examples and measurements (2015). * {{:docs:dyspozytor_w_cpp14.pdf|dyspozytor w C++14}} ([[http://vimeo.com/113114169|recording]]) (PL) -- presentation on dispatcher pattern implementation, using C++14 (presented on [[http://techcamp22.evenea.pl|TechCamp #22]] in 2014). * {{:docs:threading_dos_and_donts.pdf|threading: dos and don'ts}} ([[http://vimeo.com/112431763|recording]]) -- presentation i gave on [[http://www.codedive.pl|code::dive]] conference (2014). * [[https://www.baszerr.eu/doku.php/blog/2014/07/31/tedx_videos|we live in fascinating times]] ([[https://vimeo.com/103584482|recording]]) -- popular science presentation held at [[http://tedxwroclaw.pl/tedxwroclaw-2014|TEDx Wrocław in 2014]]. * {{:docs:dyspozytor_w_cpp11.pdf|dyspozytor w C++11}}([[https://vimeo.com/99361837|screencast]]) (PL) -- original presentation on dispatcher pattern implementation, using C++11 2014. * {{:docs:02_memory_model.pdf|memory model (i nie tylko)}} ([[http://vimeo.com/86730675|screencast]]) (PL) -- an (almost) linghtning talk on [[wp>C++11]] memory model and its practical meaning 2014. * {{:docs:hello_houston.pdf|hello houston}} (PL) -- presentation about different aspects of error handling, including exceptions in particular. top-level ideas of how exception handling is implemented by compiler vendors are presented. presentation held on the 2nd [[http://www.cppwroclaw.pl|C++ Wrocław]] meeting (2013). * {{:docs:zycie_bez_ifdefow.pdf|życie bez #ifdefów}} ([[http://vimeo.com/81276886|partial recoding of presentation]]) (PL) -- "life without #ifdefs": why and how using preprocessor can do a lot of harm and what are the alternatives. presentation held on the 1st [[http://www.cppwroclaw.pl|C++ Wrocław]] meeting (2013). * [[http://vimeo.com/86033073|prezentacja systemu ACARM-ng]] (PL) -- my short presentation of [[wp>ACARM-ng]], held on I3 conference (2010). ===== other resources ===== other interesting materials found on the net. * [[http://www.agner.org/optimize/optimizing_cpp.pdf|Optimizing software in C++]] -- very nice, free book (by Agner Fog) on software optimizations, that can be done in C++, for the modern hardware. * [[http://alexthunder.livejournal.com/309815.html|don't wake up the programmer]] -- brilliant analogy to explain programmer's work to non-programmers and especially non-technical people. * [[docs:open source and licensing:open source and licensing|open source and licensing]] -- if (L)GPL is really so free? i had few chances in my life to see it is not. * [[http://www.gotw.ca/publications/concurrency-ddj.htm|the free lunch is over]] -- interesting article written by [[wp>Herb Sutter]], dating back to 2005, explaining that multithread and multiprocessor software is an future for now on. releasing software that runs slow, thinking that CPUs will get fast enough in a year time, does not do the trick if your application won't scale well with a number of cores, that future CPUs will offer. * [[http://www.davidpashley.com/articles/writing-robust-shell-scripts.html|writing robust shell scripts]] -- short article giving many hints on shell programming, that in general is problematic, since i has many details one must know/remember about. * [[http://www.polityka.pl/archive/do/registry/secure/showArticle?id=3358264|Economy of uncertainty]] (PL) -- interesting article discussing common economics approach fails constantly, a specially during crisis when it's needed the most. * {{:docs:zombies.pdf|When zombies attack!}} -- article showing application of mathematical tools to show results of zombies epidemic on our civilization ([[http://www.mathstat.uottawa.ca/~rsmith/Zombies.pdf|original source]]). * [[https://www.mg.gov.pl/NR/rdonlyres/02CDFF11-4217-4078-A37A-240588C1EDBF/16575/Ust_o_szczegol_warunkach_sprzed_konsumenc_tekst_je.pdf|ustawa o szczegolnych warunkach sprzedarzy konsumenckiej (2002.07.27)]] (PL) -- interesting piece of polish law -- it shown to be useful for me recently... * [[http://www.portalkadrowy.pl/188190_nie_mozesz_zabronic_pracownikowi_ujawniania_wysokosci_wynagrodzenia_pozostalym_pracownikom.html|Forbiding payment exposure at work]] (PL) -- interesting article clamming that in Poland there is no law base for employer to forbid workers to talk about their individual payment, which is very common practice now days. * [[http://www.ibm.com/developerworks/architecture/library/ar-sevenprac/?S_T|Seven practices for healthier, faster software development]] -- an interesting article from IBM giving a clue (on management level) how software development should and should not look like. * [[http://nedbatchelder.com/text/stopbots.html]] -- article showing an alternative for [[http://pl.wikipedia.org/wiki/CAPTCHA|CAPTCHA]] to prevent spamming submission forms. * [[http://www.mrc-cbu.cam.ac.uk/~mattd/Cmabrigde]] (ENG/PL) -- interesting piece of information on how do people read. * [[http://www.joelonsoftware.com/items/2008/03/17.html|Martian headsets]] -- interesting article explaining main problems in IT, on real-life examples of web browsers. if you still think that being liberal about input of your programs is good thing, start from reading this article. * [[:docs:job interviews in IT]] -- a set of good-practice for job interviews in IT. * [[:docs:WPA on linux]] -- small set of pieces of information that helped me with configuration of WPA on my [[http://www.debian.org|Debian]] box. * [[http://liquidat.wordpress.com/2007/07/21/linux-kernel-2623-to-have-stable-userspace-driver-api|Linux kernel userspace API]] -- since 2.6.23 kernel there is possibility to write drivers in userspace. this is good starting point, though there is still lack of some functionality like DMA which makes it impossible to write efficient drivers for graphics, fs, etc. * [[http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html|The perils of JavaSchools]] -- interesting article about lowering requirements for degree in computer science which effects in CS-graduated students that do not understand pointers, recursion and other basics. * [[http://www.schneier.com/blog/archives/2008/02/cold_boot_attac.html|cold boot attack]] -- description of vulnerability of encrypted disks based on fact, that RAM memory content can be read after up to few minutes after power-off (yes - DRAM too!).