Software
Necesita el software andando, el código documentado y los manuales de administración
Software
Necesita el software andando, el código documentado y los manuales de administración
Supplementary methods
0.3.9.1 of the Configurable Pipeline for the Analysis of Connectomes [15] (C-PAC, http://fcp-indi.github.com/C-PAC/), which integrates tools from AFNI (http://afni.nimh.nih.gov/afni), FSL (http://fmrib.ox.ac.uk) and Advanced Normalization Tools (ANTs; http://stnava.github.io/ANTs) using Nipype (http://nipype.readthedocs.io/en/latest/).
INVEST
According to this checklist, a User Story should be:
Indepedent (of all others)
Negociable (not a specific contract for features)
Valuable (or vertical)
Estimable (to a good approximation)
Small (so as to fit within an iteration)
Testable (in principle, even if there isn't a test for it yet)
Source(s):
for example, comments and identifiers
Some better illustrated examples can be found in UBCx: SoftConst2x - Software Construction: Object Oriented Design's course lecture on Coupling.
For large-scale software systems, Van Roy believes we need to embrace a self-sufficient style of system design in which systems become self-configuring, healing, adapting, etc.. The system has components as first class entities (specified by closures), that can be manipulated through higher-order programming. Components communicate through message-passing. Named state and transactions support system configuration and maintenance. On top of this, the system itself should be designed as a set of interlocking feedback loops.
This is aimed at System Design, from a distributed systems perspective.
Grid devices can be nested or layered along with other devices and your plug-ins,
Thanks to training for Cycling ’74 Max, had a kind of micro-epiphany about encapsulation, a year or so ago. Nesting devices in one another sounds like a convenience but there’s a rather deep effect on workflow when you start arranging things in this way: you don’t have to worry about the internals of a box/patcher/module/device if you really know what you can expect out of it. Though some may take this for granted (after all, other modular systems have had it for quite a while), there’s something profound about getting modules that can include other modules. Especially when some of these are third-party plugins.
As was hinted at from the star
This is when “the other shoe dropped”. They planned this all along (since 2012). Hidden in plain sight was a more subtle strategy than people might have imagined.
The Grid is based around ideas familiar to Bitwig Studio
The continuity between these new modular features and the rest of the DAW’s workflow probably has unexpected consequences. Before getting information about BWS3, one might have thought that the “Native Modular System” promised since the first version might still be an add-on. What the marketing copy around this “killer feature” makes clear, it’s the result of a very deliberate process from the start and it’ll make for a qualitatively different workflow.
OSS contribution takes time; I don't think anyone would contest that. Getting familiar with a project, finding out where you can fit into it, reading and responding to issues, testing and submitting patches, writing documentation. All of that requires a good deal of time.
I reached out to a prominent OSS company preferring a "history of open source contributions" and put forward the idea that people who code for a living don't always have the opportunity. The response was surprisingly hostile:
It doesn't exclude anyone. Zero chance I'm going to have a debate about it.
how does misrepresentative information make it to the top of the search result pile—and what is missing in the current culture of software design and programming that got us here?
Two core questions in one? As to "how" bad info bubbles to the top of our search results, we know that the algorithms are proprietary—but the humans who design them bring their biases. As to "what is missing," Safiya Noble suggests here and elsewhere that the engineers in Silicon Valley could use a good dose of the humanities and social sciences in their decision-making. Is she right?
One quick trick for making it easier for debugging/understanding your threading macros is to put print statements in between some of the steps. The important thing to remember is that all the print functions in clojure return nil so you need to make a little helper function (I like to call mine ?) that prints and then returns the original input, like this: (defn ? [x] (prn x) x)
debugging trick
I don't think passing the entire http client is very idiomatic, but what is quite common is to pass the entire "environment" (aka runtime configuration) that your app needs through every function. In your case if the only variant is the URL then you could just pass the URL as the first parameter to get-data. This might seem cumbersome to someone used to OO programming but in functional programming it's quite standard. You might notice when looking at example code, tutorials, open source libraries etc. that almost all code that reads or writes to databases expects the DB connection information (or an entire db object) as a parameter to every single function. Another thing you often see is an entire "env" map being passed around which has all config in it such as endpoint URLs.
passing state down the call stack configuration, connection, db--pretty common in FP
Something that I've found helps greatly with testing is that when you have code with lots of nested function calls you should try to refactor it into a flat, top level pipeline rather than a calling each function from inside its parent function. Luckily in clojure this is really easy to do with macros like -> and friends, and once you start embracing this approach you can enter a whole new world of transducers. What I mean by a top level pipeline is that for example instead of writing code like this: (defn remap-keys [data] ...some logic...) (defn process-data [data] (remap-keys (flatten data))) (defn get-data [] (let [data (http/get *url*)] (process-data data))) you should make each step its own pure function which receives and returns data, and join them all together at the top with a threading macro: (defn fetch-data [url] (http/get url)) (defn process-data [data] (flatten data)) (defn remap-keys [data] ...some logic...) (defn get-data [] (-> *url* fetch-data process-data remap-keys)) You code hasn't really changed, but now each function can be tested completely independently of the others, because each one is a pure data transform with no internal calls to any of your other functions. You can use the repl to run each step one at a time and in doing so also capture some mock data to use for your tests! Additionally you could make an e2e tests pipeline which runs the same code as get-data but just starts with a different URL, however I would not advise doing this in most cases, and prefer to pass it as a parameter (or at least dynamic var) when feasible.
testing flat no deep call stacks, use pipelines
One thing Component taught me was to think of the entire system like an Object. Specifically, there is state that needs to be managed. So I suggest you think about -main as initializing your system state. Your system needs an http client, so initialize it before you do anything else
software design state on the outside, before anything else lessions from Component
Prezi is a productivity platform that allows for creation, organization, collaboration of presentations. It can be used with either mobile or desktop. Prezi integrates with slack and salesforce. RATING: 5/5 (rating based upon a score system 1 to 5, 1= lowest 5=highest in terms of content, veracity, easiness of use etc.)
This means that software that deals with Internet must be actively maintained. If it is not it will become more and more useless in practice over time, however much it remains theoretically correct, not because it has bugs or security holes as such but because the environment it was designed to work in no longer exists and thus the assumptions it was built on are now incorrect.
internet software decays
The Moodle project
Moodle is one of the largest open source collaborative platform used in the development of curriculum.
Moodle is an Australian company and has various levels of subscriptions including one level for free. Overall I have found the site to be user friendly rich with demos, documentation and support including community forums. This site supports multiple languages and has an easy to use drop down menu for that selection.
RATING: 5/5 (rating based upon a score system 1 to 5, 1= lowest 5=highest in terms of content, veracity, easiness of use etc.)
Welcome to the DOAP wiki. DOAP is a project to create an XML/RDF vocabulary to describe software projects, and in particular open source projects.
bias in technology
E' altresì necessario accellerare la creazione di una struttura di certificazione del software nazionale che consenta di usufruire di tecnici che possano testare i software creati per la PA e assicurarne la conformità alle regole AGID e al GDPR (privacy by design). In tale ambito la capacità nazionale è attualmente molto limitata.
In this singularity-free world, the future would be bleak for programmers. (Imagine having to cope with hundreds of years of legacy software!)
I'm not really sure I agree with this. Regardless of whether Singularity eventually comes around or not, software will evolve. We have seen whole languages fall out of usage in the past, including Fortran, COBOL, ALGOL, etc. Developers will always be looking to get more efficient, and our current languages will either get abandoned or improved. New languages will come up and become the new standard. If anything, the future seems to be far more bleak for programmers/developers in the years after Singularity, rather than in the years leading upto it - after all, with the prevalence of docile, conscious machines,most of the work programmers do, everything from bug-fixing to data-analytics, would be done more quickly, cheaply and efficiently by the machines. In other words, in the world of singularity, programmers as we know them would no longer exist.
The Free Software Foundation[11][12] and the Open Knowledge Foundation approved CC0 as a recommended license to dedicate content and software to the public domain.
statsmodels11packag
statsmodels developers provide a preferred citation for their code: http://www.statsmodels.org/stable/index.html#citation
Fully reproducible code is available in the form of jupyter notebooks (https://jupyter.org) with instructions to install all necessary software, download sequence data, assemble it, and run genomic analyses (https://github.com/dereneaton/Canarium-GBS) (DOI 10.5281/zenodo.1273357). For all genomic analyses in this study we used the ipyrad Python API and the ipyrad-analysis toolkit (https://github.com/dereneaton/ipyrad) which provides a set of wrappers around common genomic analysis tools to run highly parallelized analyses using simple Python scripts.
Example of author sharing all code via jupyter notebooks in a github repo. They have archived to Zenodo and include both URLs in the text. Their analysis relies on an existing toolkit - it is not obvious from the manuscript whether this toolkit has been deposited anywhere.
Journal: PLOS ONE Subject area: plant biology, ecology (check?)
Source code of the model presented here is available on GitHub (https://github.com/lukasgeyrhofer/phagegrowth) (Payne et al., 2018) and its archived version is accessible through Zenodo: https://dx.doi.org/10.5281/zenodo.1038582 and https://github.com/elifesciences-publications/phagegrowth.
Example of authors archiving their own code. The eLife process is to fork the author's repo to the eLife github repo to save a snapshot of the repo at the time of acceptance. The authors here have also chosen to archive to Zenodo (via the Github release --> Zenodo mechanism?). Both the Zenodo DOI and the eLife fork are included in the text as archive/snapshot copies of the original (also cited).
Note the author's original repo is included in the references.
Journal: eLife Subject area: ecology, evolutionary biology
doi: 10.5281/zenodo.1038582RRID:SCR_004129Zenodo repository
In this example, the archived code repository has been listed in the eLife Key Resources Table
I'll walk you through everything you need to know about logs, including what is log and how to use logs for data integration, real time processing, and system building.
Acero F., Ackermann M., Ajello M. et al (Fermi-LAT) 2015 arXiv:1501.02003Preprint
Starting in 2014-2015, AAS/IOP started linking to preprints in reference lists if they were the version cited by the author and an accepted manuscript did not at that time exist.
Thus we now have built in "categories" for references, which could be expanded to include data/software sections.
The most up-to-date version of the open-source package NPTFit may be found at https://github.com/bsafdi/NPTFit and the latest documentation at http://nptfit.readthedocs.io. In addition, the version used in this paper has been archived at https://zenodo.org/record/380469#.WN_pSFPyvMV.
This is an example of incorrect software citation per the AAS Journal's policy. The Zenodo metadata should have been added to the reference list as a 1st class citation.
It is also an example of an incorrectly typeset URL. URLs that come from DOIs should be typeset using the DOI string not the resolved URL. It should have read, "version used in this paper has been archived at https://doi.org/10.5281/zenodo.380469"
Foreman-Mackey D., Vousden W., Price-Whelan A. et al 2016 corner.py: corner.py v2.0.0, doi:10.5281/zenodo.53155
corner.py is one of the more interesting examples of software citations. there are at least 3 different formal references in the wild:
https://doi.org/10.5281/zenodo.11020 https://doi.org/10.5281/zenodo.53155 https://doi.org/10.21105/joss.00024
with different versions and author lists.
Barbary K. 2014 sncosmo Zenodo, 10.5281/zenodo.11938
This software citation losts its version information. We will have to work on our typsetting and production rules, as well as develop formal JATS/NLM XML schema to contain versioning information.
https://doi.org/10.5281/zenodo.11938
This DOI software archive is also in the Reference list per our Journal's software policy.
Software: hotpants, PostgreSQL, realbogus (Bloom et al. 2012) scamp (Bertin 2006), sextractor (Bertin & Arnouts 1996), sncosmo (Barbary 2014), swarp (Bertin et al. 2002), matplotlib (Hunter 2007), numpy (Van Der Walt et al. 2011).
The AASJournals now highlight software using a paragraph trailing the acknowledgements that lists all software used in the paper's analysis. The software doesn't need to be mentioned in the main text; context-free mentions can be placed here.
The format is a 2 item tuple containing the short/common name of the software, and a citation or URL for the software.
In principle this section could be data mined. At the moment it is just a free paragraph in the XML, but could be given more explicit markup to aide in data mining reuse and indexing.
Software: Juypter notebook (http://jupyter.org), Jupyterlab (https://github.com/jupyterlab), VOspace (http://www.canfar.net/en/docs/storage), vos (https://pypi.python.org/pypi/vos), VirtualBox (https://www.virtualbox.org), JupyterHub (https://jupyterhub.readthedocs.io/en/latest/), ipywidgets (https://ipywidgets.readthedocs.io), NuPyCEE (http://nugrid.github.io/NuPyCEE), NuGridSetExplorer (https://github.com/NuGrid/WENDI), hdf5 (https://www.hdfgroup.org), Cyberlaboratories cyberhubs (https://github.com/cyberlaboratories/cyberhubs), Cyberlaboratories astrohubs (https://github.com/cyberlaboratories/astrohubs), Cyberhubs Docker repository (https://hub.docker.com/u/cyberhubs), Docker (https://www.docker.com), NOAO data lab (http://datalab.noao.edu), ansible (https://www.ansible.com), puppet (https://puppet.com), mesa_h5 (https://github.com/NuGrid/mesa_h5), Python (https://www.python.org), MESA (http://mesa.sourceforge.net), WENDI (http://wendi.nugridstars.org), OpenMP (http://www.openmp.org), MESA-SDK (http://www.astro.wisc.edu/~townsend/static.php?ref=mesasdk), MPI (https://www.open-mpi.org), gfortran (https://gcc.gnu.org/fortran), SuperLU (http://crd-legacy.lbl.gov/~xiaoye/SuperLU), OpenBLAS (http://www.openblas.net), mencoder (http://www.mplayerhq.hu).
It would be better to see some of these going to bibliographic references instead of URLs though many of them do not list preferred citations.
You can not only apply it to classes, but also to software components and microservices.
The principle can also be applied to source code files.
With sentiment analysis software, set for trial use later this semester in a classroom at the University of St. Thomas, in Minnesota, instructors don’t need to ask. Instead, they can glance at their computer screen at a particular point or stretch of time in the session and observe an aggregate of the emotions students are displaying on their faces: happiness, anger, contempt, disgust, fear, neutrality, sadness and surprise.
Wha?
With its world-class VoIP calling software, Sip2dial offers you a hassle-free business communication at a pocket-friendly price. You can be assured completely about your business once you choose our framework. For more information contact us at www.sip2dial.com or call us at +91-7008220621 today.
picking one and sticking to it is far better than the chaos that ensues when everybody does their own thing
Brooks’ Law, which states “adding manpower to a late software project makes it later”
S. McConnell adds an interesting take on this in his: Brooks' Law Repealed? article.
Data analysis can be a very useful tool in software development.
A computer simulation of refugees’ journeys as they flee major conflicts can correctly predict more than 75 percent of their destinations, and may become a vital tool for governments and NGOs to help better allocate humanitarian resources.
DVC makes your data science projects reproducible by automatically building data dependency graph (DAG). Your code and the dependencies could be easily shared by Git, and data - through cloud storage (AWS S3, GCP) in a single DVC environment.
software and data dependency graphs, nice!
The bug we ran into only affected certain releases of Postgres 9.2 and has been fixed for a long time now. However, we still find it worrisome that this class of bug can happen at all. A new version of Postgres could be released at any time that has a bug of this nature, and because of the way replication works, this issue has the potential to spread into all of the databases in a replication hierarchy.
Not really a criticism of Postgres so much as it is a criticism of software in general.
NVivo software Version 11.3.2. (QSR International)
It would be great if software were cited according to the Software Citation Principles: https://doi.org/10.7717/peerj-cs.86 .
Singularity containers can be used to package entire scientific workflows, software and libraries, and even data.
Very interesting, basically Singularity allows containers to run in HPC environments, so that code running in the container can take advantage of the HPC tools, like massive scale and message passing, while at the same time keeping the stuff in the container safer.
This is interesting, could it become something like the LOCCS / CLOCCS for software? I like that you can check if your own code is already in their archive.
It's a French initiative, and was founded by https://en.wikipedia.org/wiki/French_Institute_for_Research_in_Computer_Science_and_Automation. I don't know what their long term sustainability model is going to be.
Remember, PIMS were a hot market prior to Windows 3.0 - but most products were never ported to Windows because there wasn't enough revenue being made. This was because users would buy the hype, buy the product but weren't commited enough to get past the learning curve and dedicate time to maintaining data in it. So, most PIMs just became shelf-ware. And it wasn't because they weren't powerful or didn't have good interfaces - they did (as Grandview and Agenda easily demonstrate).
Pros and cons of pair programming.
In the case of Computer Software (what are referred to in this Policy as Non-Traditional Works as defined in Section B.5) in which the University has invested Extraordinary Resources (defined in Section B.6), the Creator shall own the copyright to such Non-Traditional Work; provided, however, that the University is entitled to share in the revenues generated by licensing copyrighted works created and owned by members of the Northwestern Academic Community when all three of the following conditions are met:
). In the case of Computer Software created by members of the Northwestern University Academic Community in the course of their employment the Creators shall grant to the University a perpetual, non-exclusive, royalty-free right and license to use, perform, display, copy, reproduce, modify and create derivatives of such works for all traditional, customary or reasonable academic or research purposes of the University.
Rice Policy 333 “Patent and Software Policies.”
Copyrighted courseware and/or software that are not associated with traditional works as described above shall fall under and are subject to the Patent Policy
The rights to copyrightable software with an actual or projected market value in excess of $10,000 annually, except software included in computer-mediated courseware, shall be determined pursuant to the Board's Patent and Copyrightable Software12 Policy (II.A.8.b).
This is an annotation to state how great this site is and to see if anybody ever finds it ...
Common Astronomy Software Application package
The software can be found on the software project website: https://casa.nrao.edu/ . This is a very limited description of the software package, its version, or its dependencies.
RepeatMasker was developed using TRF version 4.0.4
Downloaded v4.0.9, Linux command line (legacy GLIBC, <= 2.12)
For RMBlast ( NCBI Blast modified for use with RepeatMasker/RepeatModeler )
Used RMBlast pre-compiled binaries provided by NCBI;
Previous Release: 2.2.28
Download Pre-compiled Package: Download both the BLAST+ and RMBlast packages from NCBI for your platform:
RMBlast Binaries:ftp://ftp.ncbi.nlm.nih.gov/blast/executables/rmblast/2.2.28
BLAST+ Binaries:ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/2.2.28/
Extract both tarballs, and symlink or copy rmblastn RMBlast to blast/bin/ location, so that all of binaries are in once-place.
analyses using these ego-level measures can be done using statistical packages like SPSS
I am familiar with SPSS, but I had not considered using it for my final project until now. I am a little confused about how I would have to code the data (adjacency matrix) so that it works well in SPSS, but I think I'm going to try it just to see if I can get the same results that I obtain from using R.
UCINET is NetDraw, a visualization tool that has advanced graphic properties.
I am interested in learning more about the NetDraw software in UCINET. While I like statistics, nothing really says SNA like having clear visuals that display network ties
We’ve designed our products to meet essential needs of journalism through effective online communities.
Mozilla, Knight, NYT, WaPo collaboration.
Contact CourseForce |Employee Training Tracking Management System Software
CourseForce Provides Employee Training Tracking Software
Learning Management System Software by Courseforce
CourseForce Provide Learning Management System Software (LMS)
Another handy tutorial that I might want to do.
I don’t want the culture of open source to be organized around a legal definition. I want to zoom out and look at the broader ecosystem (of which the legal definition is one, essential node). A friendlier, more accessible term would make it easier to discuss topics like sustainability, collaboration, and people involved. Those aspects don’t need to be included in the official definition, but they still matter.I still like the term “public software” because it allows more people (including those new to, or unfamiliar with, open source, even if they use or benefit from it) to quickly understand what open source software is and how it should be protected. It doesn’t change the legal definition at all; if anything, it enforces it better, because we would want to define and protect public software exactly as we would any other public resource.
I remember the term "Public Software" used several years ago from the Lula's initiative to migrate Brasil public software infrastructure to Free Software.
Now there is, again, and effort to discuss the term, this time from a Anglo-centric perspective. Native English speaking people, particularly in US have the trouble with free as in freedom and as in "gratis", meanings and being immersed in a "market first" mentality, usually they think first in price and markets instead of rights.
Dmitry Kleiner has addressed the problem of software as a commons and its sustainability with an alternative license (p2p license), that is not as restrictive as the Fair Software one, but it repolitize the capitalist friendly Open Source gentrification of the original Free Software movement, involving also a core concern of sustainability.
Would be nice to see a dialogue between Nadia's and Dmitry's perspectives and questions about software as a commons.
Not every committer has the rights to release or make high level decisions, so we can be much more liberal about giving out commit rights. That increases the committer base for code review and bug triage. As a wider range of expertise in the committer pool smaller changes are reviewed and adjusted without the intervention of the more technical contributors, who can spend their time on reviews only they can do.
Esto es clave. Si se consideran sistemas de integración continua asociados a los distintos repositorios (de código y documentación) con permisos en ellos, se pueden corregir los errores que se presenten, sin restringir grandemente la posibilidad de colaborar.
The rise of agile coincided with the rise of startups using open source projects. At first, startups just incorporated those projects into their own software. But like any cultural exchange, open source began to affect how startups built products, too.
This is a great, short guide for optimizing pull requests for review-ability.
In short we move all of the new operators to a factory. We group all of the objects of similar lifetime into a single factory
The image above is worth to study (as the all article)
By the way, if the point about being global is that a Singleton can be included in any file and used anywhere in a program, that’s true, but only bad if misused. The Singleton pattern is not inherently bad, it’s misuse is bad
Singletons are not inherently bad
If the singleton class is a “utility class” (e.g. FileUtils, StringUtils, etc.), and has no state, then I would say it’s okay. Such a class is not a liar, per se, because there is no unexpected state change or dependency
Constants are ok
ccp.chargePurchaseToCard(100,c); since the logic for purchasing will be in the processor anyway, not the card. Cards don’t process anything
Good remark
You shouldn’t really be doing this anyway – you should have composed them, possibly via IOC.
Anybody can explain some more his idea?
It would violate it if you stored a reference to context instead of the engine and later on referred tried to get the engine. For example: class Mechanic { Context context; Mechanic(Context context) { this.context = context; } bool CheckEngine() { return this.context.getEngine().checkIfBusted(); } }
Violation of LoD takes place if you store a context object and then look op the dependency you really need in the method
Every time I have to write a test I have to create a graph of objects (the haystack) which no one really needs or cares for, and into this haystack I have to carefully place the needles (the real object of interests) so that the code under test can go and look for them. I have to create the Context just so when I construct the Mechanic it can reach in the Context and get what it realy needs, the Engine. But context is never something which is easy to create. Since context is a kitchen sink which knows just about everything else, its constructor is usually scary. So most of the time I can’t even instantiate Mechanic, not to mention run any tests on it. The testing game is over before it even started
Consequence of Law of Demeter breaking
His point seems to be that Constructor Injection can be an anti-pattern if applied too much, particularly if a consumer doesn't need a particular dependency in the majority of cases
In short it goes like this, so shipper is only used if isValid:
public OrderProcessor(IOrderValidator validator, IOrderShipper shipper)
{
_validator = validator;
_shipper = shipper;
}
` public SuccessResult Process(Order order)`
{
bool isValid = _validator.Validate(order);
if (isValid)
{
_shipper.Ship(order);
}
``
return CreateStatus(isValid);
}
The law of leaky abstractions means that whenever somebody comes up with a wizzy new code-generation tool that is supposed to make us all ever-so-efficient, you hear a lot of people saying "learn how to do it manually first, then use the wizzy tool to save time."
A famous example of this is that some SQL servers are dramatically faster if you specify "where a=b and b=c and a=c" than if you only specify "where a=b and b=c" even though the result set is the same. You're not supposed to have to care about the procedure, only the specification. But sometimes the abstraction leaks and causes horrible performance
Abstraction leaks may exhibit as performance issues
TCP attempts to provide a complete abstraction of an underlying unreliable network, but sometimes, the network leaks through the abstraction and you feel the things that the abstraction can't quite protect you from. This is but one example of what I've dubbed the Law of Leaky Abstractions
Article about how to speed up Firefox. Contains rare information.
On Being a Senior Engineer. Traits of a mature programmer. By John Allspaw, CTO at Etsy.
Isolate the dependencies Write the test first Draw the boundary Implement the logic
TDD steps
“the free software movement does this.” And again, I have to say: not quite.
True. But some of us are saying something slightly different. The free software movement shares some of those principles and those go back to a rather specific idea about personal/individual agency.
Convivial tools should be accessible — free, even.
Free as in (neoliberal) speech.
The computer programming the child.”
Stallman often uses a similar idea to condemn proprietary software. Rushkoff proposes a similar alternative. Should we choose the red pill or the blue pill?
As such, scrum adopts an empirical approach—accepting that the problem cannot be fully understood or defined, focusing instead on maximizing the team's ability to deliver quickly, to respond to emerging requirements and to adapt to evolving technologies and changes in market conditions.
算法开发工作就有这种特点
the study of innovation shows that everything hinges on the hard work of taking a promising idea and making it work — technically, legally, financially, culturally, ecologically. Constraints are great enablers of innovation.
But there’s a downside to the hackathon hype, and our research on designing workplace projects for innovation and learning reveals why. Innovation is usually a lurching journey of discovery and problem solving. Innovation is an iterative, often slow-moving process that requires patience and discipline. Hackathons, with their feverish pace, lack of parameters and winner-take-all culture, discourage this process. We could find few examples of hackathons that have directly led to market success.
what if projects were designed to combine a hacking mindset with rigorous examination of the data and experience they glean? This would reward smart failures that reveal new insights and equip leaders with the information needed to rescale, pivot or axe their projects.
Sounds somewhat like agile devlopment.
In summary, teams which are "fairer", in two senses, tend to be more effective:
Zoomerang
zoomerang survey software option
While the display is appealing and easy to read, it is not customizable
Polldaddy: survey software selection. List of cons.
Polldaddy for iOS was a great option for this type of assessment. The layout and design are optimized for the iPad’s screen, and survey results are loaded offline. Be-cause an Internet connection is not required to administer a survey, the researcher has more flexibility in location of survey administration.
Polldaddy did not require wireless internet access, making it a more flexible survey-software option
Polldaddy software chosen for second iteration of survey offered at GSU for assessment.
Google Forms
Chosen survey-taking software for iPad surveys given to users at GSU.
unlike Adobe DPS, Inkling, or some other would-be competitors…it’s free.
And unlike Calibre, it’s “free with purchase” and not “free as in speech” or even, really, “free as in beer”.
Good thoughts on the hiring process for programmers: job descriptions, advertising, pair programming, blind evaluations, group interviews.
if the group should decide to fork Moodle together
Contrary to Free Software, Open Source has special affordances for forking, even if the forks become commercial.
alliance of Moodle service providers that currently collaborate on Moodle-related projects of mutual interest
Customer support sofware
Yet there is a growing recognition that provisions must also be made for the data-analysis software that supports the conclusions.
Provide for software, not just data. Perhaps there is also a platform stability issue to consider.
Why it is nearly impossible to make money selling apps for Apple iOS or Google Android.
The four freedoms don’t limit us as creators — they open possibilities for us as creators and consumers. When you apply them to software, you get Linux, Webkit/Chrome, and WordPress. When you apply them to medicine, you get the Open Genomics Engine, which is accelerating cancer research and bringing us closer to personalized treatment. When you apply them to companies, you get radically geographically distributed, results-based organizations like Automattic. When you apply them to events you get TEDx, Barcamp, and WordCamp. When you apply them to knowledge, you get Wikipedia.
as of December 2013, 21% of websites are powered by WordPress. One-fifth of the web is built with a tool that anyone can use, change, or improve, whenever and however they want (even more when you count other open source projects
B2 was ultimately abandoned by its creator. If I’d been using it under a proprietary license, that would have been the end — for me, and all its other users. But because we had freedoms 2 and 3, Mike Little and I were able to use the software as a foundation
I’ve spent a third of my life building software based on Stallman’s four freedoms, and I’ve been astonished by the results. WordPress wouldn’t be here if it weren’t for those freedoms, and it couldn’t have evolved the way it has. WordPress was based on a program called B2/cafelog that predated it by two years. I was using B2 because it had freedoms 0 and 1
The Free Software Foundation's definition of free software, originally expressed by Richard Stallman. It is free as in free speech, not as in free beer. Software offered for a fee can still be free. A program is free software if the users have four essential freedoms:
0. Run the program as you wish, for any purpose.<br> 1. Study the source code, and change it as you please.<br> 2. Copy and distribute the original program.<br> 3. Copy and distribute modified versions.
user innovation toolkit - a product malleable enough to let users adapt it to their own needs.
Trello is a project management tool that provides boards, lists, and cards. The cards represent tasks or items, and move across columns on the board as they progress to a new stage of development. No particular method is prescribed. The individual or team decides how to use Trello, and the method is likely to evolve. Different projects may require different methods.
Trello has an API to allow automation and customization. After agreeing on how to use the board, different team members might use the API to build interfaces that work best for them.
Without feedback, there are three options: I can believe, without evidence, that I am an awesome programmer. I can believe, without evidence, that I am a terrible programmer and quit to go do something else. Or finally, I can believe, without evidence, that I am a terrible programmer somehow successfully pretending to be an awesome programmer.
This is a thoughtful, eloquent article. My main takeaway is that perfection is delusional, but good teamwork will overcome flaws and help everyone improve continually. All of these points are forms of feedback, or prerequisites to good feedback.
Turtle blocks
Familiarity with one another’s communication style also helps them respond to each other quickly, and we know from Csikszentmihalyi’s research that immediate feedback is critical to flow.
Programming specific example: waiting for compile times, etc., is a killer.
It’s free.
Free as in “tracked”. Sure, Google signed the privacy pledged and they don’t use data to advertise directly to students. But there are many loopholes. As rms makes very clear, GAfE is the exact opposite of Free Software. It’s “not having to pay for your own enslavement”.
Apache Labs is a place for innovation where committers of the foundation can experiment with new ideas.
Here's the door into making the ASF tooling better! Got an idea? Submit it! Got some code? Submit that too!!
all-volunteer
2.5k+ volunteers make the wonders of the Apache Software Foundation and it's many projects possible...because they want to.
Advice to software development interns
freedom is also a deeply personal thing.
TECHNICAL DEBT: A lot of new code is written very very fast, because that’s what the intersection of the current wave of software development (and the angel investor / venture capital model of funding) in Silicon Valley compels people to do. Funders want companies to scale up, quickly, and become monopolies in their space, if they can, through network effects — a system in which the more people use a platform, the more valuable it is. Software engineers do what they can, as fast as they can. Essentially, there is a lot of equivalent of “duct-tape” in the code, holding things together. If done right, that code will eventually be fixed, commented (explanations written up so the next programmer knows what the heck is up) and ported to systems built for the right scale — before there is a crisis. How often does that get done? I wager that many wait to see if the system comes crashing down, necessitating the fix. By then, you are probably too big to go down for too long, so there’s the temptation for more duct tape. And so on.
For some of the core scripts used in the FBA simulation, see: https://github.com/bbarker/COBRAscripts/tree/master/MyProjects/EpistasisFBA
I BM GroupTalk
Anyone remember what this was?
Issues can be reported at: https://github.com/hypothesis/h/issues
Open Source[edit] LightSide[43] EASE[44] - Published by EdX.
Open Source software for Automated Essay Scoring
The project will develop an analysis package in the open-source language R and complement it with a step-by-step hands-on manual to make tools available to a broad, international user community that includes academics, scientists working for governments and non-governmental organizations, and professionals directly engaged in conservation practice and land management. The software package will be made publicly available under http://www.clfs.umd.edu/biology/faganlab/movement/.
Output of the project:
Question: What software license will be used? The Apache software license is potentially a good choice here because it is a strong open source license supported by a wide range of communities with few obligations or barriers to access/use which supports the goal of a broad international audience.
Question: Will the data be made available under a license, as well? Maybe a CC license of some sort?
Three things are required to fully guarantee a repeatable installation using requirements files.
"Ensuring Repeatability"
Much as it is not the criminal defense lawyer's place to judge their client regardless of how guilty they are, it is not the doctor's place to force experimental treatment upon a patient regardless of how badly the research is needed, and it is not the priest's place to pass worldly judgement on their flock, it is not the programmer's place to try and decide whether the user is using the software in a "good" way or not.
Taking this to heart / putting it on my wall.