A coworker send a link on new tablet/hybrid devices shown at CES. http://www.youtube.com/watch?v=-5DYuVN6nuY. I gotta say, nice new form factor for the netbooks.
Religious debate about Apple versus the world aside. There will be a place for low priced computer with touch capabilities with full keyboard. This concept has been around for a long time: see http://shop.lenovo.com/us/notebooks/thinkpad/x-series-tablet. We've seen this 5 years ago. The potential market will be the same around the type of people that buys this.
I don't know how long we've been hearing about ipod, iphone, ipad killers. And nothing has succeeded. The reason for Apple's success has to do with the Apple's core capabilities on creating an arbitrary need and paint a picture for the every day consumers. They get people who 5 years ago would never buy a tablet PC, to say "I need this". People want Apple stuff. Not because of features, and technology, but because of ease of use, ecosystem, addressing simple problems and successful marketing campaigns. Doctors, Dentists, Judges are imagining what their world could be with Apple. While everyone is playing catch up.
That being said, the landscape is leveling. Android is creating a platform that's almost as easy to use. With combined push of all the other phone manufacturers (other than Apple), is making a significant dent in market share. The share isn't coming at the expense of Apple, but from Research in Motion and Nokia, who were previously the dominating player in smart phone, and cell phone markets world wide. I think the market place will reach towards saturation and equilibrium. Then new categories are invented, and it starts all over again.
Note, success of Android also points to Apple's core flaw. Apple wants control. Apple's stance on control has been around quality. I speculate there's economic reasons as well for control. Their rejection of google voice, skype VOIP into the app store. Refusal on allowing flash to work on iOS devices are all about control. In the past year, we've seen Apple relax their stance on control. Now Google voice and Skype is available for iOS devices. Flash, I am still waiting for.
David in Vancouver.
Dave's Thoughts
Dave's thoughts on technology, with specific focus on Adobe Flex, LiveCycle, PDF, enterprise Java and related technologies. May also include rants on daily events.
Friday, January 7, 2011
Friday, December 3, 2010
Tuesday, November 30, 2010
Adobe Max 2010
I missed Adobe MAX this year. First time I've missed it since Adobe acquired Macromedia in 2005. Going through the online keynote, seems like it was great tech conference filled with gadgets and freebies.
The key of this Max conference was devices. Adobe is offering a suite of tools to help designers and develop engage in a world to target multiple media and devices; from laptops/desktops, to tablets, to phones, to TV's. All these things, one platform, to make things faster, better, cheaper.
The key isn't tools. The key is people that use the tools:
The creative that thinks about how users engage with their devices, and come up with an innovative way to interact, and to reach out and communicate.
The inquisitive that questions why things need to be done a certain way. Is there a better approach?
The methodical that architects and ensure what we are building is consistent, and sound.
The key is people that makes everything happen, and possible.
Adobe embraces this, and makes customer and user experience a primary goal of the tools, of the platform. I can't wait to see what is possible in a world of human innovation and interaction.
Dave in Vancouver
The key of this Max conference was devices. Adobe is offering a suite of tools to help designers and develop engage in a world to target multiple media and devices; from laptops/desktops, to tablets, to phones, to TV's. All these things, one platform, to make things faster, better, cheaper.
The key isn't tools. The key is people that use the tools:
The creative that thinks about how users engage with their devices, and come up with an innovative way to interact, and to reach out and communicate.
The inquisitive that questions why things need to be done a certain way. Is there a better approach?
The methodical that architects and ensure what we are building is consistent, and sound.
The key is people that makes everything happen, and possible.
Adobe embraces this, and makes customer and user experience a primary goal of the tools, of the platform. I can't wait to see what is possible in a world of human innovation and interaction.
Dave in Vancouver
Sunday, November 21, 2010
Tuesday, January 12, 2010
Pooling is your friend
Been trouble shooting performance issue on a client's server for some time now. The problem was that under heavy load, the jvm would eventually run out of heap, or the database connections ran out. I tried various JVM settings to see if i can force garbage collection to occur more frequently, but all to the same result. Our LiveCycle server wasn't able to sustain the load and dies.
Turns out that this was easily fixable by setting the pooling settings for the services inside of adminui. By setting to use pooled instances only, and a minimum and maximum pool size, we got a much more stable environment. Consequently, the garbage collection also occurred much more frequently. Under load, the LiveCycle Server didn't run out of heap space either!
To modify pooling for a service:
1. Login to admin ui
2. Click on services
3. Select application and services
4. Select service management
5. Find the process / service that you created
6. Click on pooling. update as follows
- Use pooled instance for all requests
- Initial service instance pool size set to average number of concurrent transactions expected.
- max service instance pool size set to maximum number of concurrent transactions expected
- maximum async service instance is set to 0
- invocation wait time out is set to 0.
This setting worked so far for us. I will update the blog if that's not the case.
David
Turns out that this was easily fixable by setting the pooling settings for the services inside of adminui. By setting to use pooled instances only, and a minimum and maximum pool size, we got a much more stable environment. Consequently, the garbage collection also occurred much more frequently. Under load, the LiveCycle Server didn't run out of heap space either!
To modify pooling for a service:
1. Login to admin ui
2. Click on services
3. Select application and services
4. Select service management
5. Find the process / service that you created
6. Click on pooling. update as follows
- Use pooled instance for all requests
- Initial service instance pool size set to average number of concurrent transactions expected.
- max service instance pool size set to maximum number of concurrent transactions expected
- maximum async service instance is set to 0
- invocation wait time out is set to 0.
This setting worked so far for us. I will update the blog if that's not the case.
David
Tuesday, July 28, 2009
LiveCycle WebSphere Database Connectivity
Just want to document this in case anyone else runs into issue:
Problem:
- You are trying to initialize the database on WebSphere 6.1.0.19 or higher but the initialization step failed. When you look at the log, you see bunch of these: Caused by: com.ibm.ws.Transaction.IllegalResourceIn2PCTransactionException: Illegal attempt to enlist multiple 1PC XAResources
Note: this may cause problems for folks who had an earlier installation of WebSphere 6.1.0.7, installed LiveCycle, then tried to patch WebSphere up to 6.1.0.19. You will see the Illegal attempt to enlist multiple 1PX XAResources. This may cause instability in your system. I would recommend updating to use the solution below.
Reason:
- In a version between 6.1.0.7 and 6.1.0.19, WebSphere depends to be smart, and try to identify the GenericDataStoreHelper class by looking into the JDBC libraries. So the default DataStore helper class is set to the specific one for the driver, for e.g. MicrosoftSQLServerDataStoreHelper, instead of the GenericDataStoreHelper.
Resolution:
1. login to websphere admin console (http://localhost:9080/admin)
2. Click on resources > data sources
3. click on IDP_DS,
4. For datastore helper class, select to use a custom one, and type the following in: com.ibm.websphere.rsadapter.GenericDataStoreHelper
5. repeat for EDC_DS
6. test data connections
7. run through initialize database from livecycle configuration manager (/opt/adobe/LiveCycle8.2/ConfigurationManager/bin/configurationManager.sh
Problem:
- You are trying to initialize the database on WebSphere 6.1.0.19 or higher but the initialization step failed. When you look at the log, you see bunch of these: Caused by: com.ibm.ws.Transaction.IllegalResourceIn2PCTransactionException: Illegal attempt to enlist multiple 1PC XAResources
Note: this may cause problems for folks who had an earlier installation of WebSphere 6.1.0.7, installed LiveCycle, then tried to patch WebSphere up to 6.1.0.19. You will see the Illegal attempt to enlist multiple 1PX XAResources. This may cause instability in your system. I would recommend updating to use the solution below.
Reason:
- In a version between 6.1.0.7 and 6.1.0.19, WebSphere depends to be smart, and try to identify the GenericDataStoreHelper class by looking into the JDBC libraries. So the default DataStore helper class is set to the specific one for the driver, for e.g. MicrosoftSQLServerDataStoreHelper, instead of the GenericDataStoreHelper.
Resolution:
1. login to websphere admin console (http://localhost:9080/admin)
2. Click on resources > data sources
3. click on IDP_DS,
4. For datastore helper class, select to use a custom one, and type the following in: com.ibm.websphere.rsadapter.GenericDataStoreHelper
5. repeat for EDC_DS
6. test data connections
7. run through initialize database from livecycle configuration manager (/opt/adobe/LiveCycle8.2/ConfigurationManager/bin/configurationManager.sh
Subscribe to:
Posts (Atom)