Search results “C style gnu”
11.String handling in c++ in c - style syntax.
C++ is arguably the most versatile language in common use. C++ allows for both high-performance code as well as expressive abstractions and design constructs. The language is not perfect but it does represent an excellent compromise between these potentially conflicting language capabilities. C++ combines "low-level" programming tailored to specific machine architectures with "high-level" programming, which can allow code to be completely abstracted from any particulars of the machine executing the program. History and standardization ==================== Bjarne Stroustrup, a Computer Scientist from Bell Labs, was the designer and original implementer of C++ (originally named "C with Classes") during the 1980s as an enhancement to the C programming language. Enhancements started with the addition object-oriented concepts like classes, followed by, among many features, virtual functions, operator overloading, multiple inheritance, templates, and exception handling. These and other features are covered in detail in this book. The C++ programming language is a standard recognized by the ANSI (The American National Standards Institute), BSI (The British Standards Institute), DIN (The German national standards organization), and several other national standards bodies, and was ratified in 1998 by the ISO (The International Standards Organization) as ISO/IEC 14882:1998, consists of two parts: the Core Language and the Standard Library; the latter includes the Standard Template Library and the Standard C Library (ANSI C 89). Choosing and IDE to write the code ========================== Get an IDE (Integrated Development Environment), generally consisting of a GUI (graphic user interface), a compiler (transforms C/C++ code into a machine readable program) and a text editor. Most C++ IDEs use the GNU C++ compiler which is part of the GNU Compiler Collection (GCC). This is a program from the Free Software Foundation. It is distributed under the GNU General Public License (GPL). For detailed information check http://gcc.gnu.org.Some might say that it is important to learn to edit code using an editor, and compile it manually. There is time for that later; the manual editing process changes depending on system and compiler, so put it off until you can write significant programs. Recommendations for an IDE are Microsoft Visual Studio Express C++ (freeware, Windows; step-into debugging,) Xcode (closed-source, Macintosh OS X, step-into debugging,) Eclipse, or Code::Blocks IDE with Mingw (open source, cross-platform; no step-into debugging.) Dev-C++ is often mentioned, but it doesn't seem to have seen active development in years, and can be very inconvenient to use. You can download a fully functional version of Dev-C++ free of charge from the developers website http://www.bloodshed.net/download.html. Another good IDE in Code::Blocks http://www.codeblocks.org, Dev-C++ is old and has been discontinued by its creator. A fairly recent addition to this list is the Open Watcom C++ compiler and environment, which is available for several operating systems. Most of the compilers/IDEs listed here are native to the Microsoft Windows Operating System. C/C++ was born on UNIX, and there are several free UNIX operating systems such as FreeBSD. C/C++ comes with most GNU/Linux variants. Any of the above listed operating systems, and compilers/IDEs are sufficient to learn to program C/C++. Strings in c++ =========== In the C++ programming language, the std::string class is a standard representation for a string of text. This class alleviates many of the problems introduced by C-style strings by putting the onus of memory ownership on the string class rather than on the programmer. The class provides some typical string operations like comparison, concatenation, find and replace, and a function for obtaining substrings. It can be constructed from a C-style string, and a C-style string can also be obtained from it.
Views: 1138 DASARI TUTS
Секреты прогибов GNU и LibTech: какие бывают и чем отличаются?
GNU: http://bit.ly/1rnXkgg LibTech: http://bit.ly/LibTech_Boards Roxy: http://bit.ly/1442BzL
Views: 45523 Траектория
Emacs as a C/C++ Editor/IDE (Part 2): iedit, flymake-google-cpplint, google-c-style
Emacs as a C/C++ Editor/IDE (Part 2): iedit, flymake-google-cpplint, google-c-style .emacs file is available at: http://barisyuksel.com/cppmode/.emacs package versions are available at: http://barisyuksel.com/cppmode/package_versions.png or you can pull/clone it from github: https://github.com/byuksel/Emacs-as-a-C-Cplusplus-Editor-IDE-settings
Views: 32629 b yuksel
Basics of Gnuplot - Make your plot look Good
In this tutorial I explain about the basic commands of gnuplot 1. Plotting mulitple graphs in single plot 2. Labels - xlabel, ylabel 3. range, interval, xtics, ytics 4. grid 5. legend naming 6. line style, line color, line width 7. font style, font color 8. using scripts for plotting Gnuplot tutorial
Views: 4231 Mechanical Modelling
CppCon 2017: Michael Spencer “My Little Object File: How Linkers Implement C++”
http://CppCon.org — Presentation Slides, PDFs, Source Code and other presenter materials are available at: https://github.com/CppCon/CppCon2017 — Ever wonder how the linker turns your compiled C++ code into an executable file? Why the One Definition Rule exists? Or why your debug builds are so large? In this talk we'll take a deep dive and follow the story of our three adventurers, ELF, MachO, and COFF as they make their way out of Objectville carrying C++ translation units on their backs as they venture to become executables. We'll see as they make their way through the tangled forests of name mangling, climb the cliffs of thread local storage, and wade through the bogs of debug info. We'll see how they mostly follow the same path, but each approach the journey in their own way. We'll also see that becoming an executable is not quite the end of their journey, as the dynamic linker awaits to bring them to yet a higher plane of existence as complete C++ programs running on a machine. — Michael Spencer: Sony Interactive Entertainment, Compiler Engineer Michael Spencer is a Compiler Engineer at Sony Interactive Entertainment where he has spent 6 years works on PlayStation's C++ toolchain. He is an active member of the LLVM community focusing on object files and linkers. He also serves as Sony's representative to the ISO C++ standard committee. — Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
Views: 10810 CppCon
GNU Head Space  2019 Snowboard Rider Review - Tactics.com
2019 Gnu Headspace Snowboard at Tactics: https://www.tactics.com/gnu/forest-bailey-head-space-asym-c3-snowboard?cp=ytd Made with Park and Street riding in mind, the 2019 GNU Head Space is an asymmetrical twin freestyle masterpiece for intermediate to advanced riders. With art by pro rider Forest Bailey and Mervin Manufacturing's award winning technology, this board is a dream come true. With a medium flex rating, C3 camber dominant profile and Magne-Traction technology, the Head Space is ready to take on park features without sacrificing solid carving maneuverability. So if you're looking for an asymmetrical park board, be sure to check out the 2019 GNU Head Space. Shop all your snowboard gear needs at Tactics: https://www.tactics.com/snowboard?cp=ytd Watch more snowboard reviews from Tactics Boardshop: https://www.youtube.com/watch?v=9C3d5bD44bQ&index=21&list=PLUt2JtFd-wFqBf2kF-hmOtbJs3BGiti3D Like, follow, and stay up to date with Tactics... Shop - https://www.tactics.com Facebook - https://www.facebook.com/tacticsFB Twitter - https://twitter.com/tactics Instagram - https://instagram.com/tactics Blog - https://www.tactics.com/blog
Views: 5369 Tactics Boardshop
emacs c++
Blog post: http://cestlaz.github.io/posts/using-emacs-32-cpp Series page: http://cestlaz.github.io/stories/emacs
Views: 19131 Mike Zamansky
Automake C++ Tutorial: Building a simple C++ project with automake autoconf
Simple GNU automake autoconf C/C++ project. GitHub link for this tutorial: https://github.com/byuksel/Automake-Autoconf-Template-Project There is also now a Yeoman generator for this template. You can install it from NPM on the command line with: npm install -g yo generator-c-c-plus-plus-project --verbose
Views: 8884 b yuksel
Emacs as a C/C++ Editor/IDE (Part I): auto-complete, yasnippet, and auto-complete-c-headers
Emacs as a C/C++ Editor/IDE (Part I): auto-complete, yasnippet, and auto-complete-c-headers. Installation and all the tricks. .emacs file is available at: http://barisyuksel.com/cppmode/.emacs package versions are available at: http://barisyuksel.com/cppmode/package_versions.png or you can pull/clone it from github: https://github.com/byuksel/Emacs-as-a-C-Cplusplus-Editor-IDE-settings
Views: 98056 b yuksel
How to Install Codeblocks IDE on Windows 10 with Compilers ( GCC , G++)
In this video I am going to show How to Install Codeblocks IDE on Windows 10 with Compilers. We will see how to install MinGw compiler with code blocks. ( GCC , G++) -------------------Online Courses to learn---------------------------- Data Analytics with R Certification Training- http://bit.ly/2rSKHNP DevOps Certification Training - http://bit.ly/2T5P6bQ AWS Architect Certification Training - http://bit.ly/2PRHDeF Python Certification Training for Data Science - http://bit.ly/2BB3PV8 Java, J2EE & SOA Certification Training - http://bit.ly/2EKbwMK AI & Deep Learning with TensorFlow - http://bit.ly/2AeIHUR Big Data Hadoop Certification Training- http://bit.ly/2ReOl31 AWS Architect Certification Training - http://bit.ly/2EJhXjk Selenium Certification Training - http://bit.ly/2BFrfZs Tableau Training & Certification - http://bit.ly/2rODzSK Linux Administration Certification Training-http://bit.ly/2Gy9GQH ----------------------Follow--------------------------------------------- My Website - http://www.codebind.com My Blog - https://goo.gl/Nd2pFn My Facebook Page - https://goo.gl/eLp2cQ Google+ - https://goo.gl/lvC5FX Twitter - https://twitter.com/ProgrammingKnow Pinterest - https://goo.gl/kCInUp Text Case Converter - https://goo.gl/pVpcwL ------------------Facebook Links ---------------------------------------- http://fb.me/ProgrammingKnowledgeLearning/ http://fb.me/AndroidTutorialsForBeginners http://fb.me/Programmingknowledge http://fb.me/CppProgrammingLanguage http://fb.me/JavaTutorialsAndCode http://fb.me/SQLiteTutorial http://fb.me/UbuntuLinuxTutorials http://fb.me/EasyOnlineConverter Best C++ Complier : How to Install Code:Block in Windows 10 , Windows c++ - Setting up MingW and Code::Blocks in Windows 10 64 Searches related to install codeblocks on windows 10 how to install codeblocks on mac download codeblocks for windows download codeblocks for windows 10 64 bit download codeblocks for windows 8 install gcc windows
Views: 339023 ProgrammingKnowledge
On C programming, switch-cases and the GOSUB
The switch-statement in C and C++ is an interesting construct lending itself to many unorthodox uses. In this video I explore some of those uses. I also showcase a little BASIC program (visible from 1:16 through 1:42) that I wrote in 1993. WARNING: May include trace amounts of rant! Twitter: https://twitter.com/RealBisqwit Patreon: https://patreon.com/Bisqwit (alternatives at https://iki.fi/bisqwit/donate.html) Twitch: https://twitch.tv/RealBisqwit Homepage: https://iki.fi/bisqwit/ Third-party software information, in approximate order of appearance: • Operating system: Debian GNU/Linux ― http://debian.org/ • Graphics window system: X.Org • Window manager: Enlightenment • Window theme: 23oz (only used for window borders) • Editor: joe ― http://joe-editor.sourceforge.net/ * • Terminal: aterm ― http://www.afterstep.org/aterm.php • Terminal: xterm ― http://en.wikipedia.org/wiki/Xterm • Compiler: GCC ― http://gcc.gnu.org/ • Compiler: Clang ― http://clang.llvm.org/ • Interpreter: GW-BASIC ― http://en.wikipedia.org/wiki/GW-BASIC • Platform emulator: DOSBox ― http://www.dosbox.com/ • Window sitter: Macopix ― http://rosegray.sakura.ne.jp/macopix/index-e.html *) In most of my programming videos I use a custom editor I wrote myself for use in DOSBox. This video however was not created in DOSBox, but in a real Linux desktop, although a staged one for video making. My own editor only runs in DOS, so I used Joe here. Or more to the point, I don't use Joe in DOSBox, because it does not run in DOS. That's why I created my own editor. So in this video I used Joe, i.e. Joseph Allen's editor. Addendum: In my view, lambda functions / closures target pretty much the same goal and purpose that GOSUB does, even though it is not exactly the same. I'm glad C++ has lambda functions today. The entire source code of the dirt-dropping program (that is shown in the end of the video) is seen at 1:32.
Views: 17274 Bisqwit
Parser and Lexer — How to Create a Compiler part 1/5 — Converting text into an Abstract Syntax Tree
In this tool-assisted education video I create a parser in C++ for a B-like programming language using GNU Bison. For the lexicographical analysis, a lexer is generated using re2c. This is part of a multi-episode series. In the next video, we will focus on optimization. Downloads: — https://github.com/bisqwit/compiler_series/tree/master/ep1 All the material associated with this episode can be downloaded here. Acknowledgements: — Picture: Processors :: Jason Rogers — Music¹: Aryol :: The Strategy Continues :: Kyohei Sada (converted into MIDI and played through OPL3 emulation through homebrew software) — Music²: Star Ocean :: Past Days :: Motoi Sakuraba (SPC-OPL3 conversion) — Music³: Rockman & Forte :: Museum :: Kirikiri-Chan and others (SPC-OPL3 conversion) — Music⁴: Famicom Tantei Club Part II: Ushiro ni Tatsu Shōjo :: Dean’s Room :: Kenji Yamamoto (SPC-OPL3 conversion), original composition: Bach's Invention № 15 — Music⁵: Aryol :: Arrest :: Kyohei Sada (SPC-OPL3 conversion) — Music⁶: Ren & Stimpy Show : Fire Dogs :: Main Theme :: Martin Gwynn Jones and others (SPC-OPL3 conversion) — Music⁷: Aryol :: Warmup :: Kyohei Sada (SPC-OPL3 conversion) — Music⁸: Energy Breaker :: Golden-Colored Wind :: Yukio Nakajima (SPC-OPL3 conversion) — Music⁹: Wonder Project J :: House :: Akihiko Mori (SPC-OPL3 conversion) — SFX: Mostly from YouTube Audio Library. Some are recorded from video games like The Guardian Legend, Lunar Ball, and Super Mario All-Stars. ¹ 00:37, ² 02:46 & 39:26, ³ 10:10, ⁴ 16:06, ⁵ 27:18, ⁶ 37:20, ⁷ 38:58 & 45:58, ⁸ 49:00, ⁹ 50:40 My links: Twitter: https://twitter.com/RealBisqwit Liberapay: https://liberapay.com/Bisqwit Steady: https://steadyhq.com/en/bisqwit Patreon: https://patreon.com/Bisqwit (Other options at https://bisqwit.iki.fi/donate.html) Twitch: https://twitch.tv/RealBisqwit Homepage: https://iki.fi/bisqwit/ You can contribute subtitles: https://www.youtube.com/timedtext_video?ref=share&v=eF9qWbuQLuw or to any of my videos: https://www.youtube.com/timedtext_cs_panel?tab=2&c=UCKTehwyGCKF-b2wo0RKwrcg ---Rant--- [9:35 PM] Bisqwit: Now uploading to YouTube. Within about 24 hours I will know if the rogue AI at YouTube slams the “limited or no advertising" stamp into it, or not. Actually, I only know if it does so *when* it does it. Then, I need to wait an additional 25 hours for YouTube staff to manually review it and clear the flag. If the flag does not appear, then it is possible that the bot just has not scanned it yet and I need to wait longer. Premature publication could mean that the bot will mark it after it has already been published, and then I will not receive any revenue for the first spike of views. It used to be 18 hours (since uploading that the bot does its evil deeds), but nowadays YT recommends waiting just 3 hours. We will see, we will see. #Bisqwit #Compiler #Tutorial
Views: 82917 Bisqwit
Programming Arduino in C++11 -- ROM dumping
In this tool-assisted education video I show how to program an Arduino Atmega2560 board in C++11 to dump a ROM chip, such as a 386sx BIOS or a Famicom cartridge ROM. I also make a ZMODEM sender and a LED blinker in this video. Sorry about the bad dub / lipsync in the beginning. I recorded that part in a very noisy room, using a bad microphone (internal to the camera), and in another language, so I had to dub it over in postprocess -- which turned out to be considerably more difficult than I thought. Some year soon I might get a boom microphone for use in this kind of occasions. Twitter: https://twitter.com/RealBisqwit Patreon: https://patreon.com/Bisqwit (alternatives at https://iki.fi/bisqwit/donate.html) Twitch: https://twitch.tv/RealBisqwit Homepage: https://iki.fi/bisqwit/ Please feel free to post comments & ask any questions / clarifications in the video comments. I try to reply to everyone when applicable. Please exercise clarity, politeness and good grammar, if you expect those values in the replies. The EPROM chip pinout reference I used: https://bisqwit.iki.fi/jutut/kuvat/programming_examples/epromread/eprom_pins.html In particular, the 27C512 diagram here is applicable. For the NES ROM, I changed the OE/Vpp pin into address bit 16 and the CE/PGM pin into address bit 17. I bought my Arduino board (which is a clone actually) from DealExtreme: - https://bisqwit.iki.fi/dx/p/256335 (Feb 2014 update: The same board is no longer available in DX, but this is compatible with it and in the same price range.) Presently it costs only about 15 EUR including shipping. The breadboard, the jumper wires and the resistors (for LED) are also from that shop. This pack includes all of those: - bisqwit.iki.fi/dx/p/126383 (Feb 2014 update: Similar pack as the original one is no longer available.) It also includes another Arduino board, but a smaller one (also clone) that does not have enough GPIO pins for ROM dumping, unless you use an external shifter microchip (such as 74LS595). The three-color LED is: - https://bisqwit.iki.fi/dx/p/135046 The operating system where I run the compiler and uploaded the program is Debian GNU/Linux, and I installed "arduino-mk" (which automatically installs the dependent avr-libc, gcc-avr, binutils-avr and arduino-core packages). I edited the /usr/share/arduino/Arduino.mk file, changing the = into += on the lines that contain "CFLAGS=" and "CXXFLAGS=". Without this change, the C++11 option in my Makefile would be ignored. The desktop environment shown in this video does not exist. It was created in postprocess to facilitate multi-file editing, which I have not previously used in my videos. Related files and resources: https://bisqwit.iki.fi/jutut/kuvat/programming_examples/epromread/
Views: 35748 Bisqwit
CppCon 2016: Tim Haines “Improving Performance Through Compiler Switches..."
http://CppCon.org — Presentation Slides, PDFs, Source Code and other presenter materials are available at: https://github.com/cppcon/cppcon2016 — Much attention has been given to what modern optimizing compilers can do with your code, but little is ever said as to how to make the compiler invoke these optimizations. Of course, the answer is compiler switches! But which ones are needed to generate the best code? How many switches does it take to get the best performance? How do different compilers compare when using the same set of switches? I explore all of these questions and more to shed light on the interplay between C++ compilers and modern hardware drawing on my work in high performance scientific computing. Enabling modern optimizing compilers to exploit current-generation processor features is critical to success in this field. Yet, modernizing aging codebases to utilize these processor features is a daunting task that often results in non-portable code. Rather than relying on hand-tuned optimizations, I explore the ability of today's compilers to breathe new life into old code. In particular, I examine how industry-standard compilers like those from gcc, clang, and Intel perform when compiling operations common to scientific computing without any modifications to the source code. Specifically, I look at streaming data manipulations, reduction operations, compute-intensive loops, and selective array operations. By comparing the quality of the code generated and time to solution from these compilers with various optimization settings for several different C++ implementations, I am able to quantify the utility of each compiler switch in handling varying degrees of abstractions in C++ code. Finally, I measure the effects of these compiler settings on the up-and-coming industrial benchmark High Performance Conjugate Gradient that focuses more on the effects of the memory subsystem than current benchmarks like the traditional High Performance LinPACK suite. — Tim Haines University of Wisconsin-Madison PhD Candidate Madison, WI I am a third-year PhD candidate working in computational astrophysics. My undergraduate work was in computer science, physics, and mathematics, and I have an M.S. in physics. Fundamentally, my interests lie in developing software systems to try to answer difficult scientific questions combining modern parallel programming techniques in C++ with heterogeneous and massively parallel hardware. As such, I have a keen interest in the application of high performance computing to scientific problems (often called "scientific computing"). I spend most of my days attempting to design and build flexible, abstract software for parallel hardware in C++. Currently, I am part of a collaboration including the University of Washington and the University of Illinois at Urbana-Champagne working on the development of the cosmological N-body code CHArm N-body GrAvity solver (ChaNGa). Although it has excellent scaling properties (up to 512K processors with 93% efficiency), the node-level performance is sub-optimal. I am now working with a CS PhD candidate at UIUC to replace much of the C++98 codebase with C++11 and incorporate GPU computing using the CUDA runtime. — Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
Views: 15428 CppCon
How to compile and execute a C++ program in Emacs
This is a tutorial on how to compile and execute C++ code inside of Emacs.
Views: 11452 Deepam Sarmah
Emacs Tutorial For Beginners - Simply Explained
Go from 0 to ... uh... 5 MPH in just a few minutes. Don't worry about becoming a text editor ninja. Just get the basics down so you can start writing whatever crap you need to get done! 0:37 - Reference cheat sheet 1:05 - Command keys 1:36 - Open file 1:52 - Create a new file 2:28 - Buffers 3:42 - Split windows 4:34 - Customizing Emacs c means "ctrl" m means "alt" key and everything else is just the specified key c-x 1 delete all other windows c-x 2 split window c-x c-f read a file into emacs ~/.emacs find the config file ;;****************************************************** ;; Things I have added to customize emacs, copy and ;; paste the text below into your "config" (.emacs) file ;;****************************************************** ;; Use 2 spaces for auto indent (setq c-default-style "linux" c-basic-offset 2) ;; Set column-mode to always be on (setq column-number-mode t) ;; Set line number mode to always be on (global-linum-mode t) ;; no startup message (setq inhibit-startup-message t) ;; have your emacs window to always show your system-name and the full ;; path of the buffer your currently editing : (setq frame-title-format (list (format "%s %%S: %%j " (system-name)) '(buffer-file-name "%f" (dired-directory dired-directory "%b"))))
Views: 17077 csanchez505
Games in C: ASCII Paint
A simple paint game made in C using ASCII characters. I used windows.h library and made it on Code Blocks IDE using GNU GCC compiler. https://github.com/shivamshekhar/AsciiPaint Here's the source code: Here's a list of Brush values: http://3.bp.blogspot.com/-UMdWeQrmM6o/VQeM7ussalI/AAAAAAAAAOA/D8U171CNaTE/s1600/ascii.gif Here's a list of color combinations: http://www.qtsoftware.de/bilder/qtConEx01ColorCodes.jpg
Views: 342 Spiral Lightning
Lambda Days 2015 - Grzegorz Rożniecki - Weird world of continuations
Grzegorz is a software engineer who enjoys learning and likes sharing his knowledge. He's also a big GNU/Linux fan and Open Source Software advocate. He has developed software in various languages, including Perl, JavaScript, Java, Python, PHP and Lisp (and experimented with few others). You can read his blog: http://xaerxess.pl/. Weird world of continuations Meet CPS (continuation-passing style) reality where return is passé, goto is disguised in elegant, functional manner and stack overflow is defeated by tail call optimization. See how CPS works (or not) in Perl, JavaScript, some Lisp dialect and few other languages. Discover what impact have the idea from 1970s had on modern programming techniques. Come and hear about all this stuff from a guy who actually used CPS in production application. Slides About Grzegorz Rożnie Twitter: @xaerxess Grzegorz is a software engineer who enjoys learning and likes sharing his knowledge. He's also a big GNU/Linux fan and Open Source Software advocate. He has developed software in various languages, including Perl, JavaScript, Java, Python, PHP and Lisp (and experimented with few others). You can read his blog: http://xaerxess.pl/.
Views: 1433 Erlang Solutions
CppCon 2018: “Grill the Committee”
http://CppCon.org — Presentation Slides, PDFs, Source Code and other presenter materials are available at: https://github.com/CppCon/CppCon2018 — What would you like to know about the C++ standard? Join us for a panel discussion with the leaders of the C++ standards committee where the audience asks the questions. — Jon Kalb, Jon Kalb, Consulting Conference Chair Jon Kalb is a freelance C++ instructor and chairs CppCon, C++ Now, and the Boost Steering Committee. He is a director and the treasurer of the C++ Alliance. He has been programming in C++ for over 25 years and has written C++ for Amazon, Apple, Dow Chemical, Intuit, Lotus, Microsoft, Netscape, Sun, and Yahoo! Marshall Clow, Qualcomm Marshall has been programming professionally for 35 yearsHe is the author of Boost.Algorithm, and has been a contributor to Boost for more than 15 years. He is the chairman of the Library working group of the C++ standard committee. He is the lead developer for libc++, the C++ standard library for LLVM. Olivier Giroux, NVIDIA Olivier Giroux has worked on nine GPU and five SM architecture generations released by NVIDIA. Lately, he works to clarify the forms and semantics of valid GPU programs, present and future. He was the programming model lead for the NVIDIA Volta architecture. He is the chair of SG1, the Concurrency study group of the ISO C++ committee, and is a passionate contributor to C++'s forward progress guarantees and memory model. Howard Hinnant Ripple Bjarne Stroustrup, MorganStanley dization, future; performance, reliability; software developer education; distributed systems Bio: www.stroustrup.com/bio.html Herb Sutter, Microsoft Author, and chair of the ISO C++ committee. Ville Voutilainen, Qt Company Ville Voutilainen is the Chair of the Evolution Working Group, and also a gcc/libstdc++ developer. He's the Finnish representative in the C++ committee, and has contributed to numerous C++11 and C++14 facilities, including override/final, lambda init-captures, aggregate NSDMIs, and more. Titus Winters, Google C++ Codebase Cultivator Titus Winters has spent the past 6 years working on Google's core C++ libraries. He's particularly interested in issues of large scale software engineer and codebase maintenance: how do we keep a codebase of over 100M lines of code consistent and flexible for the next decade? Along the way he has helped Google teams pioneer techniques to perform automated code transformations on a massive scale, and helps maintain the Google C++ Style Guide. — Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
Views: 3788 CppCon
GUI game programming on GNU/linux
This is my first tutorial ever made!!! These game engines are working under GNU/linux and they can use GUI to program games for multiple platforms. This is simple review of 2 game engines! 1-Game develop http://www.en.compilgames.net/ 2-Stencyl game engine http://www.stencyl.com/ More tutorials about these game engines are coming soon Regards
Views: 1122 GnuTechNology
Metaprogramming in C++14 - Louis Dionne [ACCU 2017]
In most languages, metaprogramming is a powerful tool that allows writing more expressive and more maintainable code. It is usually relatively straightforward, and even average Joe programmers can use it to increase their productivity. In C++, metaprogramming is an obscure art that very few understand and that is never taught as part of the normal curriculum. Even worse is the fact that almost every presentation about metaprogramming is overly complicated, using tricky corners of the language and an unintuitive approach to achieve even simple goals. This presentation will try to break the mold and present metaprogramming in a way that’s easy to grasp. Using C++14 and the Boost.Hana library, we will show how metaprogramming can be done with a reasonably high level of expressiveness, leaving dirty template tricks far behind. We will see how metaprogramming can be used as a tool for making day-to-day programming easier, more enjoyable and more efficient, even for people that are not C++ gurus.
Views: 5069 ACCU Conference
CppCon 2015: Atila Neves "Emacs as a C++ IDE"
http://www.Cppcon.org — Presentation Slides, PDFs, Source Code and other presenter materials are available at: https://github.com/cppcon/cppcon2015 — Lightning Talk — Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
Views: 60640 CppCon
Quake Style Shell Console with Yakuake Linux Software Overview
http://filmsbykris.com http://www.patreon.com/metalx1000 This video was sponsored by: Karl Arvid John Tedesco - http://stainlesssteeltoolwrap.com/ Steven C. Morreale For help: http://filmsbykris.com/irc FaceBook: https://www.facebook.com/pages/Films-By-Kris/225113590836253
Views: 970 Kris Occhipinti
Philly C. - The Slit Wrists Licks
Produced by Gary Gnu.
Views: 168 Philip Contra
Enhanced Satriani and Steve Vai style backing track in G Lydian
An uplifting, educational and typical Satriani and Vai style backing track for guitarists who want to shred in the Lydian Mode. You can also play pentatonic scales over this guitar Jam track. Excellent for improvising, learning modes, scales, chords, licks and arpeggio's in the Lydian Mode. This Q JAM TRACKS jam track in provides a visual representation of the chords and scales in diagrams as they appear in the music. Extra theoretical information is shown in the video. It is a backing track and tutorial (or lesson) at the same time. It's also a play along video for learning exiting and beautiful chords. Photos: Joe Satriani: By LivePict.com, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=8400888 Steve Vai: Toglenn [CC BY-SA 4.0 (https://creativecommons.org/licenses/by-sa/4.0) or GFDL (http://www.gnu.org/copyleft/fdl.html)], from Wikimedia Commons Used: Ibanez JEM 7v (www.Ibanez.com) Ibanez SD GR Bass (www.Ibanez.com) Takamine GD930 (www.takamine.com) Castilla Classical Guitars Rode Microphone Axe FX II (www.fractalaudio.com) Social Media/contact: www.facebook.com/QJamTracks www.instagram.com/QJamTracks www.youtube.com/QJamTracks (c)2018 Rob van Hal, Netherlands
Views: 357 QJamTracks
2302 - C++11 - урок 9
Это занятие номер девять по C++ по программе 23 ФЕВРАЛЯ. Код доступен по ссылке: http://www.almost-university.com/VladimirMozhenkov/code/2302-cpp2-09.tar.gz Сегодня мы обсудим работу с SQLite3. Вам понадобится установить libsqlite3-dev В случае если вы используете Ubuntu или другой дистрибутив основанный на Debian GNU/Linux вы можете сделать это с помощью: sudo apt-get install libsqlite3-dev Все остальные могут скачать его по следующей ссылке: http://sqlite.org/ Узнать о программе вы можете посмотрев видео: https://www.youtube.com/watch?v=DSnjtRHzw6M
Views: 1732 Volodya Mozhenkov
How to install eclipse CDT and g++ (C++ gnu compiler)
This video tutorial describes, how to install Eclipse CDT to the eclipse and how to fix errro on unable to find c++ compiler (or g++) error. So at the end of this will describes how to install g++ compiler to Ubuntu. (For more tech tutorial http://milindapro.blogspot.com/)
Views: 14425 Milinda Aruna
Beginning Objective-C Data Types: Enums and Bitmasks - raywenderlich.com
In this video tutorial, you'll learn about Enum and Bitmask data types in Objective-C. ---- About www.raywenderlich.com: raywenderlich.com is a website focused on developing high quality programming tutorials. Our goal is to take the coolest and most challenging topics and make them easy for everyone to learn – so we can all make amazing apps. We are also focused on developing a strong community. Our goal is to help each other reach our dreams through friendship and cooperation. As you can see below, a bunch of us have joined forces to make this happen: authors, editors, subject matter experts, app reviewers, and most importantly our amazing readers! ---- About Objective C (from Wikipedia) Objective-C is a general-purpose, object-oriented programming language that adds Smalltalk-style messaging to the C programming language. It was the main programming language used by Apple for the OS X and iOS operating systems, and their respective application programming interfaces (APIs) Cocoa and Cocoa Touch prior to the introduction of Swift. The programming language Objective-C was originally developed in the early 1980s. It was selected as the main language used by NeXT for its NeXTSTEP operating system, from which OS X and iOS are derived.[3] Portable Objective-C programs that do not use the Cocoa or Cocoa Touch libraries, or those using parts that may be ported or reimplemented for other systems, can also be compiled for any system supported by GNU Compiler Collection (GCC) or Clang. Objective-C source code 'implementation' program files usually have .m filename extensions, while Objective-C 'header/interface' files have .h extensions, the same as C header files. Objective-C++ files are denoted with a .mm file extension. About Datatypes: In computer science and computer programming, a data type or simply type is a classification of data which tells the compiler or interpreter how the programmer intends to use the data. Most programming languages support various types of data, for example: real, integer or Boolean. A Data type provides a set of values from which an expression (i.e. variable, function ...) may take its values. The type defines the operations that can be done on the data, the meaning of the data, and the way values of that type can be stored. Data types are used within type systems, which offer various ways of defining, implementing and using them. Different type systems ensure varying degrees of type safety. Almost all programming languages explicitly include the notion of data type, though different languages may use different terminology. Common data types include: integers booleans characters floating-point numbers alphanumeric strings For example, in the Java programming language, the "int" type represents the set of 32-bit integers ranging in value from -2,147,483,648 to 2,147,483,647, as well as the operations that can be performed on integers, such as addition, subtraction, and multiplication. Colors, on the other hand, are represented by three bytes denoting the amounts each of red, green, and blue, and one string representing that color's name; allowable operations include addition and subtraction, but not multiplication. Most programming languages also allow the programmer to define additional data types, usually by combining multiple elements of other types and defining the valid operations of the new data type. For example, a programmer might create a new data type named "complex number" that would include real and imaginary parts. A data type also represents a constraint placed upon the interpretation of data in a type system, describing representation, interpretation and structure of values or objects stored in computer memory. The type system uses data type information to check correctness of computer programs that access or manipulate the data.
Views: 1460 raywenderlich.com
Functional Programming in Python: Parallel Processing with "multiprocessing"
https://dbader.org/python-tricks ► Write better & cleaner code using Python's advanced features In this tutorial you'll learn how to do parallel programming in Python using functional programming principles and the "multiprocessing" module. We'll take the example data set based on an immutable data structure that we previously transformed using the built-in "map" function. But this time we'll process the data it in parallel, across multiple CPU cores using the Python "multiprocessing" module available in the standard library. You'll see step by step how to parallelize an existing piece of Python code so that it can execute much faster and leverage all of your available CPU cores. You'll learn how to use the "multiprocessing.Pool" class and it's parallel "map" implementation that makes parallelizing most Python code that's written in a functional style a breeze. As part of this video we'll build a little testbed program first that we can use to measure the execution time with the "time.time()" function, so that we can compare the single-threaded and multithreaded implementations of the same algorithm. Stay tuned for the next video in the series where you'll learn how to make your Python programs multithreaded using the "concurrent.futures" module as an alternative way to implement concurrency. FREE COURSE – "5 Thoughts on Mastering Python" https://dbader.org/python-mastery SUBSCRIBE TO THIS CHANNEL: https://dbader.org/youtube * * * ► Python Developer MUGS, T-SHIRTS & MORE: https://nerdlettering.com ► PythonistaCafe – A peer-to-peer learning community for Python developers: https://www.pythonistacafe.com FREE Python Coding Tutorials & News: » Python Tutorials: https://dbader.org » Python News on Twitter: https://twitter.com/@dbader_org » Weekly Tips for Pythonistas: https://dbader.org/newsletter » Subscribe to this channel: https://dbader.org/youtube
C++0x r-value references and move semantics
Presentation about r-value references and move semantics in the new C++0x standard of C++ language. In the presentation I talk about motivation for it and using and performance impact of it. Example of implementation in GNU CPP string http://gcc.gnu.org/viewcvs/trunk/libstdc%2B%2B-v3/include/bits/basic_string.h?revision=195738&view=markup#l2427
Views: 4018 LucasFranchesco
MATLAB vs. Octave
This is part of an online course on MATLAB. The course includes 5+ hours of video lectures, pdf readers, exercises, and solutions. No prior experience with MATLAB is necessary. The goal is for you to learn high-level, transferrable skills that will help you become a better programmer in any language. A major focus is on developing strategies for debugging (finding/fixing errors) and programming style. More info here: https://www.udemy.com/matlab-programming-mxc/?couponCode=MXC-MATLAB10
Views: 8963 Mike X Cohen
Emacs in 10 minutes!
A basic introduction to one of the more popular programming editors. Yes, I know I went fast - sorry. I'll make a longer tutorial at some point. This was more of a feature-overview type style. And I only had time for the basic features :)) Thanks for watching :)
Views: 129496 zaychenok
Don't Help the Compiler
Day 1 - C++ has powerful rules for dealing with low-level program structure. Before a program is ever executed, the compiler determines valuable information about every expression in the source code. The compiler understands exactly how long each object's resources will be needed (lifetime), whether each expression refers to an object that the program has no other way of accessing (rvalueness), and what operations can be performed on each object (type). Using examples from C++98 through C++14, this presentation will demonstrate how to write code that works with the compiler's knowledge to increase robustness, efficiency, and clarity. This presentation will also demonstrate the horrible things that happen when programmers think they can do tasks that are better left to compilers.
Views: 44217 Paulo Portela
Short synth recording using MS-20 mini and Ibanez Echo Shifter FX pedal. Bell/soft like cascade style. Enjoy. Author: MikeeUSA Dual Licensed: (C) Gnu GPL v2, CC-BY-SA 3.0
Views: 17 Gregory Smith
CppCon 2017: Nathan Sidwell “Adding C++ modules-ts to the GNU Compiler”
http://CppCon.org — Presentation Slides, PDFs, Source Code and other presenter materials are available at: https://github.com/CppCon/CppCon2017 — C++ modules-ts[1] proposes a module system, with defined interfaces, implementations and importing. I shall outline the new semantics, their impact on the ABI and build systems, and discuss the, in-progress, implementation in the GNU C++ Compiler. [1] JTC1/SC22/WG21/n4681, 'Working Draft, Extensions to C++ for Modules', 2017-07-14, Gabriel Dos Reis http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4681.pdf — Nathan Sidwell: Software Engineer, Facebook Nathan is a developer of the GNU Compiler Collection, particularly the C++ Front End. His current major project is implementing the modules TS. — Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
Views: 4265 CppCon
style chromium in gnu/linux
gnu linux style google chrome emerald
Проекты QtCreator [QtAsiPlugin]
Рассказываю немного про Qt, QtCreator и работу с проектами в нем. Флаги для шланга: Отключение предупреждения о приведение типов как в C: -Wno-old-style-cast Отключение предупреждения о безымянных структурах: -Wno-gnu-anonymous-struct Отключение предупреждений о безымянных union: -Wno-nested-anon-types Не помню что, но тоже полезно (он ложно что-то ругал без этого флага): -Wno-unneeded-internal-declaration
Views: 852 SR_team
Enhanced  SATRIANI / VAI Backing Track in A Lydian and C Lydian
An uplifting, educational and typical Satriani and Vai style backing track for guitarists who want to shred in the Lydian Mode. You can also play pentatonic scales over this guitar Jam track. Excellent for improvising, learning modes, scales, chords, licks and arpeggio's in the Lydian Mode. This Q JAM TRACKS jam track in provides a visual representation of the chords and scales in diagrams as they appear in the music. Extra theoretical information is shown in the video. It is a backing track and tutorial (or lesson) at the same time. It's also a play along video for learning exiting and beautiful chords. Photos: Joe Satriani: By LivePict.com, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=8400888 Steve Vai: Toglenn [CC BY-SA 4.0 (https://creativecommons.org/licenses/by-sa/4.0) or GFDL (http://www.gnu.org/copyleft/fdl.html)], from Wikimedia Commons Used: Ibanez JEM 7v (www.Ibanez.com) Ibanez SD GR Bass (www.Ibanez.com) Takamine GD930 (www.takamine.com) Castilla Classical Guitars Rode Microphone Axe FX II (www.fractalaudio.com) Social Media/contact: www.facebook.com/QJamTracks www.instagram.com/QJamTracks www.youtube.com/QJamTracks (c)2018 Rob van Hal, Netherlands
Views: 359 QJamTracks
Creating animation using C/C++
In old Borland Turbo C++ compiler I have found that , Graphics are more easily create then DEV++ of GNU.But I prefer the old traditional tool to create graphics in windows.
Views: 41366 Salman Mehdi
Overlord IDE for GNU Smalltalk
Overlord is a new IDE for GNU Smalltalk. It is a work in progress. You can do the basic things like adding/editing/removing namespaces, classes and methods. It has syntax highlighting. The main features lacking are: - Code exporting - Debugger - Inspector
Views: 2566 Canol Gökel
BASH Shell Scripting Tutorial in Linux #007 - for-loop "C-style"
Linux scripting tutorial using BASH, similar to UNIX shell scripting. This video shows how to use the "for" loop statement. The example will be similar to the C programming style for-loop where there is an initial value, conditional, and arithmetic expression.
Views: 1424 ShellWave
CppCon 2016: Neil MacIntosh “The Guideline Support Library: One Year Later"
http://CppCon.org — Presentation Slides, PDFs, Source Code and other presenter materials are available at: https://github.com/cppcon/cppcon2016 — At CppCon 2015 we introduced the Guideline Support Library (GSL): a set of portable vocabulary types for use constructing safe and efficient C++ programs. This talk looks at how the library has evolved in the course of one year. The talk will provide a brief review of the current set of facilities in the library, where it is available, how to build and contribute. Then the talk will look at how the library changed in response to feedback and contributions from the user community, as well as from the ISO C++ Working Group as parts of the library move through the standardization process for inclusion in the C++ standard library. The talk will cover lessons learned about how to optimize key parts of the library - such as the span<T> type - in the compiler, and what had to change in the library implementation to support this. It will present some examples of these optimizations and discuss performance of span<T>. Finally, the talk will include a status report on notable places the library is being used and preview what might be next for the GSL. — Neil MacIntosh Principal Software Engineer, Microsoft Neil is the lead for the C++ static analysis frameworks used widely within Microsoft, including PREfix, PREfast, and EspXtension, as well as the /analyze feature of the Microsoft C++ compiler. He is currently focused on making all these tools work better with portable C++14 code rather than nonstandard annotations. He also maintains Microsoft's implementation of the Guideline Support Library (GSL). — Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
Views: 5060 CppCon
From Crazy Insect Like Doors, To Disappearing Car Doors ............. SUBSCRIBE http://goo.gl/LqNRbT FREEZE HD ESPAÑOL https://goo.gl/bM38rd ------------------------------------------------------------------------------------------------------------ LINKS YO MOBIL SLIDING DOORS https://www.youtube.com/user/YOAUTOTV1/featured REZVANI SIDEWINDER DOORS http://www.rezvanimotors.com/beast-alpha/ ALFA ROMEO PANDION DOORS https://www.youtube.com/watch?v=3z0mAxHw9_g 1969 HOLDEN HURRICANE DOOR https://www.youtube.com/watch?v=iezc14zdYCM MERCEDES GULLWING DOORS https://www.youtube.com/channel/UCfRUa1Z5gTknsMMaKLthZIg FORD EVOS CONCEPT DOORS https://www.youtube.com/channel/UC-uGdDHxmwi_eH5t_ph9uuw TESLA FALCON-WING DOORS https://www.tesla.com/ GLM -G4 DOORS http://glm-g4.com/ KOENIGSEGG RAPTOR DOORS http://koenigsegg.com/ BMW ISETTA FRONT DOOR https://www.youtube.com/channel/UCYwrS5QvBY_JbSdbINLey6Q/ DISAPPEARING DOOR https://www.youtube.com/watch?v=AAtkoje4-eM BMW Z1 VERTICAL SLIDING DOORS https://www.youtube.com/channel/UCYwrS5QvBY_JbSdbINLey6Q ------------------------------------------------------------------------------------------------------------ ATTRIBUTIONS Copyright Free Images From Pixabay - https://goo.gl/ySr45y File: BMWZ1.jpg: By Karrmann (Own work) [GFDL (http://www.gnu.org/copyleft/fdl.html) or CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)], via Wikimedia Commons File: BMW Z1 (17560420290).jpg: By ilikewaffles11 (BMW Z1) [CC BY 2.0 (http://creativecommons.org/licenses/by/2.0)], via Wikimedia Commons\ File: BMW Isetta - Flickr - mick - Lumix.jpg: By Mick from Northamptonshire, England (BMW Isetta) [CC BY 2.0 (http://creativecommons.org/licenses/by/2.0)], via Wikimedia Commons File: BMW-Isetta 2009.jpg: By RudolfSimon (Own work) [CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0)], via Wikimedia Commons File: BMW Isetta 300 (blue).jpg: By GTHO (Own work) [CC BY-SA 4.0 (http://creativecommons.org/licenses/by-sa/4.0)], via Wikimedia Commons File: 2000-2001 Ford Falcon (AU II) Futura station wagon (2015-04-13).jpg: By EurovisionNim (Own work) [CC BY-SA 4.0 (http://creativecommons.org/licenses/by-sa/4.0)], via Wikimedia Commons File: Yo-conc2.JPG: By Brattarb (Own work) [CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0) or GFDL (http://www.gnu.org/copyleft/fdl.html)], via Wikimedia Commons File: Yo-conc3.JPG: By Brattarb (Own work) [CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0) or GFDL (http://www.gnu.org/copyleft/fdl.html)], via Wikimedia Commons File: 1955 Mercedes-Benz 300SL Gullwing Coupe 34.jpg: CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=120311 File: 56 300SL Gullwing opened up.JPG: By Writegeist (Own work) [CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0)], via Wikimedia Commons File:Mercedes-Benz SLS AMG (C 197) & Mercedes-Benz 300 SL (W 198) – Frontansicht, 10. August 2011, Düsseldorf.jpg: By M 93 (Own work) [CC BY-SA 3.0 de (http://creativecommons.org/licenses/by-sa/3.0/de/deed.en)], via Wikimedia Commons File: Autosalon Genf 2010 (4916076767).jpg: By Yannick Bammert (Autosalon Genf 2010) [CC BY 2.0 (http://creativecommons.org/licenses/by/2.0)], via Wikimedia Commons File: Bertone - Alfa Romeo Pandion (84).JPG: By El monty (Own work) [CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0) or GFDL (http://www.gnu.org/copyleft/fdl.html)], via Wikimedia Commons File:Bertone Pandion Concept rear.jpg: By Laszlo Daroczy [CC BY 2.0 (http://creativecommons.org/licenses/by/2.0)], via Wikimedia Commons File:Bertone Pandion Concept.jpg: By Laszlo Daroczy [CC BY 2.0 (http://creativecommons.org/licenses/by/2.0)], via Wikimedia Commons File:Flickr - plushev - Geneva2010 511.jpg: By Alexander Plushev (Geneva2010 511) [CC BY 2.0 (http://creativecommons.org/licenses/by/2.0)], via Wikimedia Commons File:Flickr - plushev - Geneva2010 527.jpg: By Alexander Plushev (Geneva2010 527) [CC BY 2.0 (http://creativecommons.org/licenses/by/2.0)], via Wikimedia Commons ------------------------------------------------------------------------------------------------------------ CREDITS PRODUCER & WRITER Wade Hutson NARRATOR BaerTaffy https://goo.gl/dWg1cn VIDEO EDITOR Robert Jackton ------------------------------------------------------------------------------------------------------------
Views: 5480383 Freeze Lists
Creating a raytracer for DOS, in 16 VGA colors
In this tool-assisted education video I create a raytracer from scratch. The raytracer renders in 16-color VGA palette at 640x480 resolution. Twitter: https://twitter.com/RealBisqwit Patreon: https://patreon.com/Bisqwit (alternatives at https://iki.fi/bisqwit/donate.html) Twitch: https://twitch.tv/RealBisqwit Homepage: https://iki.fi/bisqwit/ Source code: ‣ https://bisqwit.iki.fi/jkp/raytrace.cpp (only compiles in Borland C++ 3.1 and runs in DOS; this is verbatim the program that I wrote in this video) ‣ https://bisqwit.iki.fi/jkp/raytrace2.cpp (runs on most OSes, uses OpenMP thread-parallelism) ‣ https://bisqwit.iki.fi/jkp/raytrace3.cpp (runs on most OSes, uses CUDA for GPU parallelism, depends on this header file: https://bisqwit.iki.fi/jkp/helper_cuda.h) List of programs written by me that made this video possible: - ADLMIDI (This plays MIDI files through OPL3 emulation) - JAINPUT (Japanese input editor) - E.EXE (Full-screen DOS editor) - SPCPLAY (This plays SPC files, which are SNES music), however see below - New.php (With this I architected how exactly to input the code, where to resize the screen and where to scroll the window etc.) - INPUTTER (This tool ensured that the plan is followed perfectly, given the time constraints) - SPCtoMIDI (This converts log files created by SPCPLAY into MIDI files) - Firstframe.php (This rendered the various effects at 11:10 to 11:54 , after which the real rendered frames were displayed verbatim. The slowness in the beginning was how the BC++ compiled program would have appeared, but it was simulated with this PHP program.) - Animmerger (This ensured that the frames produced by Firstframe.php were indeed of the EGA palette and dithered the same way as the raytracing was) - Hudmaker (This converts raw audio and video streams and overlays graphical items, like subtitles, into it, and sends result to encoder) - Tile4 (This did the four-video inset at the end of the video. I got the idea from Freddy Wong (user:Freddiew).) List of significant programs involved that were not written by me (all but BC++ are open-source): - DOSBox and its associated utilities like "mount" - FreeDOS command prompt - Borland C++ compiler, Turbo Assembler, Turbo Link - SNES9x (I used portions of SNES9x in SPCPLAY) - MEncoder (Video+Audio Encoder; The video recorded by DOSBox was of varying FPS and of varying resolution, due to all the screenmode changes. With MEncoder I resampled them all into a common format, which was 3200x2400 120-fps RGB16 raw video.) - Lzop (I compressed raw video streams with this for intermediate storage) - GCC, GNU assembler, GNU gold (After verifying that the program _works_ on BC++, I compiled the _actual_ raytracer with this and did the actual rendering on a multicore Linux server, because raytracing is, well, quite slow) - Imagemagick (This converted 16-bit PNGs into 8-bit ones) - Audacity (I mixed audio tracks together with this tool) - Sox (I may have used it to convert WAV from/to RAW) - X264 (Video Encoder, used for the final encoding) - Oggenc (Audio Encoder, used for the final encoding) - MKVmerge (Video+Audio Multiplexer, used for the final encoding) - HDPMI32 also makes an appearance in this video, but it's a decoy, as is ADLMIDI in this video. The audio produced within DOSBox was discarded, because it was choppy. I recorded and mixed the audio separately. More source code links: ADLMIDI: https://bisqwit.iki.fi/source/adlmidi.html JAINPUT: https://bisqwit.iki.fi/source/jainput.html Animmerger: https://bisqwit.iki.fi/source/animmerger.html Hudmaker: https://bisqwit.iki.fi/source/hudmaker.html
Views: 118977 Bisqwit
Emacs as a C/C++ Editor/IDE (Part 3): Installing CEDET mode for true intellisense
Emacs as a C/C++ Editor/IDE (Part 3): CEDET mode for true context sensitive intellisense .emacs file is available at: http://barisyuksel.com/cppmode/.emacs or you can pull/clone it from github: https://github.com/byuksel/Emacs-as-a-C-Cplusplus-Editor-IDE-settings
Views: 32585 b yuksel
Creating a MicroBlaze emulator in C++11 (runs Linux!)
In this tool-assisted programming video, I create a portable emulator for a certain architecture that can run Linux, using C++11. The source code is about 780 lines in total. Twitter: https://twitter.com/RealBisqwit Patreon: https://patreon.com/Bisqwit (alternatives at https://iki.fi/bisqwit/donate.html) Twitch: https://twitch.tv/RealBisqwit Homepage: https://iki.fi/bisqwit/ Approximate count of lines of code per topic, in the source code: - 80 lines, CPU: Registers and constants - 230 lines, CPU: Interpreting and parsing CPU opcodes - 80 lines, CPU: Exceptions and Interrupts - 100 lines, CPU: Memory Management Unit (MMU) - 50 lines, I/O framework: Memory map, endianness and integer sizes - 50 lines, Device: UART (console I/O) - 60 lines, Device: Timer - 50 lines, Device: Interrupt Controller - 20 lines, Loading of Linux kernel from disk file - 60 lines, (other, and inaccuracies in the above numbers) All resources concerning this video can be downloaded from https://bisqwit.iki.fi/jutut/kuvat/programming_examples/microblaze/ . I do not own a MicroBlaze chip, nor any FPGA platform by Xilinx or anyone else. I just wanted to create an emulator that can run Linux, inspired by Fabrice Bellard's JSLinux at http://bellard.org/jslinux/ . For the emulator programming example that I wanted to create, I started looking for the simplest possible platform that can run Linux, and from reading GXemul source code, I initially went with DEC Alpha. However, after writing most of the CPU emulator for Alpha, I perceived that by adding the remaining parts, such as PALCODE emulation, the emulator easily grows far beyond what people could read and understand in 15 minutes (YouTube's currently enforced limit on my account). Thus I gave up with DEC Alpha. Then, when studying QEMU source code, I learned about MicroBlaze. I downloaded the official documentation of MicroBlaze, and found that it was possible to emulate it with a relatively few lines of code. I had the kernel up and booting in a few days, but I ran into serious problems when trying to get userspace programs work. Turns out, the GNU toolchain for MicroBlaze is not as robust as I thought it would be. I won't enumerate the exact list of problems I had, but metaphorically speaking, I spent two weeks wading a poisonous swamp, trying to find a way around thorny bushes that seemed to extend for miles in all directions. It was quite exhausting. Thanks to the MicroBlaze target GCC maintainer, Michael Eager, for being patient with me and my many questions and/or complaints. In the end, I settled for less-than-perfect and this is what you have. After all, my focus was in the emulator, not in Linux... Examples on how the MicroBlaze CPU differs from Intel 386/Pentium family (x86): - Many categories of instructions are optional, even ones that have been always present on x86. - All instructions are 32 bits in length (with an optional 32-bit prefix for long immediates). In x86, instructions are of varying lengths. - All memory access must be properly aligned. In x86, only a handful of SIMD instructions require memory addresses to be aligned. - MicroBlaze is big-endian (12345678h is stored in memory as 12 34 56 78). x86 is little-endian (78 56 34 12). There is also a little-endian version of MicroBlaze. - MicroBlaze has instructions with a "delay slot", where a branch/return will not take immediately effect, but after one extra instruction. x86 does not have delay slots. - Support for "flags" is very minimal. Only a handful operations support the carry flag. With x86, almost every operation affects the zero, sign, carry and other flags. - Floating point functionality is greatly reduced, and in fact, optional. In x86, the FPU is built-in (since Pentium), and supports more precision. - The TLB is software-managed, by the kernel software. In x86, it is hardware-managed from the paging tables that are stored in system RAM. Apologies if the text's tininess bothers anyone. From my previous videos I received feedback suggesting that I should try to maintain a broader visual to the source code rather than zooming in at times for focus, so I did exactly that. I also experimented with some ways to keep the aspect ratio natural even as it varies. Tip: HD. The ending cuts a few seconds short due to an unidentified encoding mishap. I put the text in annotations instead. The music in this video is played through ADLMIDI using OPL3 emulation. The songs are from SNES games Thunder Spirits, Bahamut Lagoon and Fire Emblem 4. I do some tool-assisted voiceover in the video. I had great fun doing that, not taking my cumbersome pronounciation too seriously. English is very difficult to pronounce, very difficult sequences of consonants and sometimes hard to choose the right phonemes to begin with. I have found Hebrew and Japanese to be significantly easier. Anyway, does anyone want to contribute closed-captions?
Views: 26147 Bisqwit