Search Results

Search found 15216 results on 609 pages for 'oracle streams'.

Page 505/609 | < Previous Page | 501 502 503 504 505 506 507 508 509 510 511 512  | Next Page >

  • Raspberry Pi and Java SE: A Platform for the Masses

    - by Jim Connors
    One of the more exciting developments in the embedded systems world has been the announcement and availability of the Raspberry Pi, a very capable computer that is no bigger than a credit card.  At $35 US, initial demand for the device was so significant, that very long back orders quickly ensued. After months of patiently waiting, mine finally arrived.  Those initial growing pains appear to have been fixed, so availability now should be much more reasonable. At a very high level, here are some of the important specs: Broadcom BCM2835 System on a chip (SoC) ARM1176JZFS, with floating point, running at 700MHz Videocore 4 GPU capable of BluRay quality playback 256Mb RAM 2 USB ports and Ethernet Boots from SD card Linux distributions (e.g. Debian) available So what's taking place taking place with respect to the Java platform and Raspberry Pi? A Java SE Embedded binary suitable for the Raspberry Pi is available for download (Arm v6/7) here.  Note, this is based on the armel architecture, a variety of Arm designed to support floating point through a compatibility library that operates on more platforms, but can hamper performance.  In order to use this Java SE binary, select the available Debian distribution for your Raspberry Pi. The more recent Raspbian distribution is based on the armhf (hard float) architecture, which provides for more efficient hardware-based floating point operations.  However armhf is not binary compatible with armel.  As of the writing of this blog, Java SE Embedded binaries are not yet publicly available for the armhf-based Raspbian distro, but as mentioned in Henrik Stahl's blog, an armhf release is in the works. As demonstrated at the just-completed JavaOne 2012 San Francisco event, the graphics processing unit inside the Raspberry Pi is very capable indeed, and makes for an excellent candidate for JavaFX.  As such, plans also call for a Pi-optimized version of JavaFX in a future release too. A thriving community around the Raspberry Pi has developed at light speed, and as evidenced by the packed attendance at Pi-specific sessions at Java One 2012, the interest in Java for this platform is following suit. So stay tuned for more developments...

    Read the article

  • To encryption=on or encryption=off a simple ZFS Crypto demo

    - by darrenm
    I've just been asked twice this week how I would demonstrate ZFS encryption really is encrypting the data on disk.  It needs to be really simple and the target isn't forensics or cryptanalysis just a quick demo to show the before and after. I usually do this small demo using a pool based on files so I can run strings(1) on the "disks" that make up the pool. The demo will work with real disks too but it will take a lot longer (how much longer depends on the size of your disks).  The file hamlet.txt is this one from gutenberg.org # mkfile 64m /tmp/pool1_file # zpool create clear_pool /tmp/pool1_file # cp hamlet.txt /clear_pool # grep -i hamlet /clear_pool/hamlet.txt | wc -l Note the number of times hamlet appears # zpool export clear_pool # strings /tmp/pool1_file | grep -i hamlet | wc -l Note the number of times hamlet appears on disk - it is 2 more because the file is called hamlet.txt and file names are in the clear as well and we keep at least two copies of metadata. Now lets encrypt the file systems in the pool. Note you MUST use a new pool file don't reuse the one from above. # mkfile 64m /tmp/pool2_file # zpool create -O encryption=on enc_pool /tmp/pool2_file Enter passphrase for 'enc_pool': Enter again: # cp hamlet.txt /enc_pool # grep -i hamlet /enc_pool/hamlet.txt | wc -l Note the number of times hamlet appears is the same as before # zpool export enc_pool # strings /tmp/pool2_file | grep -i hamlet | wc -l Note the word hamlet doesn't appear at all! As a said above this isn't indended as "proof" that ZFS does encryption properly just as a quick to do demo.

    Read the article

  • Tab Sweep - Java EE wins, Prime Faces JSF, NetBeans, Jelastic for GlassFish, BeanValidation, Ewok and more...

    - by alexismp
    Recent Tips and News on Java, Java EE 6, GlassFish & more : • PrimeFaces 3.2 Final Released (primefaces.org) • Java EE wins over Spring (Bill Burke) • Customizing Components in JSF 2.0 (Mr. Bool) • Key to the Java EE 6 Platform: NetBeans IDE 7.1.x (OTN) • How to use GlassFish’s Connection Pool in Jelastic (jelastic.com) • Bean Validation 1.1 early draft 1 is out - time for feedback (Emmanuel) • Code artifacts published for Bean Validation 1.1 early draft 1 (Emmanuel) • Aprendendo Java EE 6 com GlassFish 3 e NetBeans 7.1 (Marcello) • JavaEE6 and the Ewoks (Murat)

    Read the article

  • A Simple Solution For NetBeans RCP Apps That Need A Groovy Editor

    - by Geertjan
    Take a look at Nils Hoffmann's metabolomic analyzer, especially at the Groovy editor contained within it: Obviously, it would be cool if the Groovy editor in the app above were to have syntax coloring and other editor features helpful in coding Groovy. However, as I showed in If You Include the Groovy Editor, there are multiple dependencies that the NetBeans Groovy support has on other modules that would be completely superfluous in the above application, while they'd make the app much heavier than it is, simply because of all the Groovy dependencies. But today I thought of a simple solution. Why not take the Groovy.g file (i.e., the ANTLR definition), such as this one [though that's probably not the most up to date one, wondering how to find the most up to date one] and then apply the content of this screencast (made by me) to the Groovy.g file: Within a few minutes, you should end up with Groovy syntax coloring. OK, so that's not a full blown Groovy editor, but syntax coloring is surely a cool thing to have in the app with which this blog entry started? Sure, this means creating a new Groovy editor from scratch. But the point is that doing so can be very simple, i.e., the syntax coloring can simply be generated via the simple instructions above. I'm going to try it myself in the next few days, but would be cool if others out there would try this too!

    Read the article

  • Twitter Storm VS. Google's MapReduce

    - by Edward J. Yoon
    IMO, the era of Information Retrieval is dead with the advent of SNS. And the question type is changed from "How many backlinks your site has?" to "How many people have clicked URL you've shared on SNS?". So many people who newbie in Big Data Analytics often asks me "How can I analyze stream data time-series pattern mining methods using Map/Reduce?", "How can I mining the valuable insights using Map/Reduce?", "blah~ blah~ using Map/Reduce?". The answer is No Map/Reduce.

    Read the article

  • Hands On Workshop "APEX Mobile": Sommer 2013

    - by Carsten Czarski
    Anwendungen für Mobile Endgeräte sind derzeit in aller Munde - nahezu überall taucht die Anforderung "Unterstützung von Smartphones oder Tablets" auf. Wie die meisten wissen, werden mobile Endgeräte mit der aktuellen APEX Version 4.2 out-of-the-box unterstützt. Und mobile Anwendungen werden in typischer APEX-Manier schnell und einfach erstellt. Wie einfach das geht, können Sie nicht nur mit dem neuen Workshop Guide: APEX-Anwendungen für mobile Endgeräte selbst nachvollziehen, sondern auch in einem der APEX Mobile Hands On Workshops 'LIVE' erleben. Dort erfahren Sie ... Wie man eine APEX-Anwendung, basierend auf Tabellen erstellt APEX Komponenten wie Formulare, Berichte, Diagramme oder Kalender einbindet Wie man auf das GPS in einem Smartphone zugreift, die Koordinaten in der Datenbank speichern und damit arbeiten kann Wie man auf die Kamera zugreift, die Bilder speichert und einfache Bildoperationen durchführen kann Und vieles mehr ... Darüber hinaus ist natürlich auch Zeit für den Austausch und zur Diskussion vorgesehen. Details zu Agenda, Terminen und Workshop-Voraussetzungen finden Sie auf der Webseite. Die Teilnahme an der Veranstaltung ist kostenlos - melden Sie sich am besten gleich an.

    Read the article

  • Recent uploaded slides for the Upgrade Talks last week

    - by Mike Dietrich
    Welcome 2011 :-) And here you'll find the newest talks Carol, Roy and Brian delivered last week in several cities (please find the also in the DOWNLOAD SLIDES section on the right side of this blog): Upgrade Methods and Upgrade Planning: Click here to Download and use the keyword: roy2011 +500 Slides Upgrade Workshop Presentation: Click here to Download and use the keyword (Schlüsselwort): upgrade112 Hope you had a nice weekend and wonderful weather, too, as we had yesterday south of Munich. Click pic for a higher resolution: Starnberg Lake - View towards the Alps

    Read the article

  • Removing Menu Items from Window Tabs

    - by Geertjan
    So you're working on your NetBeans Platform application and you notice that when you right-click on tabs in the predefined windows, e.g., the Projects window, you see a long list of popup menus. For whatever the reason is, you decide you don't want those popup menus. You right-click the application and go to the Branding dialog. There you uncheck the checkboxes that are unchecked below: As you can see above, you've removed three features, all of them related to closing the windows in your application. Therefore, "Close" and "Close Group" are now gone from the list of popup menus: But that's not enough. You also don't want the popup menus that relate to maximizing and minimizing the predefined windows, so you uncheck those checkboxes that relate to that: And, hey, now they're gone too: Next, you decide to remove the feature for floating, i.e., undocking the windows from the main window: And now they're gone too: However, even when you uncheck all the remaining checkboxes, as shown here... You're still left with those last few pesky popup menu items that just will not go away no matter what you do: The reason for the above? Those actions are hardcoded into the action list, which is a bug. Until it is fixed, here's a handy workaround: Set an implementation dependency on "Core - Windows" (core.window). That is, set a dependency and then specify that it is an implementation dependency, i.e., that you'll be using an internal class, not one of the official APIs. In one of your existing modules, or in a new one, make sure you have (in addition to the above) a dependency on Lookup API and Window System API. And then, add the class below to the module: import javax.swing.Action; import org.netbeans.core.windows.actions.ActionsFactory; import org.openide.util.lookup.ServiceProvider; import org.openide.windows.Mode; import org.openide.windows.TopComponent; @ServiceProvider(service = ActionsFactory.class) public class EmptyActionsFactory extends ActionsFactory { @Override public Action[] createPopupActions(TopComponent tc, Action[] actions) { return new Action[]{}; } @Override public Action[] createPopupActions(Mode mode, Action[] actions) { return new Action[]{}; } } Hurray. Farewell to superfluous popup menu items on your window tabs. In the screenshot below, the tab of the Projects window is being right-clicked and no popup menu items are shown, which is true for all the other windows, those that are predefined as well as those that you add afterwards:

    Read the article

  • Mobile Shopping Alerts

    - by David Dorf
    Normal 0 false false false EN-US X-NONE X-NONE /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin:0in; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"Times New Roman"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} It’s been popular to offer coupons when people check-in to a store, because you’re catching them at the best possible time – they’re presumably in a shopping state-of-mind, and they’re at your store.  But wouldn’t it be even better to catch the people walking by your store and entice them to visit?  That’s the concept of geo-fences.  When people enter a geographic zone, they are sent a relevant text message alerting them about something nearby. I wrote about Placecast doing this for The North Face, noting that the messages were a unique combination of both offers and useful information about outdoor activities. After creating a program with European carrier O2, Placecast recently entered into an agreement to provide similar services to AT&T customers.  The ShopAlerts program allows AT&T customers in Chicago, Los Angeles, New York City, and San Francisco opt-in to receive these messages.  The program will be expanded nationwide as early as this summer. It’s a much better model for customers (and Placecast) to sign-up once with the carrier instead of each individual retailer, but I hope the messages aren’t restricted to advertising.  I really the like the idea of providing other information, such as nearby special events, races, and perhaps even things to avoid like construction.

    Read the article

  • Architecture: Bringing Value to the Table

    - by Bob Rhubart
    A recent TechTarget article features an interview with Business Architecture expert William Ulrich (Take a business-driven approach to application modernization ). In that article Ulrich offers this advice: "Moving from one technical architecture might be perfectly viable on a project by project basis, but when you're looking at the big picture and you want to really understand how to drive business value so that the business is pushing money into IT instead of IT pulling money back, you have to understand the business architecture. When we do that we're going to really be able to start bringing value to the table." In many respects that big picture view is what software architecture is all about. As an architect, your technical skills must be top-notch. But if you don't apply that technical knowledge within the larger context of moving the business forward, what are you accomplishing? If you're interested in more insight from William Ulrich, you can listen to the ArchBeat Podcast interview he did last year, in which he and co-author Neal McWhorter talked about their book, Business Architecture: The Art and Practice of Business Transformation.

    Read the article

  • AT&T Application Resource Analyzer in NetBeans IDE

    - by Geertjan
    Here at Øredev in Malmö I met Doug Sillars who does developer outreach for the AT&T Application Resource Optimizer. In this YouTube clip you see Doug explaining how it works and what it can do for optimizing performance of mobile applications. There's a free and open source Android app on GitHub that you can install on Android to collect data and then there's a Java Swing application for analyzing the results. And here's what that application looks like as a plugin in NetBeans IDE, click to enlarge the image, which shows the Android sources of the Data Collector, as well as the Data Analyzer ready to be used to collect data: Since the ARO Data Analyzer is written in Java and has JPanels defining its UI layer, integrating the user interface wasn't hard. Now working on the Actions, so there'll be a new ARO menu with start/stop data collecting menu items, etc, reusing as much of the original code as possible. That part is actually already working. I started up an Android emulator, then started the data collection process from the IDE. Now need to include the Actions for importing the data into the analyzer, together with a few other related features. A pretty cool feature in ARO is video capture, so that a movie can be made by ARO of all the steps taken on the device during the collection process, which will also be nice to have integrated into the NetBeans plugin. Ultimately, this will be handy for anyone creating Android applications in NetBeans IDE since they'll be able to use AT&T's ARO tool for optimizing the performance of the applications they're developing. It will also be useful for those using the built-in Cordova tools in NetBeans IDE to create iOS applications because ARO is also applicable to analyzing iOS application performance.

    Read the article

  • Az &eacute;rem m&aacute;sik oldala

    - by peter.nagy
    Az Exalogic kapcsán, ha már valaki hallott róla, akkor leginkább a teljesítmény ugrik be. Mint normálisan majdnem minden szerver megoldás új verziójánál. Nos ez nyilvánvalóan nincs másképp itt sem, amire büszkék is lehetünk. Ugyanakkor nagyon fontos tulajdonsága az Exalogicnak, hogy szinte azonnal hadrafogható. Ez persze már részben elérheto, mivel képesek vagyunk kész virtuális gépeket letölteni komplett telepítéssel. Persze ott még a vasra külön fel kell húzni a virtualizációs szoftvert. Na és itt jönnek a problémák. Bárki aki már látott, csinált, vagy végig nézte egy rendszerhez szükséges infrastruktúra felhúzását az tudja mirol beszélek. A telepítés, megfelelo verziók, szükséges patch-ek, hálózati eszközök bekötése. Aztán mindennek a konfigurálása. A legjobb esetben is napok, de inkább hetek kérdése mire üzemkész lenne. Az Exalogic esetében ez más, hiszen gyárilag összereszelték, a konfiguráció kialakítása gyakorlatilag néhány paraméter file és kész. De lássuk is, hogy mennyi ido onnan, hogy kibontottuk a dobozból. Mindössze egy nap. A hab a tortán pedig a full stack upgrade. Nem külön minden egyes komponenst. Firmware-tol a WebLogic szerverig.

    Read the article

  • JDK bug migration: bugs.sun.com now backed by JIRA

    - by darcy
    The JDK bug migration from a Sun legacy system to JIRA has reached another planned milestone: the data displayed on bugs.sun.com is now backed by JIRA rather than by the legacy system. Besides maintaining the URLs to old bugs, bugs filed since the migration to JIRA are now visible too. The basic information presented about a bug is the same as before, but reformatted and using JIRA terminology: Instead of a "category", a bug now has a "component / subcomponent" classification. As outlined previously, part of the migration effort was reclassifying bugs according to a new classification scheme; I'll write more about the new scheme in a subsequent blog post. Instead of a list of JDK versions a bug is "reported against," there is a list of "affected versions." The names of the JDK versions have largely been regularized; code names like "tiger" and "mantis" have been replaced by the release numbers like "5.0" and "1.4.2". Instead of "release fixed," there are now "Fixed Versions." The legacy system had many fields that could hold a sequence of text entries, including "Description," "Workaround", and "Evaluation." JIRA instead only has two analogous fields labeled as "Description" and a unified stream of "Comments." Nearly coincident with switching to JIRA, we also enabled an agent which automatically updates a JIRA issue in response to pushes into JDK-related Hg repositories. These comments include the changeset URL, the user making the push, and a time stamp. These comments are first added when a fix is pushed to a team integration repository and then added again when the fix is pushed into the master repository for a release. We're still in early days of production usage of JIRA for JDK bug tracking, but the transition to production went smoothly and over 1,000 new issues have already been filed. Many other facets of the migration are still in the works, including hosting new incidents filed at bugs.sun.com in a tailored incidents project in JIRA.

    Read the article

  • ADF Desktop Integration Page Now Live on OTN

    - by juan.ruiz
    I’m happy to announce that we have launched the  ADF Desktop Integration home page on OTN. This page will centralize all the resources related to desktop integration. As you can notice, currently we are providing a variety of resources to help you understand the technology as well as to improve your overall ADF desktop integration learning experience. Let us know what you think about the page and what additional resources related to ADF desktop integration you would like us to include.

    Read the article

  • Update on PeopleSoft 9.0

    Doris Wong, Group Vice President and General Manager of PeopleSoft Enterprise updates listeners on the new capabilities of PeopleSoft 9.0, the customer momentum with this new release and why more PeopleSoft customers should consider upgrading to this new release.

    Read the article

  • A Panorama of JavaOne Latin America

    - by reza_rahman
    As you know, JavaOne Latin America 2012 was held at the Transamerica Expo Center in Sao Paulo, Brazil on December 4-6. It was a resounding success with a great vibe, excellent technical content and numerous world class speakers, both local and international. Various folks like Tori Wieldt, Steve Chin, Arun Gupta, Bruno Borges and myself looked at the conference from slightly different colored lenses. It's interesting to put them all together in a panoramatic collage: Tori wrote about the Sao Paulo Geek Bike Ride held the Saturday before the conference here (enjoy the photos and video). She also discusses the keynotes in great detail here. Steve looked at it from the viewpoint of someome instrumental to putting the event together. Read his thoughts here (he has more geek bike ride photos as well as material for his JavaFX/HTML 5 talk). Arun had a more holistic view of the conference. He covers the geek bike ride, the GlassFish party (organized by Bruno Borges), his Java EE talks, and more. Check out the cool photos as well as the technical material. Bruno provides the critical local perspective in his 7 reasons you had to be at JavaOne Latin America 2012. He discusses the OTN Lounge, the hands-on-lab, the Java community keynote, Java EE technical sessions and of course the GlassFish party! I covered the GlassFish booth, the lab and my technical sessions (as well as Sao Paulo's lively metal underground) here.

    Read the article

  • APEX Tabs als Pulldown-Menü: wie im Application Builder

    - by carstenczarski
    Jeder kennt die Reiterkarten im APEX Application Builder, mit der eleganten Möglichkeit, das Untermenü als Pulldown-Menü aufzuklappen. Und viele fragen sich, wie man sowas in eigenen APEX-Anwendungen verwenden könnte. Spätestens, wenn man dabei noch mehr als eine Hiararchieebene unterstützen möchte, kommen APEX Reiterkarten (Tabs) nicht mehr in Frage, denn diese unterstützen nur zwei Ebenen. Im Internet findet sich der eine oder andere Tipp zum Thema; allerdings basieren viele dieser Tipps auf den JavaScript-Funktionen, die auch der Application Builder intern verwendet. Allerdings sind diese nicht dokumentiert - man kann sich also nicht darauf verlassen, dass der Ansatz in künftigen APEX-Versionen noch funktioniert. Besser ist es also, eine Lösung zu erstellen, die keinerlei Abhängigkeiten zu undokumentierten Funktionen hat. Dieser Tipp stellt eine Lösung auf der Basis von APEX-Listen vor. Listen haben den Vorteil, dass Sie beliebig geschachtelt werden können, bei Klick können sie auf beliebige Ziele verweisen und mit Listentemplates kann die Darstellung ebenfalls beliebig gestaltet werden. Mehr dazu in unserem aktuellen Tipp.

    Read the article

  • Marek's JAX-RS 2.0 content from Devoxx 2011

    - by alexismp
    Marek Potociar, one of the two co-spec leads for the upcoming JAX-RS 2.0 had a very well-attended session at Devoxx and wrote a blog post about it detailing his conference experience (1st time at Devoxx) and running through the new features of the specification. A link to slides is also included in his post. The work by the expert group seems very solid at this point as you can read for yourself in details in the recently published early draft document. You can follow the remaining work between now and the middle of new year on the specification project pages on java.net.

    Read the article

  • Musical Movements on the NetBeans Platform

    - by Geertjan
    I came across VirtMus recently, the "modern music stand", on the NetBeans Platform: Its intentions remind me a LOT of Mike Kelly's Chord Maestro, which is also on the NetBeans Platform. Maybe the two should integrate? Speaking of music, I've been in touch with Winston Dehaney who is creating score notation software, named "Acapella Score", also on the NetBeans Platform: That's an app that could be integrated with the JFugue Music NotePad at some stage!

    Read the article

  • Will we ever lose the human touch?

    - by divya.malik
    I was at a conference two weeks ago, which was targeted to sales and marketing professionals. The discussions around the changing scenario in sales was very interesting. More and more of selling is moving to the internet- sales people are delivering more of their presentations online, or via the phone. Budget constraints and new technologies have dramatically decreased the need for face-to-face interactions. At the same time, customers are also researching for products on their own, taking the advice of peers, making up their mind, and then contacting the vendor. That takes care of more than half of the usual selling process. But humans are social animals, and because of that I believe that despite these changing trends and technologies, the need to maintain the human touch will always be necessary. One of the presenters at the conference shared this video, which stayed in my mind.

    Read the article

  • Session Report - Modern Software Development Anti-Patterns

    - by Janice J. Heiss
    In this standing-room-only session, building upon his 2011 JavaOne Rock Star “Diabolical Developer” session, Martijn Verburg, this time along with Ben Evans, identified and explored common “anti-patterns” – ways of doing things that keep developers from doing their best work. They emphasized the importance of social interaction and team communication, along with identifying certain psychological pitfalls that lead developers astray. Their emphasis was less on technical coding errors and more how to function well and to keep one’s focus on what really matters. They are the authors of the highly regarded The Well-Grounded Java Developer and are both movers and shakers in the London JUG community and on the Java Community Process. The large room was packed as they gave a fast-moving, witty presentation with lots of laughs and personal anecdotes. Below are a few of the anti-patterns they discussed.Anti-Pattern One: Conference-Driven DeliveryThe theme here is the belief that “Real pros hack code and write their slides minutes before their talks.” Their response to this anti-pattern is an expression popular in the military – PPPPPP, which stands for, “Proper preparation prevents piss-poor performance.”“Communication is very important – probably more important than the code you write,” claimed Verburg. “The more you speak in front of large groups of people the easier it gets, but it’s always important to do dry runs, to present to smaller groups. And important to be members of user groups where you can give presentations. It’s a great place to practice speaking skills; to gain new skills; get new contacts, to network.”They encouraged attendees to record themselves and listen to themselves giving a presentation. They advised them to start with a spouse or friends if need be. Learning to communicate to a group, they argued, is essential to being a successful developer. The emphasis here is that software development is a team activity and good, clear, accessible communication is essential to the functioning of software teams. Anti-Pattern Two: Mortgage-Driven Development The main theme here was that, in a period of worldwide recession and economic stagnation, people are concerned about keeping their jobs. So there is a tendency for developers to treat knowledge as power and not share what they know about their systems with their colleagues, so when it comes time to fix a problem in production, they will be the only one who knows how to fix it – and will have made themselves an indispensable cog in a machine so you cannot be fired. So developers avoid documentation at all costs, or if documentation is required, put it on a USB chip and lock it in a lock box. As in the first anti-pattern, the idea here is that communicating well with your colleagues is essential and documentation is a key part of this. Social interactions are essential. Both Verburg and Evans insisted that increasingly, year by year, successful software development is more about communication than the technical aspects of the craft. Developers who understand this are the ones who will have the most success. Anti-Pattern Three: Distracted by Shiny – Always Use the Latest Technology to Stay AheadThe temptation here is to pick out some obscure framework, try a bit of Scala, HTML5, and Clojure, and always use the latest technology and upgrade to the latest point release of everything. Don’t worry if something works poorly because you are ahead of the curve. Verburg and Evans insisted that there need to be sound reasons for everything a developer does. Developers should not bring in something simply because for some reason they just feel like it or because it’s new. They recommended a site run by a developer named Matt Raible with excellent comparison spread sheets regarding Web frameworks and other apps. They praised it as a useful tool to help developers in their decision-making processes. They pointed out that good developers sometimes make bad choices out of boredom, to add shiny things to their CV, out of frustration with existing processes, or just from a lack of understanding. They pointed out that some code may stay in a business system for 15 or 20 years, but not all code is created equal and some may change after 3 or 6 months. Developers need to know where the code they are contributing fits in. What is its likely lifespan? Anti-Pattern Four: Design-Driven Design The anti-pattern: If you want to impress your colleagues and bosses, use design patents left, right, and center – MVC, Session Facades, SOA, etc. Or the UML modeling suite from IBM, back in the day… Generate super fast code. And the more jargon you can talk when in the vicinity of the manager the better.Verburg shared a true story about a time when he was interviewing a guy for a job and asked him what his previous work was. The interviewee said that he essentially took patterns and uses an approved book of Enterprise Architecture Patterns and applied them. Verburg was dumbstruck that someone could have a job in which they took patterns from a book and applied them. He pointed out that the idea that design is a separate activity is simply wrong. He repeated a saying that he uses, “You should pay your junior developers for the lines of code they write and the things they add; you should pay your senior developers for what they take away.”He explained that by encouraging people to take things away, the code base gets simpler and reflects the actual business use cases developers are trying to solve, as opposed to the framework that is being imposed. He told another true story about a project to decommission a very long system. 98% of the code was decommissioned and people got a nice bonus. But the 2% remained on the mainframe so the 98% reduction in code resulted in zero reduction in costs, because the entire mainframe was needed to run the 2% that was left. There is an incentive to get rid of source code and subsystems when they are no longer needed. The session continued with several more anti-patterns that were equally insightful.

    Read the article

  • elffile: ELF Specific File Identification Utility

    - by user9154181
    Solaris 11 has a new standard user level command, /usr/bin/elffile. elffile is a variant of the file utility that is focused exclusively on linker related files: ELF objects, archives, and runtime linker configuration files. All other files are simply identified as "non-ELF". The primary advantage of elffile over the existing file utility is in the area of archives — elffile examines the archive members and can produce a summary of the contents, or per-member details. The impetus to add elffile to Solaris came from the effort to extend the format of Solaris archives so that they could grow beyond their previous 32-bit file limits. That work introduced a new archive symbol table format. Now that there was more than one possible format, I thought it would be useful if the file utility could identify which format a given archive is using, leading me to extend the file utility: % cc -c ~/hello.c % ar r foo.a hello.o % file foo.a foo.a: current ar archive, 32-bit symbol table % ar r -S foo.a hello.o % file foo.a foo.a: current ar archive, 64-bit symbol table In turn, this caused me to think about all the things that I would like the file utility to be able to tell me about an archive. In particular, I'd like to be able to know what's inside without having to unpack it. The end result of that train of thought was elffile. Much of the discussion in this article is adapted from the PSARC case I filed for elffile in December 2010: PSARC 2010/432 elffile Why file Is No Good For Archives And Yet Should Not Be Fixed The standard /usr/bin/file utility is not very useful when applied to archives. When identifying an archive, a user typically wants to know 2 things: Is this an archive? Presupposing that the archive contains objects, which is by far the most common use for archives, what platform are the objects for? Are they for sparc or x86? 32 or 64-bit? Some confusing combination from varying platforms? The file utility provides a quick answer to question (1), as it identifies all archives as "current ar archive". It does nothing to answer the more interesting question (2). To answer that question, requires a multi-step process: Extract all archive members Use the file utility on the extracted files, examine the output for each file in turn, and compare the results to generate a suitable summary description. Remove the extracted files It should be easier and more efficient to answer such an obvious question. It would be reasonable to extend the file utility to examine archive contents in place and produce a description. However, there are several reasons why I decided not to do so: The correct design for this feature within the file utility would have file examine each archive member in turn, applying its full abilities to each member. This would be elegant, but also represents a rather dramatic redesign and re-implementation of file. Archives nearly always contain nothing but ELF objects for a single platform, so such generality in the file utility would be of little practical benefit. It is best to avoid adding new options to standard utilities for which other implementations of interest exist. In the case of the file utility, one concern is that we might add an option which later appears in the GNU version of file with a different and incompatible meaning. Indeed, there have been discussions about replacing the Solaris file with the GNU version in the past. This may or may not be desirable, and may or may not ever happen. Either way, I don't want to preclude it. Examining archive members is an O(n) operation, and can be relatively slow with large archives. The file utility is supposed to be a very fast operation. I decided that extending file in this way is overkill, and that an investment in the file utility for better archive support would not be worth the cost. A solution that is more narrowly focused on ELF and other linker related files is really all that we need. The necessary code for doing this already exists within libelf. All that is missing is a small user-level wrapper to make that functionality available at the command line. In that vein, I considered adding an option for this to the elfdump utility. I examined elfdump carefully, and even wrote a prototype implementation. The added code is small and simple, but the conceptual fit with the rest of elfdump is poor. The result complicates elfdump syntax and documentation, definite signs that this functionality does not belong there. And so, I added this functionality as a new user level command. The elffile Command The syntax for this new command is elffile [-s basic | detail | summary] filename... Please see the elffile(1) manpage for additional details. To demonstrate how output from elffile looks, I will use the following files: FileDescription configA runtime linker configuration file produced with crle dwarf.oAn ELF object /etc/passwdA text file mixed.aArchive containing a mixture of ELF and non-ELF members mixed_elf.aArchive containing ELF objects for different machines not_elf.aArchive containing no ELF objects same_elf.aArchive containing a collection of ELF objects for the same machine. This is the most common type of archive. The file utility identifies these files as follows: % file config dwarf.o /etc/passwd mixed.a mixed_elf.a not_elf.a same_elf.a config: Runtime Linking Configuration 64-bit MSB SPARCV9 dwarf.o: ELF 64-bit LSB relocatable AMD64 Version 1 /etc/passwd: ascii text mixed.a: current ar archive, 32-bit symbol table mixed_elf.a: current ar archive, 32-bit symbol table not_elf.a: current ar archive same_elf.a: current ar archive, 32-bit symbol table By default, elffile uses its "summary" output style. This output differs from the output from the file utility in 2 significant ways: Files that are not an ELF object, archive, or runtime linker configuration file are identified as "non-ELF", whereas the file utility attempts further identification for such files. When applied to an archive, the elffile output includes a description of the archive's contents, without requiring member extraction or other additional steps. Applying elffile to the above files: % elffile config dwarf.o /etc/passwd mixed.a mixed_elf.a not_elf.a same_elf.a config: Runtime Linking Configuration 64-bit MSB SPARCV9 dwarf.o: ELF 64-bit LSB relocatable AMD64 Version 1 /etc/passwd: non-ELF mixed.a: current ar archive, 32-bit symbol table, mixed ELF and non-ELF content mixed_elf.a: current ar archive, 32-bit symbol table, mixed ELF content not_elf.a: current ar archive, non-ELF content same_elf.a: current ar archive, 32-bit symbol table, ELF 64-bit LSB relocatable AMD64 Version 1 The output for same_elf.a is of particular interest: The vast majority of archives contain only ELF objects for a single platform, and in this case, the default output from elffile answers both of the questions about archives posed at the beginning of this discussion, in a single efficient step. This makes elffile considerably more useful than file, within the realm of linker-related files. elffile can produce output in two other styles, "basic", and "detail". The basic style produces output that is the same as that from 'file', for linker-related files. The detail style produces per-member identification of archive contents. This can be useful when the archive contents are not homogeneous ELF object, and more information is desired than the summary output provides: % elffile -s detail mixed.a mixed.a: current ar archive, 32-bit symbol table mixed.a(dwarf.o): ELF 32-bit LSB relocatable 80386 Version 1 mixed.a(main.c): non-ELF content mixed.a(main.o): ELF 64-bit LSB relocatable AMD64 Version 1 [SSE]

    Read the article

< Previous Page | 501 502 503 504 505 506 507 508 509 510 511 512  | Next Page >