I was just thrust into Linux programming (Red Hat) after several years of C++ on Win32. So I am not looking for the basics of programming. Rather I am looking to get up to speed with things unique to the Linux programming world, such as packages, etc. In other words, I need to know everything in https://www.redhat.com/courses/rhd251_red_hat_linux_programming/details/ without spending 3K. Any ideas of how I can acquire that knowledge quickly (and relatively cheaply)?
Update: The things that I am used to doing on Windows like building .exe and dlls using VC++,
creating install scripts etc are just done differently on Linux. They use things like yum, make and make install, etc.
Things like dependency walker that I take for granted in the windows world constantly send me to google while doing linux. Is there a 'set' of new skills somewhere that I can browse or is this more of a learn as you go?
The primary problem is this: As a very experienced programmer in Windows,I am having to ask simple questions like what's the difference between usr\bin and usr\local\bin and I would like to be prepared.
Edited because I had to leave a meeting when I originally submitted this, but wanted to complete the information
Half of that material is learning about development in a Unix-like environment, and for that, I'd recommend a book since it's tougher to filter out useful information from the start.
I'd urge you to go to a bookstore and browse through these books:
Advanced Programming in the Unix Environment by Stevens and Rago - this book covers threads, networking, IPC, signals, files, process management
Unix Network Programming, Volume 1 by Stevens - This book is focused on network programming techniques, design - you might not need this until much later
Unix/Linux System Administration - This book covers the more system administrator side of stuff, like directory structure of most Unix and Linux file systems (Linux distributions are more diverse than their Unix-named counterparts in how they might structure their file system)
Other information accessible online:
GCC Online Manual - the comprehensive GNU GCC documentation
Beej's network programming guide - A really well written tutorial to network programming with the use of the BSD API. If you have done work with winsock, this should be mostly familiar to you.
Red Hat Enterprise Linux 5's Deployment Guide - talks specifically about Red Hat EL 5's basic administrative/deployment, like installing with package manager, a Red Hat system's directory structure...
make - Wikipedia article that will have links to the various make documentation out there
binutils - These are the Linux tools used for manipulating object/binaries.
GNU Build System - Wikipedia article about the traditional build system of GNU software, using autoconf/automake/autogen
Additionally, you will want to learn about ldd, which is like dependency walker in Windows. It lists a target binary's dependencies, if it has any.
And for Debugging, check out this StackOverflow thread which talks about a well written GDB tutorial and also links to an IBM guide.
Happy reading.
that is quite a large and diverse topic list. for the programming part i think the C++ library should be portable, things that are not should be documented. for the linux-admin part, i suggest you try to use linux as your main desktop system, as many notions are absorbed via day to day work, there is no magic tutorial
Thats a bit broad.
What kind of programs are you going to be doing?
If you stick to standard c++ you're good to go... and just man everything else.
The single most important thing you'll need is a 99 cent notebook titled "Sys Admin" kept next to your computer. Keep track of everything you install/update including directory location, date, and method.
For POSIX and such I can recommend Advanced Programming in the UNIX Environment
and having a bookmark to The single UNIX Specification.
For GCC/GDB and those tools I'm afraid I can't give you any good recommendation.
Hope that helps anyway.
Edit: Duck was slightly faster.
A good source is the Advanced Linux Programming book.
It's free and covers a lot of you are looking for
Related
(thread title) bedrock minecraft more recognizable as "Windows 10 Edition" Minecraft, is it possible to create a sub category UI menu similar to that in Java minecraft where it says "mods" but in bedrock? and to add mods you make a mods folder that adds the mods coded in C++ (which the language bedrock/windows 10 MC is coded in)?
although this has been answered by #Kosaro, I just wanna add that you can create plugins to use on a PocketMine server. this is mainly written in YAML and PHP, so its not really what your looking for exactly but it a bit more open than just the addons that Minecraft allows you to create. plugins like this are what make things like slapping a NPC on a server like Mineplex possible, or an economy system on a factions server. although this is all dependent on whether you have a pc to host the server, and if your willing to port forward to play with others
It is possible through Blocklauncher. And these mods are called native Mods. It involves disassembling a file in Minecraft apk and using the function calls to call our own function. It is actually so complex. I only found two places to learn.
Tutorials by artus9033 (I've never used these Tutorials)
Github page by byteandahalf (Note: Page 9 is WIP)
Blocklauncher also uses javascript as a bridge between C++ and Minecraft, but it only has very few functionalities compared to C++. Add-ons are also good but have very fewer functionalities than javascript.
Hopes it helps you
Edit1: Blocklauncher is dead I don't know it before. It will work for older versions.
Edit2: There is another app inspired by Blocklauncher which you may like
https://github.com/TripleCamera. I don't know how to install it, but he made it. Blocklauncher scripts will not work (I guess). Blocklauncher works for version 12 and below of Minecraft
No, Minecraft Bedrock edition (aka Windows 10 edition) does not support C++ mods. The only type of mod that Bedrock edition supports are "add-ons", which are either resource packs (which change textures, models, sounds, animations, etc) or behavior packs (which change how mobs behave).
You are able to modify the UI using resource packs, here is an example from the official wiki: https://minecraft.gamepedia.com/Tutorials/Bedrock_Edition_creator_guidelines#UI
You can find more information and tutorials on the official reference page: https://minecraft.gamepedia.com/Add-on
Yes it is possible but it would be very involved and I’m not sure if this would be what the question really pertains to. The way I’ve seen it done is by a program (modding client) injecting itself into the Minecraft process. The injection resembles a virus’s methodology somewhat and the source code for the hacking/modding program was mostly cpp. Look up horion hacked client github. The client seems to be dead now though.
I've received a dk 3200 kit recently. I know it's old but I would like to start using it to have more of a challenge than just arduino. It came with the board, an st flashlink FL-101B and some cables. I do not have the install disc, but I found the software for psd soft express online. It doesn't work with current windows 7 64bit. If I could use my arduino to program it, that would be great! Or maybe just do it through USB or the parallel ports? I've read that st provides a stm32 library used to help make code. If that works for my mcu, I'll use that.
Thanks
ST is a company that loves to re-organize their website and break links, but a data sheet for a part of what seems to be the same family as on your board is available from a toolchain vendor at:
http://www.keil.com/dd/docs/datashts/st/upsd321x_ds.pdf
On page 118 this seems to indicate that programs can be loaded using JTAG In System Configuration commands, which may be somewhat standardized though quick searching isn't producing a lot of leads. A reference is also made to ST's AN1153 which would be worth trying to locate a copy of, however it's not entirely clear if that will say anything about the programming, or if it only covers the additional two optional signals which have been added for hardware acceleration of the interface.
In theory, if you can find sufficient information about this device (looking at related devices may provide clues) then you should be able to craft a programming from an Arduino or anything else that can be adapted to twiddle bits at the appropriate voltage/threshold levels.
In practice, you may be better off trying to find an old Windows XP box, or even trying to run that software on a virtual/emulated environment and trap the I/O access either to proxy or to figure out what it is doing and reverse engineer your own programmer.
But unless you have a large installed base of boards using these chips, or particular need some unusual feature of them (I thought I saw something about a built-in CPLD?) it's really not going to be worth the effort.
After years of no programming I am on my way to learn C++ on my Mac OSX. My eager goal is the creation of an algorithmic/automatic trading software for use with Interactive Brokers.
Now, I downloaded their API for Mac OSX and the docs. But I get the notion that the API for MacOSX is only for usage with Java?
I case I am wrong: I would be very happy if someone could help me with a few lines of C++ for usage on the IB-API, e. g. opening a session or loading marketdata for a security?
Btw, I did that with R and after having found some examples it was quite easy to use.
Thanks.
IB also provides the so called "Posix C++ API" which should work on MacOSX (It's stupidly included within the twsapi_unixmac_*.jar archive).
There is an autotools based project (twsapi) from this original IB code which builds fine on MacOSX, see
https://github.com/rudimeier/twsapi
A more exciting example of how to use twsapi in practice you may find in the twstools
project there:
https://github.com/rudimeier/twstools
Another wrapper directly around the C++ Posix version that compiles and runs on many platforms is TwsApiC++.
You can find it at https://github.com/JanBoonen/TwsApiCpp
It also includes some examples.
I tried out the demo application which was pretty impressive. However building it and integrating it with my own code is hard because it's such a large project.
Has anyone successfully used it for their own projects? Was is difficult to build and integrate with your own C++ code?
Link: STLab.
For the interested: there's also a Google Tech Talk clarifying the philosophical ideas behind the project.
ASL is used fairly heavily within Adobe. The layout library (Eve) is used in many Adobe products and variants of it have been in use since Photoshop 5. The property model library (Adam) got a little use in CS4 and will likely be used more in future products. I can no longer speak with certainty because I left Adobe a few months ago and am now working at Google. I still put in some time on ASL and continue to collaborate with Prof. Jarvi and some of his students on the property model library (see the paper on the ASL wiki).
It can be a bit difficult to integrate with your product. The platform libraries in ASL (backends to Adam and Eve for Windows and Mac Carbon) started as some small example code, then the community started to refine it (the Windows port was initially a community effort), then we had some ambition to make it a real, supported library. But then Apple dropped Carbon for 64 bits and Adobe's framework plans changed so we weren't able to leverage our efforts here inside Adobe. Because of this the platform libraries are a little shaky - if your code base is already using a framework you might consider integrating Adam and Eve directly (the API for both libraries is very small). There are two challenges with integrating with a framework. Eve needs good metrics to do a good layout, including things like baselines - getting that from your UI toolkit may be tough. The property model library assumes a strict model/view/controller pattern that most UI toolkits don't obey so you have to do a bit of adapting. Feel free to ask questions on the ASL mailing list. We can also help with building - it really isn't as complex as it seems.
I watched the Tech Talk.. He sort of lost me when he showed the real world example code and then a massively shorter version using his model... I suspect that his implementation, just like anything else, would in practice be bogged down by real world considerations if actually pursued to solve real problems...
That said, it was interesting... The first half of the talk was great... I especially liked his assertion that Generic programming is the mathematics of coding...
I'm pretty much a total idiot when it comes to writing hardware drivers, however I'm fairly decent at C/C++.
I have a for fun project I want to work on that is attempting to use a device as a network tether proxy.
What I would like to do is create a driver that appears to be a network driver to windows, but actually sends/receives through a USB port connected to another device.
I have a pretty good idea of what needs to be implemented, but I don't know quite where to start looking for research info.
Any pointers?
Get the DDK It has lots of documentation and sample drivers to start from.
This article from codeproject is a tutorial on creating a WDM driver. I can't vouch for its correctness, but a quick skim showed a lot of information. It should be a good starting point for research.
I haven't gone through it thoroughly yet, but this article seems like a good introduction to programming device drivers in Windows.
EDIT:
Read it. It gives a good introduction to device drivers, briefly introducing related concepts and common pitfalls with good external links. Worth reading if you know nothing about drivers.
Apart from the DDK documention, a commonly recommended book is Oney's Programming the Microsoft Windows Driver Model (WDM). Though these days you might be able to just only develop for the newer windows driver foundation (WDF), which greatly reduces efforts in making your driver PnP and power aware.
Then the resources at OSR are great, both for beginners and advanced discussions, including essays, tutorials and mailing lists. OSR also has demo hardware kits to help you get started developing drivers for real devices.
Avoid codeproject (not professional at all)
Download the MS DDK with the dozens of samples (professional)