Hackers make progress toward unlocking iPhone Comments

InfoWorld: Top News by Sumner_Lemon@idg.com (Sumner Lemon) - Jul 3, '07 7:41am

(InfoWorld) - Efforts to unlock Apple's iPhone continued on Monday, with hackers claiming "very significant progress."

The locked iPhone only works with AT&T's EDGE network, and cannot be used with cellular service from other providers. Locked phones are generally used to help operators recoup the cost of subsidizing handsets for their customers, but AT&T is not subsidizing the iPhone, which is priced at either $499 or $599, depending on the model. Instead, the phone is locked because AT&T has a five-year agreement with Apple to be the sole iPhone provider in the U.S.

Unlocking the iPhone would be a boon for users locked into a contract with another U.S. carrier, or for users outside the U.S. who want an iPhone. While initial signs indicate an unlocked iPhone is possible, hackers must first overcome several challenges. One of those involves circumventing the authentication process in iTunes that both lets users register for an AT&T service plan and turn on the phone's features, including its camera and music player.

By Monday evening, U.S. time, hackers had made headway towards circumventing the activation process. But the phone remained locked at the time of writing.

"We have been fairly successful in spoofing iTunes activation processes. This should allow us to activate the phone," poster gj wrote on the iPhone Dev Wiki, one of several Web sites tracking efforts to unlock the phone. "It may in fact also prevent the SIM locking from occurring in the first place ... though we haven't verified this yet."

These advances allowed hackers to set and read data on the iPhone, including the ability to query whether a phone has been activated. "The rest of our work is legwork really, in understanding how certain functions operate with the rest of the phone," the site said, adding hackers are close to the ability to browse system files on the iPhone, a key step toward unlocking the handset.

Once the activation problem has been overcome, hackers will be faced with other questions. For instance, does iTunes have the ability to recognize a phone that was not activated for use with the AT&T network? If so, how will iTunes react?

After these questions are resolved, hackers can focus on unlocking the handset itself. That task is made easier by the iPhone's use of a removable SIM (Subscriber Identity Module), a smart card that contains a user's phone number as well as storage space for contacts and messages, instead of one that was hardwired into the phone. The use of a removable SIM card means the iPhone is locked using its firmware, which can likely be cracked.

While hackers race ahead to unlock the iPhone as quickly as possible, iPhone Dev Wiki poster gj criticized those hackers competing against each other to unlock the phone, saying the lack of cooperation had slowed progress.

"I can't emphasize enough how much this s*** stinks. Trust me, your ego is not as important as you think it is. If everyone worked together we would have been done by now, but instead we have a******* all over the world trying to 'beat us to the punch,'" the poster wrote.

 

Be the first to comment this (no registration)

Massachusetts adds Open XML to open formats list Comments

InfoWorld: Top News by Elizabeth_Montalbano@idg.com (Elizabeth Montalbano) - Jul 3, '07 8:05am

(InfoWorld) - Microsoft has achieved a small victory in its effort to make Open XML an open technology standard. Massachusetts, the U.S. state that has mandated the use of open technology formats in its government agencies, has put the specification on its list of possible standards that can be used for documents, according to a document on its Web site.

The current 4.0 version of the state's Enterprise Technical Reference Model (ETRM) -- a framework defining where standards will be used and which ones are permissible -- lists Ecma-376 Office Open XML Formats (Open XML) as an acceptable "open format." The state is adding Open XML to a short list that also includes OASIS Open Document Format For Office Applications (ODF) v. 1.1, the current version of the rival standard supported by IBM, Sun Microsystems, and others.

Bethann Pepoli, acting CIO for Massachusetts, said Monday that Open XML was added to the list because it now meets the commonwealth's criteria for an open standard, which requires that formats "are publicly available and are developed by an open community and affirmed by a standards body." Massachusetts has been releasing a revision to the ETRM every six months, and in December when the last version was released Open XML had only recently been approved by Ecma and did not have the required industry support, she said.

Massachusetts residents have until July 20 to comment on the current draft of the ETRM.

Microsoft submitted Open XML to Ecma International in November 2004, and the standards organization has approved a final version of the specification. The International Organization for Standards (ISO) is expected to vote on the Ecma version of Open XML later this year. ODF already has been approved by the ISO as an international technology standard.

In a statement through its public-relations firm Monday, Microsoft applauded the addition of Open XML to the Massachusetts list, saying it gives users "the ability to choose the open file format standard that best serves their needs." When Microsoft submitted Open XML to Ecma, the company said it was in part to make the document format Microsoft developed in house for its Office 2007 suite a more viable option for governments and other institutions that are beginning to standardize only on technology formats that are available for anyone to use.

But critics -- mainly those who support ODF as in favor of Open XML as the standard for documents -- have complained that Microsoft has been too controlling when it comes to the Ecma standards process, ensuring the technology it submitted as a "standard" looked the way Microsoft wanted it to at the end of the approval process. And since the company didn't allow third parties to create implementations of Open XML before it was submitted, critics say Microsoft has misused the standards process, which is meant to be more open.

One of those most outspoken critics, IBM's Vice President of Open Source and Standards Bob Sutor, Monday spoke out in favor of Massachusetts decision to let its residents review Open XML alongside other formats. However, he took a dig at Microsoft with a reminder that the ETRM is still only in draft form and that opposition remains to the state's decision to use Open XML as a standard.

 

Be the first to comment this (no registration)

YouTube coming to LG cellphones Comments

InfoWorld: Top News by Martyn_Williams@idg.com (Martyn Williams) - Jul 3, '07 8:21am

(InfoWorld) - The ability to view and upload videos to YouTube is coming to some LG Electronics cellphones later this year.

The service will allow users to shoot video on their handsets and send it directly to the popular online video site, LG said in a statement. The first phones with the ability to do this will be available worldwide "at the end of the year."

LG already has links with YouTube parent company Google. In March this year the two companies agreed to put various Google services on some models of LG cellphones. The first handset with such features, the LG-KS10, was launched in Italy in April and comes with Google search, Gmail for mobile, and Google Maps for mobile preinstalled.

But the deal is far from exclusive. LG also inked a similar agreement with Google rival Yahoo to put that company's services on some handsets. Specifically, LG will install Yahoo Go for Mobile 2.0, Yahoo Mail, and Yahoo Messenger on some handsets.

In some cases where the cellular carrier buys phones from LG and co-brands them, the software and features installed on the handset are decided by the carrier. In these cases phones might carry none of the Google or Yahoo applications.

YouTube launched a version of its service formatted for cellphones and other mobile devices earlier this year.

 

Be the first to comment this (no registration)

GPLv3-- a bridge too far? Comments

CNET News.com - Jul 3, '07 8:00am
Blog: Is version 3 of the GNU General Public License asking for too much?
Be the first to comment this (no registration)

BlackBerry gets free international calls Comments

The Register - Jun 29, '07 5:09am

EQO service uses local minutes and data instead

Internet phone service specialist EQO has added BlackBerry to the list of around 400 handsets that it says can now make local-rate or free international calls - without using Wi-Fi or VOIP to the handset. Users also get cheap text messaging and free access to all the popular IM services, the company said.…

Be the first to comment this (no registration)

LINQ to SQL (Part 3 - Querying our Database) Comments

ASP.NET Weblogs by ScottGu - Jun 29, '07 4:11am

Last month I started a blog post series covering LINQ to SQL.  LINQ to SQL is a built-in O/RM (object relational mapping) framework that ships in the .NET Framework 3.5 release, and which enables you to easily model relational databases using .NET classes.  You can then use LINQ expressions to query the database with them, as well as update/insert/delete data from it.

Below are the first two parts of my LINQ to SQL series:

In today's blog post I'll be going into more detail on how to use the data model we created in the Part 2 post, and show how to use it to query data within an ASP.NET project.

Northwind Database Modeled using LINQ to SQL

In Part 2 of this series I walked through how to create a LINQ to SQL class model using the LINQ to SQL designer that is built-into VS 2008.  Below is the class model that we created for the Northwind sample database:

Retrieving Products

Once we have defined our data model classes above, we can easily query and retrieve data from our database.  LINQ to SQL enables you to do this by writing LINQ syntax queries against the NorthwindDataContext class that we created using the LINQ to SQL designer above.

For example, to retrieve and iterate over a sequence of Product objects I could write code like below:

In the query above I have used a "where" clause in my LINQ syntax query to only return those products within a specific category.  I am using the CategoryID of the Product to perform the filter.

One of the nice things above LINQ to SQL is that I have a lot of flexibility in how I query my data, and I can take advantage of the associations I've setup when modeling my LINQ to SQL data classes to perform richer and more natural queries against the database.  For example, I could modify the query to filter by the product's CategoryName instead of its CategoryID by writing my LINQ query like so:

Notice above how I'm using the "Category" property that is on each of the Product objects to filter by the CategoryName of the Category that the Product belongs to.  This property was automatically created for us by LINQ to SQL because we modeled the Category and Product classes as having a many to one relationship with each other in the database.

For another simple example of using our data model's association relationships within queries, we could write the below LINQ query to retrieve only those products that have had 5 or more orders placed for them:

Notice above how we are using the "OrderDetails" collection that LINQ to SQL has created for us on each Product class (because of the 1 to many relationship we modeled in the LINQ to SQL designer).

Visualizing LINQ to SQL Queries in the Debugger

Object relational mappers like LINQ to SQL handle automatically creating and executing the appropriate SQL code for you when you perform a query or update against their object model. 

One of the biggest concerns/fears that developers new to ORMs have is "but what SQL code is it actually executing?"  One of the really nice things about LINQ to SQL is that it makes it super easy to see exactly what SQL code it is executing when you run your application within the debugger.

Starting with Beta2 of Visual Studio 2008 you can use a new LINQ to SQL visualizer plug-in to easily see (and test out) any LINQ to SQL query expression.  Simply set a breakpoint and then hover over a LINQ to SQL query and click the magnify glass to pull up its expression visualizer within the debugger:

This will then bring up a dialog that shows you the exact SQL that LINQ to SQL will use when executing the query to retrieve the Product objects:

If you press the "Execute" button within this dialog it will allow you to evaluate the SQL directly within the debugger and see the exact data results returned from the database:

This obviously makes it super easy to see precisely what SQL query logic LINQ to SQL is doing for you.  Note that you can optionally override the raw SQL that LINQ to SQL executes in cases where you want to change it - although in 98% of scenarios I think you'll find that the SQL code that LINQ to SQL executes is really, really good.

Databinding LINQ to SQL Queries to ASP.NET Controls

LINQ queries return results that implement the IEnumerable interface - which is also an interface that ASP.NET server controls support to databind object.  What this means is that you can databind the results of any LINQ, LINQ to SQL, or LINQ to XML query to any ASP.NET control.

For example, we could declare an <asp:gridview> control in a .aspx page like so:

I could then databind the result of the LINQ to SQL query we wrote before to the GridView like so:

This will then generate a page that looks like below:

Shaping our Query Results

Right now when we are evaluating our product query, we are retrieving by default all of the column data needed to populate the Product entity classes. 

For example, this query to retrieve products:

Results in all of this data being returned:

 

Often we only want to return a subset of the data about each product.  We can use the new data shaping features that LINQ and the new C# and VB compilers support to indicate that we only want a subset of the data by modifying our LINQ to SQL query like so:

This will result in only this data subset being returned from our database (as seen via our debug visualizer):

What is cool about LINQ to SQL is that I can take full advantage of my data model class associations when shaping my data.  This enables me to express really useful (and very efficient) data queries.  For example, the below query retrieves the ID and Name from the Product entity, the total number of orders that have been made for the Product, and then sums up the total revenue value of each of the Product's orders:

The expression to the right of the "Revenue" property above is an example of using the "Sum" extension method provided by LINQ.  It takes a Lambda expression that returns the value of each product order item as an argument. 

LINQ to SQL is smart and is able to convert the above LINQ expression to the below SQL when it is evaluated (as seen via our debug visualizer):

The above SQL causes all of the NumOrders and Revenue value computations to be done inside the SQL server, and results in only the below data being retrieved from the database (making it really fast):

We can then databind the result sequence against our GridView control to generate pretty UI:

BTW - in case you were wondering, you do get full intellisense within VS 2008 when writing these types of LINQ shaping queries:

In the example above I'm declaring an anonymous type that uses object initialization to shape and define the result structure.  What is really cool is that VS 2008 provides full intellisense, compilation checking, and refactoring support when working against these anonymous result sequences as well:

 

Paging our Query Results

One of the common needs in web scenarios is to be able to efficiently build data paging UI.  LINQ provides built-in support for two extension methods that make this both easy and efficient - the Skip() and Take() methods.

We can use the Skip() and Take() methods below to indicate that we only want to return 10 product objects - starting at an initial product row that we specify as a parameter argument:

Note above how I did not add the Skip() and Take() operator on the initial products query declaration - but instead added it later to the query (when binding it to my GridView datasource).  People often ask me "but doesn't this mean that the query first grabs all the data from the database and then does the paging in the middle tier (which is bad)?"  No.  The reason is that LINQ uses a deferred execution model - which means that the query doesn't actually execute until you try and iterate over the results. 

One of the benefits of this deferred execution model is that it enables you to nicely compose queries across multiple code statements (which improves code readability).  It also enables you to compose queries out of other queries - which enables some very flexible query composition and re-use scenarios.

Once I have the BindProduct() method defined above, I can write the code below in my page to retrieve the starting index from the querystring and cause the products to be paged and displayed in the gridview:

This will then give us a products page, filtered to list only those products with more than 5 orders, showing dynamically computed product data, and which is pageable via a querystring argument:

Note: When working against SQL 2005, LINQ to SQL will use the ROW_NUMBER() SQL function to perform all of the data paging logic in the database.  This ensures that only the 10 rows of data we want in the current page view are returned from the database when we execute the above code:

This makes it efficient and easy to page over large data sequences.

Summary

Hopefully the above walkthrough provides a good overview of some of the cool data query opportunities that LINQ to SQL provides.  To learn more about LINQ expressions and the new language syntax supported by the C# and VB compilers with VS 2008, please read these earlier posts of mine:

In my next post in this LINQ to SQL series I'll cover how we can cleanly add validation logic to our data model classes, and demonstrate how we can use it to encapsulate business logic that executes every time we update, insert, or delete our data.  I'll then cover more advanced lazy and eager loading query scenarios, how to use the new <asp:LINQDataSource> control to support declarative databinding of ASP.NET controls, optimistic concurrency error resolution, and more.

Hope this helps,

Scott

Be the first to comment this (no registration)

MySpace Likely To Open Platform To 3rd Party Developers Comments

TechCrunch by Duncan Riley - Jun 29, '07 4:13am
MySpace founder Chris DeWolfe has indicated that MySpace will likely open its platform to 3rd party developers, according to a report at FT.com The move will see MySpace following in the footsteps of Facebook; Facebook’s wildly popular F8 release has seen in excess of 1000 additional applications made available to Facebook users and has driven enormous [...]
Be the first to comment this (no registration)

Delphi to Finally Support .NET 2.0 Comments

InfoQ Personalized Feed for Unregistered User - Registered to upgrade! - Jun 29, '07 1:46am
In a roadmap posted on the CodeGear site, it has been announced that Delphi.NET will be upgraded to the .NET 2.0 framework. This is a major step for the platform that until recently was thought abandoned.
Be the first to comment this (no registration)

IPhone launch day arrives (AP) Comments

Yahoo! News: Technology News - Jun 29, '07 9:51am

A person waiting in line for the new iPhone takes a nap in front of the Apple store on Fifth Avenue in New York, Thursday, June 28, 2007.  The iPhone will be on sale starting tomorrow, Friday, at 6 p.m.   (AP Photo/Seth Wenig)AP - After six months of unprecedented hype, thousands of people Friday will get their hands on the iPhone, the new cell phone that Apple Inc. is banking on to become its third core business next to its moneymaking iPod players and Macintosh computers.


Be the first to comment this (no registration)

Django: Python Framework Comments

O'Reilly Radar by Brady Forrest - Jun 28, '07 8:55pm
Django, the Python web-application framework, now has its own gallery site. Djangosites now has 159 sites listed. To be listed the site must have been made with Django. You can view sites by rating, comment, and latest. Djangosites also...
Be the first to comment this (no registration)
© 2007 · wiredb.com · All trademarks are properties of their respective owners.