Saturday, June 5, 2010

What iPad Can Do For ClickSchedule?

While the iPad sales are going great guns with consumers, the usage of such delicate device in the field as enterprise client is questionable. The first thing I got on my mind was to play with the device and decide if it's good as ClickSchedule client (ClickMobile client). After seeing how fragile the device is, I'm not sure if it worth the effort developing for. Maybe a ClickAnalyze client is more appropriate for the iPad.

For sure the iPhone is still a great device for ClickMobile. We just need to wait a litle bit more (for Monday's keynote) and then see what news Apple going to bring to the enterprise.

Tuesday, May 11, 2010

iPad Wi-Fi+3G glass is cracking [u]

While learning more about my new iPad, I found a scratch on the glass after less than a week. I was not sure how, but I blamed myself for the first scratch. Today, I found another three scratches. I looked carefully and found that my screen is cracking. We'll see what Apple will do with it in couple days. In the attached picture, I marked the visible scratches with pairs of arrows. The flash shows the cracks that are not visible in room light (the screen is very clean, but the flash just pop any crack and dust).
Update: Apple was very kind to replace the iPad with a new one. It took me 10 minutes at the local Apple store and I'm now posting from a new iPad.

Saturday, April 24, 2010

ClickAnalyze Insight Agent for all Nightly Reports

You have just configured new ClickSchedule report using the Service Optimization Administration console. Now you need to configure an agent to run the report once a night.

I strongly suggest to use the ClickAnalyze Insight agent for any nightly report, with the cost of the new time table needed for the agent. You can create such table using the following SQL:
create table W6RP_MY_REPORT_TIME(PK_Date date not null,
Date_Name varchar2(50) null,
constraint PK_MY_REPORT_TIME primary key (PK_Date)
using index tablespace USERS) tablespace USERS;
Populate the table with single record for two days ago:
TimeCmd "Provider=OraOLEDB.Oracle;User Id=W6ADMIN;
Password=****;Data Source=CAR_ALIAS"
W6RP_MY_REPORT_TIME en-US -2 -2
Create foreign key relation between the tables:
alter table W6RP_MY_REPORT
add constraint FK_MY_REPORT1 foreign key (Time_Start)
references W6RP_MY_REPORT_TIME;
Now just set a new ClickAnalyze Insight agent setting to process the time table and the report:
Owner:        [Application]
Category:     Agent
Sub Category: Insight
Name:         My Report
Body:
<InsightAgent>
  <Connections>
    <Connection>
      <TargetConnection
        Key="-1">(local)</TargetConnection>
      <TimeTable>W6RP_MY_REPORT_TIME</TimeTable>
      <Culture>en-US</Culture>
      <RelativeTo>-1</RelativeTo>
    </Connection>
  </Connections>
  <Reports>
    <Report>
      <Name>My Report</Name>
    </Report>
  </Reports>
  <Notifications>
    <Notification Active="true">
      <Type>Email</Type>
      <From>click@acme.com</From>
      <To>
        <Recipient>dispatcher@acme.com</Recipient>
      </To>
      <Subject>My Report Execution Result</Subject>
      <Importance>2</Importance>
    </Notification>
  </Notifications>
</InsightAgent>
What you will get is the better error handling of the agent, which rollback partial processing. You can add multiple reports to run in sequence. Just remember, one error will rollback all the reports.

After error, you can try and fix the problem and rerun the agent. If the agent run successfully, then rerun is not going to do any processing, since the time table is already with the processing date.

Thursday, April 8, 2010

Mobile iPhone Client and Multitasking

As we all know, Apple previewed today some features of the next major upgrade for the iPhone OS. Especially important for me is the multitasking implementation (we all know it was just matter of developing the correct UI and waiting for 1GHz CPU, which probably be in the next generation iPhone hardware).

While still offering the push notifications option, it is much easier to implement a thread that polls the remote server. I will have to check carefully, what is allowed under the updated platform.

I feel that I started the development at the right time, when the OS is maturing. I will probably aim to the end of 2010, so I can benefit from the iPhone OS 4 improvements.

Wednesday, March 17, 2010

Short iPhone Client Update

I have a WebService working on the server side. I have a WebServiceClient working asynchronously on the iPhone. Still need to finish the SQLite code for the client side database. I have initial UI components. Also, adding some barcode reading code, just in case ;-)

Thursday, March 4, 2010

Sample Data

Any demo is better when showing "full and real" data. Means that, all engineers are scheduled in the past, the demo system is fully functional, and all clients are showing the most complete picture of the demoed company.

However, when the demo data needs to include ClickAnalyze data, including single district is not enough. You need at least 2 regions, each with 5 districts, and history for at least 3 years. For a recent demo, I made just that.

Now I need to find some time to: (A) Make the code more generic, so it can fit other demos. (B) Add the option to see trends over time, probably I need to create new engineers over time, to show growth. and (C) Story. It would be best if the demo will include points in time that can be shown with correlation to the story.

After seeing only few demos during my years in ClickSoftware, and after this recent demo, which I helped to prepare small part of it, I can definitely say that ClickAnalyze is lagging behind in the demo-sphere.

Sunday, November 22, 2009

SQL Server CE ? not with iPhone

The first hurdle with creating the iPhone client is to overcome the SQL Server CE synchronization of the current ClickMobile client. In this post, I describe in short the decision I took in the replacement of this technology.

The current ClickMobile solution is storing all the data and the communication into local SQL Server CE database. Then the client taking advantage of the built-in technology of SQL Server CE to synchronize the local instance with the centralized instance on the remote server.

SQL Server CE includes a special "Remote Data Access" object, that communicate with the central SQL Server over HTTP. This object exposes special PUSH and PULL methods for table synchronization. On the server, ClickMobile is an agent, which runs in the background and poll the SQL Server database. This agent is responsible for processing the "requests" records.

I want to have the iPhone client communicating using the same "channel". So I started by creating a WebService with PUSH and PULL methods. This WebService allows the client to perform the table synchronization without running SQL Server CE.

It is now the time to create the client side component. I think it should be a SQLite to SOAP and SOAP to SQLite gateway. The SOAP messages are proprietary and are not following any standard (except of being SOAP messages). Following this client side development, I may also develop compression to save on bandwidth.

Well, off to work now...
 
HTML Hit Counter