I develop applications for Symbol, Intermec and HHP devices using the Compact Framework and I really like it.
Yes it uses a lot of memory and it can be slow but when you know the limitations you can work around them. If you require optimal processor and memory usage, use C++ (but be aware that your development times might increase).
Deploying applications is quick after the Compact Framework has been deployed on the first run.
The debugger rarely freezes unless there is a connectivity issue. Disconnecting the debugger from a running application can cause the device to lock up (particularly if you are using some of the OEM libraries) but if you close the device application down properly, it is normally OK.
There are some differences between but that is just something you have to cope with. Some of the manufactures are starting to use a standard platform for their new devices so things are getting easier.
I don't get constant out of memory errors. Try and make sure all the resource intensive objects are wrapped up in "using" statements so Dispose is called on them when you have finished with them. In particular every file and form should be in "using" block.
It only takes about 30 seconds to rip out the hi-res aware code if you don't like it.
The input panel is an absolute pain in the arse - no arguing with that.
I try to avoid using SQL CE as I have found that it is too slow for my applications (most the products I work on have large amounts of static data so I find it quicker to generate lookup files on the server and copy them down to the devices and use my own lookup code).
Yes, each vendor has a different scanning API. Spend a few days writing some library code so you only have one interface to deal with and forget about it.
The Microsoft mobile device tools aren't perfect and you do have to spend some time working around the various challenges they throw up but they are a lot better than most of the alternatives. If you get stuck, it is easy to write a C++ DLL to do the hard work. You do have to cope with differences between the devices but these are niche devices for niche applications.
Right at the start of the presentation, Jobs says something like "When's it going to be available? We're shipping them in June -- we're announcing it today because we have to go get FCC approval... We thought it'd be better to introduce this today rather than let the FCC introduce this".
Judging from all the rumours about the Zune the future iPods that have been helped along by FCC documents, I think they made the right call.
A few years ago, I applied for a job at a well known company using their online application site. When I finished filling in the form, the site redirected to a page with a URL like https://www.example.com/viewapplication.asp?applic antid=12345 that displayed all of my details.
I wondered what would happen if I changed the number in the URL and found that the site would happily show me the details for all the other applicants (including quite sensitive information).
Was changing the URL "trying to discover a vulnerability" or "discovering a vulnerability"? What if the values had been sent using a HTTP POST (so I couldn't see them or edit them by just changing a URL)? What if they had been lightly encrypted or included a check-digit?
Microsoft may mock Sony as they haven't managed a world wide launch but at least the PS3 has a European launch date unlike the Microsoft Zune which doesn't look like it is going to be on sale in Europe any time soon.
I remember seeing the "stately home" message back when I worked at Xara and I always wondered who put that there. I worked at Xara during the second wave of development. What was the context for the message - did things drag on a bit during the first version like they did for Xara X (one year of development and one year of beta testing and missed release dates)?
Jon
One thing I have found useful is moving from having a thread for each request to having a object per request and using asynchronous network and database calls. With this model, when you see anything interesting happen on the network or in the database, you dig out the right object and call the appropriate function. The advantage is you can keep all you request handling code in one place along with all the data required for that request.
It is also good to avoid having a thread per request (practically if you are handling a lot of short requests) as each thread can take up a lot of resources. For example, on Windows the default the default stack size for a new thread is 1mb (I assume it is similar on other operating systems). If you have 200 concurrent requests you have lost 200mb of memory for very little gain.
Their web site implies they want to do a full version for Linux and release it under the GPL. The website also says "The Windows version continues to include a shipping CD, they can buy a printed manual, and we provide direct customer support to paying customers. In addition the Windows version contains licensed code from third parties (some versions contain Pantone color support, licensed PDF components and other third-party Live Effects plug-ins, fonts and other things) which we can't make Open Source or free... Having said that it's conceivable that a version of the Open Source Linux port could be converted back to Windows. But it would not be the official Xara version (it couldn't use the Xara name), it wouldn't include any customer support or any of the licensed components we can include. So we hope it doesn't happen, because that would jeopardise our ability to continue. Put simply, if we can't earn money from the product somehow, we can't employ full time engineers working on the Open Source product, and that helps no one."
What would stop a malicious user putting a wrapper around really_cool_internal_function() called myprog_plugin_api_hack_internal_function()? They might have to share their wrapper functions but they still get access to the bits they want.
This is a good solution but remember to be careful about how you control the API definition (as I think the parent post is suggesting). If you are not careful, a user could use your software in a way that you don't approve of by changing the API to expose the parts of the program they want to use. If you lock down the API to much, you might limit what changes you (or other developers) could make in future versions (for example, if the API was in the license and other users has contributed code based on that license, you may need their approval to change the license to extend the API).
I don't know what the Dreamweaver file explorer does but I have written a file winder add-in for Visual Studio (hack #18) that might do what you want, see my web page.
Based on Google's most recent published operating system statisics* they could make their software available to many more users by producing a version for Windows 95 or "Other" before making a Linux version.
(* obviously June '04 was a while ago but I doubt the statistics have changed much)
Once I've done all that, could you give me some tips on designing my own processor? I like those Intel and AMD ones but what I really wanted was a four core chip with a built in USB controller.
One of Dell's fun tricks seems to be charging far more for parts when brought with a PC then they would do if purchased separately. For example, a 1905FP monitor from Dell's UK site costs £284.59 on its own (including tax and shipping). A random Dimension PC from the home and home office section includes a monitor in the price and has the option of upgrading to the 1950FP monitor for £339.58. It actually works out cheaper to get the bundled 17" monitor and buy the other nice LCD screen as well then to just buy the good screen with the PC.
Once you've worked out you need to play the Dell website game to get the best prices from them, it is just adds an extra layer of hassle to buying PCs. Perhaps someone could make an app that scrapes their web pages looking for the best deals (e.g. is it best to start with a high spec PC and customise the components downwards or is it better to start with a low spec PC and add the bits you want).
Or maybe it could all point to them wanting to add searching / browsing features to client PCs.
Google have done a really good job at making searching the Internet easy so much so that it is often easier to find a document on the Internet than on a desktop PC.
If Microsoft are going to get into the search business it might be reasonable to assume that they would want to do combine local and Internet searching in one app and perhaps lock Google out using their control of the desktop.
Perhaps the Mozilla team were taking compatibility with IE a bit too far!
Version control would be nice as well
on
Database File System
·
· Score: 5, Interesting
I have always thought that version control (file histories, branching and atomic changes) would be nice to have at the file system level. Instead of storing myessay-firstdraft.doc, myessay-seconddraft.doc, myessay-final.doc, the file system should do the work. Then if I want to make a bunch of changes (perhaps I want to try a new page layout), I should be able to commit them as one atomic change (or throw them all away if I change my mind). Then, when I want to make a set of documents with US spelling, I should be able to branch the whole lot (using no disk space) and make the small changes from UK spelling while still being able to integrate other changes I have made.
ArtWorks was not brought by Corel. My understanding is that Computer Concepts formed a new group called Xara when they started writing software for the PC. Xara first released a version of ArtWorks for the PC called Xara Studio. Xara then entered an agreement with Corel to market the next version of Xara, CorelXara, which wasn't very widely promoted (perhaps because Corel had an interest in another vector drawing application gaining market share). That agreement with Corel has now expired and Xara are slowly developing their vector graphics application again.
Really? It appears Dell installs a user-mode rootkit on some of their laptops. Is this mentioned in any sales documents?
I develop applications for Symbol, Intermec and HHP devices using the Compact Framework and I really like it.
Yes it uses a lot of memory and it can be slow but when you know the limitations you can work around them. If you require optimal processor and memory usage, use C++ (but be aware that your development times might increase).
Deploying applications is quick after the Compact Framework has been deployed on the first run.
The debugger rarely freezes unless there is a connectivity issue. Disconnecting the debugger from a running application can cause the device to lock up (particularly if you are using some of the OEM libraries) but if you close the device application down properly, it is normally OK.
There are some differences between but that is just something you have to cope with. Some of the manufactures are starting to use a standard platform for their new devices so things are getting easier.
I don't get constant out of memory errors. Try and make sure all the resource intensive objects are wrapped up in "using" statements so Dispose is called on them when you have finished with them. In particular every file and form should be in "using" block.
It only takes about 30 seconds to rip out the hi-res aware code if you don't like it.
The input panel is an absolute pain in the arse - no arguing with that.
I try to avoid using SQL CE as I have found that it is too slow for my applications (most the products I work on have large amounts of static data so I find it quicker to generate lookup files on the server and copy them down to the devices and use my own lookup code).
Yes, each vendor has a different scanning API. Spend a few days writing some library code so you only have one interface to deal with and forget about it.
The Microsoft mobile device tools aren't perfect and you do have to spend some time working around the various challenges they throw up but they are a lot better than most of the alternatives. If you get stuck, it is easy to write a C++ DLL to do the hard work. You do have to cope with differences between the devices but these are niche devices for niche applications.
With this breakthrough and that other one perhaps Moore's Law needs updating.
Right at the start of the presentation, Jobs says something like "When's it going to be available? We're shipping them in June -- we're announcing it today because we have to go get FCC approval... We thought it'd be better to introduce this today rather than let the FCC introduce this".
Judging from all the rumours about the Zune the future iPods that have been helped along by FCC documents, I think they made the right call.
A few years ago, I applied for a job at a well known company using their online application site. When I finished filling in the form, the site redirected to a page with a URL like https://www.example.com/viewapplication.asp?applic antid=12345 that displayed all of my details.
I wondered what would happen if I changed the number in the URL and found that the site would happily show me the details for all the other applicants (including quite sensitive information).
Was changing the URL "trying to discover a vulnerability" or "discovering a vulnerability"?
What if the values had been sent using a HTTP POST (so I couldn't see them or edit them by just changing a URL)? What if they had been lightly encrypted or included a check-digit?
Microsoft may mock Sony as they haven't managed a world wide launch but at least the PS3 has a European launch date unlike the Microsoft Zune which doesn't look like it is going to be on sale in Europe any time soon.
From the web site: "ChatterBlocker includes bell sound loops that can be used as periodic reminders to breathe"!
I remember seeing the "stately home" message back when I worked at Xara and I always wondered who put that there. I worked at Xara during the second wave of development. What was the context for the message - did things drag on a bit during the first version like they did for Xara X (one year of development and one year of beta testing and missed release dates)?
Jon
One thing I have found useful is moving from having a thread for each request to having a object per request and using asynchronous network and database calls. With this model, when you see anything interesting happen on the network or in the database, you dig out the right object and call the appropriate function. The advantage is you can keep all you request handling code in one place along with all the data required for that request.
It is also good to avoid having a thread per request (practically if you are handling a lot of short requests) as each thread can take up a lot of resources. For example, on Windows the default the default stack size for a new thread is 1mb (I assume it is similar on other operating systems). If you have 200 concurrent requests you have lost 200mb of memory for very little gain.
Their web site implies they want to do a full version for Linux and release it under the GPL. The website also says "The Windows version continues to include a shipping CD, they can buy a printed manual, and we provide direct customer support to paying customers. In addition the Windows version contains licensed code from third parties (some versions contain Pantone color support, licensed PDF components and other third-party Live Effects plug-ins, fonts and other things) which we can't make Open Source or free ... Having said that it's conceivable that a version of the Open Source Linux port could be converted back to Windows. But it would not be the official Xara version (it couldn't use the Xara name), it wouldn't include any customer support or any of the licensed components we can include. So we hope it doesn't happen, because that would jeopardise our ability to continue. Put simply, if we can't earn money from the product somehow, we can't employ full time engineers working on the Open Source product, and that helps no one."
What would stop a malicious user putting a wrapper around really_cool_internal_function() called myprog_plugin_api_hack_internal_function()? They might have to share their wrapper functions but they still get access to the bits they want.
This is a good solution but remember to be careful about how you control the API definition (as I think the parent post is suggesting). If you are not careful, a user could use your software in a way that you don't approve of by changing the API to expose the parts of the program they want to use. If you lock down the API to much, you might limit what changes you (or other developers) could make in future versions (for example, if the API was in the license and other users has contributed code based on that license, you may need their approval to change the license to extend the API).
s/winder/finder/
I don't know what the Dreamweaver file explorer does but I have written a file winder add-in for Visual Studio (hack #18) that might do what you want, see my web page.
Based on Google's most recent published operating system statisics* they could make their software available to many more users by producing a version for Windows 95 or "Other" before making a Linux version.
(* obviously June '04 was a while ago but I doubt the statistics have changed much)
Once I've done all that, could you give me some tips on designing my own processor? I like those Intel and AMD ones but what I really wanted was a four core chip with a built in USB controller.
I think Axe (http://www.jbrowse.com/products/axe/screenshots.s html ) can do something like that.
One of Dell's fun tricks seems to be charging far more for parts when brought with a PC then they would do if purchased separately. For example, a 1905FP monitor from Dell's UK site costs £284.59 on its own (including tax and shipping). A random Dimension PC from the home and home office section includes a monitor in the price and has the option of upgrading to the 1950FP monitor for £339.58. It actually works out cheaper to get the bundled 17" monitor and buy the other nice LCD screen as well then to just buy the good screen with the PC.
Once you've worked out you need to play the Dell website game to get the best prices from them, it is just adds an extra layer of hassle to buying PCs. Perhaps someone could make an app that scrapes their web pages looking for the best deals (e.g. is it best to start with a high spec PC and customise the components downwards or is it better to start with a low spec PC and add the bits you want).
Or maybe it could all point to them wanting to add searching / browsing features to client PCs.
Google have done a really good job at making searching the Internet easy so much so that it is often easier to find a document on the Internet than on a desktop PC.
If Microsoft are going to get into the search business it might be reasonable to assume that they would want to do combine local and Internet searching in one app and perhaps lock Google out using their control of the desktop.
Now if Google were to get there first...
Just an idea.
Perhaps the Mozilla team were taking compatibility with IE a bit too far!
I have always thought that version control (file histories, branching and atomic changes) would be nice to have at the file system level. Instead of storing myessay-firstdraft.doc, myessay-seconddraft.doc, myessay-final.doc, the file system should do the work. Then if I want to make a bunch of changes (perhaps I want to try a new page layout), I should be able to commit them as one atomic change (or throw them all away if I change my mind). Then, when I want to make a set of documents with US spelling, I should be able to branch the whole lot (using no disk space) and make the small changes from UK spelling while still being able to integrate other changes I have made.
How about we forget this silly sporting event and use the tally?
I have heard that is a common reaction.
ArtWorks was not brought by Corel. My understanding is that Computer Concepts formed a new group called Xara when they started writing software for the PC. Xara first released a version of ArtWorks for the PC called Xara Studio. Xara then entered an agreement with Corel to market the next version of Xara, CorelXara, which wasn't very widely promoted (perhaps because Corel had an interest in another vector drawing application gaining market share). That agreement with Corel has now expired and Xara are slowly developing their vector graphics application again.
SysInternals