Saturday, January 30, 2010

Mulberry Outlet York Review

iPad innovation and business world

Two days ago, Apple launched its new product and found the same remarks at the release of the iPhone:

  • this is not an innovation, there is nothing new it's just marketing ...
  • lacks the flash
  • there is no camera
  • It is not multitasking

It is surprising that people's memory is also short: the output of the iphone is only two and a half years and today nobody questions the innovative side of the iPhone.

A quick flashback: Invention and Innovation iPhone

The two words encompass different things:

Most of the inventions relates to the iPhone software: the new man-machine interface even if the gestures used There was nothing new (see Microsoft's Surface) interface does not correspond to anything that existed before. He had to invent a solution that fits on a screen of 3.5 "where everyone working on the type of screen wall Minority Report

hardware side, leading to the invention of the iPhone is a widescreen (3.5 "at a time when meant large 2.8-inch) touchscreen, and multipoint capacitive. The importance of this screen has been underestimated: without quality interface was inefficient and meet the 4 parameters in one screen is still quite rare: the latest flagship of the Nexus One Google does not, moreover, multicast.

iphone3gs_4up

For me, innovation is beyond the technical capability of a device: it must go beyond the fact that a well trained person is able to use a feature, you must make it accessible and used by the general public. For example Internet and the iPhone, this feature was already available on other phones before the iPhone but this feature was seldom used: between the release of the iPhone today and data traffic on the U.S. network grew by 7000%.

The iPhone with its touch interface increased the mobility of smartphones before, the smartphone was a mobile device but use requested to be stopped: the pen is accurate but requires calm and the attention. With the iPhone, one sees more and more people use their iPhone on the move. In addition the iPhone is more accessible than a device with stylus, it is lighter then press the action sought to be: we do not need to get out a pen or use a joystick to move. This is very important for small actions: if you need 4-5 s you do, if you need 10 to 30s you do not make the effort.

The iPhone is an innovation because it has changed the way people use their "smartphone": they use the subway, walking, orient themselves, to read the newspaper ...

The iPad

ipad_2up_hometimes

These are all points of a big iPhone: shape, and lack of multitasking OS. On this point, it differs from the Tablet PC and NetPc who are small laptops. Maybe this is not an innovation but at least it's a hell of a gamble.

I think it's completely opposite point of view of interest analysis of the iPad: add to the iPhone and not the laptop is removed.

The iPhone is an extremely mobile little, you can always have it on itself, it is always easily accessible available. What are its limits? The display and sharing:

  • screen to view as web sites or reading newspapers or books to a larger screen would certainly be more comfortable.
  • sharing: did you try to show something on your iPhone, it is difficult (because of the screen). We must move to the caller and then it never fails, a finger touches the screen, and what you want to show is gone.

From my point of view, the iPad perfectly fulfills two goals: a larger screen that responds to two points, but even this huge margin criticized by many commentators found his interest.

course you lose mobility, it is not coming in a shirt pocket, but we gain in convenience.

inventions? Apart from a touch screen multi-touch large, there may be the new chip A4: he will see this and especially its balance between power and consumption.

An innovation? I think yes, the market is ripe for a device to read his newspaper in his chair. The public is accustomed to reading website. Readers are mature: they have become sensitive to both the starting time a PC and convenience of reading well ensconced in an armchair.

The success of Amazon Kindle and NetPC are two good indicators of the existence of a need:

  • reading on an eBook for the Kindle
  • the PC is too full for a large number of user: User NetPC is limited to consultation internet and writing emails, blogs or sites. Maybe he watches his photos and some video on it but it does not go much further.

A priori, the iPad meets these two slices user for a price substantially identical and it offers a new range of gaming applications that were already on the iPhone.

Many commentators believe that the Kindle 2 DX $ 480 is dead. And those waiting to see the iPad before opting for the Kindle 2, mostly seem to decide to wait out the iPad.

The iPad would be able to capture any segment of users who do not really need the full power of a PC and bring them to a new type of use and application as has so well do the iPhone. If succeeds, it will be said in one or two years that the iPad was another innovation from Apple.

Success Factor for iPad

Unlike most commentators, I do not think Flash support or multi-task will be important for the iPad.

The first unknown and probably most important for me is the welcome will be made to his keyboard touch: we have seen above, I consider that a segment of users the most important is the iPad customer whose current NetPC one of their main activity is the seizure of documents. These users Wholesale consumer will touch the keyboard and their feedback will be very important in the success or failure of the iPad.

The second major unknown is to me the independence of the iPad: not the battery life but the need or not to use a Mac or PC. Will we have an iPad without owning a Mac or PC? I think some users NetPC do not have another computer. I have trouble at the moment whether the iPad requires another computer. I see that eventually the activation of the iPad imperatively require a PC. But without a PC, complete the iPad music or picture may be complicated. It does not seem intended to sync an iPhone from an iPad. In general, the lack of USB port seems to greatly reduce the possibilities of independence of the iPad. Listed

picture, Apple has already announced two connectors for the iPad: SD card reader to get photos and a USB type connector for the import of photo and video directly from the device. We saw earlier that I considered the picture as one of the major activities that should be able to handle the iPad to capture customer of NetPC, there is that Apple has taken the front. For the rest, the excellent iPhoto will play with his picture on the iPad.

Also in the picture, the absence of a video camera to chat may disappoint some potential users, but Apple eco system will not fail to overcome this lack can be corrected by Apple in a second version.

Flash Personally I have never missed on the iPhone and I think that multi-task is not necessary to establish the camera on the market. Maybe it will become available in future versions but I think it not fail to users is that the iPad.

iPad company

The iPhone has not supplanted the BlackBerry in the enterprise, but he made a breakthrough on the side of many administrators and systems are beginning to see (even in France) the first companies that adopts it.

The iPad will benefit from its output connectivity with MS Exchange unlike the iPhone and a suite of iPhone applications dedicated to the company as Salesforce instance.

Still, iPad is a device whose entire of the presentation concerned exclusively leisure. Does this mean that the iPad has no role to play in the company?

Personally, I think the population is a traveling sales target for the iPad: it is a lightweight solution that could support connected and disconnected modes to synchronize a posteriori. The screen is large enough to allow the seizure of a contract or show something to a customer.

the factory or workshop, it can be used to track work, order parts or check documentation. It will For this, the iPad shows the robustness of the elements of these aggressive environments.

iPad with 10h of battery life (if real) will allow medical personnel to make a complete tour. They can view and complete an application simply touch interface which avoids the use of a stylus could be a plus. The iPhone already has a number of professional applications dedicated to the health.

we can see, the iPad would be a great device for a number of professional uses. This can be all the more interesting it should benefit administration solutions that have been developed for the iPhone. Finally, the playful side of the aircraft could avoid the traditional resistance to change.

In these cases, we find that the strength of the iPad

  • based on an ability to be immediately available: no startup time.
  • considerable autonomy, greater than the working day

Conclusion In short, I think the iPad has a tremendous potential for use in different settings : Personal leisure or business travelers.

It will become a major innovation if it succeeds in aggregating the various disparate communities: ebook reader, user NetPC ... and to create new applications such as this example of the Major Baseball League: iPad applications between the site Internet TV allows you to watch a game while viewing the statistics of a player or team.

An innovation can not be decreed: those are the users by adopting a solution that turns a new product innovation. It is they who will decide if the iPad is one. I think the machine has many assets to succeed, but only the market will be the judge.

Wednesday, January 13, 2010

Brazilian Frontier Wikipedia

Retrieve a SID or a login from Windows NatStar

I have recently for a project to add integrated authentication to an application NatStar: the objective being to avoid the user to enter a password if the Windows user logged on is authorized to use application.

user "Windows" can cover various technical information in this post I will discuss two: the login

  • Windows: The Windows account name used to log
  • the SID of the user: it is a concept Microsoft allows unique identification of a user (security ID)

The retrieval of this information and use since being NatStar not very simple, I propose in this post a detailed description of the mechanism.

Exercise is done under NatStar, it should not be very difficult to adapt if NS-DK.

functions MicroSoft

We'll use 5 functions from MicroSoft NatStar:

  • advapi32.GetUserNameA: This function is the starting point of the mechanism, it returns the login of the logged on user.
  • advapi32.LookupAccountNameA: This feature allows login from the recovered thanks to the previous function to retrieve a pointer to the SID structure.
  • Advapi32.ConvertSidToStringSidA: This function obtains the SID from the previous function recovered by a string corresponding to the CIS.
  • KERNEL32.GetLastError: This function retrieves the last error raised by Windows. The 3 previous position functions in case of trouble this error.
  • KERNEL32.LocalFree: This feature frees up some resources allocated by Windows. It will free the information returned by ConvertSidToStringSidA.

The first 3 functions return 0 if an error and a different value of 0 if all goes well.

LookupAccountName

This function has an unusual procedure: we must call it twice:

  1. once with a size 0 and a pointer to SID 0: then the function returns the size of the SID. It must then allocate space for the SID.
  2. the second call takes the address of the allocated space and the size of the buffer to fill. It then has a SID.

To make things worse, in the first case, we can ignore the return value: there is an error if the size is zero.

Mapping function in MicroSoft NatStar

To use the functions previously defined since NatStar we define the external function. To do this, we created a library service in which we add 5 functions.

For these 5 functions, the External radio button of the definition should be checked.

MSGETLASTERROR% GetLastError for

We start with the simplest. We edit the function definition. In the dialog "Modify Definition for Function or Instruction MSGETLASTERROR%" it says:

  • Result type: INT (4)
  • External: KERNEL32.GetLastError

This function failing parameter, there is nothing else to do.

MSLOCALFREE for LocalFree

We continue with a little more complicated. We edit the function definition. In the dialog "Modify Definition for Function or Instruction MSLOCALFREE" it says:

  • Result Type: POINTER
  • External: KERNEL32.LocalFree

This function has one parameter, so we add in the Parameters tab the following parameter:

  • Name: HMEM
  • We check: In
  • Type: POINTER
  • Size: empty

Think Append then press Ok so you do not lose your changes.

MSGETUSERNAME% for GetUserNameA

We continue with a little more complicated. We edit the function definition. In the dialog "Modify Definition for Function or Instruction MSGETUSERNAME%" it says:

  • Result type: INT (4)
  • External: advapi32.GetUserNameA

This function has two parameters, we therefore added in the Parameters tab the following parameters:

  • Name: lpBuffer $
  • checkmark is: Out
  • Type: CSTRING
  • Size: 255

Think Append then press Ok so you do not lose your changes, then add the second:

  • Name: nSize%
  • We check: In and Out
  • Type: INT
  • Size: 4

is the first parameter LpBuffer $, which will contain the name of the user's Windows account.

MSGETUSERSID% for LookupAccountName

We continue with a little more complicated. We edit the function definition. In the dialog "Modify Definition for Function or Instruction MSGETUSERSID%" it says:

  • Result type: INT (4)
  • External: advapi32.LookupAccountNameA

This function has seven parameters, we therefore added in the Parameters tab the following parameters:

  • Name: LPSYSTEMNAME
  • We check: In
  • Type: CSTRING
  • Size : 255

Pensez à appuyer sur Append puis Ok afin de ne pas perdre vos modifications, puis ajoutez le second :

  • Name : LPACCOUNTNAME
  • On coche : In
  • Type : CSTRING
  • Size : 255

Passons au troisième :

  • Name : SID
  • On coche : In
  • Type : POINTER
  • Size : vide

Passons au quatrième :

  • Name : CBSID
  • On coche : In et Out
  • Type : INT
  • Size : 4

Passons au cinquième :

  • Name: REFERENCEDDOMAINNAME
  • On Car: Out
  • Type: CString
  • Size: 255

Passons au sixième:

  • Name: CCHREFERENCEDDOMAINNAME
  • On Car: In et Out
  • Type: INT
  • Size: 4

Passons au septième:

  • Name: Peuser
  • On Car: Out
  • Type: INT
  • Size: 4

3ieme C'est le parametre qui correspond in au SID SID Windows pointeur . C'est qui cette valeur utilisée avec will MSCONVERTSIDTOSTRINGSID% to retrieve the corresponding string.

MSCONVERTSIDTOSTRINGSID% for ConvertSidToStringSidA

We finish with the most complicated. Before you edit the definition of this function, we create a new segment PSTRSID that will be used to retrieve the value that contains the string.

Note that the function MicroSoft says this parameter in C + + as: BOOL

ConvertSidToStringSid (

__init Sid PSID, LPTSTR *

__out StringSid

)

The StringSid is a pointer to a pointer to a string. To do the same thing, we need an intermediate segment.

This segment is very simple, it has only one Field:

  • Name: STRINGSID $
  • Type: CSTRING
  • Size: 255
  • It checks the box Reference (beware this is very important)

We can now edit the function definition. In the dialog "Modify Definition for Function or Instruction MSCONVERTSIDTOSTRINGSID%" it says:

  • Result type: INT (4)
  • External: advapi32.ConvertSidToStringSidA

This function has two parameters, we therefore added in the Parameters tab the following parameters:

  • Name: SID
  • We check: In
  • Type: POINTER
  • Size: empty

Think Append then press Ok so you do not lose your changes, then add the second:

  • Name: STRINGSID
  • We check: Out
  • Type: PSTRSID (c is the segment it created previously appeared in the party is in order alphabetically)
  • Size: empty

is the first parameter is the pointer to SID SID Windows recovered from the previous function.

The second parameter will retrieve the string with: L_SID_USER_WINDOWS.STRINGSID $ L_SID_USER_WINDOWS if the value is retrieved as the second parameter.

Using Functions

We defined external functions that allow the appeal of Microsoft services, we will now use these services.

Recovery Windows login

This first step is simple:

  1. We initialize variables
  2. We call the function MSGETUSERNAME%
  3. is verified that there was no error

What gives NCL:

CSTRING LOCAL Buffer $
LOCAL LOCAL int int
SizeBuffer% Return%

Local USER_WINDOWS $ cstring (255)

USER_WINDOWS $ $ =''=''
L_LPBUFFER
SizeBuffer% = 255; buffer size = 0% Return

Return% = MSGETUSERNAME% (Buffer $ SizeBuffer%)

; If the return is different 0 then everything is OK If
Return% \u0026lt;> 0
USER_WINDOWS $ = $ skip L_LPBUFFER

Endif

The value retrieved in the variable $ is the USER_WINDOWS Windows user login. It can be used to check database if that user has the right to connect to your application.

Recovery Windows SID

The Windows login is easy to recover, it has a functional significance for users, but it is less permanent than the SID, if the user changes the login result a wedding for example, the Windows account is changed but not its SID. Its disadvantage is that the SID is a number incomprehensible without any functional sense.

It may also be interesting to retrieve the SID for interviewing other security services, but we will not discuss this point.

To use the SID, you must first retrieve the $ USER_WINDOWS. Then added the following code:

Return% = 0 =''
L_LPSYSTEMNAME $
SizeBuffer% = 0; buffer size =''
L_LPSYSTEMNAME $
L_CCHREFERENCEDDOMAINNAME% = 255; size buffer

; The first function call with a 3rd parameter to 0, returns the size of the structure PSID (SizeBuffer%) =%
Back MSGETUSERSID% (L_LPSYSTEMNAME $ USER_WINDOWS $ 0, SizeBuffer% L_REFERENCEDDOMAINNAME $ L_CCHREFERENCEDDOMAINNAME% L_PSID_NAME_USE%)
things_trace "first call SizeBuffer% =" &% SizeBuffer

If (SizeBuffer% \u0026lt;= 0)
things_trace "ERROR MSGETUSERSID% 1% = GetLastError "& String (MsGetLastError% 16)
Else New
SizeBuffer% L_PSID
; Gets the point of the structure of the USER SID Windows
Back MSGETUSERSID% =% (L_LPSYSTEMNAME $ USER_WINDOWS $ L_PSID, SizeBuffer% L_REFERENCEDDOMAINNAME $ L_CCHREFERENCEDDOMAINNAME% L_PSID_NAME_USE%) & #

160 if (Return% = 0)
things_trace "ERROR during the 2nd MSGETUSERSID%% = GetLastError "& String (MsGetLastError% 16)
Else
; Convert Point structure SID Windows USER chain
Back MSCONVERTSIDTOSTRINGSID% =% (L_PSID, L_SID_USER_WINDOWS)
if (Return % = 0)
things_trace "ERROR of MSCONVERTSIDTOSTRINGSID%% = GetLastError "& String (MsGetLastError% 16)
Else
SID_USER_WINDOWS $ = L_SID_USER_WINDOWS . STRINGSID $
things_trace "$ SID_USER_WINDOWS = "& $ SID_USER_WINDOWS

& # 160;; must free the string retrieved
; P = MSLocalFree (@ L_SID_USER_WINDOWS.STRINGSID $)
; things_trace "Profit LocalSystem free =" & P & & String (MsGetLastError% 16)
& # 160; endif

endif
dispose L_PSID
endif

For it to work, you must add at the beginning of the following statements:

LOCAL L_PSID point, point P
Local L_PSID_NAME_USE%
int int L_CCHREFERENCEDDOMAINNAME%
Local Local Local CSTRING L_LPSYSTEMNAME $
CSTRING L_REFERENCEDDOMAINNAME $
Local PSTRSID L_SID_USER_WINDOWS

value recovered in SID_USER_WINDOWS $ is the string corresponding to the identifier of the CIS.

Note the use of syntax: String (MsGetLastError%, 16). The GetLastError returns an error code. This error code is a numerical but usually appears in the literature as hexadecimal. This syntax is used to draw the hexadecimal code directly.

parameter compilation

Compiling the above code to be able to request from linking with the library advapi32.dll. This DLL system is available on all computers and requires no further deployment.

The compilation requires access to its EDGE. To make this possible, we must modify the LIB environment variable and add the two following directories (in case of MSVC 8):

  • C: \\ Program Files \\ Microsoft Visual Studio 8 \\ VC \\ PlatformSDK \\ Lib
  • C: \\ Program Files \\ Microsoft Visual Studio 8 \\ VC

NatStar If you use directly (without NsaConfig) is enough.

Through use of NsaConfig where the launch and environmental work NatStar depends on the configuration NsaConfig, it is necessary to modify the file C: \\ CASS \\ INI \\ wspmgr . ini:

  1. envvar adding in the statement the following two variables and MsSdklib COMPPATH (it's essential that the following definitions are taken into account.
  2. then adding the two lines following definition in the following statement envvar
    • MsSdklib = C: \\ Program Files \\ Microsoft Visual Studio 8 \\ VC \\ PlatformSDK \\ Lib
    • COMPPATH = C: \\ Program Files \\ Microsoft Visual Studio 8 \\ VC
  3. then modifying the LIB statement to read:
    • LIB =% NS-GLOB% \\ CLASSES \\ LIB;% NS-GLOB% \\ SERVICES \\ LIB; COMPPATH%% \\ LIB; MsSdklib%%%% NATSTARPATH \\ LIB;% LIB%

Conclusion I hope this post has been helpful. It shows that it is possible to implement integrated authentication in an application or NS-DK NatStar even if it is not obvious. We note in passing that the complexity comes mainly from MicroSoft API available (I know, I'm technical director Nat System and probably a little biased).