Explore an open-source, standards-based, cloud-native observability platform that helps control the speed, scale, and complexity of a cloud-native financial payments architecture.
As more personal information is being collected and analyzed by organizations, the need to protect an individual's privacy and prevent the misuse or unauthorized access of the personal data comes with it.
Organizations can enhance their overall system performance with chaos engineering. This is because teams can pinpoint bottlenecks by testing the system's resilience.
This guide explores how to auto-scale your Kinesis Data Streams consumer applications on Kubernetes so you can save on costs and improve resource efficiency.
Deploying deep learning on embedded platforms involves optimizing models and ensuring real-time performance for efficient execution and unlocking new possibilities.
Discover how containerization is revolutionizing software development and deployment in the era of DevOps. Enhanced business agility with this technology.
This article takes a journey into the future of cloud computing, discussing emerging trends such as autonomous and distributed cloud-generative AI tools.
Real-time debugging tools and techniques can help beginner mobile app developers identify and resolve errors quickly, improving app performance and user experience.
People like to complain about MongoDB. For instance, maybe they feel that it ruined their social network, or any number of other less recent complaints. The debate gets so heated, though, that sometimes valid criticisms - and nothing is above criticism - are dismissed as bandwagon hatred. It's a problem that Slava Kim seems very aware of in this recent blog post on some of the syntactic weirdnesses of MongoDB. It's not bashing, Kim stresses. For developers to effectively use any technology, they need to understand the "sharp edges." Kim goes into detail for each warning, covering five general areas: "Keys order in a hash object" "undefined, null and undefined" "Soft limits, hard limits and no limits" "Special treatment for arrays" "$near geo-location operator" Check out the full article for all the details on what aspects of MongoDB may cause some problems or frustration down the line.
Earlier today, the Microsoft Store updated with pricing information and details about the new Microsoft Surface tablets running Windows RT. We haven't yet seen pricing information about the Surface Pro, but today's update shows us details about three versions of the Surface running Windows RT, which is the low-end version of the upcoming Windows 8 operating system. Options There will be three options for the Surface tablet with Windows RT: 32 GB without Touch Cover ($499.00) 32 GB with Touch Cover ($599.00) 64 GB with Touch Cover ($699.00) In case the Microsoft Store goes down again like it did earlier today, here's a screenshot from the page: First Official Microsoft Surface Advertisement Released Yesterday Yesterday (Oct. 15), Microsoft released the first official Surface advertisement. Called "The Movement," it features a lot of attractive people swapping Touch Covers, dancing, and throwing their Surface tablets like Frisbees to each other around fountains (something that we at DZone do not recommend--the dancing part, I mean). Touch Cover vs. Type Cover The Surface will feature two types of covers, the Type Cover and the Touch Cover. They are both keyboards but the main difference is how they work. The Touch Cover is capacitive (like a touch screen) and the Type Cover has moving keys like a regular keyboard. The Type Cover costs about $10 more according to today's news. The Touch Covers will come in five different colors: white, red, black, cyan, and magenta. All Surface tablets will come with a kickstand, seen above with the cyan Touch Cover. Pricing Controversy In September, just before pricing info about the upcoming ASUS Windows 8 Tablets was leaked, Steve Ballmer was interviewed by the Seattle Times, in which he hinted that the Surface RT could start as low as $399, which obviously did not turn out to be the case. Still, the cheapest Surface tablet is about $100 less expensive than the cheapest ASUS Windows 8 tablet, the ASUS Vivo Tab RT, which according to the leak in September will start at $599. This means that Microsoft's hardware is competing against its third-party licensees who have to pay a licensing fee to use Microsoft's Windows 8 on their own tablets. Release Date The first Surface tablets will begin shipping before Halloween, on October 26th. There will be a Microsoft-sponsored kick-off event the day before, and are now taking pre-orders. Microsoft has already ordered 3-5 million tablets which they expect to sell by the end of Q4. We will have to wait and see how they do.
A reliable source of Microsoft-centric information leaks, MSnerd has announced he is exiting the arena. But before he goes, he's decided to answer any and all questions related to Microsoft and their place in the industry in a Q&A session on Reddit. Of particular interest are the topics of Silverlight and potential Windows Phone 'Apollo' upgrades for 1st and 2nd generation Windows Phone users. Silverlight Rumors have been swirling for some time now that Silverlight might be on its way out of the Microsoft product line. However, MSnerd says that Silverlight will continue to be utilized in three areas: XBox 360 apps Windows Phone 7.x apps Line of Business apps While a v6 of Silverlight is not currently on the books at Microsoft, moving forward, Silverlight should essentially be a hybrid of the capabilities of Silverlight 4 and 5. Certain Silverlight technologies will continue to be used more broadly. Silverlight smooth-streaming is being adopted across the industry to serve video to non-Microsoft platforms as well. PlayReady is also being implemented on 3rd-party platforms as it is currently the best alternative to the Apple-only FairPlay DRM system. Microsoft is evolving DeepZoom for use beyond Silverlight & the same is true for PivotViewer. Windows Phone As I previously wrote, there has been some debate as to whether or not Windows Phone 7 devices would be eligible for the Windows Phone 'Apollo' upgrade once it's released. However, MSnerd says that all current Windows Phones will receive some subset of 'Apollo'. The carriers are the primary obstacle in the US. I hear Microsoft is pushing hard for a Mango-like delivery schedule, as are Nokia & HTC. Some Apollo features will be exclusive to the 3rd-gen devices expected to be released this fall on the MSM8960 platform. And what about the future of Windows Phone, and the possible integration with Windows 8? MSnerd expects Windows Phone to become as good as iOS and Android, capability-wise, by the end of this year and moving forward. Integration with Bing, Office, Windows & Xbox will be the best Microsoft has ever done in that respect to date. In other words, nowhere near as good as how Apple does things. During the Reddit Q&A session, MSnerd revealed that he does not work for Microsoft, or any of their partners or contractors. So while he has been a reliable source of information leaks in the past, all of this should be taken with a grain of salt. Here's hoping another relentless information seeker picks up the torch, lest we all sit and wait for Microsoft's official releases.
Everybody's trying to get in on the big-money future of IoT, and now "everybody" includes Microsoft with Windows 10. Larry Dignan at ZDNet put together a look at Windows 10's role in IoT - as it's been described by Microsoft CEO Satya Nadella at the Gartner Symposium ITXpo, at least - which suggests that the new OS will be a central platform for IoT systems of all types. Specifically: Windows will be able to run on everything from sensors to wearables to whatever computing shift emerges. Or, as Patrick Thibodeau at ComputerWorld interpreted it: [Nadella] sees the company's upcoming operating system Windows 10 as integral in managing every aspect of the IoT, from the sensors, mechanical systems, to the applications and analytics that underlie it. Those are some pretty big promises, but as Nadella said, Windows 10 is "the first step in a new generation of Windows as opposed to just another release after Windows 8." After all, that would be Windows 9, right? Check out Dignan and Thibodeau's coverage of Nadella at the Gartner Symposium ITXpo for more details on Windows 10 in general. It looks like a promising future: Yo Ebola, I'ma let you finish but #Windows10 is gonna have the greatest virus of all time #WindowsTillIDie — Bill Gates (@BillKingGates) October 6, 2014
HTML5 is making huge strides toward the semantic web -- and the semantic standards defined by the Google/Bing/Yahoo-backed schema.org are probably prudent standards to follow. But if we're talking prudence, practicality, and semantics, then we're probably talking CMS too -- not that coding isn't unremitting joy, of course, but there isn't really much point to coding semantics when you're using a CMS to manage content anyway. Drupal 7 already supports schema.org microdata, and I Lin Clark's excellent guide to managing microdata in Drupal. Which is great, unless you don't use Drupal -- and in fact there's a good chance you don't use Drupal, since WordPress, not Drupal, is the most popular CMS on the web. (Though not necessarily among developers, I'm guessing.) So for easy schema.org microdata management in WordPress, check out this new (free) plugin by Optimum7: The interface is really simple: pick an item, fill in the properties. Done. Currently the only item types supported are: Event Person Organization Review Place Product which is a lot less than the full set listed on schema.org. In the future you'll be able to add more..but those six are some of the biggest anyway. Read the full plugin announcement here, or download the zip file if you already know you want it.
Back in September, when Google announced they were to make the Instantiations tool suite free for all, I thought things couldn't get better than this for Java developers. Well I was wrong, today Google trumped that announcement with their latest plan to open source both WindowBuilder and CodePro Profiler. Google is donating the source and the IP for both of these former products to the open source community through the Eclipse Foundation, and creating two new Eclipse projects. All in all, this is a value of more than $5 million dollars worth of code and IP. For those unfamiliar with the products, WindowBuilder provides the best available Java GUI Designer available, integrated into Eclipse allowing you to build Swing, SWT, RCP and GWT interfaces. CodePro Profiler helps you to identify performance issues in your Java code. In answering why the projects have been donated, Google's answer is simple "because it’s the right thing to do. We received many emails after we made the former Instantiations products free, to make them open source and we think this is overall the most responsible thing we can do for the community. It's fantastic technology, and we see no reason to keep it inside Google. We can't wait to see what comes next. " The Eclipse Foundation’s Executive Director, Mike Milinkovich, states that, “this is clearly a significant new project announcement, and very good news for Java developers using Eclipse. It has been impressive to see the continued growth and popularity of WindowBuilder, as this product has always filled a much needed gap in the Eclipse offerings. We look forward to it appearing in an Eclipse release soon. We’re very pleased with Google’s generous support of Eclipse, and the Java developer community around the world.” Both WindowBuilder and CodePro Profiler will become Eclipse projects in the first half of 2011. Once each one is set up as a project and available for download from the Eclipse site, the products will be accessible to use as open source code under the the standard Eclipse license. Eric Clayberg will manage the WindowBuilder project at the Eclipse Foundation and has already rallied more than a dozen volunteer committers. OnPositive will manage the CodePro Profiler project. Maybe you've had a vision for some cool features to add to WindowBuilder: now is your chance to work alongside the WindowBuilder developers to make it even better. Commercial support will be available for both projects. Genuitec will be providing the support for WindowBuilder, and OnPositive will be offering support for CodePro Profile.
My last article raised an interesting discussion whether you should see tests more as documentation or more as specification. I agree that they can contribute to both of them, but I still think tests are just - tests... There were also complaints about my statement that testing often becomes tedious work which nobody likes. Also here I agree, that techniques like TDD can help you to structure your code and make sure you code exactly what is needed by writing the tests, but the result of the process will still be a class which needs to be tested somehow. So I have set up another small challenge to show how the visual approach featured by MagicTest helps to make testing a breeze. As you know, traditional assertion-based test frameworks like TestNG or JUnit force us to include the expected results in the test code. Where this may be more or less suitable for simple tests (like in the previous article), it quickly becomes cumbersome if the test handles complex objects or voluminous data. The Task We must test the method createEvenOddTable() (see appended ) with the following functionality: Create HTML table (elements table, tr, td) with specified number of data rows and columns. An additional row will be added to store header information (element th). An additional column will be added which contains the row number (element th) The rows will have attribute class set to "head", "even", or "odd" for easy styling. Both the specification (the 4 lines above) and the source code itself (25 lines) are short and simple to understand, so any experienced developer will write this method in a few minutes. So what's the problem with testing this method? We will see if we look at how MagicTest handles this case. The Magic Test The MagicTest for this method looks like this: public class HtmlTableTest { @Trace public void testCreateEvenOddTable() { HtmlTable.createEvenOddTable(4, 3); } @Formatter(outputType=OutputType.TEXT) public static String formatElement(Element elem) { XMLOutputter serializer = new XMLOutputter(); serializer.setFormat(Format.getPrettyFormat()); return serializer.outputString(elem); } } Some details: We use the @Trace annotation to automatically capture information about calls to the method under test. We rely on naming conventions, so the method HtmlTable.createEvenOddTable() is tested by HtmlTableTest.testCreateEvenOddTable(). Per default, MagicTest uses the toString() method to report the parameter and return values. As the Element's toString() method returns only its name, we have to define a custom @Formatter to get the full XML tree. If we run the test, we get the following report: If we look at the XML element tree in the report, we can see all the details which a complete test should cover: correct nesting of elements (table, tr, td), correct header line, correct line numbers, correct number of rows, correct number of cells for each row, correct class attribute for each row, etc. But even if you end up with a bunch of lengthy assert statements like assert("head".equals(((Element) elem.getChildren("tr").get(0)).getAttributeValue("class"))); which tests for the correct class attribute, this will not be enough: you should also test the absence of the class attribute for all cells except the first ones in each row. So yes, for a sound test you must actually verify the whole XML tree - and this is exactly the information which MagicTest shows you for confirmation. Let the Challenge Begin To run the test yourself, you will need to download the MagicTest Eclipse plug-in. Copy it into the Eclipse dropins folder and restart Eclipse. Then download the attached Eclipse project and import it into your workspace. Run the test class TagsTest by executing Run As / MagicTest. After the first run, the test report will show up and all test steps will be red. This is the MagicTest way of telling you that a step has failed. In our case, the steps just fail because MagicTest simply does not know anything about the expected result. So we carefully check the output and confirm its correctness by clicking on the save button. Now all steps are green - and the test is successful. You have now seen how efficiently this test can be realized using MagicTest - it even looked like fun. Does your test tool accept the challenge? How many minutes and lines does it take you to write the test? I'm looking forward to your contributions! Appendix: Listing HtmlTable /** * Create HTML table (elements table, tr, td) with specified number of data rows and columns. * An additional row will be added to store header information (element th). * An additional column will be added which contains the row number (element th) * The rows will have attribute class set to "head", "even", or "odd" for easy styling. * * @param rows number of rows * @param cols number of column * @return XML element containing the HTML table */ public static Element createEvenOddTable(int rows, int cols) { Element table = new Element("table"); for (int r=0; r 0) { td.setText(Integer.toString(r)); } } } return table; }
Apple is expected to make a big announcement today, holding a special press event that has generated a lot of buzz in the past few weeks. Rumors abound about what Apple will announce, with popular speculation that two new iPhones will be revealed -- the iPhone 5S, the successor to the current-gen iPhone, and the cheaper iPhone 5C, an economical version of the iPhone meant to compete with Samsung in emerging markets. The event is being kept top-secret, with no word on whether Apple will make any announcements regarding its iPod, iPad, or Mac products. We will be tuned in to the event at 10 a.m. Pacific time today, and will be live-updating this article with news and announcements. Stay tuned! (All times are EDT.) Update 1:01 PM: Tim Cook takes the stage. Update 1:03 PM: Cook starts by talking about the iTunes festival. Update 1:10 PM: Cook announces that Apple will be "expanding its footprint," perhaps foreshadowing the 5C. Update 1:13 PM: Apple working to finish iOS 7. Will have a new control center, pull-down search bar, better multitasking capabilities, and Siri updated with the ability to ask her what people are tweeting and read the tweet back to you. Update 1:17 PM: More iOS 7 updates. Improvement to Camera app, which seems to draw inspiration from existing third-party apps. AirDrop will allow you to share photos with anyone on the same Wi-Fi connection as you. iTunes Radio, kind of like Pandora or Spotify. iOS 7 launches September 18th. Update 1:20 PM: Cook talks about iWork. Update 1:22 PM: Apple replacing iPhone 5 with two new designs. Update 1:25 PM: Phil Schiller takes the stage. iPhone 5C is official. 5C will have a backplate with volume and switches made from a single part, and will come in a variety of colors: (green, white, blue, red, yellow). Update 1:28 PM: Good news, developers! 5C will have Retina display and A6 chip. 5C will start at $99 for 16GB, twice that for 32GB. Update 1:35 PM: iPhone 5S official. Update 1:38 PM: 5S will come in three colors, black, silver and gold. More importantly, it will have a 64-bit A7 SoC. (The first 64-bit smartphone.) Time to gear up for 64-bit apps, developers! Update 1:40 PM: A7 will have twice as many transistors as A6. Graphics performance 56 times as fast as original iPhone. 5S will be a good platform to develop mobile games for, like Infinity Blade. Demo from Epic Games. Update 1:45 PM: Epic Games shows off Infinity Blade 3. Apple perhaps wants 5S to have a focus on mobile gaming. 5S will have OpenGL ES 3.0 support. Update 1:48 PM: 5S has a new processor called an M7, which is a co-processor for motion. Expect to be slinging your phone around like a Wiimote -- it's a very advanced pedometer, basically. Developers: Start thinking about apps that could take advantage of the M7. Update 1:52 PM: 5S will have a bigger, better camera lens, with autofocus supposedly comparable to a DSLR. Camera flash will be dual-LED, one cool and white, and another warm and amber. Apps involving the camera will be able to take advantage of this feature. Update 1:59 PM: 5S camera will have a 120 fps slow-motion feature, will incorporate a fingerprint-reading feature called TouchID. TouchID will read your fingerprint in very high detail and is built into the home button. Update 2:04 PM: Fingerprint info is encrypted and stored in A7 chip. It isn't uploaded to Apple's servers, or stored on iCloud, so you don't have to worry about the NSA having your fingerprints (at least from your phone). No word on if individual apps can have access to fingerprints. Update 2:17 PM: The show ended with a surprise guest appearance by Elvis Costello. That's all, folks!
Google I/O got off to a great start yesterday with some incredible insights on what Google has in store for its developers. Here's the live stream of Google I/O for Channel 3. Check out Channel 1 and 2, and get the full schedule here. All times are in PDT. 9AM: "Polymer and modern web APIs: In production at Google scale" 10AM: "Tech for a better world, faster: A discussion with Google.org's social innovators" 11AM: "Firebase: An overview" 1PM: "Improve your Android app's accessibility" 3PM: "Engineering for the Stratosphere - Presented by Women Techmakers"