Release Cycles and Lifecycles

Release Cycles and Lifecycles of software (and hardware) are interesting. How these releases are structured, who does them, and the planning and development process is fascinating from a rollout-of-features perspective. Development release cycles can also be applied to services.

Operating System Release Cycles

Of course we know how Microsoft is getting into trouble with their multi-year release cycle. Apple seems to beat them quite handily with a yearly release, but that is about hardware more than anything. My current comment on Apple’s OS is that it is pretty much like Microsoft, in that we get shitty releases, some patches, and then a better version (or not) in a year. Everything post-Lion has been a huge disappointment, little gadgety enhancements notwithstanding. The fact that the designer guy has had a complete run over Safari, not to mention Safari’s lagging technical chops should indicate how the helm of the software shop is undermanned, to say the least.

In any case, the 6-month release cycle of Fedora and Ubuntu is a pretty good timeframe (for an operating system). Of course Fedora server and Ubuntu LTS versions have a longer and different lifecycle due to stability and security issues.

Application Release Cycle

The 4 month WordPress release cycle is good for fairly complex applications (server or desktop/mobile). It should be obvious that bug fixes and point releases should be liberally sprinkled in to keep everyone aware of the relevance of an application (or operating system). They key of course is to provide value (not introduce new bugs), definitely squash current bugs, and of course security updates.

Unfortunately most organizations don’t do this well. Two recent examples spring to mind. CyberDuck’s MountainDuck which was a poor attempt at copying Transmit’s Disk functionality — and broke the base CyberDuck application functionality every other release or so. As well, the OSX implementation of CloudMagic, which also went on a yo-yo of implemented and broken functionality. (CloudMagic is a silly name, and ultimately a failed approach which is to remove information and the advantage of a large screen, essentially upsizing (slightly) the iOS app.)

Release Cycles and Professional Services

Release Cycles can be implemented in ongoing professional services. The key is to provide visible value (even if only conceptual) rather than a monthly task list and invoice. Here is a sketch of how one might approach this, with new and current clients.

  • Begin with a version 0.1 which is a baseline, where we are
  • If one has already been at work for 4 months or so, stretch back that amount of time. (April, August, and December are good months to have releases in.)
  • Next major release is in the next month. Note that a major release doesn’t have to have major changes, just a numbering to put a stake in the ground and indicate a milestone for measurement.
  • Now that there is a release cycle, one can put some structure around that (known process)
  • Finally, add items to the development roadmap which consists of the major releases (and their point releases).
  • Of course weekly meetings, email, chat, and wiki work should always take precedence, but now there is a set of time horizons around which to structure discussions.

Originally published at mcneill.io/release-cycles/

The future of Web development isn’t MVC, it’s MVM

Yes, finally MVC Smalltalk discussion, thanks!

Dan Newcome, blog

When Ruby on Rails hit the Web development world in 2005, it changed everything practically overnight by bringing a pattern rooted in Smalltalk to the Web. I’ve been playing with the recently-released Meteor Web framework and I think that an important and equally momentous shift is taking place in the Web world.

It started with Node.js

More recently, Node.js changed everything again with the idea that the Web could evolve beyond the model where every request/response pair was fully cached on the server before processing was complete. Unfortunately for all of the interesting new possibilities that Node offered it was pretty low-level if you were coming from a mature Web framework.

Node allowed you to write Web services that were difficult or impossible to write previously. Streaming services that made long-running connections and broadcast-style chat apps became trivial to write instead of requiring lots of tweaking and custom server configurations.

View original post 598 more words

De-Institutionalization of Education

This brief report could just as easily be called The Status of Education 2.0 but I think we are over this versioning. What is really at work is a de-institutionalization of education as an institution. What we are witnessing is the reorganization of learning outside of the organizing principles of the Medieval University.

The Education of Achilles

Institutional Decline

While still quite revered and heralded as a place of learning and innovation, there is serious institutional decline in the university in general. While one can always point to exceptions and exceptional institutions, the organizing principle of higher education (along with that of medicine and the modern hospital) has been in serious decline for perhaps 30 years. Without point to obvious actors involved in this kind of institutional malaise, suffice it to say that these institutions are incapable of meeting the increasingly dynamic needs of individuals and organizations. This is part and parcel of the increasingly information-intensive nature of work in general.

The Internet of Learning

At the same time as educational institutions have provided largely ineffective, if any, response to the increasing needs for learning in general, information and communication technology has proliferated. This has the salutary effect of providing a different kind of space for co-presence, collaboration, and the dissemination of information. The very nature of the medieval university is founded in a physical place where experts and apprentices were gathered together. The Internet and its various communication technologies can provide virtually the same space, but at a much reduced cost and with a much greater reach.

With the decline of institutions and the increase in communication technology that is not tied to the institutions or to physical locations, learning and education will naturally leak out of institutions and into spaces forged with information and communication technologies.

Current Status of De-institutionalized Education

There are several trends which will likely accelerate as quasi-institutions (organizations collaborating together to deliver learning and education) continue to develop these new learning spaces and develop functional education systems.

  • Professional schools that provide intensive training (at a high price) and deliver skilled and employment-ready graduates. Example Hack Reactor 12 weeks, full time, in-class, ~17,500 USD
  • So called Nano Degrees, essentially certificates which take a year or so to complete. Example Udacity 1 year, part time, online, ~2,500 USD
  • One week or less bootcamps which focus on a particular, somewhat narrow topic/skill. Example Coded Online 2 days, full time, online, ~500 USD
  • Online courses with content that free or premium with unlimited access or monthly. Examples Learning Indonesian unlimited, part time, online, ~150 USD; Udacity Web Development course Monthly (about two months, could be shorter), online, 150 USD/month
  • MOOCs (massive online open courses) are still quite popular and are from a few weeks to a few months in length. These are generally free or inexpensive.
  • More open learning platforms such as Udemy which has found a good niche in enabling the creation of online courses by any expert (or so-called expert) and social ratings to help filter out low quality content. Note that by offering free courses, many people may improve their social reputation and help create additional revenue streams. Example Udemy a few days, weeks or months, part time, online, free to 500 USD.
  • Skill sharing sites, which tend to be the same as open learning platforms, but very low quality (for anyone with Seth Godin or Guy Kawasaki as premiere contributors, the 1990s are calling and want their bubble boys back). Some amount of money, some amount of time, best to ignore these.

via Jeff McNeill http://ift.tt/1qZg15B

Adaptive vs. Responsive vs. Multi-Platform

These misleading terms Adaptive and Responsive don’t matter much, but rather the result which is an experience of the user (and higher conversion rates) across various platforms (including operating systems, browsers and screen resolutions). For authors and publishers (both book and web formats), design is a rather important topic. Hardcover, paperback, ebook, web are physical/digital format issues (not to mention pricing/paywall discussions). But the real question is does the content (information) and how it is presented (design) change based on device, platform, or screen resolution.

Veiled Chameleon

What Matters in Adaptive and Responsive Design

We at Parliament Press have a slightly different take. First, we need to clearly understand what decisions need to be made, and what changes to implement, and finally, how to really think about device proliferation and ubiquity.

Design Complementary Experiences

Complementary experiences can indeed be identical. But they should at the least inform each other. Recall with experiences we want to reinforce and enhance a brand. Therefore do not contradict expectations which one platform has created. A big example of this is the fragmentary and contradictory experience for Bloomberg apps and website. It is obvious that entirely different teams created these various apps and they likely took as a goal the desire to not duplicate or even enhance what one platform provides in terms of navigation, interface, and information.

Start with a Single Design for All Platforms

The exercise of designing for all platforms makes it abundantly clear where the boundaries of usability and information consumption is. Tradeoffs should be made to provide a reasonable experience at the smaller mobile screen sizes, while having a reasonable experience at the most common desktop display sizes. Mobile should have the slight preference here, since it is the growth platform. This will also help make less is more decisions on removing clutter from the interface.

Learn from Actual Navigation on Different Platforms

Look at how the different platforms in terms of operating system, browser and screen resolution are consuming the content, then take that as the point of departure for special design, however implemented, for different platforms.

Client-side vs. Server-side Customization

Obviously everything comes from a server, but Client-side customization is use of CSS and Javascript only rather than a distinct template (with unique HTML) being served to unique platforms. It doesn’t really matter, per se, as long as there is a good amount of accuracy, that is specific platforms delivered specific content. This is an implementation detail that is best hashed out in the back room between developers and administrators. Ultimately unique content (inclusion or exclusion of content) based on a platform (operating system, browser type, screen resolution) should become not only possible but used in all cases where that makes sense, in terms of increasing conversions.

Multi-platform Design (MPD)

The words Responsive and Adaptive should in all cases be eschewed for a category that is descriptive to its end goal, that is multi-platform. And because three letter acronyms are all the rage, we can call this MPD.

In discussing MPD, we don’t actually focus on this, but rather use the language of mobile. Not mobile first but rather mobile friendly. If a site is mobile friendly, visitors can achieve their goals in the same way as on another platform (desktop/laptop). That is the first step toward multi-platform design. Second is having a feedback loop of mobile friendliness into the design in general. What happens in this process is that design elements and constraints shift from being one platform, then another platform, then a third platform, to that of multi-platform-ness.

via Jeff McNeill http://ift.tt/1xSwME4

Future Proofing Note Taking / To Do Lists

After the fiasco with Evernote (which I loved for a time) and now Wunderlist (again, a temporary sweetheart), I tried a few options, including ToDo.txt. Now, I have finally determined an excellent set of note-taking tools. There is the need to future-proof this, which as far as I can tell means keeping notes and to-do lists in text files (and not a single text file), and syncing them in the cloud. Plaintext (along with Bland Markdown) is indeed the future.

Note

Requirements for Note Taking and To Do Lists

  • Multiplatform: OSX, Web, iOS, Android
  • Ease of use: Fast to use/access, no advertising (willing to pay for this)
  • Future proof: Cloud syncing, plaintext files
  • Affordable: Under $60/year ($5/month) total (all apps and any subscriptions)

It took a while to get to this simple list. It was trying out the various options that led to these conclusions.

Apps and Services

Some people would have free as a requirement, but that is not as important as transparency, a plaintext format and file-based information storage. The massive problems of interface redesign (Evernote) and broken synchronization (Wunderlist) can be repaired much more easily with the file-based system that I am now using.

The Future is Git

The future is definitely Git, but it is also Dropbox, iCloud, and (heaven forfend) Skydrive. For individual lists, the systems above will be fine, when collaboration is needed, then Git will become the platform of choice. To that end, the following should be considered (as well as other, emerging nascent tools):

Also note Gistbox which focuses more on text snippets, so could be good for note taking and to do lists, rather than larger documents. There is also a Gistbox Chrome App.

Not the Future – Proprietary Apps

Indeed, if I wanted to try yet another proprietary app, then Todoist looks quite good. Also, so does Astrid, though that has been acquired by Yahoo, and we have no idea what its future will be.

via Jeff McNeill http://ift.tt/1mQb4bn

Private Video Streaming – Options

Public video can easily be hosted and streamed on YouTube at no cost. But for those who want some restrictions on the video, YouTube has only limited options. Currently YouTube only allows sharing private videos with up to 50 YouTube accounts, via including their email addresses in the video manager. There are several other options, however, each with various tradeoffs.

Storage, Players, Access Control

There are three main components to private video streaming (besides creating and editing the video). These are:

  • Video storage (where the videos are kept),
  • Video players (how they can be played by those with access), and
  • Access control (the method for allowing only a set group of individuals to have access).

Video Storage Options

There are several options for video storage, though those options also impinge upon what players may be available and what kind of access control is possible. A partial list includes:

Video Players

The best approach is always Open Source, and there are at least two options:

Access Control

The first part of access control has to do with accounts, which generally have email addresses (and passwords). There are two issues:

  • One has to do with the address on the internet and whether it is password-protected (either with a single password or an account-based password).
  • The second issue is whether the actual video file itself is somehow obscured by the player or is easy to download.

The suggestion is to use WordPress (or if you must, some other third-party login system such as Twitter, Facebook, Google) in order to secure the page on which the video can be viewed.

Then use one of the video players above

Public Video Streaming WordPress Embed Codes

Just a recap, there is the standard Embed codes for WordPress Video (and more) and there is also the Smart YouTube plugin (which works with more than just YouTube video).

Privacy and Access Control on WordPress

Pages (with embedded video) can be labelled as public, password protected, or private. Only those users with proper security level (Admins and Editors) can see private pages, and password protected pages require a password. Use various plugins for more control such as limiting parts of a site to logged-in users only.

Video Format for Web Streaming

Video should be appropriately encoded, both allowing for fast start and small file size to increase speed and save on bandwidth. The useful Open Source tool Handbrake can be used if needed, with the following settings:

Handbrake Settings for Web Video

via Jeff McNeill http://ift.tt/1pLrN3z

WP Fountain – Fountain Markup

This plugin modifies screenplay format text for inclusion in web pages. Based on the scrippet concept and original code by John August and Nima Yousefi.

Fountain

Description of WP Fountain

The Scrippet format is a text format designed by John August to allow writers to input screenplay text in easy-to-write plain text and have it converted to properly styled HTML. This plugin will automatically convert plain text Scrippet to HTML, and add John August’s Scrippets CSS file into your blog. For more information on Scrippets please see http://ift.tt/1lbUO4T

Installation of WP Fountain

  1. Download scrippets.zip.
  2. Unzip the archive.
  3. Upload the entire “wp-scrippets” folder into your “wp-content/plugins” directory.
  4. Activate the plugin through the Admin plugins panel.
  5. Enjoy!

Usage of WP Fountain

To include a Scrippet of Fountain in your WordPress blog simply include text in the following format:

[ scrippet ]
INT. HOUSE – DAY

MARY yells across the hall to FRANK.

MARY
Anything you want to tell me?

FRANK (O.S.)
I swear, honey, I don’t know how mayonnaise got in the piano.

CUT TO:

FRANK

running out of the bathroom.

FRANK
(terrified)
There are bees in the toilet!
[ /scrippet ]

This renders as:

INT. HOUSE – DAY

MARY yells across the hall to FRANK.

MARY

Anything you want to tell me?

FRANK (O.S.)

I swear, honey, I don’t know how mayonnaise got in the piano.

CUT TO:

FRANK

running out of the bathroom.

FRANK

(terrified)

There are bees in the toliet!

Note: Scrippet text must be wrapped in

blocks, and must have correct line spaces between screenplay elements.

You can make text bold or italic by in the following ways:

Bold

  • Wrap the text in double asterisks **bold**.

Italic

  • Wrap the text in single asterisks *italic*.

Please note: text styling does not work for transitions. Sorry.

Frequently Asked Questions

MEEP! It’s not formatting correctly. What do I do?

First, please make sure you are inputting the text in the right format. (Line spacing is important!)

However, if you’re doing it right and it’s still not looking right, please go to scrippets.org for troubleshooting help or to submit a bug report.

The Scrippets are formatted correctly, but the style of the box doesn’t fit in with my blog design. What can I do?

The Scrippets settings panel in your WordPress administrator’s page has several settings that you can change to better suit your blog’s design.

However, if those options are insufficient, you can modify the scrippets.css file in wp-scrippets plugin folder. Be advised that updates to the Scrippets plugin will overwrite your changes, so you should back them up and remember to add them back in whenever the plugin gets updated.

Release Notes

WP Fountain

  • 0.0.1 – Fork of WP Scrippets

WP Scrippets

  • 1.5 – Fixed screenshot.
  • 1.4 – Various bug fixes.
  • 1.35 – Fixed bug resulting from having a character name end in INT (ie, VINCINT, QUINT).
  • 1.3 – Compatibility fix for WordPress 2.8+
  • 1.2 – Fixed FOREST bug, added version number to scrippetize.php
  • 1.1 – Added support for bold, italic, and underlined text.
  • 1.0.2 – Fixed bug in wp-scrippets.php that prevented CSS to be added properly for blogs with different WordPress and Blog addresses.
  • 1.0.1 – Fixed scrippetize to work with bbPress.
  • 1.0 – Release!

via Jeff McNeill http://ift.tt/1qBbY2K