142 Matching Annotations
  1. Dec 2018
    1. 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.

  2. Nov 2018
    1. 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?

    1. 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

    2. 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

    3. 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

    4. 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

    1. 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.)

    1. 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

    1. 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.)

  3. Oct 2018
    1. 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.
  4. Sep 2018
    1. 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.

    1. 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.

    1. 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.
  5. Aug 2018
  6. Jul 2018
    1. 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?)

    1. 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

    2. doi: 10.5281/zenodo.1038582RRID:SCR_004129Zenodo repository

      In this example, the archived code repository has been listed in the eLife Key Resources Table

  7. Jun 2018
    1. 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.

    2. 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"

    3. 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.

    1. 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.

    2. https://doi.org/10.5281/zenodo.11938

      This DOI software archive is also in the Reference list per our Journal's software policy.

    3. 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.

    1. 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.

  8. May 2018
    1. 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.

  9. Apr 2018
  10. Feb 2018
    1. 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?

  11. Jan 2018
    1. 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.

  12. Dec 2017
    1. 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.

  13. Nov 2017
  14. Oct 2017
    1. 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!

    1. 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.

  15. Sep 2017
    1. 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.

  16. www.softwareheritage.org www.softwareheritage.org
    1. 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.

  17. Aug 2017
    1. 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).
  18. Jul 2017
    1. 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:
    2. ). 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.
    1. 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
    1. 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).
  19. Jun 2017
    1. This is an annotation to state how great this site is and to see if anybody ever finds it ...

    1. 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.

  20. Apr 2017
    1. RepeatMasker was developed using TRF version 4.0.4

      Downloaded v4.0.9, Linux command line (legacy GLIBC, <= 2.12)

      http://tandem.bu.edu/trf/trf409.legacylinux64.download.html

    2. 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:

      1. RMBlast Binaries:ftp://ftp.ncbi.nlm.nih.gov/blast/executables/rmblast/2.2.28

      2. 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.

    1. 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.

    2. 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

  21. Mar 2017
    1. We’ve designed our products to meet essential needs of journalism through effective online communities.

      Mozilla, Knight, NYT, WaPo collaboration.

  22. Jan 2017
    1. 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.

  23. Dec 2016
    1. 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.

    1. 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.
  24. Nov 2016
    1. 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)

    1. 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

    2. 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

    3. 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

    1. 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

    2. 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

    1. 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);

      }

    1. 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."
    2. 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

    3. 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
  25. Oct 2016
  26. Sep 2016
  27. Aug 2016
  28. Jul 2016
    1. “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.

    2. Convivial tools should be accessible — free, even.

      Free as in (neoliberal) speech.

    3. 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?

  29. May 2016
    1. 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.

      算法开发工作就有这种特点

  30. Apr 2016
    1. 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.
    2. 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.
    3. 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.

  31. Feb 2016
    1. In summary, teams which are "fairer", in two senses, tend to be more effective:

      • Those where members speak and contribute in roughly the same proportion (albeit possibly in quite different ways)
      • Those where members have an above-average sensitivity to what others are thinking and feeling
    1. Zoomerang

      zoomerang survey software option

    2. While the display is appealing and easy to read, it is not customizable

      Polldaddy: survey software selection. List of cons.

    3. 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

    4. Polldaddy software chosen for second iteration of survey offered at GSU for assessment.

    5. Google Forms

      Chosen survey-taking software for iPad surveys given to users at GSU.

  32. Jan 2016
    1. 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”.

  33. Dec 2015
    1. 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.

    2. alliance of Moodle service providers that currently collaborate on Moodle-related projects of mutual interest
    1. 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.

  34. Nov 2015
    1. 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.
    2. 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
    3. 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
    4. 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
    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.

    1. 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.

    1. 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.

      • treat coworkers with respect
      • clear, open, honest communication
      • 3 code reviews before release
      • style guidelines
      • pair programming
      • unit tests
      • manual testing
      • user experience surveys
      • user experience analytics
  35. Oct 2015
    1. 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.

    1. 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”.

    1. 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!!

  36. Sep 2015
  37. Jul 2015
    1. 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.
  38. May 2015