Reply
Thread Tools
noobmonkey's Avatar
Posts: 3,203 | Thanked: 1,391 times | Joined on Nov 2009 @ Worthing, England
#11
Originally Posted by jaem View Post
No problem! It was a bit more verbose than I normally would do, but it sounded like you were a bit overwhelmed, so despite the fact that most of what I told you is a quick search away, I figured that pointing you to Google wouldn't be very helpful. I was just trying to give you a kickstart, so you can start fiddling with things and learning right away. If you have questions about Ubuntu or Linux in general, then ubuntuforums.org or linuxquestions.org are probably more appropriate places to ask them, but if you have anything else to ask in the same vein as your initial questions, post them here and I'll do my best.
Cheers
Thanks again - i think you are dead right - i could go googling.... But what you just provided could have taken me days!

I think im going to literally see which of the above options i can actually install first! - whichever installs first will get my concentration over the next month or so

So far every set of instructions i have tried, even from developer sites doesnt work - normally because i probably havnt understood where or how to do what they are saying

As much as everyone hates microsoft at the way they work - i cant see issues in making things easier to understand!

It is a bit like my bosses at work, they insist on phrasing everything in such a way that people just have no idea what they are saying!
(And i work for the NHS - you would have thought we would be interested in communication skills!)

The one you are using pointed me at a page to download and compile more things?! - and i have downloaded 4 versions from the QT pages - all error-ing with:
Could not display "/home/maemo/Desktop/qt-sdk-linux-x86-opensource-2009.05.bin".

There is no application installed for this file type
(Bin files, changed permissions to allow them to execute - but just getting that!) - wow i never realised how noobish I was! and my job is to advise in IT! lol (Technically no need to use linux or coding advise though



ANyway - will report back soon!
 
edgedemon's Avatar
Posts: 383 | Thanked: 209 times | Joined on Oct 2009 @ London UK
#12
Originally Posted by jaem View Post

Being new to Linux, there's a lot you'll need to learn. If you can, try dual-booting a physical machine with Ubuntu, and use it for day-to-day computing as much as is practical - that's the easiest and quickest way to pick it up, especially since working in a VM is a bit of a bother. If you Google "free Ubuntu books", or some thing like that, you should find some eBooks that will get you started with Ubuntu, and for more technical guides about the kernel, the shell, scripting, etc, try The Linux Documentation Project. If you want to quickly get your feet wet in Ubuntu itself, UbuntuCat has a wealth of good newbie guides and cheatsheets to get you familiar with concepts like package management, and other things that are different from Windows.
Start there, and work your way up. Learn as you go, find tutorials, and use the OS as much as you can. I'm sure you're a bit impatient to get going, but you're much better off trying to get a good handle on Linux before trying to code on it - it'll save you a lot of frustration. If you've looked and you can't find what you need - ask. Maemo Talk is friendly, and the Ubuntu Forums are as well. Above all, have fun learning

Hope this helps,
A very good post Jaem, but it raises some important questions, or at least maybe a clash of cultures..
If the n900 is to take off, it will need to attract a new wave of developers, some from the linux world, but there could be an army of Mac or Windows developers as well as we are beginning to see now.
I have installed a linux VM, as well as the scratchbox and im working my way through some python tutorials. Having looked at linux, I like the community/open source approach but I hate the OS, dunno why, I just don't like it, look or feel, though I can appreciate that it is a powerful beast when you get to know it, and therein is the problem.
I have never coded for anything, but the n900 has made me want to code something/anything for the first time. My understanding of
Qt is that it is cross platform, so do I really need to use linux? Can't I learn to develop in Windows with python tools/IDE and fire up the VM when I want to test? Maybe Im looking at this in too simplistic a way, through inexperience, but I know I don't need to be running Mac OS X to code for the iphone or even understand it that well, surely I can code for the n900 without having linux as my desktop.
At best I can only run it as a VM, as I also game alot and love my adobe CS4 too much to switch over to ubuntu,
Is it really not feasible to develop in windows and use a VM for testing?? I know I will need to use the VM to understand the filesystem and as a testbed...
__________________
Hi! I'm Martin, a Maemo Greeter!

Useful links for newcomers: New members say hello, New users start here, Community subforum , Beginners'wiki page, Maemo5 101, Frequently Asked Questions (FAQ)

If I can help with anything else, just ask!

Last edited by edgedemon; 2009-12-13 at 18:04.
 
Posts: 237 | Thanked: 157 times | Joined on Dec 2009 @ San Diego, CA
#13
Originally Posted by edgedemon View Post
A very good post Jaem, but it raises some important questions, or at least maybe a clash of cultures..
If the n900 is to take off, it will need to attract a new wave of developers, some from the linux world, but there could be an army of Mac or Windows developers as well as we are beginning to see now.
I have installed a linux VM, as well as the scratchbox and im working my way through some python tutorials. Having looked at linux, I like the community/open source approach but I hate the OS, dunno why, I just don't like it, look or feel, though I can appreciate that it is a powerful beast when you get to know it, and therein is the problem.
I have never coded for anything, but the n900 has made me want to code something/anything for the first time. My understanding of
Qt is that it is cross platform, so do I really need to use linux? Can't I learn to develop in Windows with python tools/IDE and fire up the VM when I want to test? Maybe Im looking at this in too simplistic a way, through inexperience, but I know I don't need to be running Mac OS X to code for the iphone or even understand it that well, surely I can code for the n900 without having linux as my desktop.
At best I can only run it as a VM, as I also game alot and love my adobe CS4 too much to switch over to ubuntu,
Is it really not feasible to develop in windows and use a VM for testing?? I know I will need to use the VM to understand the filesystem and as a testbed...
For python development on the n900, it's not even absolutely necessary to have another box outside of the n900 at all.

The maemo-sdk/ crosscompile/build environment (scratchbox) is linux only. If you're doing c/c++ development for the device you do have to have a linux box to do your compilation/debugging/testing.

With python however, no build/crosscompile is necessary, you're essentially just moving text files around. If you get a PySide app running on your Mac, it should run in at least some capacity on the n900 once the proper dependencies are installed (note UI constraints and behavior will be different though)

If you want to try out python on the device, I'd recommend installing pyside-qt4-gui pygtkeditor and downloading the examples here: http://gitorious.org/pyside-examples

These examples are not maemo specific, they are generic QT4 examples that will run on your Mac as well once PySide is installed.

Load up the file for an example in pygtkeditor and run it. Go from there. I'm gonna try to post the PyQt4 app I ported today as I think it will be a decent example for people starting out with python/qt4 development.
 

The Following 3 Users Say Thank You to go1dfish For This Useful Post:
Posts: 307 | Thanked: 157 times | Joined on Jul 2009 @ Illinois, USA
#14
it should be noted, tho, that for any given application c++ will ALWAYS be faster and generally c++ will use system resources more efficiently. although there are a few scenarios where JIT compilers can manage memory more efficiently, they are generally outweighed by the inefficiency of having the rest of the program compiled JIT as well.

That said, python is easier to code in for basic stuff and thus can generally lead to quicker development times.

(posted from my n900)
 

The Following User Says Thank You to mmurfin87 For This Useful Post:
God's Avatar
Posts: 280 | Thanked: 72 times | Joined on Oct 2009 @ Switzerland
#15
Well, this is a site based for newbies. I think it'll be helpful for you.
__________________
How come wrong numbers are never busy?
 
Guest | Posts: n/a | Thanked: 0 times | Joined on
#16
Originally Posted by edgedemon View Post
A very good post Jaem, but it raises some important questions, or at least maybe a clash of cultures..
If the n900 is to take off, it will need to attract a new wave of developers, some from the linux world, but there could be an army of Mac or Windows developers as well as we are beginning to see now.
You raise a good point, and technically with a properly set up dev environment, you would't need to know all of the stuff I mentioned, however, when you're doing something as complex as coding, it's good to be really familiar with the platform (my belief is that if you're doing a non-trivial task, you should learn about it at the deepest level that is practical for you, both because you'll be generally better off, and because it will save lots of time when something goes wrong. The Open Source culture encourages that.). Also, my impression was that the OP didn't want to just scratch the surface and try to get by.
I think part of the problem is the power and scope of the Maemo platform; it's real Linux on a phone, not an OS designed specifically for mobile devices. You have to understand the paradigms it uses in a lot of depth, and if you're going to learn a Linux distro anyway (Maemo), then I would imagine the SDK developers figure that you can learn Ubuntu (which is similar). I see what you mean about it being a barrier to entry in some cases, but I don't see any easy way around it. More on this later...

Originally Posted by edgedemon View Post
I have installed a linux VM, as well as the scratchbox and im working my way through some python tutorials. Having looked at linux, I like the community/open source approach but I hate the OS, dunno why, I just don't like it, look or feel, though I can appreciate that it is a powerful beast when you get to know it, and therein is the problem.
This has been said many times, but keep in mind that the Maemo SDK is just one very small taste of what Linux can be, and also that it's intended for technical use. If you don't like Ubuntu, check out Kubuntu, or one of the other variants. The sheer magnitude of choice (even out-of-the-box choice) is arguably Linux's best strength and worst weakness, but if you like choice, then IMO you can't do any better. Look around a bit more - this website has archived screenshots of several different distributions, to give you a better taste of what's out there.
Originally Posted by edgedemon View Post
I have never coded for anything, but the n900 has made me want to code something/anything for the first time. My understanding of Qt is that it is cross platform, so do I really need to use linux? Can't I learn to develop in Windows with python tools/IDE and fire up the VM when I want to test? Maybe Im looking at this in too simplistic a way, through inexperience, but I know I don't need to be running Mac OS X to code for the iphone or even understand it that well, surely I can code for the n900 without having linux as my desktop.
At best I can only run it as a VM, as I also game alot and love my adobe CS4 too much to switch over to ubuntu,
Is it really not feasible to develop in windows and use a VM for testing?? I know I will need to use the VM to understand the filesystem and as a testbed...
As was mentioned, Python + Qt should work on anywhere both of those are supported, however, the Qt build that's distributed for Mac is not the same as the Maemo build, so you'll probably want to test on-device or in the SDK. Technically, you could code in C/C++ on a different OS (if your IDE needs the headers to parse, you could just copy them from the VM), but you'll have to compile and debug in the SDK anyway.
I think you have a point, but not one that's easy to address. One thing I notice is that the SDK assumes a higher level of competency with Linux than is maybe strictly necessary. I don't know what could be done to simplify that without changes to the SDK infrastructure itself, but in theory the workflow could probably be made simpler for non-*nix users.
 

The Following User Says Thank You to For This Useful Post:
Posts: 237 | Thanked: 157 times | Joined on Dec 2009 @ San Diego, CA
#17
Originally Posted by mmurfin87 View Post
it should be noted, tho, that for any given application c++ will ALWAYS be faster and generally c++ will use system resources more efficiently. although there are a few scenarios where JIT compilers can manage memory more efficiently, they are generally outweighed by the inefficiency of having the rest of the program compiled JIT as well.

That said, python is easier to code in for basic stuff and thus can generally lead to quicker development times.

(posted from my n900)
Certainly, python qt4 development is a great way to get started learning the Qt4 library though, without as much hassle up front.

Given that the current PySide/PyQt4 bindings are entirely unpythonic (pretty direct wrappers around the c++ api), all of the Qt4 knowledge gained during python development should translate well to c/c++ Qt aps.

It's a good way to see whats possible, before having to go through the cumbersome sdk setup/crosscompile process needed to do a c/c++ maemo app.
 
Guest | Posts: n/a | Thanked: 0 times | Joined on
#18
Originally Posted by noobmonkey View Post
Thanks again - i think you are dead right - i could go googling.... But what you just provided could have taken me days!

Originally Posted by noobmonkey View Post
So far every set of instructions i have tried, even from developer sites doesnt work - normally because i probably havnt understood where or how to do what they are saying
As much as everyone hates microsoft at the way they work - i cant see issues in making things easier to understand!
It is a bit like my bosses at work, they insist on phrasing everything in such a way that people just have no idea what they are saying!
(And i work for the NHS - you would have thought we would be interested in communication skills!)
Yeah, there is a lot of jargon, although most tutorial sites I've seen try to not use too much. The problem is that one has to assume at least some things, or a single tutorial would have to be huge, including every possible explanation. This glossary may be helpful to you: http://www.swpearl.com/eng/scripts/dictionary/

Originally Posted by noobmonkey View Post
The one you are using pointed me at a page to download and compile more things?! - and i have downloaded 4 versions from the QT pages - all error-ing with:

(Bin files, changed permissions to allow them to execute - but just getting that!) - wow i never realised how noobish I was! and my job is to advise in IT! lol (Technically no need to use linux or coding advise though
A few things. I'm not sure which page you're referring to, but you don't have to install Qt the hard way. If you're not familiar with Package Management, read up on it on the UbuntuCat site. It's a system that allows for a modular OS and applications, central distribution and updates for everything, and also tracks all of your system files. Linux very closely follows the philosophy of "a place for everything, and everything in its place", and package management allows for that to work by tracking all installed files in a database. The standalone installer you downloaded is an example of the "last resort" option, because often such things leave untracked files floating around on your system, which kind of defeats the point of tracking them (all personal files should go in your home directory unless you have a reeeally good reason not to). That said, kudos for working out the permissions issue. The reason for that is simply security - when you download a file, it is by default not executable, so that downloading random e-mail attachments (in theory) isn't going trash your system without your say-so. Because most normal users are going to use only the package manager, it's not usually an issue, but I've seen newbies get hung up on that problem for a while. :P
Anyhow, to get to the point, if you want to use Qt on the VM OS (Ubuntu variant), then you install it with synaptic in the GUI, or apt-get in the shell. However, that won't install it into the actual SDK. When you run /scratchbox/login, it puts you into a special shell that can run ARM applications, and can be used for building and debugging. The "home directory" in that shell is actually located in /scratchbox/users/maemo/home/maemo , and you should be able to open a file manager to there and either drop files into it, or open files from it in a graphical editor if you wish. Note I say should - if it doesn't work, let me know. You may need to use the sbox shell to actually do the compiling, although I seem to remember hearing that it comes with a plugin for whatever IDE it ships with that allows to do it in the IDE... don't quote me on that. If you want to install Qt in the SDK environment, you have two choices: Qt 4.5 (stable, but not a full Maemo port, and not going to be supported by Nokia), which is in extras, and is called libqt4-dev (technically that's a lie, but it's split into modules, and that should install them all for you in a more simple way than otherwise), or Qt 4.6 (potentially unstable, but almost fully integrated, and will be supported soon), which is in extras-devel.
So yeah, to summarize the first bit: check the repositories for your program first, then look to see if there is a standalone installer or other less desirable method, and only then worry about compiling if you need to. Package management is great, but the problem is that most distros do it a bit differently from each other, so you can't just take, say, a program distributed by Fedora, and install it on Ubuntu. It's kind of a "blessing and curse" situation - if programs are available (and most big distros have many thousands of apps and libraries), they're (IMO) simpler to find and install than in Windows, but on the other side, at least with Windows any old download will work.
 

The Following User Says Thank You to For This Useful Post:
Posts: 66 | Thanked: 44 times | Joined on Nov 2009
#19
Originally Posted by noobmonkey View Post
I'm used to the laymans programming of, install a gui design it, code it, test it go.... For example, install visiual studio... - the basic package is created for you - and you can insert lines of code and litterally compile and go.
You probably want to use ESbox then. It's based on Eclipse.

Is there a simple walkthrough for someone like me, step by step and holding my hand to do a Hello World style applciation?
Yes, it is here:
http://www.forum.nokia.com/info/sw.n...h_Maemo_5.html
 

The Following 2 Users Say Thank You to kyle For This Useful Post:
noobmonkey's Avatar
Posts: 3,203 | Thanked: 1,391 times | Joined on Nov 2009 @ Worthing, England
#20
Originally Posted by kyle View Post
You probably want to use ESbox then. It's based on Eclipse.



Yes, it is here:
http://www.forum.nokia.com/info/sw.n...h_Maemo_5.html

Ahaaaaaaaaaaa - something i can follow i think - listened to the first few, seems great! 0 will try again tomorrow!

Great to see everyone chipping in on here - loving the advice and finding it all fascinating, helpful and ever so slightly overwhelming hehehe

I will make an app! oh yes i will! (Just haven't figured out what yet!) hehehe
 
Reply


 
Forum Jump


All times are GMT. The time now is 10:40.