Multitouch simulation Image viewer - looking for someone to compile my code - Windows Mobile Development and Hacking General

Greetings,
I'm software developer on PC platform (few successful projects - for example quite innovative picture, comic viewer) - actually with .NET Basic by choice(I never was up to all C++, C# etc.)
I'm looking for someone who would realize, compile, use given code/algorithm to create working image viewer.
More precisely, I've on mind code that would simulate "multi-touch" zooming etc. Furthermore I've wrote basic eVB code - but didn't manage to run it from unknown reason :/

I am afraid you are out of luck as far as eVB is concerned.
It is not supported on the new OS, and by new I mean anything after WM 2002 (I think 2003 woks, but buggy).
You have two choices: convert your code to VB .NET or get someone to convert it to C / C++ / C#.
By the way C# is very similar to VB .NET so if you put your mind to it you should have no trouble learning it.
I do not know what your plans are for this software - sell it, distribute for free or what ever, but if you wan community help with the entire source it would probably be better if you published it.
Of course thats up to you, but if you intend to give people your code and have them help with development it would be a good idea to state the conditions upon which the code is given in advance to avoid unpleasant misunderstandings later on.

levenum said:
I am afraid you are out of luck as far as eVB is concerned.
It is not supported on the new OS, and by new I mean anything after WM 2002 (I think 2003 woks, but buggy).
Click to expand...
Click to collapse
Nah I thought about other way than eVB.
levenum said:
You have two choices: convert your code to VB .NET or get someone to convert it to C / C++ / C#.
Click to expand...
Click to collapse
I program in VB.net, about C# & C++ too - but I dislike them.
levenum said:
By the way C# is very similar to VB .NET so if you put your mind to it you should have no trouble learning it.
Click to expand...
Click to collapse
Matter of removing few operators and structures. And still most of operations is purely made on logic, mathematic level. So language doesn't matter except basic GUI.
levenum said:
I do not know what your plans are for this software - sell it, distribute for free or what ever, but if you wan community help with the entire source it would probably be better if you published it.
Click to expand...
Click to collapse
I assume it should be open source - however software that I develop on my own is freeware for non-commercial use with closed code. But as said - in this case I think it should be open source.
levenum said:
Of course thats up to you, but if you intend to give people your code and have them help with development it would be a good idea to state the conditions upon which the code is given in advance to avoid unpleasant misunderstandings later on.
Click to expand...
Click to collapse
Know that.
Unlucky few touch-interface based image viewers are developed, few commercially, rest isn't something special. From my own programing experience I know it's not hard to add some solutions.

Related

Where to start

Any chance someone can give me some information on how to get started. I'd like to start looking at developing software for the XDA II but don't know where to start.
Rob
Microsoft site:
http://www.microsoft.com/windowsmobile/resources/downloads/developer/default.mspx
Thanks alot, is there any real programming knowledge required or is it pretty intuitive?
Any help is much appreciated
Rob
Downloaded the eVC++ 4.0 and it's asking for serial details but I didn't see a Buy Now or anything. Do I have to register, is this free or do I have to pay?
Rob
Check out those valuable resources..
Pocket PC Developer Network:
http://www.pocketpcdn.com/
Windows Mobile Bloggers:
http://winmoblogs.net/
TinyGL:
http://www.opentribe.org/PocketTribe/TinyGL.html
for eVC++ 4.0, use this serial:
TRT7H-KD36T-FRH8D-6QH8P-VFJHQ
its FREE, but needs a serial :wink:
thanks alot, is there any real programming knowledge required or is it pretty intuitive?
Click to expand...
Click to collapse
if you never programmed before then vc++ will have a steeper learning curve then vb
but imho then programming is never truly intuitive
I've done web design and VB programming before and found both to be easier when using a little common sense
Thanks alot for all your help, keep anything coming that you think will be useful, it's much appreciated
Rob
visual studio can make vb applications for pocketpc i seem to recall
it cant make c++ or c# applications for pocketpc not sure why
if you want to make thos you need embedded vc++
All,
I've heard a few people around here saying that they develop in raw C so the don't have the MFC stuff to worry about. Can anyone tell me what compiler they used to compile raw C to work on Pocket PC or does eVC4 do it
http://mifki.ru/pocketgcc/down.html
gcc for pocketpc it's not raw c but i suppose you could call it raw c++
you also got the option of programming using .net from c# and c++ and vb if you dont like mfc (which many people dont)
True, but going down the .net route means forking out more money than I care to for a hobby.

Reading the registry with Visual Studio 2003

I'm developing a small application for my HTC Wizard, which I'm programming with Visual Studio 2003.
I need to open the shell application for M3U files, which I've tracked down to HKCR\M3UFile\Shell\Open\Command... but now I can't figure out how to either read that key to open the relevant player, or to execute the m3u file directly.
Because I'm using VS2003, I don't have access to system.win32 with the compact framework, so what techniques have others of you used to read or write to the registry?
Also, just as a side note, how do you find the current path?
Thanks,
Jon
There is no real concept of current path in CE. If you want to know the path your EXE is in, use GetModuleHandle(NULL) -- it'll return the fully-qualified path name of that process's EXE, from which you can parse out a path.
I'd advise against using the compact framework; .Net is a loser on PPCs as it just slows things down, taking up extra memory & cycles on a platform where both are in short supply. Use the real Windows APIs instead -- i.e. call RegCreateKeyEx/RegSetValueEx.
And if you choose to use Win32 API you can just call ShellExecuteEx()
and not mess with the registry.
RegQueryValueEx is what you need. Just set the appropriate type and buffer.
V
I'm always willing to learn new stuff... are there any good resources on programming for PPC without using .net?
I know there's EVC++, but I've installed it, and now I don't know what to do with it!
Regards,
Jon
JonTheNiceGuy said:
I'm always willing to learn new stuff... are there any good resources on programming for PPC without using .net?
I know there's EVC++, but I've installed it, and now I don't know what to do with it!
Regards,
Jon
Click to expand...
Click to collapse
You can either use EVC++4, which is free but has an aged, not-so-standard C++ compiler (since it based on VC++6...but it only means a few quirks), or you can use Visual Studio 2005 which is supposed to replace EVC.
Jon, not to state the obvious, but there are many c++ tutorials for the PPC on the interweb.
What kind of experience do you have?
V
I have no prior experience with C++ - I bought the C++ For Dummies book in a charity shop a month or so ago, but it seems to refer to software that isn't available any more!
My core experience is with PHP, and recently I've been more interested in VB.NET for small apps at work, but most of what I want to do is with Windows Mobile - for which, all I have is Visual Studio 2003, and my co. won't fund me buying VS2005 as I got it for an old project that I still maintain, and anything new I need to write for work I can do with VS2005 Express...
That said, I'm not afraid of learning a new language, especially something as powerful as C++.
C++ for dummies is excellent, the best I've come across so far.
Have a read through this:
http://forum.xda-developers.com/viewtopic.php?p=209136#209136
I'm currently unlearning and then relearning my c++ - one thing I've learnt coming from other languages - c++ requires discipline. It's not about shortcuts, you build up from the basics and keep going steadily. But you need to be logical, and prepared to put in the effort. So discipline - it's been a long time since I've had to think about that!
V

Which Development tools for WM 6

Hi all you experienced WM programmers.
I'm new to windows mobile, but program other environments for a living(micro controllers, embedded linux, win32 etc)
I was wondering what the development tool of choice is for WM ?
I know that on Win32 .net development sucks blocks...yes I develop extreme low latency process control stuff and the abstraction from hardware in .net makes it unusable for such programming as you totally lose control over memory allocation etc.
Being as the WM is such a limited devices I presume the same issues are found there as well. So what are you guys using to develop? strictly embedded c/c++ or is there something else out there that is useful?
Thanks in advance for any suggestions
You defiantly want embedded!
You can use the free eVC or the expansive VS 2005, but if you want quick native code programs or to write system components like today plugins and keyboards this is the only way to go.
If you think .NET is bad on a PC just wait till you see it in WM. Because of the limited resources of these devices its a sluggish nightmare!
levenum said:
You defiantly want embedded!
Click to expand...
Click to collapse
http://www.d-e-f-i-n-i-t-e-l-y.com/
Other Developer environments.
Have you considered the PPL programing environment.
Provided is an IDE environment both for the PC and PPC. This means that applications can be developed and run on both platforms. Not sure about latency, however you can create .exe files from you're code and interface to external DDL's.
There web site is http://www.arianesoft.ca/page.php?1 and a trail version can be downloaded. The trail gives basic functionality with a 15 day full function registration option.
The Developer is quite open to questions and the forums are also quite active.
Not sure how deep you wish to access the OS/HW however it may be worth considering.
Cheers.
burkay said:
http://www.d-e-f-i-n-i-t-e-l-y.com/
Click to expand...
Click to collapse
Yea, that one slipped by me even with the spell checker.
Excuses:
1) I was tired.
2) English is not my native language.
I'll just leave it there because its pretty funny. And hey, using native code instead of .NET is in defiance of Bill's wishes!

Programming CE, Book and resource recommendations

Hello,
After a decade of not doing C, I find that alot of things have changed when programming c++ native for CE. Even things like:
string somestring;
no longer function. Wow!.
strcpy has been replaced with StringCchCopy. Wow, MS has done a number here... and so on...
Anyhow I searched xda and found allot of good threads. But what if I'm looking at re-learning C++, with a focus on CE programming only? What books and other resources would you recommend, its almost like starting from scratch. I got vs2005 + emu + been reading allot of MSDN, did some basic apps. etc.
BTW: How the .... do you declare a variable length string???
and in VS2005 is running the debugger the only way to get the app to start automatically ???
Thanks
*bump*, anyone?
Couple of notes:
1) I strongly recommend avoiding VS, it is unbearably slow and balky.
2) strcpy and all the other functions are still supported by c runtime on CE (VS 2005 complains about them but you can ignore it). The problem is all windows API on CE use UNICODE so you have to declare strings as WCHAR (thats MS speak for unsigned short) and use wcscpy, and such.
3) The only book I know on CE specifically is this and I only read the two sample chapters online, so can't really recommend it. (Though the sample chapters were very useful). What you need is to get a good book on Win32 programming that will get you well on your way.
4) There is an MFC class CString which wraps up all string related functions very nicely. If you are not using MFC but clean C/C++ the only thing I can think of is malloc and free or the C++ versions new and delete.
Check out the links in my sig if you want to see code examples of small but functioning apps.
I disagree with levenum's comment on VS, but agree at the same time (weird I know). I wouldn't use VS for native development because it has A LOT of extra features that I think would be useless for native developers. Also, the lighter eVC++ has pretty much everything you need to write native apps.
I had this book called "Programming Windows CE 3.0" or something along those lines a few years ago. I got it for like $3 on Amazon. If you can find an updated version of that (or even the old version would be useful) then you should buy it. It will show you all you need to know to get started. You can learn the new api's from browsing msdn.
If you're only a little rusty with C/C++ I would suggest jumping right in to the Sdk samples and seeing how they do things.
Thanks, the reason why I wanted to use VS is so that maybe later I wouldn't mind going into MFC. So having one platform would be nice.
So far I have done some basic things, like drawing, etc, but I find I'm having a harder time making strings and including the api's to work. Almost all of the msdn examples fail to compile properly.
I have an old book MFC for Windows 95 by MS, is it even worth looking at ?
robp said:
I disagree with levenum's comment on VS, but agree at the same time (weird I know). I wouldn't use VS for native development because it has A LOT of extra features that I think would be useless for native developers. Also, the lighter eVC++ has pretty much everything you need to write native apps.
I had this book called "Programming Windows CE 3.0" or something along those lines a few years ago. I got it for like $3 on Amazon. If you can find an updated version of that (or even the old version would be useful) then you should buy it. It will show you all you need to know to get started. You can learn the new api's from browsing msdn.
If you're only a little rusty with C/C++ I would suggest jumping right in to the Sdk samples and seeing how they do things.
Click to expand...
Click to collapse
could you provide some links for msdn. also i know how to program in c but how do i compile a program for windows ce could you recommend a free one. thanks
The only way to code for Windows Mobile for free is to use embedded Visual C++. You'll have to google it to find a link.
Once you have that downloaded, check out:
http://msdn2.microsoft.com/en-us/library/bb158662.aspx
The new solution files most probably won't open in eVC++ but you can create new projects and add the source files yourself.
You'll want to look at the samples in the Win32 folder.
robp said:
The only way to code for Windows Mobile for free is to use embedded Visual C++.
Click to expand...
Click to collapse
That's not entirely true - there's still ceGCC (it works on linux or windows using cygwin) - however this one lacks resource (window, forms, etc) editor (but if you have resources already created it will compile/link properly). But it works great with apps where you want to handle all the graphics and user interaction by yourself (like games, or programs with 100% custom UI), for example using SDL, pocketHAL, etc.
Also, wxWidgets seems to have support for windowsCE, and might be made to work with ceGCC, but i haven't tested it yet.
Sorry, I actually meant to put "(I think)" after that sentence lol.
Actually I think you should be able to use any C++ compiler as long as you have the necessary libraries, and I think all the libs you need are in the sdk download. But the easiest route for beginners in native coding is probably eVC++
Well, now i can agree with you
That is, unless you want to create games - in that case ceGCC+XFlib might be a good way to go for someone with general programming knowledge, but not familiar with winCE-specific coding. Some games coded with it (and their sources) can be found on XFlib homepage: www.xflib.net.
thanks for the info
Ok, as I wouldn't mind at a later time going into MFC, and building dll's for mobile. How much "harder" would it be for me to learn VS2005 native for ce instead of using evc++ ?
Just trying to weight the cons and the pros. BTW where can I get eVC ?
Thank you.
Two more free options: PellesC and Lazarus + WinCE add-on
I don't think it would much harder. Once you get the hang of it you'll find that it makes life much easier. If you buy a boxed retail version it comes with a nice book that will take you from n00b to master in a few hours (not really but it's still a great reference).
I think the hardest part of upgrading to newer versions of VS is learning the new project file setup. Atleast that's what it looks like from watching other students at my school go from VS6.0 to VS2k5 and 2k8.
Also, I should note that I prefer VS2008 hands-down, but I don't disagree with other people who say eVC++ is faster. While I haven't done any real native development since eVC++ 4 was new, I still dabble a bit (especially since getting active on this forum) and VS2005 works great to me.
So, my advice would be to use the newest tools available to you, unless money is an issue. But don't be worried about upgrading. Your life will only get easier once you do.
robp said:
Also, I should note that I prefer VS2008 hands-down, but I don't disagree with other people who say eVC++ is faster. While I haven't done any real native development since eVC++ 4 was new, I still dabble a bit (especially since getting active on this forum) and VS2005 works great to me.
So, my advice would be to use the newest tools available to you, unless money is an issue. But don't be worried about upgrading. Your life will only get easier once you do.
Click to expand...
Click to collapse
Well I just got eVC and will give it a try too. But I am pretty much used to vs2005. I do not think I can't afford the vs2008 right now. How much difference is there between 2005 and 2008 when it comes to programming for WM?
I'm looking to create some commercial applications for WM. For the last 10 years I'v been doing .com apps, now I figured I would do some for the mobile platform. We have all the graphics/design/marketing guys for .com, so it should work out just fine for WM.
One thing we noticed when working with exec type people is their frustration, I see exactly how we can help them resolve their frustration with WM, Symb, and java type phones...
Thanks
marek101 said:
Well I just got eVC and will give it a try too. But I am pretty much used to vs2005. I do not think I can't afford the vs2008 right now. How much difference is there between 2005 and 2008 when it comes to programming for WM?
I'm looking to create some commercial applications for WM. For the last 10 years I'v been doing .com apps, now I figured I would do some for the mobile platform. We have all the graphics/design/marketing guys for .com, so it should work out just fine for WM.
One thing we noticed when working with exec type people is their frustration, I see exactly how we can help them resolve their frustration with WM, Symb, and java type phones...
Thanks
Click to expand...
Click to collapse
Honestly I wouldn't rush to upgrade. VS2008 is better, but doesn't add much to the WM development arena.
And if you already have VS2005 and are used to it, I would stick with that and forget about eVC++. You should give the compact framework a try. I promise you'll love it
compact framework, that's a part of the .NET isn't it?.
For the time being, for learning purposes, I think I will stick with the native for now. Once I get a grip, I will explore .net. The thing is I really don't like bulky apps for WM. Most of the apps I came across that required the .net framework were slow, any apps that use the .net with a today plug in seem to really slow down my phone.
BTW is HTC Home plug in written with the .net?
Thanks
marek, it seems to me that you are under the impression that you need VS 2005 to use MFC.
eVC fully supports MFC as well as creating DLLs and MFC DLLs.
It admit the reason I don't like VS is because I only write in native and don't like .NET languages a lot.
Since you want to create commercial apps you should note that any app created with WM 5 SKD will not be backwards compatible with WM 2003 which reduces your clients range.
You should compile with WM 2003 SDK which is forward compatible.
Our primary target audience would be WM6. We will make every effort to make WM5 compatible apps. Yes it does reduces significantly the client base, but also there are many positives...
We are still looking for more programmers for the simple concepts we have developed. I believe this will work out just fine. Having WM5 support is a "would be nice" but not required. WM5 has a bag of problems, 2003 I don't even want to touch it.
Thanks
I have to admit that I love VS because I love using .net
But VS is also a much more powerful editor in general than eVC is. It's still nice but the experience isn't as smooth as it is in newer versions, which is expected since the newer versions build on the previous ones.

noob question: How to start programming?

Hi all,
Finally I've my HD2 and I must say, I'm very happy with it!
I'm no noob in informatics, I program in VB and VBA and I'm DBA in Oracle and SQL Server. But to be honest, I don't now how to start.
I tried searching the forum here, but couldn't find a thread: how to start programming on a WMO-device.
Thanks already for the info!
Koen
PS for example I would like to program this:
keyboard layout French (AZERTY)
T9 language Dutch
Koen D said:
how to start programming on a WMO-device.
Click to expand...
Click to collapse
You start programming for WM the same way you do it for Win32. Just download mobile SDK from Microsoft and you're good to go. You use the same IDE, Visual Studio, for mobile programming, and coding experience is the same, in addition to the fact that a lot of code using WinAPI will just work. There are differences of course with regard to memory management or power management etc., but those are either documented on msdn or are discussed at length everywhere on the web.
VB and .Net won't be good for your purpose though, you'd need native C++ code for things like rewriting a T9 engine I think.
Hey hey!
You can find many interesting postings and topics here:
http://forum.xda-developers.com/forumdisplay.php?f=522
http://forum.xda-developers.com/forumdisplay.php?f=260
There are much more. Please look for the "stiky" posts. There are often very usefull informations. Sure, the moderators open some stikys "just-for-fun"... ... but many topics are realy interesting.
Some external sites can help you, too:
http://developer.windowsphone.com/Default.aspx (of course)
and
http://www.smartphonedn.com/
you can became a part of the msdn (winmo special) here:
http://msdn.microsoft.com/en-us/windowsmobile/default.aspx
When you became a good dev. You should look for 3rd party stuff like:
http://www.resco.net/developer/default.aspx
For the beginning it should be enough.
regards
You can also program in mobile java, which will make your app portable to more devices.
http://java.sun.com/javame/index.jsp
Do you want to be a ROM chef, or programmer?
Or both ?
To just program for the Windows Mobile OS, you can
grab a (free) version of Microsoft Visual Studio 2010/2008
and download the WIndows Mobile development resource kit
from them.
Then you can blast away in C#, C or .NET
If you just want to cook ROM's then look at the kitchen thread.
Look at that thread anyway
Try Visual Studio, VB.NET and the Windows Mobile SDK there it is s
Hi mates, want to ask which is the best programming language for WM? C, C++, C#, VB.Net or something else. I did use C# a lot and can do little thing with SQL Compact. But, it seems lot of the current applications are not require .Net Framework installed on WM. Are they using C++?
Also, is there anything need to be considered for WM Web Programming (such as JavaScript, CSS support)?
siamchen said:
Hi mates, want to ask which is the best programming language for WM? C, C++, C#, VB.Net or something else. I did use C# a lot and can do little thing with SQL Compact. But, it seems lot of the current applications are not require .Net Framework installed on WM. Are they using C++?
Also, is there anything need to be considered for WM Web Programming (such as JavaScript, CSS support)?
Click to expand...
Click to collapse
yep. most WM apps use C++, but even the C# apps will run as most of the ROMs contain the .NET fw by default
I have a question as well, are there any free-for-freeware frameworks for touch-friendly applications? Is there a Sense SDK?
bayowar said:
I have a question as well, are there any free-for-freeware frameworks for touch-friendly applications? Is there a Sense SDK?
Click to expand...
Click to collapse
Microsoft has an SDK for 6.5's gesture support. I've not got around to using it yet though, so can't comment on it's quality or breadth of support.
Is there something I cant build using C only in this phones?
I mean can I build a complete rom, applications and such using only C?
thats the only lang I know so...
mr_Ray said:
Microsoft has an SDK for 6.5's gesture support. I've not got around to using it yet though, so can't comment on it's quality or breadth of support.
Click to expand...
Click to collapse
I've seen that, what about buttons, sliders, tabs, flickable lists and all this stuff though. I've never developed for a mobile platform and I'd imagine starting from scratch with all UI elements steepens the learning curve quite a bit.
siamchen said:
Hi mates, want to ask which is the best programming language for WM? C, C++, C#, VB.Net or something else. I did use C# a lot and can do little thing with SQL Compact. But, it seems lot of the current applications are not require .Net Framework installed on WM. Are they using C++?
Click to expand...
Click to collapse
There are pros and cons to using managed code (C#/VB), and the same holds true about native code (C++). The former is much easier for high-level tasks, but you get less control and it may get a bit tricky when you need to access WinAPI not included in .Net CF (although there are usually ways to do it via Platform Invoke). .Net applications start slower, which may be an issue for certain tasks. Native code is (should be) faster, but a bit more complex and you don't have things like automatic garbage collection and so on. Sometimes you need a couple of lines of code in C# instead of two dozen in C++. Sometimes not. On the other hand, writing something like a graphics-heavy game in C# would be a strange endeavor. Some things are outright impossible like writing a system service, AFAIK. All in all, the pros and cons are described at length everywhere, and it's up to you to decide.
bayowar said:
I have a question as well, are there any free-for-freeware frameworks for touch-friendly applications? Is there a Sense SDK?
Click to expand...
Click to collapse
In the Development and Hacking section you'll find a C# GUI framework (it's called Manila UI Framework or something like that) made by a fellow XDAer.
bayowar said:
I've seen that, what about buttons, sliders, tabs, flickable lists and all this stuff though. I've never developed for a mobile platform and I'd imagine starting from scratch with all UI elements steepens the learning curve quite a bit.
Click to expand...
Click to collapse
If you want non-standard UI elements it can get tricky. For standard UI it's a no-brainer. There are some third-party libraries available. In addition to the C# framework I mentioned earlier, there's Qt (a cross-platform UI framework used by Opera for all their desktop (Linux, Win and Mac) and mobile (WM and Symbian) and embedded platforms including TV set-top boxes) incarnations, Airplay SDK that's a cross-platform framework for Android, WM and iPhone, some others I can't recall right away. They may or may not be free however.
Thanks for the reply, good to know about Qt. I'm vaguely familiar with that, had now idea it found it's way to Windows Mobile.
The Manila framework is called Manila Interface SDK, at least that's the only match I found.
bayowar said:
I've seen that, what about buttons, sliders, tabs, flickable lists and all this stuff though. I've never developed for a mobile platform and I'd imagine starting from scratch with all UI elements steepens the learning curve quite a bit.
Click to expand...
Click to collapse
Actually it is not the UI but the SDK that has a steep learning curve. Besides the usual loops and if then else.. you need to know exactly which library does what and there is the confusion as there are a couple of them doing similiar things eg Messaging API. At least that is what I encountered when I first started and I agree that C++ has a huge advantage over C# or VB.net as it can interact directly with the hardware api instead going over in a big circle and sometimes, some functions can't even be achieved using vb.net!
Just install vs.net and catch up on OO by diving into vb.net.
You'll be fine coding in either C# or VB.NET, the BCL for Ce is leaner than that for full blown windows but still very usable. After installing vs2008 don't forget to update the default install to wm6.5 sdk.
siamchen said:
Hi mates, want to ask which is the best programming language for WM? C, C++, C#, VB.Net or something else. I did use C# a lot and can do little thing with SQL Compact. But, it seems lot of the current applications are not require .Net Framework installed on WM. Are they using C++?
Also, is there anything need to be considered for WM Web Programming (such as JavaScript, CSS support)?
Click to expand...
Click to collapse
Hi mate,
I reckon c++ so u dont need to redisttibute the framework and your app will run fast, but if u want to write apps with db access net framework is the easy way, I'm in Sydney and I do c++ so PM if u need some help,
cheers,
Hlov
BTW is there some good app for programming in my HD2? taking my work on the go? something like visual studio mobile version?

Categories

Resources