I am android application developer. I want to gain knowledge of linux systems & device drivers programing also. Where should I start?? Can any one suggest some books or links to tutorials...
Actually, there are not a lot of literature about AOSP programming. You should look for Embedded Android. But I can recommend you the following links:
Android porting guide.
"Embedded Android" book.
The presentation of the same author.
LDD 3
https://lwn.net/Kernel/LDD3/
CS:APP2e
http://csapp.cs.cmu.edu/
Professional Linux kernel architecture by Maurer Wolfgang is an excellent book.
Related
This is not a programming question but its more general. I have worked with lot of gui libraries to develop Pc/Mobile applications. Like cocoa for mac and iphone developemnt, .net libraries for c#, qt for c++. In an nutshell using of library depends on the language,developing platform and target platform.
Now my question: does that mean we have to choose language and platform according to GUI we want to build? for eg, I like the GUI and GUI componenents(their visual appearence) of the mac the most. Then should I use objective c and mac platform? If I want good looking GUI then should I choose language and platform according to that?
Thanks and regards
does that mean we have to choose language and platform according to GUI we want to build?
Yes, the language and the platform you are targeting are the first things you have to choose. Unfortunately there's no universal language that will give you great looking GUIs among all platforms. Probably that's one of the reasons why internet web sites developed so much. Because as long as you have a capable browser running on your device the site will work.
What is the best programming language for writing MIDI-interactive musical application that would be run on MAC and on Windows?
I've written cross platform (Mac OS X and Windows) MIDI applications using C++. I used the RtMidi for MIDI I/O which was incredibly easy to get going (on every platform just it just worked out of the box). The advantage of C++ is that you can use native GUIs on each platform, but if you're not already into C++ I'd say a cross platform project is a pretty ambitious first project.
One possibility is .NET (C# or VB.Net), which runs on Windows (of course) and Mac (thanks to Mono). The downside is that .NET does not have any native support for MIDI, so you'd have to tap into two different native APIs for MIDI.
Java is another possibility, since it has a number of MIDI-supporting libraries available. Your UI is bound to look pretty terrible, though.
Python has substantial support for MIDI and runs on Mac and Win.
pygame.midi
PyPortMidi
PythonMIDI
pyrtmidi
For both mac and windows I would suggest Java. Midi is just a protocol so any language can do it. A good framework will speed things up a lot. Java has frameworks to work with Midi and other multimedia sources.
PortMidi is another popular cross-platform MIDI library. Qt is a nice cross-platform Framework, GUI and utility library.
It's an old thread, but nowdays you can use .NET. I mean official cross-platform .NET from Microsoft, not Mono. In this case I can recommend my library – DryWetMIDI. Its core part (working with MIDI files, processing MIDI data and so on) is cross-platform for any OS supported by .NET.
As for working with MIDI devices, this API supports Windows and macOS (that's what you need). Full documentation of the library availabale here: https://melanchall.github.io/drywetmidi. There you can find full API reference and help articles. For example, overview article on working with MIDI devices.
The library is distributed via NuGet package and can be installed via NuGet on both Windows and macOS.
As I said in older questions, we(I and my friend) are trying to develop in a Macintosh IIci(System 7.5.5 68k processor), but we don't know where to start, then I'm asking here for some resources to develop on it. Thanks.
Buy yourselves a copy of Inside Macintosh (PDF), the official developer documentation for Mac OS (classic). Back issues of MacTech magazine are a good high-level place to start. In the day, MacTech was the journal for mac developers.
It's been a lot of years, but the prominent application frameworks in classic Mac OS were Metrowerks' PowerPlant, Symantec's Think Class Library. If you have a Metrowerks compiler, stick with PowerPlant, which has been open-sourced.
The Macintosh Programmer's Workshop might be a good place to start.
If you're going to develop for older versions of MacOS like System 7.x then you may want to use Pascal. Here are possible books and tools to look at:
Books
Inside Macintosh: Toolbox Essentials
Inside Macintosh: Imaging with Quickdraw
Tools
Metrowerks CodeWarrior 8 (or 10): PPC & 68K, Pascal, C, C++
Think Pascal/Think C: 68K only, Pascal or C
MacsBug
Some of the requirements (restrictions) for such a ui framework/toolkit are:
No single vendor lock down
Ability for real time data visualization
Good initial widgets
Good dash boarding capabilities
cross platform
Good development/debug environment
No flash
It's a pity you can't/won't use Flash. Else I could really recommend Adobe AIR. It has a good editor (Flex Builder built on Eclipse), a good component framework with many out of the box components, charting components set, ability to communicate with many different protocols (and you could write your own protocol implementation), cross platform, runs in the AIR runtime and not in the browser, file IO, ...
I wouldn't pass over Flex/Air (Flash) without a closer consideration but here are a few others I have come across:
wxWidgets
GTK+
Qt
There is also a slashdot post with links to some tookits I haven't heard of. I'll add their recommendations here:
GLUI, an OpenGL-based GUI
Whisper, a Mac/Windows application framework
WxWindows, a framework which supports Windows 3.1/95/98/NT, and Unix with GTK/Motif/Lesstif, and MacOS
YAAF, Yet Another Application Framework, offering suport for Macintosh OS, Windows 95 and Windows NT, and X Windows
CPLAT, a framework for developing MacOS and Windows (Linux soon) applications
Ardi's Carbonless Copies technology, which is a portable rewrite of much of the MacOS API
For general information:
GUI Toolkit/Framework Page
PIGUI FAQ Page
C++ User's Journal PIGUI Page
I might suggest Mozilla XUL, but it has some drawbacks:
No really good development / debug environment (although there are tools and debuggers; they are variable)
You are locked into a vendor, but it is Mozilla.
It is very easy to use though and allows you to reuse your web Javascript skills for a rich-client app.
There's also Java of course. It satifies all your requirements AFAICS.
Plenty of custom charting controls, which are things you will struggle to find for GTK/WxWindows/$other_small_userbase_framework.
If you dont like Swing(its come a long way - Metal is dead, long live SystemDefault L&F!), there are options like SWT or even QT bindings for java(QTJambi).
For C or C++ go QT, its APIs are really nice.
For RCAs check out Eclipse RCP. For RIAs, you might be interested in OpenLaszlo. It's a rich internet platform that can compile both to Flash and DHTML.
http://www.gnustep.org/
"GNUstep is a cross-platform, object-oriented framework for desktop application development. Based on the OpenStep specification originally created by NeXT (now Apple), GNUstep enables developers to rapidly build sophisticated software by employing a large library of reusable software components."
Portable to: Windows, BSD-based systems, Linux-based systems, HP/UX, , Solaris, Sparc, GNUstep Solaris 10 U2 vmware appliance, OpenSolaris, others.
I recently made a pretty complete list here: http://commadot.com/ria-frameworks/
ExtJS is probably my favorite and we use that at work. I think it satisfies your list. Otherwise, there are a bunch of other possibilities on that page.
I'm looking for a testing framework for the Windows kernel environment. So far, I've found cfix. Has any one tried it? Are there alternatives?
Being the author of cfix, I might be a little biased here -- but as a matter of fact, I am currently not aware of any other unit-testing framework for NT kernel mode.
If you should experience any problems with cfix, feel free to contact me.
Microsoft Static Driver Verifier is described as "a compile-time tool that explores code paths in a device driver by symbolically executing the source code. SDV is a unit-testing tool for Microsoft Windows device drivers based on the Windows Driver Model (WDM)."
Is that what you're looking for?