วันอังคารที่ 6 พฤศจิกายน พ.ศ. 2550

Apple Researching Touch Surface Keyboard

During the build up to Leopard's release, we overlooked a very interesting patent application from Apple that appeared last week. This latest application is another product of Apple's Fingerworks acquisition from 2005. Fingerworks had commercialized versions of multi-touch interface input devices, such as this TouchStream keyboard.

The TouchStream keyboard served a dual purpose, acting both as a keyboard as well as a multi-touch gesture surface.

While this design is space-efficient, the use of one surface to accomplish both typing and touch-sensing is less than ideal. Apple notes that traditionally, membrane or surface keyboards used raised ridges to denote key edges, however, this disrupts the surface when it is used as a touch device. Meanwhile, users have a hard time typing on a completely flat surface, so some form of key detection needs to be offered.

The solution they come up with is quite interesting. They go through the motions of describing other possibilities, including small bumps on the surface of the keys as well as a mechanical actuator system in which small bumps protrude at the corners of the keys when needed.

In the end, however, what they describe is a flexible surface which lays completely flat over the keys, and can be used as a smooth flat-surfaced touch-pad. When used as a keyboard, however, small bumps rise up under the flexible surface in each of the four corners of each key. This causes a tenting effect which provides a concave surface for each of the keys. By being tied to a mechanical system, the keys can effectively appear and disappear on demand. They even describe the software being able to tell when the keys are needed based on detecting typing motions (keyboard) vs swiping gestures (touch pad).

แอปเปิลออก iTunes 7.5 รองรับการใช้ iPhone ในยุโรป

เพื่อเตรียมพร้อมก่อนที่จะวางจำหน่าย iPhone ในยุโรป แอปเปิลจึงได้ออก iTunes 7.5 ที่เพิ่มความสามารถในการ activate iPhone ในประเทศที่แอปเปิลจะวางขาย iPhone เร็วๆ นี้คือ เยอรมนี อังกฤษ และฝรั่งเศส และมีการเพิ่มเกมส์ใหม่สำหรับ iPod nano, iPod classic และ 5G iPod โดยเฉพาะ นอกนั้นก็เป็นการอุดรูรั่วของโปรแกรมเพื่อเพิ่มความปลอดภัย และประสิทธิภาพในการทำงานของโปรแกรม

ส่วน QuickTime ก็ออกเวอร์ชัน 7.3 มาด้วยกัน เพื่อรองรับ iTunes เวอร์ชันใหม่ และมีการปรับปรุงเล็กน้อย สรุปแล้วการอัพเดตครั้งนี้ ก็ไม่ได้มีอะไรตื่นตาสักเท่าไหร่ ผู้ที่ต้องการอัพเดตเข้าไปดาวน์โหลดได้เลยที่ iTunes Download

ที่มา - ars technica,http://www.blognone.com

.NET 3.5 และ Visual Studio 2008 ปลายเดือนนี้

ไมโครซอฟท์เตรียมออก Visual Studio 2008 และ .NET Framework 3.5 ปลายเดือนพฤศจิกายนนี้

.NET 3.5 เป็นการปรับปรุงที่ตัวไส้ในเสียเยอะ (ต่างจาก .NET 3.0 ที่เป็นการเพิ่มองค์ประกอบอื่นๆ แต่ยังใช้แกนของ .NET 2.0 เหมือนเดิม) ในเวอร์ชันนี้จะใช้ CLR 2.0 SP1 ซึ่งสนับสนุน C# 3.0 และ VB.NET 9.0 นอกจากนี้ยังมี LINQ ที่เปิดตัวมาได้ซักระยะแล้ว

ส่วน Visual Studio 2008 หรือที่เราเรียกกันว่า Orcas นั้นนอกจากจะสนับสนุนฟีเจอร์ของ .NET 3.5 แล้ว ยังมี visual designer สำหรับ WPF มาด้วย ไมโครซอฟท์โฆษณาว่าจุดขายของ VS2008 คือการพัฒนาบน Vista, Office 2007, Silverlight และ .NET Compact Framework

แถวนี้มีเซียน .NET หลายคนอยู่ และน่าจะลองเล่นตัว CTP กันหมดแล้ว ช่วยมาเล่าประสบการณ์ลองใช้จริงก็ดีนะครับ

ที่มา - Microsoft Press, Ars Technica

วันอาทิตย์ที่ 4 พฤศจิกายน พ.ศ. 2550

วันศุกร์ที่ 2 พฤศจิกายน พ.ศ. 2550

Web Search Help Center



Why do some of my search results say "This site may harm your computer?"

We want our users to feel safe when they search the web, and we're continuously working to identify dangerous sites and increase protection for our users. This warning message appears with search results we've identified as sites that may install malicious software on your computer:

Malware warning

If you click the title of the result, you'll be shown the following warning rather than being taken immediately to the webpage in question:

Malware warning page

You can choose to continue to the site at your own risk. However, please be aware that malicious software is often installed without your knowledge or permission when you visit these sites, and can include programs that delete data on your computer, steal personal information such as passwords and credit card numbers, or alter your search results. For more information on these types of sites, please visit StopBadware.org

โครงการแปลบลอกมาร์ติน ฟาวเลอร์

รายการทั้งหมด มาร์ติน ฟาวเลอร์ จาก thaidev.org


จาก http://www.thaidev.org/

วันพฤหัสบดีที่ 1 พฤศจิกายน พ.ศ. 2550

Worst. Interview. Ever.

What a waste of 27 minutes. Two of us were asked to do a 1-hour phone interview to see if it was worth bringing the candidate in from Indianapolis; another team member had already done a phone screen and had a good impression and thought it was worth our time.

The candidate was being considered for a Senior Java Developer position; we’re ideally looking for developers with Spring and/or Hibernate experience.

We thought that the resume seemed suspect; 5 pages for a 6-year career seems like a bit much, and in looking at the details it was a very repetitive resume, although it was loaded with buzzwords and acronyms:

Expertise in Java, JSF, Oracle ADF, Struts, JSP, Spring, Hibernate, JSTL, Servlets, JDBC, Applets, Swing, JNDI, RMI … Experience with JUnit, Log4J, ANT and Hibernate … Experienced in patterns like MVC, Session Facade, Business Delegate, DAO, Value Object, Service Locator and Fast Lane Reader.

Q: So tell me the difference between Statement, PreparedStatement, and CallableStatement and when you’d use each:
A: Um, you use a Statement to perform a query from a database.

Q: Sure, but when might you use a PreparedStatement or CallableStatement instead?
A:

Q: According to your resume, you’ve used the Fast Lane Reader pattern. What issues were you trying to address?
A:

Q: Ok, so let’s get past raw JDBC – we use Hibernate here and according to your resume you’ve used it fairly recently – how did you use Hibernate in the past?
A: Mostly for 1-1 mappings, but for many-to-one mappings involving collections we used JDBC.

Huh? Ok, I’ll be nice, let’s change direction a bit.

Q: It says on your resume that you’ve written an Exception handling framework. Actually, I see that you’ve written two of them at two different places. That sounds interesting - tell me about that.
A: We wanted to replace our many exceptions with one exception.

Hmmm. Doesn’t sound like much of a framework.

Q: Ok, more generally though - if you were writing a module and realized that you needed a custom exception, what factors would you use to decide whether to create a RuntimeException or an Exception?
A: I have no idea how to answer that question.

Thank you - finally, some honesty. Switching gears again …

Q: Let’s talk about the Java framework for a bit – you’re familiar with Collections I’m sure. What’s the difference between a Set and a List?
A: You use an ArrayList to gather a Collection to render the data in a JSP.
Q: Um, ok. But when might you use a Set?
A:

Changing direction again …

Q: Tell me about JSPs. Ideally in an MVC application there’s a clean separation between the tiers, but often we end up overlapping, so for example the view ends up having some business logic in it. Tell me how you might manage that?
A: crickets …
Q: Ok, I see that you’ve used JSTL – what are some of the more commonly used JSTL tags?
A: Form, Logic, Iterate.
Q: Sorry, those are Struts tags, right? I was asking about JSTL – your resume says that you’ve used them.
A:

Ok, so we need to throw this guy a softball …

Q: How about JavaScript. You’ve used Ajax – do you use frameworks, e.g. Prototype, Dojo, etc.?
A: No, I tend to write my own, for example to validate form input.
Q: Ok, how might you validate an email address?
A: Check for an @ symbol, that sort of thing.
Q: Really? That’s your only criterion? What if there’s 2 of them. Or spaces?
A: Well, then you can break the string up into parts and …

AAAAAAAAAARRRRRRRRRRRRRGGGGGGGGGGGGGGHHHHHHHHHH REGEX. SAY IT! REGEX!!!!

Ok, we’re all set. We’ll confer and get back to the contract agency.