Skip to main content

Home/ Coders/ Group items tagged sided

Rss Feed Group items tagged

Matteo Spreafico

Joe Duffy's Weblog - OnBeingStateful - 0 views

  • The biggest question left unanswered in my mind is the role state will play in software of the future.
  • The biggest question left unanswered in my mind is the role state will play in software of the future. That seems like an absurd statement, or a naïve one at the very least.  State is everywhere: The values held in memory. Data locally on disk. Data in-flight that is being sent over a network. Data stored in the cloud, including on a database, remote filesystem, etc. Certainly all of these kinds of state will continue to exist far into the future.  Data is king, and is one major factor that will drive the shift to parallel computing.  The question then is how will concurrent programs interact with this state, read and mutate it, and what isolation and synchronization mechanisms are necessary to do so?
  • Many programs have ample gratuitous dependencies, simply because of the habits we’ve grown accustomed to over 30 odd years of imperative programming.  Our education, mental models, books, best-of-breed algorithms, libraries, and languages all push us in this direction.  We like to scribble intermediary state into shared variables because it’s simple to do so and because it maps to our von Neumann model of how the computer works.
  • ...3 more annotations...
  • We need to get rid of these gratuitous dependencies.  Merely papering over them with a transaction—making them “safe”—doesn’t do anything to improve the natural parallelism that a program contains.  It just ensures it doesn’t crash.  Sure, that’s plenty important, but providing programming models and patterns to eliminate the gratuitous dependencies also achieves the goal of not crashing but with the added benefit of actually improving scalability too.  Transactions have worked so well in enabling automatic parallelism in databases because the basic model itself (without transactions) already implies natural isolation among queries.  Transactions break down and scalability suffers for programs that aren’t architected in this way.  We should learn from the experience of the database community in this regard
  • There will always be hidden mutation of shared state inside lower level system components.  These are often called “benevolent side-effects,” thanks to Hoare, and apply to things like lazy initialization and memorization caches.  These will be done by concurrency ninjas who understand locks.  And their effects will be isolated by convention.
  • Even with all of this support, we’d be left with an ecosystem of libraries like the .NET Framework itself which have been built atop a fundamentally mutable and imperative system.  The path forward here is less clear to me, although having the ability to retain a mutable model within pockets of guaranteed isolation certainly makes me think the libraries are salvageable.  Thankfully, the shift will likely be very gradual, and the pieces that pose substantial problems can be rewritten in place incrementally over time.  But we need the fundamental language and type system support first.
Joel Bennett

Microsoft Axum - Download Details - 0 views

  • Installer: Axum is an incubation project from Microsoft’s Parallel Computing Platform that aims to validate a safe and productive parallel programming model for the .NET framework. It’s a language that builds upon the architecture of the web and the principles of isolation, actors, and message-passing to increase application safety, responsiveness, scalability and developer productivity. Other advanced concepts we are exploring are data flow networks, asynchronous methods, and type annotations for taming side-effects. Programmer's Guide: Use this simple and easy to follow programmer's guide to learn how to create safe, scalable, and responsive applications with the Axum language. Language Specification: A detailed specification of the Axum language.
  •  
    A .NET language for safe, scalable and productive parallel programming through isolation, actors and message-passing ...
David Corking

Dr. Dobb's | Smartphone Operating Systems: A Developer's Perspective | March 30, 2009 - 0 views

  • The industry stewards have countered Apple's move with their own application stores, so there's a huge opportunity to write the "killer app" for one of several smartphone platforms.
  • 40 MB to less than 4 MB of free RAM
  • one-app-at-a-time requirement complicates any implementation of a copy-and-paste mechanism.
  • ...45 more annotations...
  • As a security sandbox, the iPhone OS permits only one third-party application to run at a time, and not in the background.
  • adding some useful Bluetooth profiles that supported stereo headsets, data synchronization, or the ability to implement multiplayer games would be usefu
  • iPhone OS 3, that provides some of the missing features mentioned here, such as the A2DP profile for Bluetooth, voice recording, and copy-and-paste.
  • Have to learn Objective-C; is only smartphone platform that uses it.
  • Competitors will soon catch up on the UI.
  • embed navigation and GPS plotting into applications.
  • provide their own map content
  • The OS now supports the use of accessories connected to the iPhone either through its 30-pin docking connector or wirelessly via Bluetooth. Now that the device has been "opened", you can expect an entire ecosystem to build up around the device, much like the iPod has.
  • peer-to-peer connectivity using Bonjour
  • developers can now allow users, from within the application, to purchase and obtain new content
  • No voice dial.
  • A client-server mechanism provides access to low-level system resources, and in fact the kernel itself is a server that parcels out resources to those applications that need them. This transaction scheme allows applications to exchange data without requiring direct access to the OS space.
  • C/C++ for porting existing UNIX applications, and Java to port Java ME MIDlets. As mentioned previously, the software stack offers several run-times that offer application development using WRT widgets, Flash, and Python. The primary programming language for the platform is Symbian C++,
  • Handango has managed the wide-scale distribution of Nokia applications. In February, Nokia announced plans to launch its Ovi Store, which sells applications, videos, games, pod-casts and other content, similar to Apple's App Store. The store will be accessible by Nokia S60 smartphones in May.
  • Non-standard Symbian C++ has steep learning curve, with special idioms to master. Large number of Symbian APIs to learn, since it contains hundreds of classes and thousands of member functions.
  • BlackBerry Device Software executes multiple applications simultaneously
  • Manages multiple e-mail Exchange e-mail accounts, along with support for POP3 and SMTP, and e-mails can have file attachments
  • FIPS 140-2 compliant, and supports AES or Triple DES encryption sessions via BlackBerry Enterprise Servers
  • BlackBerry Device Software has enhanced the capabilities of the platform with its own Java virtual machine (JVM), along with new Java classes that offer multitasking capabilities and UI enhancements to go beyond the capabilities of Java ME.
  • You can also take existing Java ME code and add specific BlackBerry classes to make a hybrid Java ME application
  • don't intermix MIDP 2.0 and BlackBerry API calls that perform either screen drawing or application management.
  • The catch to writing an application that uses BlackBerry API extensions is that it ties the application this smartphone. However, this is no worse than using the unique Java classes found in Google's Android.
  • Apple promotes the design goal that applications should accomplish one purpose.
  • no Flash support, and you can't download files.
  • For non-Exchange users, Apple's MobileMe online service, after some fits and starts in 2008, now supports the push of e-mails and changes to the calendar and contacts.
  • The iPhone 3G can work in tandem with Microsoft Exhange Server 2003 and 2007 to support enterprise operations.
  • Cocoa Touch is a subset of Apple's Cocoa,
  • Cocoa Touch components manage most of the writing to the screen and playing media, yet there are APIs exposed that let you access the accelerometer and camera.
  • Quartz engine is identical to the one found in Mac OS X
  • Only a select few higher-level frameworks have access to the kernel and drivers. If necessary, an application can indirectly access some of these services through C-based interfaces provided in a LibSystem library.
  • the SDK provides Dashcode, which is a framework based on a Web page composed of HTML and Javascript. You can use DashCode's simulator to write and test your web application. You can also use several other third-party frameworks to write web applications, and debug these with Aptanna Studio's tools.
  • Made by HTC, the G1 is the first smartphone using the Android platform.
  • e-mail program (which makes use of Google's Gmail), a mapping program (using the company's Google Maps), and a browser that uses WebKit, not Google's Chrome web browser
  • Android is not Java ME, nor does it support such applications
  • ability to both browse and manage multiple IM conversations. On the other hand, such heavy use of the smartphone's CPU shortens battery life significantly. Maybe Apple is on to something in limiting the number of applications that the platform can run.
  • On the positive side, the Android APIs support a touch interface (and the G1 has a capacitive touch screen), but not any multi-touch gestures.
  • copying text from the web pages is the browser isn't allowed
  • The advantage to Android's use of a different bytecode interpreter is that the DVM was designed so that multiple instances of it can run, each in their own protected memory space, and each executing an application. While this approach offers stability and a robust environment for running multiple applications, it does so at the expense of compatibility with Java ME applications.
  • Seasoned Java programmers will find the Android SDK an amalgam of Java SE and Java ME methods and classes, along with unique new ones
  • compile the Java code to generate Dalvik bytecode files, with an extension of .dex. These files, along with the manifest, graphics files, and XML files, are packaged into an .apk file that is similar to a Java JAR file.
  • The certificate that you use to generate the private key does not require a signing authority, and you can use self-signed certificates for this purpose.
  • The Developer Phone provides access to a shipping Android device without the cash outlay or contract contortions required when developing for the other platforms.
  • in February the site began supporting priced applications. Google allows developers to take seventy percent of the proceeds.
  • it's possible that you might pick up a malicious application before it is detected by the user community.
  • Open source, open platform: if you hate the mail program, some third-party is writing a better one.
  •  
    Lengthy developer's overview of Symbian, Mac OS X iPhone, Blackberry, Android. This talks about the leading app platforms except Java ME and Windows Mobile, though it does explain how Blackberry and Symbian support Java ME.
David Corking

JavaScript as a Functional Language | Ajaxonomy | 2009 - 0 views

  • there is a little bit of hand-waving involved in calling JavaScript a functional language. JavaScript is not a side-effect free language, nor is it an expression-based language (i.e., it is not value-oriented, but rather variable-oriented). There is no tail call optimization in any of the current implementations, so recursion must be kept shallow. And the list goes on. Truth be told, JavaScript is really one of the first hybrid imperative-functional languages.
  • Higher-order functions allow us to do functional composition,
  • Since JavaScript does not have "overloaded" functions, this type of functionality is usually simulated using manipulation of the function's arguments. Currying comes in handy because it allows you to do this manipulation in a much cleaner and more modular way.
  • ...1 more annotation...
  • Closures have quite a few applications in real-world JavaScript: event binding, callbacks, sorting, mapping (in the classical Lisp sense), and many others. In more modern JavaScript programming, you can find them almost everywhere.
  •  
    This is a short tutorial approach to an old but little-noticed saw.
David Corking

Eucalyptus - 0 views

shared by David Corking on 08 Apr 09 - Cached
  • open-source software infrastructure for implementing "cloud computing" on clusters. The current interface to EUCALYPTUS is compatible with Amazon's EC2 interface, but the infrastructure is designed to support multiple client-side interfaces.
    • David Corking
       
      what it is
Fabien Cadet

node.js - 5 views

  •  
    « Node's goal is to provide an easy way to build scalable network programs. In the "hello world" web server example above, many client connections can be handled concurrently. Node tells the operating system (through epoll, kqueue, /dev/poll, or select) that it should be notified when a new connection is made, and then it goes to sleep. If someone new connects, then it executes the callback. Each connection is only a small heap allocation. »
Fabien Cadet

Design Patterns: 15 Years After the Revolution, by Danny Kalev @ InformIT [2009-10-30] - 1 views

  • by defining a description template that included among the rest: Known uses. Sample code (as opposed to a typical algorithm which were often described in plain English and perhaps a few sketchy lines of pseudo-code). Collaboration (A description of how classes and objects used in the pattern interact with each other). Consequences (results and side-effects). Related patterns.
  • Would a 2009 catalog of the 23 classic design patterns look much different? According to the authors of Design Patterns: Elements of Reusable Code, the answer is no.
  • The authors would reclassify certain patterns and omit a few of the original patterns but the design and implementation would remain pretty much the same: "We have found that the object-oriented design principles and most of the patterns haven't changed since then" says Erich Gamma. You can't escape the feeling that patterns are frozen in time
  • ...2 more annotations...
  • In the meantime, in the C++ world the tide has turned towards a completely different paradigm known as generic programming (and to some extent, functional programming). Instead of plain classes and a complex inheritance chain, C++ these days uses templates, meta-programming and static type checking. The C++ Standard Library is the most prominent showpiece of the generic and functional programming idioms.
  • Over-engineering is another source of criticism. Programmers who become acquainted with patterns are often tempted to solve every problem using a pattern, even when a much simpler solution would probably be a better choice.
Chiki Smith

How I Got Over My Cheating Husband - 1 views

When I learned that my hubby was cheating on me, I was so angry that if looks could kill he would be already lying lifeless on the floor. But then, when I took a time off, I felt insecure. I knew t...

cheating spouses

started by Chiki Smith on 13 Jul 11 no follow-up yet
Eitworld :education at one click

PHP Practical Book - 0 views

PHP is a server side scripting language basically known for its use in web development but also used as a general-purpose programming language. This book contains various minor projects which are h...

web

started by Eitworld :education at one click on 29 Jul 14 no follow-up yet
Eitworld :education at one click

PHP - 0 views

PHP is a server side scripting language basically known for its use in web development..Increase your knowledge in PHP along with other web developing languages. PHP is very beneficial in increasin...

development

started by Eitworld :education at one click on 30 Jul 14 no follow-up yet
« First ‹ Previous 61 - 80 of 90 Next ›
Showing 20 items per page