Social Budgeting Last Updated: October 11, 2019; First Released: March 02, 2014 Author: Kevin Boyle, President, DevTreks Version: DevTreks 2.2.0 A. Introduction DevTreks believes that the conventional collection, measurement, analysis, and explanation of technological and economic content stinks. Various DevTreks’ references explain why – the popular press, government auditors, academic researchers, and 30 years of author experience, have all found distressing shortfalls in the availability and use of benefit, cost, and performance content. Although the “empty box” metaphor used in some of those references may be strong, it’s not necessarily wrong (1*). Modern social networks can do a far better job of collecting, measuring, analyzing, and explaining technological and economic content. This reference explains how to manage social networks for the purpose of delivering social budgeting data services (2*). Section Page Terms 2 Network Management 3 Html Forms 3 Club Management 3 Edit Forms 8 Service Agreement 21 Security 30 Configuration 32 Errata and International Use 33 B. Terms Each network group (AgTreks, HealthTreks) consists of a group of networks (urban health clinics, rural health clinics). Each network consists of a group of clubs (Health Care West, Health Care East). Each club consists of a group of members (doctors, hospital analysts, patients). Club members build and deliver technological and economic data services. These terms are further defined on the About Us link on our home page: Social Budgeting: is the online sharing of technological and economic knowledge for the purpose of improving peoples’ lives and livelihoods in sustainable ways. DevTreks member: A DevTreks member, or DevTrekker, is an explorer with a practical need to study, carefully record, and share, information about prices, costs, revenues, performance, and resource use, for the purpose of improving resource allocation decisions. DevTrekkers take an on-line, open-source, interactive, and long-term approach to improving resource allocation decisions. DevTreks club: A DevTreks club is a discovery team that explores, and carefully records, science-based efforts to learn about technology, development, and conservation. Clubs help their members to allocate scarce resources in ways that balance economic progress, social improvement, equity, and natural resources conservation. DevTreks service: A DevTreks service provides members with practical answers to resource allocation decisions that involve questions such as: What is the price of? What much does it cost to? What are the benefits of? How much value is added by? What are the amounts and values of resources conserved? What are the benefits foregone by? What are the tradeoffs involved with alternative courses of action? Are the actions equitable? What are the risks? DevTreks network: A DevTreks network is a group of clubs devoted to delivering high quality socioeconomic data services in a specialized area of interest to the club members. DevTreks decision assistance: DevTreks gives citizens, firms, organizations, and governments the science-based knowledge needed to make sound resource allocation decisions. Making sound decisions helps people to improve lives and livelihoods. DevTreks administrator: IT staff who administer the cloud computing servers and the software. C. Network Management (3*) DevTreks administrators manage network groups and networks. No user interfaces are available yet for the administrators –they work directly with the databases. Although anyone who deploys DevTreks can be a DevTreks administrator, DevTreks is meant to be administered by professionals for professionals. D. Html Forms The underlying html technology, jquery, used to display and edit html forms, works on all major web browsers in mobile devices, tablets, and desktops. That technology targets mobile device use, resulting in the following issues for some browsers. Desktop html: Desktop users may prefer setting their browser size to near-tablet size because the html appears better that way. E. Club Management The following images show that networks, clubs, and members are managed from the Club panel. Members must login to see this panel. The following list explains how these user interface elements work. The Forms mentioned can be found in the Edit Forms section below. • Load This URI: Members use this command button to 1) display the full club panel and 2) update the Club panel after any edit has been made to any data displayed on this panel. • Profile (i.e. Hello …), Log out, Edit Membership: The Profile, or Log In, command buttons open an Edit Log In Form that allows members to change their passwords and log in using third party sites. The Log out command is self-explanatory. The Edit Membership command button opens an Edit Member Form that allows details about the member to be edited. • Current default club: The link opens the Edit Club form which club coordinators can use to edit information about the club. • Default network for current club: Clubs can belong to more than one network. This link opens the Edit Networks Form which members use to add, edit, or delete networks. All content is added to specific Networks which then becomes part of the URL to the content. Searches for content can be filtered by Network. • Default local for current club: Localizations are used to localize base element properties such as Interest Rates, Currencies, and Units of Measurement. Clubs can have more than one local but one local must be made a default. The default local properties get added to certain newly inserted base elements. This link opens the Edit Locals Form which members use to add, edit, or delete locals. • Default linked views for club: Linked Views, also called addins or extensions, are calculators, analyzers, or stories. By setting one Linked View as a default, clubs can quickly add that Linked View to base elements. This link opens the Edit Linked Views Form which members use to add, edit, or delete, lists of Linked Views. • Members of current club and View club members: This link opens the Edit Club Members Form which clubs use to add, edit, or delete members from the current club. The Member Role property found on this form allows club coordinators to change other club members’ roles from the default “contributor” to a “coordinator” role. Club coordinators can edit all of the sibling html forms. • Services: See Section F. Service Agreement. • View clubs subscribed to owned services: This link opens the Edit Subscribed Clubs Form which clubs use to view the clubs subscribed to owned Services and to allows club administrators to allow other clubs to edit their owned Services. • Change IsDefault Club or Insert New Club: This link opens the Edit Default Club Form which clubs use to change their default club or insert a new club. All content belongs to specific clubs, not to club members. The Load This URI command button is used to switch to the default club and their content. • Last few URIs edited: An audit record is generated every time a data element is edited. The last data elements that have been edited, as found in the audit records, are used to generate these URIs. If the edit deleted a record, the View URI link will generate an error message when clicked –the URI no longer exists because it has been deleted. F. Edit Forms (4*) Members maintain information about their membership, clubs, networks, and services, using the following Edit Forms which are opened by clicking on the previous section’s links. Privacy Form: Version 2.1.6 upgraded to AspNet Core 2.1 Identity, including the default Razor class package, as demonstrated in the following image. The use of the localhost deployment is recommended when these privacy requirements can’t be met when collecting socioeconomic data. Registration Form: Members use this form to register as a new member. Version 2.1.6 stopped automatically giving newly registered members their own clubs. They must ask existing club administrators to add them to their clubs. Profile: Members use this form to change their Username, or email, and phone number. Edit Member Form: Members use this form is used to edit information about their membership. Edit Club Form: Members use this form to edit information about clubs. Edit Networks Form: Members use this form to maintain a list of Networks relevant to their club. All data services (see Section G. Service Agreement) must include a specific network derived from this list. The network specifies the type of specialized data delivered through the service. The default network improves search results. For example, the network in the following URI is “ruraldelivery”: https://www.devtreks.org/healthtreks/preview/ruraldelivery/outcome/2012 Colonoscopy through stoma-/5736/none/ The network role is used to determine whether a member can edit network data, such as part of the network’s Work Breakdown Structure. New networks must be manually added by administrators. Network coordinator roles must be manually set by administrators (i.e. by manually editing the NetworkRole in table AccountToNetwork to “coordinator”). Note that the club owning this URL defined the URL’s network, rural delivery, on the club’s Service Agreement (see Section F). Specifically, they chose a Primary Network of “rural delivery” for their Outcome service holding this data. The list of available Networks came from this list. Edit Local Form (5*): Clubs use this form to maintain a list of Locals relevant to their club. The default local has properties, such as Units of Measurement, that are automatically added to certain newly inserted base elements. Version 2.0.0 simplified this feature by allowing localization properties to be set directly on the form –no longer requiring the use of a separate localization calculator. The ids and names entered on this form must come from localization lists maintained by Network administrators –they should not be entered on an ad hoc basis. The previous localization calculators set these properties using drop down lists, but the calculators introduced an undesirable level of complexity to club management. Edit Linked View Form: Clubs use this form to maintain a list of Linked Views which they use frequently. The default Linked View can be automatically linked to base elements, saving a lot of time when a lot of base elements are being edited. The standard Linked Views Interface, shown in the second image, is used to manage their Linked Views list. The Calculators and Analyzers reference explains how to use Linked Views. The Add Default Linked View button displayed on the following Edit Linked Views form will automatically add the Default Linked View to this list. Edit Club Members Form: Clubs use this form to maintain a list of club members. Only club coordinators can add, edit, and delete members. The first member added to any club will always be a club coordinator, meaning they have initial control over their members. Club coordinators can’t change the role of the club founder. Members who desire to join existing clubs must contact a club coordinator and ask them to add them to the list of club members. Members can delete their membership in any club at any time, including the club they founded, but the club itself can’t be deleted. Only DevTreks administrators can delete clubs or change a club coordinator to a club contributor. It’s discourteous to delete oneself from a club that will have no remaining members without informing administrators about the “stranded club”. Issues like this have to be addressed by DevTreks administrators in some formal manner, such as developing a written rule book. Every single iota of club and network management can’t be known yet –people need to experiment and discover what works best and what needs adjustment. Edit Subscribed Clubs Form: Opens a list of services owned by the current club. Clicking on any service command button opens the user interface elements shown at the bottom of the form. Those elements include a list of the clubs subscribed to the service and a property that allows clubs to permit other clubs to edit the service. Setting this property to “club is authorized to edit this service” allows the subscribed club to add, edit, and delete, all of the data in the service. Edit Default Club or Insert New Club Form: Members use this form to change their default club or to insert a new club. After changing clubs, the Load This URI command button on the Club panel must be used to switch to the club. Members who desire to join existing clubs must contact a club coordinator and ask them to add them to the list of club members. G. Service Agreement View club’s service agreement: Opens the following Service Agreement which clubs use to add, edit, and delete the services they offer. Services supported in DevTreks include Inputs, Outputs, Operations, Components, Outcomes, Operating Budgets, Capital Budgets, Resources (multimedia), Linked Views, and DevPacks. The Add Service command button is used together with the drop down list of services to add new services to the agreement. The Select Existing Service command button is used to subscribe to other clubs’ services, including their calculators and analyzers. DevTreks believes that paying clubs for those services via online markets will eventually provide well-earned incentives for high quality services. Service deletions need to be used carefully. As a precaution, the hierarchical data found in most services must usually be deleted bottom to top (i.e. Input to Budget Group), not top to bottom (i.e. Budget Group to Input). That means that when a Budget needs to be deleted, start by deleting the budget’s Inputs and Outputs, then the Outcomes and Components/Operations, then the Time Periods, and finally the Budget element. This design was implemented to prevent the unintentional deletion of all of the data in any data service. In most instances, that type of deletion, known as cascading deletions, is too dangerous because it has the potential to wipe out data that has been very carefully collected and managed over years or decades. Most hierarchical data in DevTreks follows the same pattern. For example, a category of data stored as part of the Service’s Classifications can’t be deleted if it is currently being used by any of the children Group elements in the data service. Instead, start by deleting the Groups of data using the classification, again starting from the bottom and moving to the top of the Groups’ data hierarchies, prior to deleting the errant classification. This reinforces the importance of Network-defined data standards that lessen the need for deletions or changes to production datasets. The following image displays the properties for a specific service. This form shows that the Service Agreement has been built explicitly to support a market for data services. In fact, earlier versions included links to prototype Payment Services. Several properties need further explanation. Public edit authorization: For security reasons, this feature has been turned off in the current version. It’s being retained because not everything is known about how Internet networks work best. Primary Network: This selection list is filled from the Networks list maintained by the club. Each service must identify one primary network which identifies the type of specialized data delivered through the service and makes searches easier. The Primary Network will appear in the URLs for all of the service’s content. URL networks are set using this property. URLs are a serious matter in DevTreks. That’s how all content is found and accessed. They have historical use. Care must be taken to define all of a URL’s properties very carefully. Once a dataset goes into full production, URLs should not be changed. This reinforces the importance of Network-defined data standards that must be followed by the Network’s clubs. Price per Member: These types of properties have been built to support a market for data services. These properties won’t be used until markets for data services get underway. Edit Classifications: Network and club coordinators are responsible for ensuring that high quality data standards are followed by clubs in their network. They are also responsible for ensuring that Work Breakdown Structures are used by their clubs. The Edit Classifications command button is used to edit categories of data that will be used by any service. This list should come from Level 1 or 2 of standard Work Breakdown Structures. The following image displays the user interface. This list appears in the Type selection list found when editing Group base elements (i.e. Input Group, Media Group). Only clubs that are network coordinators and members that are club coordinators can edit these categories (i.e. by manually editing the NetworkRole in table AccountToNetwork and, if needed, the MemberRole in table AccountToMember to “coordinator”). The following Food Input Service demonstrates how edits made to each Group of data, in this case, Input Groups associated with a USDA food Input Service, includes a list of the Classifications in the Type field. H. Security The storage of the technical and economic content found in DevTreks poses potential security threats. For example, some interest groups may not like the results of a particular benefit cost analysis. They may be motivated to attempt to alter the analysis by deleting it, changing some numbers, preventing access to the URI, or inserting malware on the server or database. Although DevTreks employs standard Internet Security protocols such as Secure Sockets Layer and encrypted data, customers should continually question this security. DevTreks is designed to be deployed and used at country or industry scale. Full deployment requires support by IT staff who can handle full-scale security. Customers should plan on devoting the needed resources, whether to DevTreks or their own IT staffs, to handle enterprise- level security before adopting DevTreks at full scale (7*). The security employed by DevTreks includes: Authentication 1. ASP.NET Identity Security: The ASP.NET references found in the Source Code tutorial document additional security patterns supported by ASP.NET, such as Active Directory. Version 2.1.6 upgraded to the AspNet Core Identity, including the use of https on localhost too. Identity allows compliance with EU requirements for privacy protection. 2. Encrypted Passwords: All passwords stored by DevTreks are encrypted. 3. Secure Third Party Logins: Members can log in using their accounts with companies such as Google and Microsoft. It’s reasonable to assume those types of companies are capable of managing secure accounts. 4. Two factor Authentication: Not implemented in Version 2.0.0, but supported by the Identity security explained below. 5. Secure Sockets Layer (SSL): All content, including localhost, must be accessed using SSL. 6. Localhost and Intranet Deployment: DevTreks can be deployed on the default Kestrel server found in the AspNetCore technology. The Kestrel web server does not need public access. In addition, beginning with Version 2.0.0, DevTreks has been refactored to support Mac and Linux servers. Some customers may prefer to keep their data off the public Internet by using a localhost or Intranet deployment. This option has the potential to be the most secure deployment. 7. Cloud Private Network: Although not fully investigated yet, cloud computing data centers are continually getting better and cursory information suggests they fully support this feature. Authorization 8. DevTreks Internal Security: Every edit tests whether the member and club carrying out the edit has authority to make the edit. All club members can make edits to the club’s data services. In addition, clubs can allow other clubs to edit their services. Version 2.1.6 discontinued making newly registered members the owners of their own club. Newly registered members must ask club administrator to add them to their clubs. Until a member joins a club, they can’t manage content. 9. Audited Edits: Any edit made to any data generates an audit database record that includes information about the member and club making the edit. This feature can be enhanced in several ways to increase the auditing power. Many IT professionals believe that the Internet has weak security. Several international efforts are underway to improve Internet security. Until those efforts bear fruit, plan on devoting the resources needed to continually improve the security in DevTreks. I. Configuration Five properties are used in the web project’s appsettings.json file to determine how data is stored and displayed. FileSizeValidation: This setting determines the maximum size of files that can be uploaded and stored in DevTreks. Version 2.0.0 began limiting maximum file size to around 25 MB. Default settings larger than 25 MB will be ignored. FileSizeDBStorageValidation: 0.5 MB. Resources that are less than the size of this setting will be stored in the Resources table in the database and in file or blob storage. Resources that are greater than the size of this setting but less than the size of the FileSizeValidation setting will be stored only in file or blob storage. Scalability and cost dictate keeping this setting small -most resources should be stored outside the database. One advantage to database storage is data portability -move the database and all of the database resources are still available. DevTreks stores style sheets and small images in the database because a localhost deployment will always need them. Note that after moving a database, the multimedia being stored in the database must still be saved in file or blob storage by logging in as the owner of the media service and previewing the multimedia (6*). PageSize 25 rows PageSizeEdits 10 rows PageSizeFiles: not currently being used (potential use to paginate large html views) J. Social Budgeting Errata DevTreks has not been tested yet at industry scale with industry membership. Expect some aberrations, but also expect to enjoy the product. K. International Use DevTreks supports the localization of user interface content, such as changing languages. Refer to the Source Code tutorial -the full localization of content requires the full time commitment of IT staff (7*). Version 2.1.8’s SDG Plan reference began advising sustainable communities to invest in teams of data scientists and sustainability workers who want to use the software to experiment and learn how to tackle climate change, solve biodiversity loss, and improve local and global society. Summary Social networks which use social budgeting to collect, analyze, and explain technological and economic content can help people to improve their lives and livelihoods in sustainable ways. Footnotes 1. The empty box metaphor derived from an agricultural economist’s criticism of the data management practices employed by members of that profession (see Reference 2). It’s a form of professional (and peer-reviewed) group think. In part, it refers to policy makers who make policy prescriptions without actually having sound data to support their advice. For example, researchers who carefully explain how to control rising health care costs without actually knowing the cost for a single medical treatment. Or government program administrators who make billion dollar decisions about allocating health care budgets without having concrete data about the costs, benefits, or performance, of the medical treatments being subsidized. The suits and ties look convincing and the voices sound appropriately somber –but the content, and therefore substance, tends towards obfuscated pabulum. 2. The video accompanying this tutorial mentions an important technical aspect of social budgeting. The primary purpose of any club or member in any social network is to develop and maintain serious technological and economic content. Content that supports serious decisions –such as those dealing with climate change-induced disasters. All of the user interface elements described on this form have been developed for that primary purpose. Not for typical social media purposes such as the emotional support of peers, conformity to group norms, or to spread misinformation. Clubs and members use social budgeting to help other people to improve their lives and livelihoods by becoming informed global neighbors. 3. Separate databases for separate networks makes sense for professionals who prefer only content relevant to their profession. This feature is considered advanced and is not supported. Although separate databases for separate Networks is technically feasible (i.e. all multimedia resources are currently stored by network), it’s not a current priority. 4. DevTreks uses two types of data access and storage. The first employs stored procedures and is used for everything except edits (i.e. searches, club administration, and navigation). The second employs an object relational mapping technology, Entity Framework, to carry out edits. The first time the Edit panel is opened or an edit is made, the second technique has to initiate the database and may be noticeably slow. Afterwards database speeds go back to normal. 5. An early desktop precursor to DevTreks tied existing Localization, Geocode, and Currency tables found in the database directly to base elements. Among other capacities, these tables were used to automatically convert base elements units of measurement from one system to another. These features were deemed a potential distraction from the primary purpose of base elements –economic evaluation of technologies, and are no longer directly used. Although not directly used, this alternative design supports linking these Localization properties to tables, such as these. A direct foreign key table relationship is still considered an unnecessary distraction and complication. The unused Locals tables will be retained in the database because they worked successfully in the past and, even without direct foreign key relationships, can still provide additional “Localization” support, such as currency and units of measurement conversions (provided that Network coordinators carry out their roles correctly). 6. If you encounter trouble with multimedia or style sheets after moving a database, log in and preview the club’s multimedia. Make sure to paginate through all rows. When owners of data preview multimedia they also store the multimedia in file or blob storage. 7. Most conventional institutions, especially those working in the government and research arenas, misallocate staff. They still hire staff with skills appropriate for previous decades but not with the IT skills urgently needed to address today’s problems. Those institutions need to be reformed and their dinosaurs gracefully retired. References 1. K. P. Boyle, P. Heilman, R. W. Malone, L. Ma, and R. S. Kanwar. Using Social Budgeting Web Software and Natural Resources Software Models to Improve Agricultural Economics Data Collection, Dissemination, and Analysis. DevTreks Working Paper 01. January, 2012. (the pdf file can be found in the DevPacks tutorial) 2. Gardner, Bruce and Gordon Rausser (eds.) Handbook of Agricultural Economics. Volume 1A Agricultural Production. Elsevier Science. 2001. (last sentence p. 726) References Note We try to use references that are open access or that do not charge fees. Improvements, Errors, and New Features Please notify DevTreks (devtrekkers@gmail.com) if you find errors in these references. Also please let us know about suggested improvements or recommended new features. A video tutorial explaining this reference can be found at: https://www.devtreks.org/commontreks/preview/commons/resourcepack/Social%20Budgeting/350/none DevTreks –social budgeting that improves lives and livelihoods 1