|
You can get cheap tablets these days running Android. Here in the UK, Binatone have cheap Android Homesurf tablets on sale for £130. You'd obviously need to develop for Android here, but the good news is that it's free to develop for.
|
|
|
|
|
So that would be using Java and eclipse as my development environment?
Android doesnt have any visual studio tools do they? I have the express
version at home, and use a professional version at work.
I could tackle learning java for that..
|
|
|
|
|
|
Thank so you so much for the suggestion and help.
Got it all installed, did the hello world thing.
It rocks.
Now to get a better understanding of Java and android
and I am ready to help some kids.
|
|
|
|
|
Great. Wish you good luck.
If u can Dream... U can do it
|
|
|
|
|
Forget about the technology and work with those who are prepared to contribute. If their skill-set is Java, go with Java, if there skill-set is .NET, go with .NET. Work with the people, not the technology.
If you are it! There is a steep learning curve. It's worth while but don't expect to get anywhere in a hurry. Maybe the quickest is VB.NET
Architecture is extensible, code is minimal.
modified on Tuesday, January 4, 2011 9:30 AM
|
|
|
|
|
Thank you for that, appreciate that. I must admit that mostly I am looking
at cost. Lots of special need families dont have the money laying around
to afford the devices from Apple or microsoft. Google offers a cheaper solution
that more people can afford. Yes java is a learning curve for me, going to take
time to get there. Also want to provide these applications for free, the
cost of development for me, I can afford and will allow me to make my
applications free. Its a labor of love.
|
|
|
|
|
So who are these people and what are your goals? Maybe the Codeproject community can help.
Architecture is extensible, code is minimal.
|
|
|
|
|
The people I am mostly interested in reaching are Autistic kids, that are non-verbal.
Being the father of a non-verbal kid, its something that touches my heart. I want
to give my own son a voice , just in case he never develops his own. Most people
assume if you cant speak there are no words in your head. Technology is showing
us this is not true.
AAC devices, while a help with these kids are very expensive. Most units will
run for about 1.5K. Some of the good software out there runs about $225 dollars
plus the expenses of hardware. So an Ipad would run about 1k, still cheaper
than the 1.5k of the JUST AAC units on the market now.
The smart phones, such as the droid and Iphone are great, but for this
we need tablet devices. Because some of these kids also have motor control
issues, where a phone device would be hard to use. A tablet the perfect size
and portability to use in public.
My short term goals is to develop a free AAC device on a droid platform.
My long term goal, is to be able to fund raise to get these type of devices
into the hands of kids that have disabilities. Android is cheap, android tablets
are getting cheaper. I am thinking for the price of just one Ipad, I can produce
3 droid tablets with special software. More kids would be helped.
Yup long road to get there, have to learn java, get myself a droid tablet device.
But for me this seems a Financial reality with the droid, than apple or Microsoft
could provide.
|
|
|
|
|
These tablets will all become around about the same price in time. Java being cross-platform makes it your best bet. Conceptionally I think what you learn from this, will have many applications.
Architecture is extensible, code is minimal.
|
|
|
|
|
Todd
If you have the ideas I'm sure there are a number of professional devs here (I would be one) who would be more than happy to get involved in developing the software for you. The most difficult thing I find is getting the idea, designing the app and coding it comes easy.
I would even go so far as proposing it to CM as an official CP project, there are a lot of us out there who would like to help but do not know how their skills can contribute, this may be one of the ways.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
I would be very interested in this. Not just for my own son, but for
a lot of people that live with challenges in their life.
I do not have a link to this blog site on me at the time. But something
I read over the weekend really made me realize how important the computer
can be for a challenged individual. A non-verbal Autistic boy wrote this
about his life.. "Before typing my life was poor, now I am free.."
People dont realize that their code can give so much for a person life.
Words are important, without a way to express them, you lead a very lonely life.
I am very interested in AAC -
[^]
Some of the problems with AAC
1. Its expensive and usually only serves one purpose.
2. A lot of them are very big and hard to lug around.
3. These devices the way they are now have no way to tailor
The keyboard to a users needs. Some people respond better with
pictures while others are fine with a alpha numeric keyboard.
4. They also draw unwanted attention sometimes to the person using them.
Android Tablets/Phones, Iphone/Ipad answer some of the call to this.
1. Applications can be free/low cost. Market places make this application more available.
2. Keyboards interface can be modified to be tailored to the users needs.
3. Devices are so common, a person could use these without looking out of place.
4. A computer is a picture device. You can teach with either pictures/sound/text.
5. And of course portable big thing here.
Would love to talk to other developers on how to do this. What kind of applications
we could all make to give an important gift. Words..
|
|
|
|
|
And I can give a lot more detail than this. On some
of the ideas I have. The final product is a AAC device
for communication. But there are many programs that
can be written before that, to help people get to that point.
Like for example:
A program that uses google images. Sends a random
word to the database, an image is returned. The
name is read out loud, then a game is created
showing letters. The person then has choices of
letters they can use. Some are right and some are
wrong. Make it like a game, its fun and it teaches.
Also add the ability to put your own words in to search
on for the game. One of my sons favorite things in the
world is hangers. And I use google images to teach him
with that, because he is interested and fascinate by cloths
hangers. You would not find that in a regular kids game.
Just one example.
Also something people not be aware of. And why I am
leaning more towards the android Tablet. The keyboard
gives a slight vibration when typing. I am not sure
yet but if the keyboard can do that, I am thinking images
on the screen might do that too.. Its feedback that
a person with a development challenge might find calming
to the nervous system.
There is a behavior that some autistic people do. It is called
Stimming. From what I understand about this behavior it is
the vibration from the repeated movement that calms the nervous
system. This is only a theory as I yet have a device to test this
with. But I think the slight vibration of the keyboard would
give an autistic individual an incentive to want to use the device.
|
|
|
|
|
I am going to develop a new class. But I do not have the full list of functionalities to be included in this class right now. But I would like to add new features at different times in the future. i.e I want to add new features to an existing class from time to time in the future as the new requirement arise. How should I start and which design pattern fits my requirement.
I do not have prior experience in using or applying patterns. I am starting out. If this is not the right place please guide me which codeguru forum I should resort to, to have more knowledge on applying design patterns.
Thanks,
ManojE
|
|
|
|
|
xyzsnl wrote: But I do not have the full list of functionalities to be included in this class right now. But I would like to add new features at different times in the future
Classes are small constructs, and ideally they'd only have a single responsibility. Implementing a lot of functionality in a single class, and modifying that, would be rather inefficient and error-prone.
There's a multitude of ways to extend classes, the most obvious being inheritance. In essence, you create a new class and "inherit" all the things from some other class you wrote. There's also the option of creating abstract classes; that would only contain a definition, similar to an interface. You could provide different implementations as required.
xyzsnl wrote: How should I start and which design pattern fits my requirement.
Most design-patterns consist out of more than one single class. I liked the Strategy[^]-pattern as an introduction to design patterns. As you learn more, you'll recognize them in the .NET Framework itself.
Happy Programming
|
|
|
|
|
Classes are extensible by nature. So you can extended them as required. Apply patterns to your class as required. Don't apply patterns that are not required, otherwise in the future, you will assume that the class behaves in a way it doesn't.
Architecture is extensible, code is minimal.
|
|
|
|
|
I have this situation and I want to know the opinions of other members on this. My language is C++.
There is a base class that has the most vital virtual function called Job . Within the derived classes, there are several possibilities of things to be done before Job and/or after it. The Job would have to be done for about a hundred times* (The design has no problem, so if this sounds absurd it is only because I am not providing the exact details of the class). Also, this is supposed to run on multiple platforms, including .NET, mobile etc and not just native code on big fast CPUs. The core that contains this will remain in C++ and the necessary wrapping etc will be done to get it to run on the said platforms.
In this scenario, considering speed and other things, which would be a better solution?
1. Have just the Job function and let the derived class do something like this
DerivedClass::Job()
{
}
2. Have three virtual functions, PreJob, Job, PostJob and have the call to Job be bracketed like the following so that the code is neatly segregated
JobCaller()
{
pBaseClass->PreJob()
pBaseClass->Job()
pBaseClass->PostJob()
}
EDIT: *about hundred for user interaction events like mouse clicks, screen taps etc depending on the platform. Basically, the user may "test" the load by playing with it.
|
|
|
|
|
(2) is the cleaner approach, obviously.
if PreJob+Job+PostJob is more than 100 lines of code (dynamically speaking), then the difference in performance will be unnoticeable.
if mosr jobs have different PreJob and PostJob functionality (never shared with the base class), the added structure doesn't bring you much.
So look at the statistics and decide for yourself.
|
|
|
|
|
I agree with Luc on performance issues, but I disagree when he say that the added structure would not be beneficial. If your core Job function cannot stand on its own (i.e., requires pre- and post- function, regardless of how different those functions may be from derived class to derived class), then I personally would absolutely declare the Pre- and Post- as "abstract" methods to ensure that every new derived class you create implements Pre- and Post-. This is exactly why "abstract" declarations were invented. You could then invoke Pre- and Post- from Base::Job and not have to implement a Derived::Job method at all. Like this (I apologize if my syntax isn't perfect. Been doing a lot of C++/CLI, so I might not be completely right in native C++ syntax):
class Base
{
public:
virtual void Job()
{
Pre();
Post();
}
protected:
virtual void Pre() abstract;
virtual void Post() abstract;
}
class Derived : public Base
{
protected:
virtual void Pre() override
{
}
virtual void Post() override
{
}
}
Derived* myDerived = new Derived();
myDerived->Job();
|
|
|
|
|
I would also add a
protected virtual void Actual()
containing the actual job code, and call that from the Job() method.
Not only does it make things clearer, you can also be sure that the actual job code will have to be overridden in a derived class soon.
|
|
|
|
|
Unless the optimizer has changed much, if PreJob and PostJob don't do anything in a class, I believe they are optimized out. It's been a long time since I've done any serious C++, but I seem to remember that this is the case. As the base class is only going to be using VTable lookups here anyway, the overhead should not be significant in real terms.
|
|
|
|
|
Have you looked at Aspect Oriented Programming (AOP)? It provides a great alternative to inheritance in cases like yours. Don't know how complicated that triplet(?) of Pre , Actual , and Post calls will become, but my experience tells me that the orchestration of overridden virtual calls of that kind quickly becomes a nightmare... A good half-way to AOP are design patterns like chain of responsibility - in many cases this gives you larger flexibility and better control over the behaviour than (often hacky) orchestration of calls to overridden methods.
By the way, if you are on native C++, have a look at the C++ idiom called Wrap http://www2.research.att.com/~bs/wrapper.pdf - an interesting possibility to get compile time configurable Aspect-like behaviour. Often (but not always) the flexibility supersedes the one of polymorphic inheritance based implementation, could have issues about interoperability though...
Cheers,
Paul
|
|
|
|
|
From a perfectionists' point of view, having job callers deal with sequences of calls violates encapsulation: job callers do not need to know that a job requires a "setup" and a "cleanup" steps.
To hide the internals from your callers while keeping the distinction in your implementations, make an abstract class with a skeleton method, then override pre/post/job methods as needed in your derived classes. This technique is commonly known as the "Template Method" pattern[^]; I prefer "skeleton" to avoid confusion with C++ templates.
AbstractClass::Job()
{
doPreJob();
doJob();
doPostJob();
}
DerivedClass::doPreJob() {}
DerivedClass::doJob() {}
DerivedClass::doPostJob() {}
JobCaller()
{
pAbstractClass -> Job();
}
|
|
|
|
|
Hi
I am stuck with a problem when i have been told to fill the details regarding the application which we have built for providing us a server.
The details to be filled are as below.
disk space required to store each associate (kb/MB)
size of each transaction (kb/mb)
So how do i estimate?
Regards
Naina
Naina
|
|
|
|
|
nainakarri wrote: So how do i estimate?
Look at the classes you are using and what information they expect to contain, multiply by the expected quantity. This is just simple mathematics.
Just say 'NO' to evaluated arguments for diadic functions! Ash
|
|
|
|