text:
package main

import (
	"context"
	"fmt"

	"regexp"
	"strings"
	"time"

	"github.com/golang/protobuf/ptypes/empty"
	"github.com/jfrog/jfrog-client-go/artifactory/services/utils"
	"github.com/rockbears/log"

	"github.com/ovh/cds/contrib/grpcplugins"
	art "github.com/ovh/cds/contrib/integrations/artifactory"
	"github.com/ovh/cds/sdk"
	"github.com/ovh/cds/sdk/artifact_manager"
	"github.com/ovh/cds/sdk/grpcplugin/integrationplugin"
)

/*
This plugin have to be used as a promote plugin

Artifactory promote plugin must configured as following:
	name: artifactory-promote-plugin
	type: integration
	author: "Steven Guiheux"
	description: "OVH Artifactory Promote Plugin"

$ cdsctl admin plugins import artifactory-promote-plugin.yml

Build the present binaries and import in CDS:
	os: linux
	arch: amd64
	cmd: <path-to-binary-file>

$ cdsctl admin plugins binary-add artifactory-promote-plugin artifactory-promote-plugin-bin.yml <path-to-binary-file>
*/

const (
	DefaultHighMaturity = "release"
)

type artifactoryPromotePlugin struct {
	integrationplugin.Common
}

func (e *artifactoryPromotePlugin) Manifest(_ context.Context, _ *empty.Empty) (*integrationplugin.IntegrationPluginManifest, error) {
	return &integrationplugin.IntegrationPluginManifest{
		Name:        "OVH Artifactory Promote Plugin",
		Author:      "Steven Guiheux",
		Description: "OVH Artifactory Promote Plugin",
		Version:     sdk.VERSION,
	}, nil
}

func (e *artifactoryPromotePlugin) Run(ctx context.Context, opts *integrationplugin.RunQuery) (*integrationplugin.RunResult, error) {
	log.Factory = log.NewStdWrapper(log.StdWrapperOptions{DisableTimestamp: true, Level: log.LevelInfo})
	log.UnregisterField(log.FieldCaller, log.FieldSourceFile, log.FieldSourceLine, log.FieldStackTrace)

	artifactoryURL := opts.GetOptions()[fmt.Sprintf("cds.integration.artifact_manager.%s", sdk.ArtifactoryConfigURL)]
	token := opts.GetOptions()[fmt.Sprintf("cds.integration.artifact_manager.%s", sdk.ArtifactoryConfigToken)]

	artifactList := opts.GetOptions()["artifacts"]
	destMaturity := opts.GetOptions()["destMaturity"]
	if destMaturity == "" {
		destMaturity = DefaultHighMaturity
	}

	var props *utils.Properties
	var err error
	setProperties := opts.GetOptions()["setProperties"]
	if setProperties != "" {
		props, err = utils.ParseProperties(setProperties)
		if err != nil {
			return fail("unable to parse given properties: %v", err)
		}
	}

	runResult, err := grpcplugins.GetRunResults(e.HTTPPort)
	if err != nil {
		return fail("unable to list run results: %v", err)
	}

	ctx, cancel := context.WithTimeout(ctx, 15*time.Minute)
	defer cancel()

	artifactClient, err := artifact_manager.NewClient("artifactory", artifactoryURL, token)
	if err != nil {
		return fail("Failed to create artifactory client: %s", err)
	}

	artSplit := strings.Split(artifactList, ",")
	artRegs := make([]*regexp.Regexp, 0, len(artSplit))
	for _, arti := range artSplit {
		r, err := regexp.Compile(arti)
		if err != nil {
			return fail("unable compile regexp in artifact list: %v", err)
		}
		artRegs = append(artRegs, r)
	}

	for _, r := range runResult {
		rData, err := r.GetArtifactManager()
		if err != nil {
			return fail("unable to read result %s: %v", r.ID, err)
		}
		skip := true
		for _, reg := range artRegs {
			if reg.MatchString(rData.Name) {
				skip = false
				break
			}
		}
		if skip {
			continue
		}
		fmt.Println("Promoting run result ", r.ID)
		if r.DataSync == nil {
			return fail("unable to find an existing promotion for result %s (run result has never be synchronized with artifactory manager) ", r.ID)
		}
		latestPromotion := r.DataSync.LatestPromotionOrRelease()
		if latestPromotion == nil {
			return fail("unable to find latest promotion/release for result %s", r.ID)
		}
		switch rData.RepoType {
		case "docker":
			if err := art.PromoteDockerImage(ctx, artifactClient, rData, latestPromotion.FromMaturity, latestPromotion.ToMaturity, props, false); err != nil {
				return fail("unable to promote docker image: %s: %v", rData.Name+"-"+latestPromotion.ToMaturity, err)
			}
		default:
			if err := art.PromoteFile(artifactClient, rData, latestPromotion.FromMaturity, latestPromotion.ToMaturity, props, false); err != nil {
				return fail("unable to promote file: %s: %v", rData.Name, err)
			}
		}

	}
	return &integrationplugin.RunResult{
		Status: sdk.StatusSuccess,
	}, nil
}

func main() {
	e := artifactoryPromotePlugin{}
	if err := integrationplugin.Start(context.Background(), &e); err != nil {
		panic(err)
	}
}

func fail(format string, args ...interface{}) (*integrationplugin.RunResult, error) {
	msg := fmt.Sprintf(format, args...)
	fmt.Println(msg)
	return &integrationplugin.RunResult{
		Details: msg,
		Status:  sdk.StatusFail,
	}, nil
}

repository: ovh/cds

repo_name: ovh/cds


text:
@article{Stegmann2002AAnalysis,
    title = {{A Brief Introduction to Statistical Shape Analysis}},
    year = {2002},
    author = {Stegmann, Mikkel B and Gomez, David Delgado},
    url = {https://graphics.stanford.edu/courses/cs164-09-spring/Handouts/paper_shape_spaces_imm403.pdf},
    keywords = {Procrustes analysis, active shape models, biometrics, landmark methods, morphometrics, multivariate statistics, principal component analysis, statistical shape analysis}
}

@book{Siemens2013AStudies,
    title = {{A Companion to Digital Literary Studies}},
    year = {2013},
    booktitle = {A Companion to Digital Literary Studies},
    author = {Siemens, Ray and Schreibman, Susan},
    isbn = {9781405177504},
    doi = {10.1002/9781405177504}
}

@article{Brehmer2013ATasks,
    title = {{A multi-level typology of abstract visualization tasks}},
    year = {2013},
    journal = {IEEE Transactions on Visualization and Computer Graphics},
    author = {Brehmer, Matthew and Munzner, Tamara},
    month = {0},
    isbn = {1077-2626},
    doi = {10.1109/TVCG.2013.124},
    issn = {10772626},
    pmid = {24051804}
}

@article{Livingstone2015ActiveResolved,
    title = {{Active Audiences? The Debate Progresses But Is Far From Resolved}},
    year = {2015},
    journal = {Communication Theory},
    author = {Livingstone, Sonia},
    month = {0},
    doi = {10.1111/comt.12078},
    issn = {14682885}
}

@article{Zaff2011AdvancesContext,
    title = {{Advances in civic engagement research. Issues of civic measures and civic context}},
    year = {2011},
    journal = {Advances in Child Development and Behavior},
    author = {Zaff, Jonathan F. and Kawashima-Ginsberg, Kei and Lin, Emily S.},
    month = {0}
}

@article{Rawlins2014AgencySpaces,
    title = {{Agency and Interactive Data Displays: Internet Graphics as Co-Created Rhetorical Spaces}},
    year = {2014},
    journal = {Technical Communication Quarterly},
    author = {Rawlins, Jacob D. and Wilson, Gregory D.},
    number = {4},
    pages = {303--322},
    volume = {23},
    url = {http://www.tandfonline.com/doi/abs/10.1080/10572252.2014.942468},
    doi = {10.1080/10572252.2014.942468},
    issn = {1057-2252},
    keywords = {agency, data visualization, interactive graphic}
}

@article{Skau2015AnCharts,
    title = {{An Evaluation of the Impact of Visual Embellishments in Bar Charts}},
    year = {2015},
    journal = {Computer Graphics Forum},
    author = {Skau, Drew and Harrison, Lane and Kosara, Robert},
    month = {0},
    doi = {10.1111/cgf.12634},
    issn = {14678659}
}

@article{Appelgren2017AnInteractivity,
    title = {{An Illusion of Interactivity}},
    year = {2017},
    journal = {Journalism Practice},
    author = {Appelgren, Ester},
    month = {3},
    pages = {1--18},
    url = {https://www.tandfonline.com/doi/full/10.1080/17512786.2017.1299032},
    doi = {10.1080/17512786.2017.1299032},
    issn = {1751-2786}
}

@article{Thalmann1984AnSystem,
    title = {{An interactive data visualization system}},
    year = {1984},
    journal = {Software-Practice {\&} Experience},
    author = {Thalmann, D},
    number = {3},
    pages = {277--290},
    volume = {14},
    isbn = {0038-0644},
    doi = {10.1002/spe.4380140307},
    keywords = {Plots • Graphics edition • Data visualization • In}
}

@article{Lee2012AnEngagement,
    title = {{An Open Government Maturity Model for social media-based public engagement}},
    year = {2012},
    journal = {Government Information Quarterly},
    author = {Lee, Gwanhoo and Kwak, Young Hoon},
    number = {4},
    month = {10},
    pages = {492--503},
    volume = {29},
    url = {http://linkinghub.elsevier.com/retrieve/pii/S0740624X1200086X},
    doi = {10.1016/j.giq.2012.06.001},
    issn = {0740624X}
}

@article{Manovich2009And19,
    title = {{and 19}},
    year = {2009},
    journal = {Culture},
    author = {Manovich, Lev},
    pages = {1--16},
    isbn = {0415582598}
}

@article{Knickmeyer2003ARTICLESAssociations,
    title = {{ARTICLES Exploring Collaboration Among Urban Neighborhood Associations}},
    year = {2003},
    journal = {Journal of Community Practice},
    author = {Knickmeyer, Lisa and Hopkins, Karen and Meyer, Megan},
    number = {2},
    volume = {11},
    url = {http://www.haworthpress.com/web/COM},
    doi = {10.1300/J125v11n02{\_}02}
}

@article{RmBasicStorytelling,
    title = {{Basic multimedia storytelling}},
    author = {Rm, Newhouse I and Salvitti, Stephen Michael and Gibran, Khalil}
}

@article{WestBenefitsInnovation,
    title = {{Benefits and Best Practices of Safe City Innovation}},
    author = {West, Darrell M and Bernstein, Dan},
    url = {https://www.brookings.edu/wp-content/uploads/2017/10/safe-city-innovation_final.pdf}
}

@article{HullmanBenefittingDifficulties,
    title = {{Benefitting InfoVis with Visual Difficulties}},
    author = {Hullman, Jessica and Adar, Eytan and Shah, Priti},
    keywords = {Index Terms—desirable difficulites, active processing, cognitive efficiency, engagement, individual differences}
}

@article{Weissgerber2015BeyondParadigm,
    title = {{Beyond Bar and Line Graphs: Time for a New Data Presentation Paradigm}},
    year = {2015},
    journal = {PLoS Biology},
    author = {Weissgerber, Tracey L. and Milic, Natasa M. and Winham, Stacey J. and Garovic, Vesna D.},
    number = {4},
    pages = {1--10},
    volume = {13},
    isbn = {0196-0644 (Print){\textbackslash}n0196-0644 (Linking)},
    doi = {10.1371/journal.pbio.1002128},
    issn = {15457885},
    pmid = {25901488}
}

@article{Borkin2016BeyondRecall,
    title = {{Beyond Memorability: Visualization Recognition and Recall}},
    year = {2016},
    journal = {IEEE Transactions on Visualization and Computer Graphics},
    author = {Borkin, Michelle A. and Bylinskii, Zoya and Kim, Nam Wook and Bainbridge, Constance May and Yeh, Chelsea S. and Borkin, Daniel and Pfister, Hanspeter and Oliva, Aude},
    month = {0},
    isbn = {1077-2626},
    doi = {10.1109/TVCG.2015.2467732},
    issn = {10772626},
    pmid = {26390488}
}

@article{Lewis2015BigJournalism,
    title = {{Big Data and Journalism}},
    year = {2015},
    journal = {Digital Journalism},
    author = {Lewis, Seth C. and Westlund, Oscar},
    number = {3},
    month = {5},
    pages = {447--466},
    volume = {3},
    url = {http://www.tandfonline.com/doi/full/10.1080/21670811.2014.976418},
    doi = {10.1080/21670811.2014.976418},
    issn = {2167-0811}
}

@article{Keim2006ChallengesAnalysis,
    title = {{Challenges in Visual Data Analysis}},
    year = {2006},
    journal = {Information Visualization},
    author = {Keim, Daniel a. and Mansmann, Florian and Ziegler, Hartmut},
    number = {IV 2006},
    pages = {9--16},
    doi = {10.1109/IV.2006.31}
}

@misc{Chandler1991.pdf,
    title = {{Chandler {\&} Sweller (1991).pdf}},
    doi = {Chandler {\&} Sweller (1991).pdf. (n.d.).}
}

@article{Rozelle2002Chapter4,
    title = {{Chapter 4}},
    year = {2002},
    author = {Rozelle, Scott},
    number = {Nsbc 2010},
    pages = {53--72},
    isbn = {0471499269},
    doi = {10.1111/j.1600-0447.1951.tb04141.x},
    issn = {10752846},
    pmid = {26840611},
    arxivId = {arXiv:0807.1760v1}
}

@article{Sieber2015CivicChallenges,
    title = {{Civic open data at a crossroads: Dominant models and current challenges}},
    year = {2015},
    journal = {Government Information Quarterly},
    author = {Sieber, Renee E. and Johnson, Peter A.},
    isbn = {0740-624X},
    doi = {10.1016/j.giq.2015.05.003},
    issn = {0740624X},
    keywords = {Data provision, Data sharing, Open data, Open government, Participatory}
}

@article{Coddington2015ClarifyingTurn,
    title = {{Clarifying Journalism’s Quantitative Turn}},
    year = {2015},
    journal = {Digital Journalism},
    author = {Coddington, Mark},
    number = {3},
    month = {5},
    pages = {331--348},
    volume = {3},
    url = {http://www.tandfonline.com/doi/full/10.1080/21670811.2014.976400},
    doi = {10.1080/21670811.2014.976400},
    issn = {2167-0811}
}

@article{Al-Megren2016ComparingTasks,
    title = {{Comparing Tangible and Multi-touch Interaction for Interactive Data Visualization Tasks}},
    year = {2016},
    journal = {Proceedings of the TEI '16: Tenth International Conference on Tangible, Embedded, and Embodied Interaction},
    author = {Al-Megren, Shiroq and Ruddle, Roy A},
    month = {0}
}

@book{ChiassonDATAInformation,
    title = {{DATA + DESIGN A simple introduction to preparing and visualizing information}},
    author = {Chiasson, Trina and Gregory, Dyanna}
}

@article{Fink2015DataStates,
    title = {{Data Journalism in the United States}},
    year = {2015},
    journal = {Journalism Studies},
    author = {Fink, Katherine and Anderson, C. W.},
    number = {4},
    month = {7},
    pages = {467--481},
    volume = {16},
    url = {http://www.tandfonline.com/doi/full/10.1080/1461670X.2014.939852},
    doi = {10.1080/1461670X.2014.939852},
    issn = {1461-670X}
}

@misc{Cushion2016DataReporting,
    title = {{Data Journalism, Impartiality and Statistical Claims: Towards more independent scrutiny in news reporting}},
    year = {2016},
    booktitle = {Journalism Practice},
    author = {Cushion, Stephen and Lewis, Justin and Callaghan, Robert},
    doi = {10.1080/17512786.2016.1256789},
    issn = {17512794}
}

@article{Royal2015DataExplication,
    title = {{Data journalism: An explication}},
    year = {2015},
    journal = {International Symposium in Online Journalism},
    author = {Royal, Cindy and Blasingame, Dale},
    number = {1},
    pages = {24--46},
    volume = {5}
}

@article{Cook2016DataAnalysis,
    title = {{Data Visualization and Statistical Graphics in Big Data Analysis}},
    year = {2016},
    journal = {Annual Review of Statistics and Its Application},
    author = {Cook, Dianne and Lee, Eun-Kyung and Majumder, Mahbubul},
    isbn = {0417150334},
    doi = {10.1146/annurev-statistics-041715-033420},
    issn = {2326-8298}
}

@article{GonzalezDataShiny,
    title = {{Data Works : An Interactive Data Visualization Application Built with Shiny}},
    author = {Gonzalez, Christian A and Youmans, Robert J},
    number = {2010},
    pages = {2010},
    keywords = {1, 2, a recently released package, and interactive data applications, big data, cognitively demanding applications are, data visualization, for, how to ensure that, however, in the literature of, interface design, is becoming ubiquitous in, many domains, shiny, the use of data, there are few examples, these complex and, to inform decision making, usability, usable and effective, web applications}
}

@article{BaackDataficationJournalism,
    title = {{Datafication and empowerment: How the open data movement re-articulates notions of democracy, participation, and journalism}},
    author = {Baack, Stefan},
    url = {http://journals.sagepub.com/doi/pdf/10.1177/2053951715594634},
    doi = {10.1177/2053951715594634},
    keywords = {Open data, agency, civic technologies, hacking culture, journalism, open source}
}

@article{2016DigitalMedia,
    title = {{Digital era : from mass media towards a mass of media}},
    year = {2016},
    number = {3},
    pages = {240--248},
    keywords = {characteristics, consumer, content, creation and dissemination, digital era, economic models, information dissemination, mass communication, social networks}
}

@book{BurdickA.DruckerJ.LunenfieldDigital_Humanities,
    title = {{Digital{\_}Humanities}},
    author = {Burdick, A. Drucker, J., Lunenfield, P.},
    url = {https://mitpress.mit.edu/sites/default/files/titles/content/9780262018470_Open_Access_Edition.pdf}
}

@article{Sunne2016DivingDeeper,
    title = {{Diving into Data Journalism : Strategies for getting started or going deeper}},
    year = {2016},
    journal = {American Press Institute},
    author = {Sunne, Samantha},
    pages = {36},
    url = {https://www.americanpressinstitute.org/publications/reports/strategy-studies/data-journalism/single-page/}
}

@article{Lee2015EffectsModerators,
    title = {{Effects of infographics on news elaboration, acquisition, and evaluation: Prior knowledge and issue involvement as moderators}},
    year = {2015},
    journal = {New Media {\&} Society},
    author = {Lee, E.-J. and Kim, Y. W.},
    month = {0},
    isbn = {1461-4448},
    doi = {10.1177/1461444814567982},
    issn = {1461-4448}
}

@article{Brenton2014EmbodiedVisualisations,
    title = {{Embodied Design of Dance Visualisations}},
    year = {2014},
    journal = {Proceedings of the International Workshop on Movement and Computing},
    author = {Brenton, Harry and Kleinsmith, Andrea and Gillies, Marco},
    month = {0}
}

@article{BlandfordExaminingYouth,
    title = {{Examining the Role of Information in the Civic Engagement of Youth}},
    author = {Blandford, Alieda and Taylor, Dominique and Smit, Mike},
    url = {http://onlinelibrary.wiley.com/store/10.1002/pra2.2015.145052010021/asset/pra2145052010021.pdf?v=1&t=j60eintb&s=43c2c3504e1f6d53fa5319ad533fe82cf4100feb},
    keywords = {Civic engagement, information behavior, information seeking, youth engagement}
}

@article{Elmqvist2011FluidVisualization,
    title = {{Fluid interaction for information visualization}},
    year = {2011},
    journal = {Information Visualization},
    author = {Elmqvist, N. and Moere, a. V. and Jetter, H.-C. and Cernea, D. and Reiterer, H. and Jankun-Kelly, T.},
    number = {4},
    pages = {327--340},
    volume = {10},
    url = {http://ivi.sagepub.com/lookup/doi/10.1177/1473871611413180},
    isbn = {1473871611},
    doi = {10.1177/1473871611413180},
    issn = {1473-8716},
    keywords = {computer interaction, design, embodiment, flow, fluidity, human, information visualization}
}

@article{Young2015FromTendencies,
    title = {{From Mr. and Mrs. Outlier To Central Tendencies}},
    year = {2015},
    journal = {Digital Journalism},
    author = {Young, Mary Lynn and Hermida, Alfred},
    number = {3},
    month = {5},
    pages = {381--397},
    volume = {3},
    url = {http://www.tandfonline.com/doi/full/10.1080/21670811.2014.976409},
    doi = {10.1080/21670811.2014.976409},
    issn = {2167-0811}
}

@article{Weissgerber2016FromTransparency,
    title = {{From Static to Interactive: Transforming Data Visualization to Improve Transparency}},
    year = {2016},
    journal = {PLoS Biology},
    author = {Weissgerber, Tracey L. and Garovic, Vesna D. and Savic, Marko and Winham, Stacey J. and Milic, Natasa M.},
    number = {6},
    pages = {1--8},
    volume = {14},
    doi = {10.1371/journal.pbio.1002484},
    issn = {15457885},
    pmid = {27332507}
}

@article{ClevelandWilliamS.McGill1984GraphicalMethods,
    title = {{Graphical Perception: Theory, Experimentation and Application to the Development of Graphical Methods}},
    year = {1984},
    journal = {Journal of the American Statistical Association},
    author = {Cleveland, William S., McGill, Rober},
    number = {387},
    pages = {531--554},
    volume = {Vol. 79}
}

@misc{ClevelandGraphicalMethods,
    title = {{Graphical Perception: Theory, Experimenttion and Development of Graphical Methods}},
    author = {Cleveland, William S. McGil, Robert.},
    keywords = {computer graphics, pyschophysics}
}

@article{Feng2017HindSight:History,
    title = {{HindSight: Encouraging Exploration through Direct Encoding of Personal Interaction History}},
    year = {2017},
    journal = {IEEE Transactions on Visualization and Computer Graphics},
    author = {Feng, Mi and Deng, Cheng and Peck, Evan M. and Harrison, Lane},
    number = {1},
    pages = {351--360},
    volume = {23},
    doi = {10.1109/TVCG.2016.2599058},
    issn = {10772626},
    keywords = {History, Interaction, Visualization}
}

@article{Oh2015HowAttitudes,
    title = {{How does interactivity persuade? An experimental test of interactivity on cognitive absorption, elaboration, and attitudes}},
    year = {2015},
    journal = {Journal of Communication},
    author = {Oh, Jeeyun and Sundar, S. Shyam},
    isbn = {0021-9916},
    doi = {10.1111/jcom.12147},
    issn = {14602466},
    keywords = {Antismoking Website, Cognitive Absorption, Dual-Process Model, Health Communication, Interactivity, Interactivity Effects Model, Message Elaboration, Message Interactivity, Modality Interactivity, User Engagement}
}

@article{Mortier2015Human-DataSociety,
    title = {{Human-Data Interaction: The Human Face of the Data-Driven Society}},
    year = {2015},
    author = {Mortier, Richard and Henderson, Tristan},
    url = {https://arxiv.org/pdf/1412.6159.pdf},
    arxivId = {arXiv:1412.6159v2},
    keywords = {()}
}

@article{Otten2015InfographicsInformation,
    title = {{Infographics and public policy: Using data visualization to convey complex information}},
    year = {2015},
    journal = {Health Affairs},
    author = {Otten, Jennifer J. and Cheng, Karen and Drewnowski, Adam},
    month = {0},
    doi = {10.1377/hlthaff.2015.0642},
    issn = {15445208}
}

@article{Peltonen2013InformationVisualization,
    title = {{Information Retrieval Perspective to Interactive Data Visualization}},
    year = {2013},
    journal = {Eurographics Conference on Visualization (EuroVis)},
    author = {Peltonen, J and Sandholm, M and Kaski, S},
    keywords = {H5m [Information interfaces and presentation (eg, HCI)], Miscellaneous}
}

@article{Sack2014InteractiveD3,
    title = {{Interactive and multivariate choropleth maps with D3}},
    year = {2014},
    journal = {Cartographic Perspectives},
    author = {Sack, Carl M. and Donohue, Richard G. and Roth, Robert E.},
    number = {78},
    pages = {57--76},
    isbn = {1230000000345},
    doi = {10.14714/CP78.1278},
    issn = {10489053}
}

@article{Wojdynski2015InteractiveInvolvement,
    title = {{Interactive data graphics and information processing the moderating role of involvement}},
    year = {2015},
    journal = {Journal of Media Psychology},
    author = {Wojdynski, Bartosz W.},
    number = {1},
    pages = {11--21},
    volume = {27},
    doi = {10.1027/1864-1105/a000127},
    issn = {21512388},
    keywords = {Attitudes, Interactive graphics, Interactivity, Involvement, Online news}
}

@article{Craig2015InteractiveEngagement,
    title = {{Interactive Data Narrative : Designing for Public Signature redacted Signature redacted Interactive Data Narrative : Designing for Public Engagement}},
    year = {2015},
    author = {Craig, Heather},
    number = {2006}
}

@article{Craig2015InteractiveEngagementb,
    title = {{Interactive Data Narrative : Designing for Public Signature redacted Signature redacted Interactive Data Narrative : Designing for Public Engagement}},
    year = {2015},
    author = {Craig, Heather},
    number = {2006}
}

@book{Murray2013InteractiveVisualization,
    title = {{Interactive Data Visualization}},
    year = {2013},
    booktitle = {EP Patent 0,563,190},
    author = {Murray, Scott},
    number = {1},
    pages = {1--5},
    isbn = {9780874216561},
    doi = {10.1007/s13398-014-0173-7.2},
    issn = {0717-6163},
    pmid = {15003161},
    arxivId = {arXiv:1011.1669v3},
    keywords = {Bott}
}

@book{Lewandowski2015InteractiveWeb,
    title = {{Interactive Data Visualization for the Web}},
    year = {2015},
    booktitle = {The effects of brief mindfulness intervention on acute pain experience: An examination of individual difference},
    author = {Lewandowski, Clare M.},
    volume = {1},
    isbn = {9788578110796},
    doi = {10.1017/CBO9781107415324.004},
    issn = {1098-6596},
    pmid = {25246403},
    arxivId = {arXiv:1011.1669v3},
    keywords = {icle}
}

@article{George-Palilonis2011InteractiveForms,
    title = {{Interactive graphics development: A framework for studying innovative visual story forms}},
    year = {2011},
    journal = {Visual Communication Quarterly},
    author = {George-Palilonis, Jennifer and Spillman, Mary},
    month = {0}
}

@article{Dick2014InteractiveValues,
    title = {{Interactive Infographics and News Values}},
    year = {2014},
    journal = {Digital Journalism},
    author = {Dick, Murray},
    month = {0},
    isbn = {9788578110796},
    doi = {10.1080/21670811.2013.841368},
    issn = {2167082X},
    pmid = {25246403},
    arxivId = {arXiv:1011.1669v3}
}

@article{Green2014InteractiveStories,
    title = {{Interactive narratives: Processes and outcomes in user-directed stories}},
    year = {2014},
    journal = {Journal of Communication},
    author = {Green, Melanie C. and Jenkins, Keenan M.},
    month = {0},
    isbn = {1460-2466},
    doi = {10.1111/jcom.12093},
    issn = {14602466},
    pmid = {22994374}
}

@article{INTERACTIVELITERACY,
    title = {{INTERACTIVE VISUALISATIONS AND STATISTICAL LITERACY}},
    url = {http://dro.dur.ac.uk/22489/1/22489.pdf?DDD29+vrfd57+d700tmt}
}

@article{Feiock2006Introduction:Governments,
    title = {{Introduction: Understanding the Relationships Between Nonprofit Organizations and Local Governments}},
    year = {2006},
    journal = {Intl Journal of Public Administration Intl Journal of Public Administration Intl Journal of Public Administration},
    author = {Feiock, Introduction},
    number = {10},
    pages = {759--767},
    volume = {29},
    doi = {10.1080/01900690600769530},
    issn = {1532-4265}
}

@article{Donsbach2014JournalismEducation,
    title = {{Journalism as the new knowledge profession and consequences for journalism education}},
    year = {2014},
    journal = {Journalism},
    author = {Donsbach, Wolfgang},
    number = {6},
    volume = {15},
    doi = {10.1177/1464884913491347},
    issn = {1464-8849}
}

@article{Gynnild2014JournalismMindsets,
    title = {{Journalism innovation leads to innovation journalism: The impact of computational exploration on changing mindsets}},
    year = {2014},
    journal = {Journalism},
    author = {Gynnild, Astrid},
    number = {6},
    pages = {713--730},
    volume = {15},
    doi = {10.1177/1464884913486393},
    keywords = {Cognitive expansion, computational journalism, computational thinking, computer-assisted reporting, data journalism, innovation journalism, innovative mindset, journalism innovation}
}

@article{Kitchin2015KnowingDashboards,
    title = {{Knowing and governing cities through urban indicators, city benchmarking and real-time dashboards}},
    year = {2015},
    journal = {Regional Studies, Regional Science},
    author = {Kitchin, Rob and Lauriault, Tracey P. and McArdle, Gavin},
    month = {0}
}

@article{Burkhard2005KnowledgeVisualization,
    title = {{Knowledge Visualization}},
    year = {2005},
    journal = {SWISS FEDERAL INSTITUTE OF TECHNOLOGY ZURICH},
    author = {Burkhard, Richard.},
    isbn = {1591405734},
    doi = {10.3929/ethz-a-005004486},
    issn = {17520509},
    pmid = {21506198},
    arxivId = {0805.1386v1}
}

@book{Korner2016LearningVisualization,
    title = {{Learning Responsive Data Visualization}},
    year = {2016},
    author = {K{\"{o}}rner, Christoph},
    pages = {258},
    url = {http://proquest.safaribooksonline.com/9781785883781},
    isbn = {9781785883781}
}

@article{Hewett2016LearningConstraints,
    title = {{Learning to teach data journalism: Innovation, influence and constraints}},
    year = {2016},
    journal = {Journalism},
    author = {Hewett, Jonathan},
    number = {1},
    pages = {119--137},
    volume = {17},
    doi = {10.1177/1464884915612681},
    keywords = {Data journalism, higher education, innovation, journalism education, marketization, socialization, stakeholder, student, teaching, university}
}

@article{McDaniel2009MakingArchitecture,
    title = {{Making the Most of Interactivity Online Version 2.0: Technical Communication as Procedural Architecture}},
    year = {2009},
    journal = {Technical Communication},
    author = {McDaniel, R},
    number = {4},
    pages = {370--386},
    volume = {56},
    isbn = {0049-3155},
    issn = {00493155},
    keywords = {framework}
}

@article{Dorr2016MappingJournalism,
    title = {{Mapping the field of Algorithmic Journalism}},
    year = {2016},
    journal = {Digital Journalism},
    author = {D{\"{o}}rr, Konstantin Nicholas},
    number = {6},
    volume = {4},
    doi = {10.1080/21670811.2015.1096748},
    issn = {2167082X}
}

@article{Kim2016MobileTrust,
    title = {{Mobile Persuasion: Can Screen Size and Presentation Mode Make a Difference to Trust?}},
    year = {2016},
    journal = {Human Communication Research},
    author = {Kim, Ki Joon and Sundar, S. Shyam},
    doi = {10.1111/hcre.12064},
    issn = {14682958}
}

@article{Lee2015MoreStories,
    title = {{More Than Telling a Story: Transforming Data into Visually Shared Stories}},
    year = {2015},
    journal = {IEEE Computer Graphics and Applications},
    author = {Lee, Bongshin and Riche, Nathalie Henry and Isenberg, Petra and Carpendale, Sheelagh},
    month = {0},
    doi = {10.1109/MCG.2015.99},
    issn = {02721716},
    pmid = {26416365}
}

@article{NarrativeExperiences,
    title = {{Narrative Flow: Exploring Factors Shaping Data Visualization Story Reading Experiences}},
    url = {https://www.cs.utah.edu/~miriah/publications/narrative-flow.pdf}
}

@article{Figueiras2014NarrativeVisualizations,
    title = {{Narrative visualization: A case study of how to incorporate narrative elements in existing visualizations}},
    year = {2014},
    journal = {Proceedings of the International Conference on Information Visualisation},
    author = {Figueiras, Ana},
    month = {0},
    isbn = {9781479941032},
    doi = {10.1109/IV.2014.79},
    issn = {10939547}
}

@article{Dove2012NARRATIVEDATA,
    title = {{NARRATIVE VISUALIZATION: SHARING INSIGHTS INTO COMPLEX DATA}},
    year = {2012},
    author = {Dove, Graham and Jones, Sara},
    pages = {21--23},
    url = {http://openaccess.city.ac.uk/1134/},
    keywords = {()}
}

@article{Dove2012NARRATIVEDATAb,
    title = {{NARRATIVE VISUALIZATION: SHARING INSIGHTS INTO COMPLEX DATA}},
    year = {2012},
    author = {Dove, Graham and Jones, Sara},
    pages = {21--23},
    url = {http://openaccess.city.ac.uk/1134/},
    keywords = {()}
}

@article{Segel2010NarrativeData,
    title = {{Narrative visualization: Telling stories with data}},
    year = {2010},
    journal = {IEEE Transactions on Visualization and Computer Graphics},
    author = {Segel, Edward and Heer, Jeffrey},
    isbn = {1077-2626},
    doi = {10.1109/TVCG.2010.179},
    issn = {10772626},
    pmid = {20975152},
    keywords = {Narrative visualization, case study, design methods, journalism, social data analysis, storytelling}
}

@article{Pandey2014NELLCOVisualization,
    title = {{NELLCO Legal Scholarship Repository The Persuasive Power of Data Visualization The Persuasive Power of Data Visualization}},
    year = {2014},
    author = {Pandey, Anshul Vikram and Manivannan, Anjali and Nov, Oded and Satterthwaite, Margaret L and Bertini, Enrico and Satterthwaite, Margaret},
    url = {http://lsr.nellco.org/nyu_plltwp http://lsr.nellco.org/nyu_plltwp/474},
    keywords = {Index Terms—Persuasive visualization, elaboration likelihood model, evaluation}
}

@article{Albors2008NewSource,
    title = {{New learning network paradigms: Communities of objectives, crowdsourcing, wikis and open source}},
    year = {2008},
    journal = {International Journal of Information Management},
    author = {Albors, J. and Ramos, J.C. and Hervas, J.L.},
    number = {3},
    pages = {194--202},
    volume = {28},
    doi = {10.1016/j.ijinfomgt.2007.09.006}
}

@book{SlovicNumbersNerves,
    title = {{Numbers and Nerves}},
    author = {Slovic, P.}
}

@book{Cohen2014NumbersNews,
    title = {{Numbers in the Newsroom: Using Math and Statistics in the News}},
    year = {2014},
    author = {Cohen, Sarah. (Investigative Reporters and Editors)},
    edition = {2},
    publisher = {Investigative Reporter and Editors, Inc.},
    isbn = {0976603713}
}

@article{Kim2015OpenPerspective,
    title = {{Open Innovation Maturity Model for the Government : An Open System Perspective}},
    year = {2015},
    journal = {Proceedings of the 36th International Conference on Information Systems (ICIS)},
    author = {Kim, Dan J and Lee, Jae-nam},
    month = {0}
}

@article{Kim2015OpenPerspectiveb,
    title = {{Open Innovation Maturity Model for the Government : An Open System Perspective}},
    year = {2015},
    journal = {Proceedings of the 36th International Conference on Information Systems (ICIS)},
    author = {Kim, Dan J and Lee, Jae-nam},
    month = {0}
}

@article{Lewis2013OpenInnovation,
    title = {{Open source and journalism: toward new frameworks for imagining news innovation}},
    year = {2013},
    journal = {Media, Culture {\&} Society},
    author = {Lewis, Seth C and Usher, Nikki},
    month = {0},
    isbn = {1146488491},
    doi = {10.1177/0163443713485494},
    issn = {0163-4437}
}

@article{Kosara2006ParallelData,
    title = {{Parallel Sets: Interactive Exploration and Visual Analysis of Categorical Data}},
    year = {2006},
    journal = {TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS},
    author = {Kosara, Robert and Bendix, Fabian and Hauser, Helwig},
    number = {4},
    volume = {12},
    keywords = {Categorical Data, Index Terms— Information Visualization, Interaction, Multivariate Data, Nominal Data}
}

@article{Valkanova2015PublicImplications,
    title = {{Public visualization displays of citizen data: Design, impact and implications}},
    year = {2015},
    journal = {International Journal of Human Computer Studies},
    author = {Valkanova, Nina and Jorda, Sergi and Vande Moere, Andrew},
    pages = {4--16},
    volume = {81},
    publisher = {Elsevier},
    url = {http://dx.doi.org/10.1016/j.ijhcs.2015.02.005},
    doi = {10.1016/j.ijhcs.2015.02.005},
    issn = {10959300},
    keywords = {Awareness, Civic engagement, Discussion, Evaluation, In-the-wild study, Persuasive technology, Public display, Reflection, Sustainability, Urban screen, Urban visualization}
}

@article{Bradshaw2013ScrapingDeadlines,
    title = {{Scraping for journalists : How to grab data from hundreds of sources, put it in a form you can interrogate - and still hit deadlines}},
    year = {2013},
    author = {Bradshaw, Paul},
    pages = {i-202}
}

@article{Lin2013SelectingVisualization,
    title = {{Selecting Semantically-Resonant Colors for Data Visualization}},
    year = {2013},
    journal = {Eurographics Conference on Visualization (EuroVis)},
    author = {Lin, Sharon and Fortuna, Julie and Kulkarni, Chinmay and Stone, Maureen and Heer, Jeffrey},
    number = {3},
    volume = {32},
    keywords = {H5m [Information Interfaces], Misc—Color}
}

@article{Lindman2014SimilaritiesBusiness,
    title = {{Similarities of Open Data and Open Source: Impacts on Business}},
    year = {2014},
    author = {Lindman, Juho},
    number = {3},
    pages = {59--70},
    url = {www.jtaer.com},
    doi = {10.4067/S0718-18762014000300006},
    keywords = {Keyword1, Keyword2, Keyword3, Keyword4, Keyword5 (You may set keywords from document properties or please enter keywords)}
}

@article{McConway2016StatisticsView,
    title = {{Statistics and the media: A statistician’s view}},
    year = {2016},
    journal = {Journalism: Theory, Practice {\&} Criticism},
    author = {McConway, Kevin},
    number = {1},
    volume = {17},
    isbn = {1464-8849},
    doi = {10.1177/1464884915593243},
    issn = {1464-8849}
}

@article{Boy2015StorytellingData,
    title = {{Storytelling in Information Visualizations: Does it Engage Users to Explore Data?}},
    year = {2015},
    journal = {Proceedings of the ACM CHI'15 Conference on Human Factors in Computing Systems},
    author = {Boy, Jeremy and Detienne, Francoise and Fekete, Jean-Daniel},
    month = {0}
}

@article{Boy2015StorytellingDatab,
    title = {{Storytelling in Information Visualizations: Does it Engage Users to Explore Data?}},
    year = {2015},
    journal = {Proceedings of the ACM CHI'15 Conference on Human Factors in Computing Systems},
    author = {Boy, Jeremy and Detienne, Francoise and Fekete, Jean-Daniel},
    month = {0}
}

@article{Boy2015StorytellingDatac,
    title = {{Storytelling in Information Visualizations: Does it Engage Users to Explore Data?}},
    year = {2015},
    journal = {Proceedings of the ACM CHI'15 Conference on Human Factors in Computing Systems},
    author = {Boy, Jeremy and Detienne, Francoise and Fekete, Jean-Daniel},
    isbn = {9781450331456},
    doi = {10.1145/2702123.2702452}
}

@article{George-Palilonis2013StorytellingPractices,
    title = {{Storytelling with Interactive Graphics: An Analysis of Editors' Attitudes and Practices}},
    year = {2013},
    journal = {Visual Communication Quarterly},
    author = {George-Palilonis, Jennifer and Spillman, Mary},
    number = {1},
    volume = {20},
    isbn = {15551393},
    doi = {10.1080/15551393.2013.765777},
    issn = {15551393}
}

@article{Kosara2013Storytelling:Visualization,
    title = {{Storytelling: The next step for visualization}},
    year = {2013},
    journal = {Computer},
    author = {Kosara, Robert and MacKinlay, Jock},
    number = {5},
    volume = {46},
    isbn = {0018-9162 VO - PP},
    doi = {10.1109/MC.2013.36},
    issn = {00189162}
}

@article{Richards-Schuster2015StrengtheningPractice,
    title = {{Strengthening youth participation in civic engagement: Applying the Convention on the Rights of the Child to social work practice}},
    year = {2015},
    journal = {Children and Youth Services Review},
    author = {Richards-Schuster, Katie and Pritzker, Suzanne},
    month = {0}
}

@article{Strictest2003TableContents,
    title = {{Table of of contents}},
    year = {2003},
    journal = {Engineering in Medicine and Biology Society, 2008. EMBS 2008. 30th Annual International Conference of the IEEE},
    author = {Strictest, In and Confidence, Commercial and One, Part and Strictest, In and Confidence, Commercial},
    pages = {2004},
    isbn = {9781107671812},
    doi = {10.1002/ejoc.201200111},
    issn = {0196-6553},
    pmid = {26840611},
    arxivId = {arXiv:1011.1669v3}
}

@article{County2017TDOCON,
    title = {{TDOC BED SPACE AND OPERATING CAPACITIES ON}},
    year = {2017},
    author = {County, Morgan and Complex, Correctional},
    url = {http://www.tn.gov/assets/entities/correction/attachments/BedJuly2017.pdf}
}

@article{FewTheFindings,
    title = {{The Chartjunk Debate – A Close Examination of Recent Findings}},
    author = {Few, Stephen},
    keywords = {Edward Tufte, Envisioning Information, Nigel Holmes, Show Me the Numbers, Stephen Few, The Visual Display of Quantitative Information, chartjunk, data visualization, graph design}
}

@article{Jacobson2015TheJournalism,
    title = {{The digital animation of literary journalism}},
    year = {2015},
    journal = {Journalism},
    author = {Jacobson, S. and Marino, J. and Gutsche, R. E.},
    month = {0},
    doi = {10.1177/1464884914568079},
    issn = {1464-8849}
}

@article{CawthonTheVisualization,
    title = {{The Effect of Aesthetic on the Usability of Data Visualization}},
    author = {Cawthon, Nick and Moere, Andrew Vande},
    keywords = {---User/Machine Systems, Graphical User Interfaces, Human Factors, Information Interfaces}
}

@article{CawthonTheVisualizationb,
    title = {{The Effect of Aesthetic on the Usability of Data Visualization}},
    author = {Cawthon, Nick and Moere, Andrew Vande},
    keywords = {---User/Machine Systems, Graphical User Interfaces, Human Factors, Information Interfaces}
}

@article{Persaud2013THEFACEBOOK,
    title = {{THE EFFECTS OF INTERACTIVITY AND INVOLVEMENT ON USERS' ATTITUDE TOWARD AND PERCEPTION OF BRANDS AND PURCHASE INTENT ON FACEBOOK}},
    year = {2013},
    author = {Persaud, Christina},
    url = {http://etd.lsu.edu/docs/available/etd-04152013-134306/unrestricted/PersaudChristinaETDthesis.pdf}
}

@article{Frederick2015TheDesign,
    title = {{The Effects of Parallax Scrolling on User Experience in Web Design}},
    year = {2015},
    journal = {Journal of Usability Studies},
    author = {Frederick, Dede and Mohler, James and Vorvoreanu, Mihaela and Glotzbach, Ronald},
    number = {2},
    pages = {87--95},
    volume = {10},
    keywords = {UX, parallax scrolling, satisfaction, usability, user experience, user preference, website design}
}

@article{Stanfill2015TheDesign,
    title = {{The interface as discourse: The production of norms through web design}},
    year = {2015},
    journal = {New Media {\&} Society},
    author = {Stanfill, Mel},
    month = {0},
    isbn = {1461444814520},
    doi = {10.1177/1461444814520873},
    issn = {1461-4448}
}

@book{Uskali2015TheInnovations.,
    title = {{The Journal of media innovations.}},
    year = {2015},
    booktitle = {The Journal of Media Innovations},
    author = {Uskali, Turo I and Kuutti, Heikki},
    number = {1},
    month = {3},
    pages = {77--88},
    volume = {2},
    url = {https://www.journals.uio.no/index.php/TJMI/article/view/882/1160},
    issn = {1894-5562},
    keywords = {Data Journalism, Data Journalist, Interview, Investigative Reporting, Journalism Innovations, Newsrooms, Work Methods}
}

@misc{Manovich2002TheMedia,
    title = {{The Language of New Media}},
    year = {2002},
    booktitle = {Screen},
    author = {Manovich, Lev},
    number = {1},
    pages = {354},
    volume = {27},
    url = {http://mitpress.mit.edu/catalog/item/default.asp?tid=8830&ttype=2%5Cnhttp://books.google.com/books?id=7m1GhPKuN3cC},
    isbn = {9780262632553},
    doi = {10.1386/nl.5.1.25/1},
    issn = {14996642},
    pmid = {15915015}
}

@phdthesis{Lewis2012TheSuburbia,
    title = {{The Newspaper That Fell From Its Ivory Tower: The Philadelphia Inquirer's Slow Death Chasing Suburbia}},
    year = {2012},
    author = {Lewis, Carl V},
    pages = {21},
    url = {http://dx.doi.org/10.7916/D8K074RG},
    school = {Columbia University},
    doi = {10.7916/D8K074RG},
    keywords = {Philadelphia Inquirer, disintermediation, newspapers, suburban sprawl}
}

@article{Steier2012TheVisualization,
    title = {{The Power of Visualization}},
    year = {2012},
    journal = {CIO Journal},
    author = {Steier, David}
}

@article{Kostelnick2016TheVisualization.,
    title = {{The Re-Emergence of Emotional Appeals in Interactive Data Visualization.}},
    year = {2016},
    journal = {Technical Communication},
    author = {Kostelnick, Charles},
    number = {2},
    pages = {116--135},
    volume = {63},
    issn = {00493155},
    keywords = {Campbell, Digital technology, George, Information visualization, Pathos, Visual communication, charts and graphs, data visualization, history of data design, visual rhetoric}
}

@article{AyresTheSplit-Attention,
    title = {{The Split-Attention Principle in Multimedia Learning Definition of Split-Attention}},
    author = {Ayres, Paul and Sweller, John}
}

@article{Nguyen2015TheDebates,
    title = {{The state of data and statistics in journalism and journalism education: Issues and debates}},
    year = {2015},
    journal = {Journalism},
    author = {Nguyen, A. and Lugo-Ocando, J.},
    number = {1},
    pages = {3--17},
    volume = {17},
    url = {http://jou.sagepub.com/cgi/doi/10.1177/1464884915593234},
    doi = {10.1177/1464884915593234},
    issn = {1464-8849},
    pmid = {13672860},
    keywords = {computer-assisted reporting (journalism), data-driven journalism, journalism -- statistics, journalism -- study {\&} teaching (higher), journalists}
}

@article{Sundar2016TheoreticalEngagement,
    title = {{Theoretical Importance of Contingency in Human-Computer Interaction: Effects of Message Interactivity on User Engagement}},
    year = {2016},
    journal = {Communication Research},
    author = {Sundar, S. S. and Bellur, S. and Oh, J. and Jia, H. and Kim, H.-S.},
    month = {0}
}

@article{Sundar2004TheorizingEffects,
    title = {{Theorizing Interactivity's Effects}},
    year = {2004},
    journal = {The Information Society},
    author = {Sundar, S. Shyam},
    number = {5},
    pages = {385--389},
    volume = {20},
    url = {http://www.tandfonline.com/doi/abs/10.1080/01972240490508072},
    doi = {10.1080/01972240490508072},
    issn = {0197-2243},
    keywords = {interactivity, interactivity is a, like most technological variables, media effects, psychology of technology, web-based mass communication}
}

@article{SooYiTowardVisualization,
    title = {{Toward a Deeper Understanding of the Role of Interaction in Information Visualization}},
    author = {Soo Yi, Ji and ah Kang, Youn and Stasko, John T and Jacko, Julie A},
    keywords = {Index Terms—Information visualization, interaction, interaction techniques, taxonomy, visual analytics}
}

@article{Atkinson2008TowardsNetwork,
    title = {{Towards a Model of Interactivity in Alternative Media: A Multilevel Analysis of Audiences and Producers in a New Social Movement Network}},
    year = {2008},
    journal = {Mass Communication and Society},
    author = {Atkinson, Joshua D},
    number = {3},
    pages = {227--247},
    volume = {11},
    url = {http://ezproxy.lib.indiana.edu/login?url=http://search.ebscohost.com/login.aspx?direct=true&db=ufh&AN=33245285&site=ehost-live&scope=site},
    isbn = {15205436},
    doi = {10.1080/15205430801919705},
    issn = {15205436},
    pmid = {33245285},
    keywords = {ACTIVISM, ALTERNATIVE mass media, ENCOURAGEMENT, MASS media {\&} public opinion, MASS media {\&} social integration, MASS media -- Research, MASS media -- Social aspects, POLICY networks, RESEARCH, SOCIAL change, SOCIAL network theory (Communication), SOCIAL networks, SOCIAL psychology}
}

@article{Anderson2013TowardsJournalism,
    title = {{Towards a sociology of computational and algorithmic journalism}},
    year = {2013},
    journal = {New Media {\&} Society},
    author = {Anderson, CW},
    month = {0},
    isbn = {1461444812465},
    doi = {10.1177/1461444812465137},
    issn = {1461-4448},
    pmid = {3689802778455931489related:YXod3RPQNDMJ}
}

@article{Bateman2010UsefulCharts,
    title = {{Useful Junk ? The Effects of Visual Embellishment on Comprehension and Memorability of Charts}},
    year = {2010},
    journal = {Human Factors},
    author = {Bateman, Scott and Mandryk, Regan L and Gutwin, Carl and Genest, Aaron and Mcdine, David and Brooks, Christopher},
    pages = {2573--2582},
    isbn = {9781605589299},
    doi = {10.1145/1753326.1753716},
    issn = {1605589292},
    pmid = {20975152}
}

@misc{VDQIp107Www.edwardtufte.com,
    title = {{VDQIp107 @ www.edwardtufte.com}},
    url = {https://www.edwardtufte.com/bboard/images/00040Z-22197/VDQIp107.jpg}
}

@article{Mckenna2017VisualExperiences,
    title = {{Visual Narrative Flow: Exploring Factors Shaping Data Visualization Story Reading Experiences}},
    year = {2017},
    journal = {Eurographics Conference on Visualization},
    author = {Mckenna, S and Riche, N Henry and Lee, B and Boy, J and Meyer, M},
    number = {3},
    volume = {36},
    url = {https://www.cs.utah.edu/~miriah/publications/narrative-flow.pdf},
    keywords = {H52 [Information Interfaces and Presentation], User Interfaces— Theory and methods}
}

@article{GuptaVisualizationVenkatesh,
    title = {{Visualization of Election Data : Using Interaction Design and Visual Discovery for Communicating Complex Insights Kuhu Gupta , Shailaja Sampat , Manas Sharma , Venkatesh}},
    author = {Gupta, Kuhu and Sampat, Shailaja and Sharma, Manas},
    number = {2},
    pages = {59--86},
    volume = {8},
    keywords = {acknowledgement, at various stages of, data analytics, data and everyone who, data democracy, data journalism, data literacy, data visualization, eci, for the, infographics, of india, open data, reviewed and gave feedback, thank the election commission, the authors wish to, the visualization, visual discovery}
}

@article{GuptaVisualizationVenkateshb,
    title = {{Visualization of Election Data : Using Interaction Design and Visual Discovery for Communicating Complex Insights Kuhu Gupta , Shailaja Sampat , Manas Sharma , Venkatesh}},
    author = {Gupta, Kuhu and Sampat, Shailaja and Sharma, Manas},
    number = {2},
    pages = {59--86},
    volume = {8},
    keywords = {acknowledgement, at various stages of, data analytics, data and everyone who, data democracy, data journalism, data literacy, data visualization, eci, for the, infographics, of india, open data, reviewed and gave feedback, thank the election commission, the authors wish to, the visualization, visual discovery}
}

@article{GuptaVisualizationVenkateshc,
    title = {{Visualization of Election Data : Using Interaction Design and Visual Discovery for Communicating Complex Insights Kuhu Gupta , Shailaja Sampat , Manas Sharma , Venkatesh}},
    author = {Gupta, Kuhu and Sampat, Shailaja and Sharma, Manas},
    number = {2},
    pages = {59--86},
    volume = {8},
    keywords = {acknowledgement, at various stages of, data analytics, data and everyone who, data democracy, data journalism, data literacy, data visualization, eci, for the, infographics, of india, open data, reviewed and gave feedback, thank the election commission, the authors wish to, the visualization, visual discovery}
}

@article{Ward2010VisualizationNetworks,
    title = {{Visualization Techniques for Trees, Graphs, and Networks}},
    year = {2010},
    journal = {Interactive Data Visualization: Foundations, Techniques, and Applications},
    author = {Ward, Matthew O. and Grinstein, Georges and Keim, Daniel A.},
    pages = {271--290}
}

@article{Smit2014VisualizingWork,
    title = {{Visualizing News: Make it work}},
    year = {2014},
    journal = {Digital Journalism},
    author = {Smit, Gerard and de Haan, Yael and Buijs, Laura},
    month = {0},
    isbn = {2167-0811},
    doi = {10.1080/21670811.2014.897847},
    issn = {2167082X}
}

@article{Slone2009VisualizingInformation,
    title = {{Visualizing Qualitative Information}},
    year = {2009},
    journal = {The Qualitative Report},
    author = {Slone, Debra J},
    number = {3},
    pages = {489--498},
    volume = {14},
    isbn = {1052-0147},
    issn = {10520147}
}

@article{DeMaeyer2015WaitingJournalism,
    title = {{Waiting for Data Journalism}},
    year = {2015},
    journal = {Digital Journalism},
    author = {De Maeyer, Juliette and Libert, Manon and Domingo, David and Heinderyckx, François and Le Cam, Florence},
    number = {3},
    month = {5},
    pages = {432--446},
    volume = {3},
    url = {http://www.tandfonline.com/doi/full/10.1080/21670811.2014.976415},
    doi = {10.1080/21670811.2014.976415},
    issn = {2167-0811}
}

@misc{Young2017What20122015,
    title = {{What Makes for Great Data Journalism?: A content analysis of data journalism awards finalists 2012???2015}},
    year = {2017},
    booktitle = {Journalism Practice},
    author = {Young, Mary Lynn and Hermida, Alfred and Fulda, Johanna},
    doi = {10.1080/17512786.2016.1270171},
    issn = {17512794}
}

@misc{deHaan2017WhenVisualizations,
    title = {{When Does an Infographic Say More Than a Thousand Words?: Audience evaluations of news visualizations}},
    year = {2017},
    booktitle = {Journalism Studies},
    author = {de Haan, Yael and Kruikemeier, Sanne and Lecheler, Sophie and Smit, Gerard and van der Nat, Renee},
    doi = {10.1080/1461670X.2016.1267592},
    issn = {14699699}
}

@article{Buja2001XGvis:Scaling,
    title = {{XGvis: Interactive data visualization with multidimensional scaling}},
    year = {2001},
    journal = {Journal of Computational and Graphical Statistics},
    author = {Buja, A and SWAYNE, D and LITTMAN, M and Dean, N},
    month = {1}
}

license: MIT

repository: carlvlewis/singlepage-latex-resume

license_type: permissive

repo_name: carlvlewis/singlepage-latex-resume

branch_name: refs/heads/master

extension: bib


text:
DESCRIPTION = "Utility for parsing system events"
LICENSE = "BSD"
LIC_FILES_CHKSUM = "file://eventdump.c;beginline=1;endline=34;md5=23b59be24a88ddc407b553035f3fd3e9"

PR = "r1"
PV = "1.0+git${SRCPV}"

SRCREV = "5db45a36a05a78ea44a4cb25312ed5ee3c2bd76d"

SRC_URI = "git://github.com/TI-ECS/eventdump.git;protocol=git"

S = "${WORKDIR}/git"

do_install() {
	oe_runmake 'DEST_DIR=${D}' 'BIN_DIR=${bindir}' install
}

repository: varigit/meta-arago-var

repo_name: varigit/meta-arago-var

extension: bb


text:
DESCRIPTION = "BL1 for s5p6818"
LICENSE = "GPLv2"

inherit deploy

#https://github.com/SamsungARTIK/boot-firmwares-artik710s
#SRC_URI = "git:://github.com/SamsungARTIK/bl1-artik710;protocol=git;branch=artik"
#SRC_URI = "git:://github.com/NexellCorp/bl1_s5p6818;protocol=git;branch=artik"
#SRC_URI = "git://git.nexell.co.kr/nexell/bl1/bl1-s5p6818;protocol=git;branch=nexell"
SRC_URI = "git://github.com/friendlyarm/sd-fuse_s5p6818.git;protocol=https;"
SRCREV = "ff5d9d52f6dd8d608a4fc3829976a078d3defe0f"

LIC_FILES_CHKSUM = "file://README.md;md5=0d6c7f42efcf5e2931accdbdf5d2bcfc"

S = "${WORKDIR}/git"

do_deploy() {
	install -m 0644 ${S}/prebuilt/bl1-mmcboot.bin ${DEPLOYDIR}/
}

do_configure() {
	:
}

do_install() {
	:
}

addtask deploy before do_build after do_compile

repository: Ridgar/meta-samsung

repo_name: Ridgar/meta-samsung


text:
macro(set_default varName value)
  if (NOT DEFINED ${varName} OR "" STREQUAL "${${varName}}")
    set(${varName} ${value})
  endif()
endmacro()

set_default(LLVM_PROJECT_REPO_URL "https://github.com/llvm/llvm-project")
set_default(LLVM_VERSION "11.0.1")

set(ROOT_DIR ${CMAKE_CURRENT_LIST_DIR})

set_default(SOURCE_DIR "source")
get_filename_component(SOURCE_DIR_NAME "${SOURCE_DIR}" NAME)

set_default(BUILD_DIR "build")
get_filename_component(BUILD_DIR_NAME "${BUILD_DIR}" NAME)

set_default(INSTALL_DIR "install")
get_filename_component(INSTALL_DIR_NAME "${INSTALL_DIR}" NAME)

set_default(TOOLS_DIR "tools")
get_filename_component(TOOLS_DIR_NAME "${TOOLS_DIR}" NAME)

set_default(CMAKE_BUILD_TYPE "Release")
set_default(BUILD_TYPE "${CMAKE_BUILD_TYPE}")
set_default(NINJA_FORCE_BUILD FALSE)

function(check_dir_contents outVar dir)
  if (NOT IS_DIRECTORY "${dir}")
    set(${outVar} FALSE PARENT_SCOPE)
    return()
  endif()

  foreach (fileName ${ARGN})
    if (NOT EXISTS "${dir}/${fileName}")
      set(${outVar} FALSE PARENT_SCOPE)
      return()
    endif()
  endforeach()

  set(${outVar} TRUE PARENT_SCOPE)
endfunction()

# This is a list of some common files expected to exist in the LLVM source
# directory. It can (and perhaps should) have files added or changed as
# necessary to support specific tags or LLVM versions.
set(expectedLLVMSourceFiles
  cmake/config-ix.cmake
  cmake/modules/AddLLVM.cmake
  cmake/platforms/WinMsvc.cmake)

# Check to make sure the source directory exists and that some common, expected
# files exist in it.
check_dir_contents(sourceMatches ${SOURCE_DIR} ${expectedLLVMSourceFiles})
if (NOT sourceMatches)
  # Check to see if the "llvm" subdirectory exists and try again.
  if (IS_DIRECTORY "${SOURCE_DIR}/llvm")
    check_dir_contents(sourceMatches "${SOURCE_DIR}/llvm" ${expectedLLVMSourceFiles})
    if (sourceMatches)
      set(SOURCE_DIR "${SOURCE_DIR}/llvm")
    endif()
  endif()

  # If the "llvm" source directory couldn't be found, change the source
  # directory to one under the root directory for download.
  if (NOT sourceMatches)
    set(SOURCE_DIR ${ROOT_DIR}/${SOURCE_DIR_NAME})
  endif()
endif()

if (NOT sourceMatches)
  set(downloadSource TRUE)
endif()

# Download the LLVM source code if required.
if (downloadSource)
  message(STATUS "Source directory: ${SOURCE_DIR}")
  message(
    "The source directory either does not exist or does not appear to be a valid
LLVM source tree. The source will need to be acquired from
${LLVM_PROJECT_REPO_URL}.")
  if ("" STREQUAL "${GIT_EXECUTABLE}" OR NOT EXISTS "${GIT_EXECUTABLE}")
    find_program(GIT_EXECUTABLE git REQUIRED)
  endif()

  message(STATUS "Found Git: ${GIT_EXECUTABLE}")
  message(STATUS "Cloning LLVM source ...")
  # Can't use FetchContent here as this script is meant to be run stand-alone
  # (`cmake -P build-llvm-toolchian.cmake`) where FetchContent is unsupported.
  execute_process(COMMAND
    ${GIT_EXECUTABLE} clone --depth 1
      --branch "llvmorg-${LLVM_VERSION}" "${LLVM_PROJECT_REPO_URL}.git"
      "${SOURCE_DIR}"
    RESULT_VARIABLE gitResult)
  if (NOT "${gitResult}" STREQUAL "0")
    message(FATAL_ERROR "Error cloning LLVM source.")
  endif()
  # Update SOURCE_DIR to refer to the 'llvm' subdirectory.
  set(SOURCE_DIR "${SOURCE_DIR}/llvm")
endif()

# Adjust the directories and ensure they exist.
set(BUILD_DIR "${ROOT_DIR}/${BUILD_DIR_NAME}")
file(MAKE_DIRECTORY "${BUILD_DIR}")
set(TOOLS_DIR "${ROOT_DIR}/${TOOLS_DIR_NAME}")
file(MAKE_DIRECTORY "${TOOLS_DIR}")
get_filename_component(installDirPath "${INSTALL_DIR}" ABSOLUTE)
file(MAKE_DIRECTORY "${installDirPath}")

# Configure and validate Windows cross-compile options -- if specified.
if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows")
  set_default(HOST_ARCH "x86_64")
  message(STATUS "Windows build specified. Target architecture: ${HOST_ARCH}")
  if (NOT DEFINED MSVC_BASE)
  message(FATAL_ERROR
    "For Windows builds, MSVC_BASE must be defined and be an absolute path \
to a folder containing MSVC headers and system libraries.")
  endif()
  if (NOT DEFINED WINSDK_BASE)
    message(FATAL_ERROR
      "For Windows builds, WINSDK_BASE must be defined and be an absolute path \
to a folder containing Windows SDK headers and system libraries.")
  endif()
  if (NOT DEFINED WINSDK_VER)
    message(FATAL_ERROR
      "For Windows builds, WINSDK_VER must be defined and set to the full \
version number of the Windows SDK to use.")
  endif()
  if (NOT IS_DIRECTORY "${MSVC_BASE}")
    message(FATAL_ERROR "MSVC_BASE directory not found: '${MSVC_BASE}'")
  endif()
  if (NOT IS_DIRECTORY "${WINSDK_BASE}")
    message(FATAL_ERROR "WINSDK_BASE directory not found: '${WINSDK_BASE}'")
  endif()
  if (NOT IS_DIRECTORY "${WINSDK_BASE}/Lib/${WINSDK_VER}" OR
    NOT IS_DIRECTORY "${WINSDK_BASE}/Include/${WINSDK_VER}")
    message(FATAL_ERROR
      "WINSDK_VER does not specify a valid Windows SDK version: ${WINSDK_VER}")
  endif()
  set(crossBuildArgs
    -DCMAKE_SYSTEM_NAME=Windows
    -DMSVC_BASE=${MSVC_BASE}
    -DWINSDK_BASE=${WINSDK_BASE}
    -DWINSDK_VER=${WINSDK_VER}
    -DHOST_ARCH=${HOST_ARCH})
endif()

# Start the configuration process.
get_filename_component(sourceDirPath "${SOURCE_DIR}" ABSOLUTE)
execute_process(
  COMMAND
    ${CMAKE_COMMAND}
      -DROOT_DIR=${ROOT_DIR}
      -DTOOLS_DIR=${TOOLS_DIR}
      -DLLVM_SOURCE_DIR=${sourceDirPath}
      -DNINJA_FORCE_BUILD=${NINJA_FORCE_BUILD}
      -DCMAKE_INSTALL_PREFIX=${installDirPath}
      -DINSTALL_DIR=${installDirPath}
      ${crossBuildArgs}
      ${ROOT_DIR}/projects
  WORKING_DIRECTORY ${BUILD_DIR})

# Start the build.
execute_process(
  COMMAND
    ${CMAKE_COMMAND} --build .
  WORKING_DIRECTORY ${BUILD_DIR})

repository: mikdusan/llvm-toolchain

repo_name: mikdusan/llvm-toolchain

branch_name: refs/heads/main

extension: cmake


text:
package main

import (
	"bufio"
	"fmt"
	"io"
	"log"
	"os"
	"path/filepath"
	"strings"

	"github.com/vron/compute/glbind/input"
	"github.com/vron/compute/glbind/types"
)

func generateGo(inp input.Input, ts *types.Types) {
	f, err := os.Create(filepath.Join(fOut, "kernel.go"))

	if err != nil {
		log.Fatalln(err)
	}
	defer f.Close()
	buf := bufio.NewWriter(f)
	defer buf.Flush()

	fmt.Fprintf(buf, "// Package kernel is a wrapper to execute a particular GLSL compute shader\n")
	fmt.Fprintf(buf, "package kernel"+"\n\n")

	writePreamble(buf, inp, ts)

	fmt.Fprint(buf, `
// Code generated DO NOT EDIT

// AlignedSlice returns a byte slice where the first element has a minimum
// alignment of align and a length if size.
func AlignedSlice(size, align int) (b []byte) {
	if align < 1 {
		panic("align must be > 0")
	}
	b = make([]byte, size+align-1)
	adr := uintptr(unsafe.Pointer(&b[0]))
	diff := 0
	if int(adr) % align != 0 {
		diff = align - int(adr) % align
	}
	return b[diff:diff+size]
}

type Kernel struct {
	k unsafe.Pointer
	dead bool
}

// New creates a Kernel using at most numCPU+1 threads. If numCPU <= 0 the
// number of threads to use will be calculated automatically. All kernels
// must be explicitly freed using Kernel.Free to avoid memory leaks.
  func New(numCPU int, stackSize int) (k *Kernel, err error) {
	k = &Kernel{}
	if numCPU <= 0 {
		numCPU = runtime.NumCPU()+2
	}
	k.k = C.cpt_new_kernel(C.int32_t(numCPU), C.int32_t(stackSize));
	if k.k == nil {
		return nil, errors.New("failed to create kernel structure")
	}
	runtime.SetFinalizer(k, freeKernel)
	return k, nil
}

// Free dealocates any data allocated by the underlying Kernel. Note that
// a kernel on which Free has been called can no longer be used.
func (k *Kernel) Free() {
	freeKernel(k)
}

func freeKernel(k *Kernel) {
	if k.dead {
		return
	}
	k.dead = true
	C.cpt_free_kernel(k.k);
}
`)
	writeTypeDefinitionsToC(buf, inp, ts)
	writeDataStruct(buf, inp, ts)
	writeDataStructRaw(buf, inp, ts)
	writeDispatch(buf, inp, ts)
	writeDispatchRaw(buf, inp, ts)
}

func writePreamble(buf io.Writer, inp input.Input, ts *types.Types) {
	fmt.Fprintf(buf, `/*
#cgo darwin LDFLAGS: -L${SRCDIR} -L. build/shader.so
#cgo linux LDFLAGS: -L${SRCDIR}/build -L. build/shader.so
#cgo windows LDFLAGS: -L. -lshader

#include "shared.h"
`)
	fmt.Fprintf(buf, `struct cpt_error_t wrap_dispatch(void *k, `+"\n")
	tab := "                                 "
	for _, arg := range inp.Arguments {
		ty := types.CreateArray(ts.Get(arg.Ty).C, arg.Arrno)
		if ty.IsComplexStruct() {
			fmt.Fprintf(buf, tab+ty.CString("cpt_", "", false)+" "+arg.Name+",\n")
		} else {
			fmt.Fprintf(buf, tab+"void* "+arg.Name+", ")
			fmt.Fprintf(buf, "int64_t "+arg.Name+"_len,\n")
		}
	}
	fmt.Fprintf(buf, tab+`int32_t x, int32_t y, int32_t z) {
	cpt_data d;
`)
	for _, arg := range inp.Arguments {
		ty := types.CreateArray(ts.Get(arg.Ty).C, arg.Arrno)
		fmt.Fprintf(buf, "\td."+arg.Name+" = "+arg.Name+";\n")
		if !ty.IsComplexStruct() {
			fmt.Fprintf(buf, "\td."+arg.Name+"_len = "+arg.Name+"_len;\n")
		}
	}
	fmt.Fprintf(buf, `	return cpt_dispatch_kernel(k, d, x, y, z);
}
*/
import "C"

`)
}

func writeTypeDefinitionsToC(buf io.Writer, inp input.Input, ts *types.Types) {
	for _, st := range ts.ListExportedTypes() {
		if !st.C.IsComplexStruct() {
			continue
		}
		fmt.Fprintf(buf, "func (v %v) toC() C.cpt_%v {\nreturn C.cpt_%v{\n", st.GoName(), st.Name, st.Name)
		for _, f := range st.C.Struct.Fields {
			if f.CType.IsArray() && f.CType.Array.Len == -1 {
				// C expects only a pointer TODO: Should we also send a length here?
				fmt.Fprintf(buf, "%v:(*C.%v)(&v.%v[0]),\n", f.Name, f.CType.Array.CType.Basic.Name, strings.Title(f.Name))
			} else {
				fmt.Fprintf(buf, "%v:(C.%v)(v.%v),\n", f.Name, f.CType.Basic.Name, strings.Title(f.Name))
			}
		}
		fmt.Fprintf(buf, "}\n}\n\n")

	}
}

func writeDataStruct(buf io.Writer, inp input.Input, ts *types.Types) {
	fmt.Fprintf(buf, "type Data struct {\n")
	for _, arg := range inp.Arguments {
		ty := types.CreateArray(ts.Get(arg.Ty).C, arg.Arrno)
		if len(arg.Arrno) > 0 && arg.Arrno[0] == -1 {
			fmt.Fprintf(buf, "  "+ty.GoString(strings.Title(arg.Name))+"\n")
		} else {
			if ty.IsComplexStruct() {
				fmt.Fprintf(buf, "  "+(ty.GoString(strings.Title(arg.Name)))+"\n")
			} else {
				fmt.Fprintf(buf, "  "+pointify(ty.GoString(strings.Title(arg.Name)))+"\n")
			}
		}
	}
	fmt.Fprintf(buf, "}\n\n")
}

func writeDataStructRaw(buf io.Writer, inp input.Input, ts *types.Types) {
	fmt.Fprintf(buf, "type DataRaw struct {\n")
	for _, arg := range inp.Arguments {
		ty := types.CreateArray(ts.Get(arg.Ty).C, arg.Arrno)
		if ty.IsComplexStruct() {
			// this is the sort of complex struct that is handled completely differently in gl anyway
			fmt.Fprintf(buf, "  "+(ty.GoString(strings.Title(arg.Name)))+"\n")
		} else {
			fmt.Fprintf(buf, strings.Title(arg.Name)+" []byte\n")
		}
	}
	fmt.Fprintf(buf, "}\n\n")
}

func writeDispatch(buf io.Writer, inp input.Input, ts *types.Types) {
	fmt.Fprintf(buf, `
// Dispatch a Kernel calculation of the specified size. The caller must ensure
// that the data provided in bind matches the kernel's assumptions and that any
// []byte field represents properly aligned data. Not data in bind must
// be accessed (read or write) until Dispatch returns.
func (k *Kernel) Dispatch(bind Data, numGroupsX, numGroupsY, numGroupsZ int) error {
	if k.dead {
		panic("cannot use a Kernel where Free() has been called")
	}
`)

	fmt.Fprintf(buf, ` errno := C.wrap_dispatch(k.k,
`)
	for _, arg := range inp.Arguments {
		ty := types.CreateArray(ts.Get(arg.Ty).C, arg.Arrno)
		if len(arg.Arrno) > 0 && arg.Arrno[0] == -1 {
			// slice data, we need the size of the entire thing...
			fmt.Fprintf(buf, "\tunsafe.Pointer(&bind."+strings.Title(arg.Name)+"[0]), ")
			fmt.Fprintf(buf, "C.int64_t(int64(len(bind.%v))*int64(unsafe.Sizeof(bind.%v[0]))),\n", strings.Title(arg.Name), strings.Title(arg.Name))
		} else {
			if ty.IsComplexStruct() {
				fmt.Fprintf(buf, "\tbind."+strings.Title(arg.Name)+".toC(), ")
			} else {
				fmt.Fprintf(buf, "\tunsafe.Pointer(bind."+strings.Title(arg.Name)+"), ")
				fmt.Fprintf(buf, "C.int64_t(unsafe.Sizeof(*bind."+strings.Title(arg.Name)+")),\n")
			}
		}
	}
	fmt.Fprintf(buf, `C.int(numGroupsX), C.int(numGroupsY), C.int(numGroupsZ))`)

	// decode the error message
	fmt.Fprintf(buf, `
	if errno.code == 0 {
		return nil
	}
	errstr := C.GoString(errno.msg)
	return errors.New(strconv.Itoa(int(errno.code)) + ": " + errstr)
}
`)
}

func writeDispatchRaw(buf io.Writer, inp input.Input, ts *types.Types) {
	fmt.Fprintf(buf, `
func (k *Kernel) DispatchRaw(bind DataRaw, numGroupsX, numGroupsY, numGroupsZ int) error {
	if k.dead {
		panic("cannot use a Kernel where Free() has been called")
	}
`)
	fmt.Fprintf(buf, ` errno := C.wrap_dispatch(k.k,
`)
	for _, arg := range inp.Arguments {
		ty := types.CreateArray(ts.Get(arg.Ty).C, arg.Arrno)
		if ty.IsComplexStruct() {
			fmt.Fprintf(buf, "\tbind."+strings.Title(arg.Name)+".toC(), ")
		} else {
			fmt.Fprintf(buf, "\tunsafe.Pointer(&bind."+strings.Title(arg.Name)+"[0]), ")
			fmt.Fprintf(buf, "C.int64_t(int64(len(bind.%v))),\n", strings.Title(arg.Name))
		}
	}
	fmt.Fprintf(buf, `C.int(numGroupsX), C.int(numGroupsY), C.int(numGroupsZ))`)

	// decode the error message
	fmt.Fprintf(buf, `
	if errno.code == 0 {
		return nil
	}
	errstr := C.GoString(errno.msg)
	return errors.New(strconv.Itoa(int(errno.code)) + ": " + errstr)
}

`)
}

func pointify(s string) string {
	// hac*y but wor*s
	return strings.Replace(s, "\t", "\t*", 1)
}

license: Unlicense,MIT

repository: vron/compute

detected_licenses: Unlicense MIT

repo_name: vron/compute

gha_license_id: NOASSERTION

extension: go


text:
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: object_relation.proto

package cmdb

import (
	fmt "fmt"
	_ "github.com/gogo/protobuf/gogoproto"
	proto "github.com/gogo/protobuf/proto"
	_ "github.com/mwitkow/go-proto-validators"
	math "math"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package

//
//模型关系
type ObjectRelation struct {
	//
	//关系名称, 不是必填, 而且在引入了 left_description 和 right_description 之后这个字段几乎处于废弃状态
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name" form:"name"`
	//
	//true 内置关系
	Protected bool `protobuf:"varint,2,opt,name=protected,proto3" json:"protected" form:"protected"`
	//
	//必须全局唯一: 新添加的关系ID字段建议增加下划线前缀
	RelationId string `protobuf:"bytes,3,opt,name=relation_id,json=relationId,proto3" json:"relation_id" form:"relation_id"`
	//
	//关系右端模型中表达左端模型实例的别名字段: 比如应用的负责人需要在应用的实例中表达出一个字段; 对已有模型添加关系时这个ID需要加下划线前缀避免冲突
	RightId string `protobuf:"bytes,4,opt,name=right_id,json=rightId,proto3" json:"right_id" form:"right_id"`
	//
	//是与 right_id 对应的含义, 但仅用于前端展示
	RightName string `protobuf:"bytes,5,opt,name=right_name,json=rightName,proto3" json:"right_name" form:"right_name"`
	//
	//是与 right_id 相反的含义, 但仅用于前端展示 (p.s.: 关系右端模型的描述)
	RightDescription string `protobuf:"bytes,6,opt,name=right_description,json=rightDescription,proto3" json:"right_description" form:"right_description"`
	//
	//关系在右端模型的哪些分组里
	RightGroups []string `protobuf:"bytes,7,rep,name=right_groups,json=rightGroups,proto3" json:"right_groups" form:"right_groups"`
	//
	//关系右端标签
	RightTags []string `protobuf:"bytes,8,rep,name=right_tags,json=rightTags,proto3" json:"right_tags" form:"right_tags"`
	//
	//关系右端的资源模型实例最多包含多少数量的关系: 有数据库级别的索引支持, 一般情况填 1 或者 -1, -1表示无限多
	RightMax int32 `protobuf:"varint,9,opt,name=right_max,json=rightMax,proto3" json:"right_max" form:"right_max"`
	//
	//关系右端的资源模型实例至少包含多少数量的关系: 目前来说这个字段是过度设计的字段, 一般填 0 就好了
	RightMin int32 `protobuf:"varint,10,opt,name=right_min,json=rightMin,proto3" json:"right_min" form:"right_min"`
	//
	//关系右端的模型ID
	RightObjectId string `protobuf:"bytes,11,opt,name=right_object_id,json=rightObjectId,proto3" json:"right_object_id" form:"right_object_id"`
	//
	//关系左端模型中表达右端模型实例的别名字段: 比如应用的负责人需要在应用的实例中表达出一个字段; 对已有模型添加关系时这个ID需要加下划线前缀避免冲突
	LeftId string `protobuf:"bytes,12,opt,name=left_id,json=leftId,proto3" json:"left_id" form:"left_id"`
	//
	//是与 left_id 对应的含义, 但仅用于前端展示
	LeftName string `protobuf:"bytes,13,opt,name=left_name,json=leftName,proto3" json:"left_name" form:"left_name"`
	//
	//是与 left_id 相反的含义, 但仅用于前端展示 (p.s.: 关系左端模型的描述)
	LeftDescription string `protobuf:"bytes,14,opt,name=left_description,json=leftDescription,proto3" json:"left_description" form:"left_description"`
	//
	//关系在左端模型的哪些分组里
	LeftGroups []string `protobuf:"bytes,15,rep,name=left_groups,json=leftGroups,proto3" json:"left_groups" form:"left_groups"`
	//
	//关系左端标签
	LeftTags []string `protobuf:"bytes,16,rep,name=left_tags,json=leftTags,proto3" json:"left_tags" form:"left_tags"`
	//
	//关系左端的资源模型实例最多包含多少数量的关系: 有数据库级别的索引支持, 一般情况填1 或者 -1, -1表示无限多
	LeftMax int32 `protobuf:"varint,17,opt,name=left_max,json=leftMax,proto3" json:"left_max" form:"left_max"`
	//
	//关系左端的资源模型实例至少包含多少数量的关系: 目前来说这个字段是过度设计的字段, 一般填0就好了
	LeftMin int32 `protobuf:"varint,18,opt,name=left_min,json=leftMin,proto3" json:"left_min" form:"left_min"`
	//
	//关系左端的模型ID
	LeftObjectId string `protobuf:"bytes,19,opt,name=left_object_id,json=leftObjectId,proto3" json:"left_object_id" form:"left_object_id"`
	//
	//创建者
	Creator string `protobuf:"bytes,20,opt,name=creator,proto3" json:"creator" form:"creator"`
	//
	//创建时间
	Ctime string `protobuf:"bytes,21,opt,name=ctime,proto3" json:"ctime" form:"ctime"`
	//
	//创建时间的时间截
	XTs int32 `protobuf:"varint,22,opt,name=_ts,json=Ts,proto3" json:"_ts" form:"_ts"`
	//
	//版本
	XVersion int32 `protobuf:"varint,23,opt,name=_version,json=Version,proto3" json:"_version" form:"_version"`
	//
	//是否继承自父模型
	IsInherit            bool     `protobuf:"varint,24,opt,name=isInherit,proto3" json:"isInherit" form:"isInherit"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ObjectRelation) Reset()         { *m = ObjectRelation{} }
func (m *ObjectRelation) String() string { return proto.CompactTextString(m) }
func (*ObjectRelation) ProtoMessage()    {}
func (*ObjectRelation) Descriptor() ([]byte, []int) {
	return fileDescriptor_94f967a991685d94, []int{0}
}
func (m *ObjectRelation) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ObjectRelation.Unmarshal(m, b)
}
func (m *ObjectRelation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ObjectRelation.Marshal(b, m, deterministic)
}
func (m *ObjectRelation) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ObjectRelation.Merge(m, src)
}
func (m *ObjectRelation) XXX_Size() int {
	return xxx_messageInfo_ObjectRelation.Size(m)
}
func (m *ObjectRelation) XXX_DiscardUnknown() {
	xxx_messageInfo_ObjectRelation.DiscardUnknown(m)
}

var xxx_messageInfo_ObjectRelation proto.InternalMessageInfo

func (m *ObjectRelation) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *ObjectRelation) GetProtected() bool {
	if m != nil {
		return m.Protected
	}
	return false
}

func (m *ObjectRelation) GetRelationId() string {
	if m != nil {
		return m.RelationId
	}
	return ""
}

func (m *ObjectRelation) GetRightId() string {
	if m != nil {
		return m.RightId
	}
	return ""
}

func (m *ObjectRelation) GetRightName() string {
	if m != nil {
		return m.RightName
	}
	return ""
}

func (m *ObjectRelation) GetRightDescription() string {
	if m != nil {
		return m.RightDescription
	}
	return ""
}

func (m *ObjectRelation) GetRightGroups() []string {
	if m != nil {
		return m.RightGroups
	}
	return nil
}

func (m *ObjectRelation) GetRightTags() []string {
	if m != nil {
		return m.RightTags
	}
	return nil
}

func (m *ObjectRelation) GetRightMax() int32 {
	if m != nil {
		return m.RightMax
	}
	return 0
}

func (m *ObjectRelation) GetRightMin() int32 {
	if m != nil {
		return m.RightMin
	}
	return 0
}

func (m *ObjectRelation) GetRightObjectId() string {
	if m != nil {
		return m.RightObjectId
	}
	return ""
}

func (m *ObjectRelation) GetLeftId() string {
	if m != nil {
		return m.LeftId
	}
	return ""
}

func (m *ObjectRelation) GetLeftName() string {
	if m != nil {
		return m.LeftName
	}
	return ""
}

func (m *ObjectRelation) GetLeftDescription() string {
	if m != nil {
		return m.LeftDescription
	}
	return ""
}

func (m *ObjectRelation) GetLeftGroups() []string {
	if m != nil {
		return m.LeftGroups
	}
	return nil
}

func (m *ObjectRelation) GetLeftTags() []string {
	if m != nil {
		return m.LeftTags
	}
	return nil
}

func (m *ObjectRelation) GetLeftMax() int32 {
	if m != nil {
		return m.LeftMax
	}
	return 0
}

func (m *ObjectRelation) GetLeftMin() int32 {
	if m != nil {
		return m.LeftMin
	}
	return 0
}

func (m *ObjectRelation) GetLeftObjectId() string {
	if m != nil {
		return m.LeftObjectId
	}
	return ""
}

func (m *ObjectRelation) GetCreator() string {
	if m != nil {
		return m.Creator
	}
	return ""
}

func (m *ObjectRelation) GetCtime() string {
	if m != nil {
		return m.Ctime
	}
	return ""
}

func (m *ObjectRelation) GetXTs() int32 {
	if m != nil {
		return m.XTs
	}
	return 0
}

func (m *ObjectRelation) GetXVersion() int32 {
	if m != nil {
		return m.XVersion
	}
	return 0
}

func (m *ObjectRelation) GetIsInherit() bool {
	if m != nil {
		return m.IsInherit
	}
	return false
}

func init() {
	proto.RegisterType((*ObjectRelation)(nil), "cmdb.ObjectRelation")
}

func init() { proto.RegisterFile("object_relation.proto", fileDescriptor_94f967a991685d94) }

var fileDescriptor_94f967a991685d94 = []byte{
	// 880 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x55, 0xdd, 0x6e, 0xe3, 0x44,
	0x14, 0x56, 0xb6, 0x3f, 0x69, 0x26, 0xd9, 0xa4, 0x75, 0xb7, 0xed, 0x50, 0x40, 0x0e, 0xde, 0x5e,
	0x38, 0xbb, 0x4c, 0xfe, 0xda, 0x5d, 0xd4, 0x5c, 0x10, 0x88, 0x10, 0x28, 0x17, 0x2c, 0xc2, 0x14,
	0x2e, 0x6a, 0xb2, 0x91, 0x63, 0xbb, 0xee, 0x40, 0xec, 0x89, 0x6c, 0x77, 0x77, 0xa1, 0xd9, 0x17,
	0x42, 0xe2, 0x15, 0xb8, 0xe0, 0x2d, 0xb8, 0x31, 0x12, 0x8f, 0xe0, 0x27, 0x40, 0x73, 0xc6, 0x3f,
	0x43, 0x29, 0x12, 0x57, 0x39, 0xe7, 0x7c, 0x3f, 0x3a, 0x33, 0x9f, 0xed, 0xa0, 0x03, 0xb6, 0xf8,
	0xc1, 0xb5, 0xe3, 0x79, 0xe8, 0x2e, 0xad, 0x98, 0xb2, 0xa0, 0xbb, 0x0a, 0x59, 0xcc, 0x94, 0x4d,
	0xdb, 0x77, 0x16, 0xc7, 0xc4, 0xa3, 0xf1, 0xf5, 0xcd, 0xa2, 0x6b, 0x33, 0xbf, 0xe7, 0x31, 0x8f,
	0xf5, 0x00, 0x5c, 0xdc, 0x5c, 0x41, 0x07, 0x0d, 0x54, 0x42, 0x74, 0xfc, 0x5c, 0xa2, 0xfb, 0xaf,
	0x69, 0xfc, 0x23, 0x7b, 0xdd, 0xf3, 0x18, 0x01, 0x90, 0xbc, 0xb2, 0x96, 0xd4, 0xb1, 0x62, 0x16,
	0x46, 0xbd, 0xa2, 0x14, 0x3a, 0xed, 0xb7, 0x06, 0x6a, 0x7e, 0x05, 0x6b, 0x18, 0xd9, 0x16, 0xca,
	0x63, 0xb4, 0x19, 0x58, 0xbe, 0x8b, 0x2b, 0xed, 0x8a, 0x5e, 0x9b, 0xb4, 0xd2, 0x44, 0xad, 0x5f,
	0xb1, 0xd0, 0x1f, 0x69, 0x7c, 0xaa, 0x19, 0x00, 0x2a, 0x43, 0x54, 0xe3, 0x06, 0xae, 0x1d, 0xbb,
	0x0e, 0x7e, 0xd0, 0xae, 0xe8, 0x3b, 0x93, 0x47, 0x69, 0xa2, 0xee, 0x0a, 0x66, 0x01, 0x69, 0x46,
	0x49, 0x53, 0xbe, 0x45, 0xf5, 0xfc, 0xa8, 0x73, 0xea, 0xe0, 0x0d, 0xf0, 0x3f, 0x4b, 0x13, 0x55,
	0x11, 0x2a, 0x09, 0xd4, 0xfe, 0xfa, 0x53, 0x3d, 0x46, 0xf8, 0xa5, 0x69, 0x91, 0x9f, 0x3f, 0x25,
	0x97, 0xf3, 0x99, 0xd9, 0x27, 0xe7, 0x79, 0xfd, 0xe4, 0xc4, 0x40, 0x39, 0x77, 0xea, 0x28, 0x5f,
	0xa3, 0x9d, 0x90, 0x7a, 0xd7, 0x31, 0xf7, 0xdc, 0x04, 0xcf, 0xe7, 0x69, 0xa2, 0xb6, 0x32, 0xcf,
	0x0c, 0xe1, 0x86, 0x2a, 0x7a, 0xff, 0x7e, 0xc3, 0xdb, 0xfe, 0x87, 0xa7, 0x83, 0xb7, 0x27, 0x46,
	0x15, 0xd8, 0x53, 0x47, 0x39, 0x43, 0x48, 0x08, 0xe1, 0x22, 0xb6, 0xc0, 0xf4, 0x20, 0x4d, 0xd4,
	0x3d, 0xd9, 0x54, 0x5c, 0x47, 0x0d, 0x9a, 0x17, 0xfc, 0x4e, 0xa6, 0x68, 0x4f, 0x20, 0x8e, 0x1b,
	0xd9, 0x21, 0x5d, 0xf1, 0xfd, 0xf0, 0x36, 0x88, 0xdf, 0x4b, 0x13, 0x15, 0xcb, 0x62, 0x89, 0xa2,
	0x19, 0xbb, 0x30, 0xfb, 0xac, 0x1c, 0x29, 0x23, 0xd4, 0x10, 0x3c, 0x2f, 0x64, 0x37, 0xab, 0x08,
	0x57, 0xdb, 0x1b, 0x7a, 0x6d, 0x72, 0x94, 0x26, 0xea, 0xbe, 0xec, 0x22, 0x50, 0xcd, 0xa8, 0x43,
	0xfb, 0x05, 0x74, 0xe5, 0xf2, 0xb1, 0xe5, 0x45, 0x78, 0x07, 0x94, 0xff, 0x5a, 0x9e, 0x63, 0xf9,
	0xf2, 0x17, 0x96, 0x17, 0x29, 0x03, 0x24, 0x9a, 0xb9, 0x6f, 0xbd, 0xc1, 0xb5, 0x76, 0x45, 0xdf,
	0x92, 0x03, 0x2d, 0x20, 0xcd, 0x10, 0x97, 0xfd, 0xa5, 0xf5, 0x46, 0x92, 0xd0, 0x00, 0xa3, 0xff,
	0x90, 0xd0, 0xa0, 0x90, 0xd0, 0x40, 0x99, 0xa0, 0x96, 0x98, 0x67, 0x8f, 0x3e, 0x75, 0x70, 0x1d,
	0x2e, 0xe8, 0x38, 0x4d, 0xd4, 0x43, 0x59, 0x58, 0x10, 0x34, 0xe3, 0x21, 0x4c, 0xc4, 0x53, 0x3a,
	0x75, 0x94, 0x17, 0xa8, 0xba, 0x74, 0xaf, 0x40, 0xdb, 0x00, 0xed, 0xb3, 0x34, 0x51, 0x9b, 0x42,
	0x9b, 0x01, 0xff, 0x2b, 0xed, 0x6d, 0x4e, 0x9e, 0x3a, 0xfc, 0x18, 0x20, 0x83, 0xac, 0x1f, 0x82,
	0xa3, 0x74, 0x8c, 0x02, 0xd2, 0x8c, 0x1d, 0x5e, 0x43, 0xd2, 0x9f, 0xa3, 0x5d, 0x98, 0xcb, 0x41,
	0x37, 0x41, 0xf9, 0x6e, 0x9a, 0xa8, 0x47, 0x92, 0xf2, 0x1f, 0x39, 0xb7, 0xf8, 0x48, 0x8e, 0xf9,
	0x23, 0x54, 0x07, 0x56, 0x96, 0x72, 0x0b, 0xb2, 0x3a, 0x2c, 0xdf, 0x08, 0x09, 0xd4, 0x0c, 0xc4,
	0xbb, 0x2c, 0xe3, 0x7c, 0x67, 0x88, 0x78, 0x17, 0x64, 0x77, 0x77, 0x16, 0x09, 0xc3, 0xce, 0x10,
	0x70, 0x17, 0x41, 0x0d, 0xf9, 0xee, 0x41, 0x58, 0xfb, 0xe5, 0x6b, 0x92, 0x23, 0x9a, 0x01, 0x77,
	0xcb, 0xd3, 0x2d, 0xf8, 0x34, 0xc0, 0xca, 0xfd, 0x7c, 0x9e, 0xad, 0xe0, 0xd3, 0x40, 0x19, 0xa3,
	0x26, 0x4c, 0xcb, 0x64, 0xf7, 0xe1, 0x46, 0xde, 0x49, 0x13, 0xf5, 0x40, 0x52, 0x49, 0xc1, 0x36,
	0xf8, 0xa0, 0xc8, 0xf5, 0x1b, 0x54, 0xb5, 0x43, 0x97, 0x7f, 0x9b, 0xf0, 0x23, 0x50, 0x9e, 0x97,
	0xb9, 0x66, 0x00, 0xcf, 0xf5, 0x31, 0xfa, 0x20, 0xcf, 0xb5, 0x4f, 0xce, 0x67, 0x66, 0xb7, 0xa8,
	0xe7, 0x64, 0x76, 0x3b, 0xcc, 0xde, 0xe4, 0x4c, 0xa0, 0xfc, 0x51, 0x41, 0x5b, 0x76, 0x4c, 0x7d,
	0x17, 0x1f, 0x80, 0xe7, 0xef, 0x95, 0x34, 0x51, 0x1b, 0x99, 0x29, 0x9f, 0x73, 0xcb, 0x5f, 0x2b,
	0xe8, 0x97, 0xca, 0x4b, 0x5d, 0x1f, 0x8f, 0xcc, 0x01, 0xb7, 0xe4, 0xbe, 0x4f, 0x3a, 0x63, 0xf8,
	0xbd, 0x3d, 0x7b, 0xdb, 0x21, 0xfa, 0xc0, 0xec, 0x93, 0xe1, 0x6c, 0xdd, 0x07, 0xbc, 0x43, 0xf4,
	0x53, 0xb3, 0x4f, 0x06, 0x79, 0xbf, 0x36, 0x07, 0x64, 0x28, 0x54, 0x1d, 0xf3, 0xa2, 0x3d, 0xd3,
	0x87, 0x66, 0x9f, 0x9c, 0xce, 0xd6, 0xc0, 0x11, 0xe3, 0x91, 0x6e, 0xf6, 0xc9, 0xb3, 0xbc, 0x29,
	0x6b, 0xfd, 0xfb, 0x2e, 0xfc, 0x3e, 0xed, 0x8c, 0xf5, 0xcb, 0xb5, 0xf9, 0x94, 0xcc, 0xf4, 0xf1,
	0xe8, 0x1e, 0xb9, 0xa4, 0x1e, 0x9f, 0x18, 0xe2, 0x44, 0x8a, 0x8a, 0x36, 0xe6, 0x71, 0x84, 0x0f,
	0x21, 0x9c, 0x66, 0x9a, 0xa8, 0x48, 0x9c, 0x6b, 0x1e, 0x47, 0x9a, 0xf1, 0xe0, 0x02, 0x22, 0x9f,
	0xbf, 0x72, 0xc3, 0x88, 0x3f, 0x9e, 0x47, 0x77, 0x23, 0xcc, 0x11, 0xcd, 0xa8, 0x7e, 0x27, 0x2a,
	0xfe, 0x51, 0xa7, 0xd1, 0x34, 0xb8, 0x76, 0x43, 0x1a, 0x63, 0x7c, 0xf7, 0xa3, 0x5e, 0x40, 0x9a,
	0x51, 0xd2, 0x26, 0x9f, 0x5c, 0x7e, 0xec, 0xb1, 0xae, 0x6b, 0x45, 0x3f, 0xb1, 0x55, 0xd4, 0x5d,
	0x32, 0xdb, 0x5a, 0xf6, 0x6c, 0x16, 0xc4, 0xa1, 0x65, 0xc7, 0x91, 0xf8, 0xd3, 0x0a, 0xdd, 0x15,
	0x23, 0x3e, 0x73, 0xdc, 0x65, 0xd4, 0xcb, 0x88, 0x3d, 0x68, 0x7b, 0xfc, 0x9f, 0x6e, 0xb1, 0x0d,
	0xa4, 0xd3, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0xec, 0xf7, 0xc8, 0xb0, 0x0f, 0x07, 0x00, 0x00,
}

repository: easyopsapis/easyops-api-go

repo_name: easyopsapis/easyops-api-go


text:
DESCRIPTION = "U-boot bootloader"
PROVIDES = "virtual/bootloader"
SECTION = "bootloader"
MAINTAINER = "Holger Schurig"
PRIORITY = "optional"
LICENSE = "GPL"
PR = "r1"

DEPENDS = "fw-utils"

SRC_URI = "${SOURCEFORGE_MIRROR}/${PN}/${PN}-${PV}.tar.bz2"

SRC_URI_append_pmhd_mpc8313 = "\
                file://marvell-88e1116.patch;patch=1 \
                file://gsp-oe-compile.patch;patch=1 \
                file://gsp-remove-cmds.patch;patch=1 \
                file://gsp-mpc83xx-wdt.patch;patch=1 \
                file://gsp-mpc83xx-fecmode.patch;patch=1 \
                file://gsp-fallback.patch;patch=1 \
                file://gsp-serialnb.patch;patch=1 \
                file://gsp-avocent-format.patch;patch=1 \
                file://avocent-pmhd.patch;patch=1 \
                file://pmhd-cold_boot.patch;patch=1 \
                file://mtestbug-30423fix.patch;patch=1 \
                file://pmhd-fix_ddr_speed.patch;patch=1 \
	"

EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX} STAGING_DIR=${STAGING_DIR}/${TARGET_SYS}"
TARGET_LDFLAGS = ""

UBOOT_MACHINE = "avocent-pmhd_config"
UBOOT_IMAGE = "u-boot-${MACHINE}-${PV}-${PR}.bin"
AVOCENT_BOOTCODE_VERSION = ". AVCT-Boot 1.0.3.5"

inherit base

do_compile () {
	oe_runmake ${UBOOT_MACHINE}
	oe_runmake EXTRAVERSION="${AVOCENT_BOOTCODE_VERSION}" all
}

do_stage() {
	install -d ${STAGING_DIR}/${HOST_SYS}/include
	install -d ${STAGING_DIR}/${HOST_SYS}/include/uboot
	install -d ${STAGING_DIR}/${HOST_SYS}/include/uboot/configs
	install -d ${STAGING_DIR}/${HOST_SYS}/include/uboot/avocent
	install include/environment.h ${STAGING_DIR}/${HOST_SYS}/include/uboot
	install include/config.h ${STAGING_DIR}/${HOST_SYS}/include/uboot
	install include/command.h ${STAGING_DIR}/${HOST_SYS}/include/uboot
	install include/config_cmd_default.h ${STAGING_DIR}/${HOST_SYS}/include/uboot
	install include/libfdt.h ${STAGING_DIR}/${HOST_SYS}/include/uboot
	install include/gsp-serialnb.h ${STAGING_DIR}/${HOST_SYS}/include/uboot
	install include/configs/*.h ${STAGING_DIR}/${HOST_SYS}/include/uboot/configs
	install -m755 tools/mkimage ${STAGING_BINDIR}
	install -d ${STAGING_LOADER_DIR}
	install ${S}/u-boot.bin ${STAGING_LOADER_DIR}
	rm -f ${STAGING_LOADER_DIR}/u-boot.bin.gz
	gzip ${STAGING_LOADER_DIR}/u-boot.bin
}

do_deploy[dirs] = "${S} ${DEPLOY_DIR_IMAGE}"
do_deploy () {
    install -d ${DEPLOY_DIR_IMAGE}
    install ${S}/u-boot.bin ${DEPLOY_DIR_IMAGE}/${UBOOT_IMAGE}
}

addtask deploy before do_build after do_compile


text:
include dbus.inc

SRC_URI[md5sum] = "b02e9c95027a416987b81f9893831061"
SRC_URI[sha256sum] = "7085a0895a9eb11a952394cdbea6d8b4358e17cb991fed0e8fb85e2b9e686dcd"

#
# Meta-debian
#
inherit debian-package
DPR = "0"
DEBIAN_SECTION = "admin"

# To fix QA issue that the file have not ship to any package
FILES_${PN} += "${bindir}/dbus-run-session"

repository: takuya-t/meta-debian

repo_name: takuya-t/meta-debian

branch_name: refs/heads/daisy


text:
DESCRIPTION = "File manager for the Xfce Desktop Environment"
HOMEPAGE="http://thunar.xfce.org"
DEPENDS = "exo dbus-glib libexif xfce4-panel libice libsm gamin"
RDEPENDS_${PN} = "libxfcegui4 exo dbus-glib libexif xfce4-panel libice libsm gamin"
RRECOMMENDS_${PN} = "shared-mime-info"
SECTION = "x11"
PR = "r3"

inherit xfce46

XFCE_VERSION = "4.6.1"

SRC_URI = "http://www.us.xfce.org/archive/xfce-${XFCE_VERSION}/src/Thunar-${PV}.tar.bz2"

S = "${WORKDIR}/Thunar-${PV}/"

EXTRA_OECONF += "--disable-dependency-tracking --enable-dbus"

FILES_${PN} += "${libdir}/thunarx-1/*.so \
		${libdir}/thunarx-1/*.la \
                ${datadir}/dbus-1 \
                ${datadir}/thumbnailers \
                ${datadir}/Thunar \
                ${datadir}/xfce4"
FILES_${PN}-dbg += "${libdir}/thunarx-1/.debug/ ${libexecdir}/xfce4/panel-plugins/.debug/"

SRC_URI[md5sum] = "218373aa45d74b6ba8c69c4d5af3bb19"
SRC_URI[sha256sum] = "7a2b6b493463756bbc9c54144fab2f2163bc84f0896b4c06fd225d11025a210d"

repository: overo/overo-oe-natty

repo_name: overo/overo-oe-natty

branch_name: HEAD


text:
@misc{Harper2006bh,
 abstract = {The Third W4A International Cross-Disciplinary Workshop on Web Accessibility was held on Monday 22nd and Tuesday 23rd May 2006 as part of the Fifteenth International World Wide Web Conference (WWW2006) located at the Edinburgh International Conference Centre. We ran over 2 days, welcomed 73 attendees, and were the biggest workshop at the conference. We accepted 41.6% of all submissions, each paper was peer reviewed by three of our programme committee. We published ISBN'ed proceedings as part of the ACM Digital Library, and eight of our authors have been invited to submit extended papers to the Springer Journal, Universal Access in the Information Society. Comments from our attendees, and our workshop evaluation questionnaires, suggested that they enjoyed the workshop and would be participating again next year. Our social programme also attracted 20 of our delegates. Overall we judge the workshop to be a great success.
},
 address = {New York, NY, USA},
 author = {Harper, Simon and Yesilada, Yeliz and Goble, Carole},
 booktitle = {SIGACCESS Access. Comput.},
 doi = {http://dx.doi.org/10.1145/1166118.1166121},
 keywords = {Accessibility,Accessible Design,Engineering,Human Centred Web,RIAM,W4A,W4A-2006,Web Accessibility},
 number = {85},
 pages = {21--32},
 publisher = {ACM Press},
 title = {Building the Mobile Web: Rediscovering Accessibility?: W4A - International Cross-Disciplinary Workshop on Web Accessibility Workshop Report - 2006},
 url = {http://www.simonharper.info/publications/Harper2006bh.pdf},
 year = {2006}
}

repository: sharpic/academic-kickstart

repo_name: sharpic/academic-kickstart


text:
require libecj-bootstrap.inc

PR = "r1"

SRC_URI = "\
	http://archive.eclipse.org/eclipse/downloads/drops/R-3.4-200806172000/ecjsrc-3.4.zip \
  "

repository: jjtt/OpenEmbedded-Archos

repo_name: jjtt/OpenEmbedded-Archos


text:
@online{Miktex2017,
  author = "Christian Schenk",
  title = "{Mik\TeX}: typsetting beautiful documents.",
  url = {https://miktex.org/},
  urldate = {2017-03-13}
  }

@online{Texworks2017,
  author = "Jonathan Kew and Stefan L{\"o}ffler",
  title = "{{\TeX}works}: A simple interface for working with {\TeX} documents.",
  url = {https://github.com/texworks/},
  urldate = "2017-03-13"
  }

@online{arara2017,
  author = "{Paulo Roberto Massa} Cereda and Marco Daniel and
    Brent Longborough and {Nicola Louise Cecilia} Talbot",
  title = "\texttt{arara}: The cool {\TeX} automation tool.",
  url = {https://github.com/cereda/arara},
  urldate = {2017-03-13}
  }

repository: wahpenayo/taiga

repo_name: wahpenayo/taiga


text:
package WSConnect

import (
	"encoding/json"
	"github.com/btcsuite/btcutil/base58"
	"github.com/ethereum/go-ethereum/common"
	"github.com/pkg/errors"
	"github.com/scryinfo/dp/demo/src/application/definition"
	"github.com/scryinfo/dp/demo/src/sdk/core/ethereum/events"
	"github.com/scryinfo/dp/demo/src/sdk/util/storage/ipfsaccess"
	rlog "github.com/sirupsen/logrus"
	"io/ioutil"
	"math/big"
	"os"
	"strconv"
)

const (
	IPFSOutDir      = "D:/desktop"
	EventSendFailed = " event send failed. "
)

func onPublish(event events.Event) bool {
	go func() {
		var op definition.OnPublish
		if op, err = getPubDataDetails(event.Data.Get("despDataId").(string)); err != nil {
			rlog.Error(errors.Wrap(err, "onPublish: get publish data details failed. "))
		}
		op.Block = event.BlockNumber
		op.Price = event.Data.Get("price").(*big.Int).String()
		op.PublishID = event.Data.Get("publishId").(string)
		op.SupportVerify = event.Data.Get("supportVerify").(bool)

		if err = sendMessage("onPublish", op); err != nil {
			rlog.Error(errors.Wrap(err, "onPublish"+EventSendFailed))
		}
	}()
	return true
}

func getPubDataDetails(ipfsID string) (definition.OnPublish, error) {
	defer func() {
		if er := recover(); er != nil {
			rlog.Error("onPublish.callback: get publish data details failed. ", er)
		}
	}()

	var detailsData definition.OnPublish
	for {
		if err = ipfsaccess.GetIAInstance().GetFromIPFS(ipfsID); err != nil {
			break
		}

		oldFileName := IPFSOutDir + "/" + ipfsID
		newFileName := oldFileName + ".txt"
		if err = os.Rename(oldFileName, newFileName); err != nil {
			break
		}

		var details []byte
		if details, err = ioutil.ReadFile(newFileName); err != nil {
			break
		}
		if err = json.Unmarshal(details, &detailsData); err != nil {
			break
		}

		if err = os.Remove(newFileName); err != nil {
			rlog.Debug("Node - onPublish.callback: delete details file failed. ", err)
		}
		break
	}

	return detailsData, err
}

func onApprove(_ events.Event) bool {
	go func() {
		// -
	}()
	return true
}

func onVerifiersChosen(event events.Event) bool {
	go func() {
		var (
			ovc        definition.OnVerifiersChosen
			extensions []string
		)
		ovc.PublishID = event.Data.Get("publishId").(string)
		if err = sendMessage("onProofFilesExtensions", ovc.PublishID); err != nil {
			rlog.Error(errors.Wrap(err, "onProofFilesExtensions"+EventSendFailed))
		}

		ovc.Block = event.BlockNumber
		ovc.TransactionID = event.Data.Get("transactionId").(*big.Int).String()
		ovc.TxState = setTxState(event.Data.Get("state").(uint8))

		extensions = <-channel
		if ovc.ProofFileNames, err = getAndRenameProofFiles(event.Data.Get("proofIds").([][32]uint8), extensions); err != nil {
			rlog.Error(errors.Wrap(err, "Node - onVC.callback: get and rename proof files failed. "))
		}
		if err = sendMessage("onVerifiersChosen", ovc); err != nil {
			rlog.Error(errors.Wrap(err, "onVerifiersChosen"+EventSendFailed))
		}
	}()
	return true
}

func onTransactionCreate(event events.Event) bool {
	go func() {
		var (
			otc        definition.OnTransactionCreate
			extensions []string
		)
		otc.PublishID = event.Data.Get("publishId").(string)
		if err = sendMessage("onProofFilesExtensions", otc.PublishID); err != nil {
			rlog.Error(errors.Wrap(err, "onProofFilesExtensions"+EventSendFailed))
		}

		otc.Block = event.BlockNumber
		otc.TransactionID = event.Data.Get("transactionId").(*big.Int).String()
		otc.Buyer = event.Data.Get("users").([]common.Address)[0].String()
		otc.StartVerify = event.Data.Get("needVerify").(bool)
		otc.TxState = setTxState(event.Data.Get("state").(uint8))

		extensions = <-channel
		if otc.ProofFileNames, err = getAndRenameProofFiles(event.Data.Get("proofIds").([][32]uint8), extensions); err != nil {
			rlog.Error(errors.Wrap(err, "Node - onTC.callback: get and rename proof files failed. "))
		}
		if err = sendMessage("onTransactionCreate", otc); err != nil {
			rlog.Error(errors.Wrap(err, "onTransactionCreate"+EventSendFailed))
		}
	}()
	return true
}

// Get proof files from proofIDs.
// ipfsGet -> modify file name, how can I get extension?
func getAndRenameProofFiles(ipfsIDs [][32]byte, extensions []string) ([]string, error) {
	defer func() {
		if er := recover(); er != nil {
			rlog.Error(er, "in callback: get and rename proof files failed. ")
		}
	}()
	var (
		proofs                   = make([]string, len(ipfsIDs))
		oldFileName, newFileName string
	)
	if len(ipfsIDs) != len(extensions) {
		return nil, errors.New("Invalid IPFS IDs or extensions. ")
	}
	for i := 0; i < len(ipfsIDs); i++ {
		ipfsID := ipfsBytes32ToHash(ipfsIDs[i])
		if err = ipfsaccess.GetIAInstance().GetFromIPFS(ipfsID); err != nil {
			return nil, errors.Wrap(err, "Node - callback: IPFS get failed. ")
		}
		oldFileName = IPFSOutDir + "/" + ipfsID
		newFileName = oldFileName + extensions[i]
		if err = os.Rename(oldFileName, newFileName); err != nil {
			return nil, errors.Wrap(err, "Node - callback: rename proof file failed. ")
		}
		proofs[i] = newFileName
	}

	return proofs, nil
}
func ipfsBytes32ToHash(ipfsb [32]byte) string {
	byte34 := make([]byte, 34)
	// if ipfs change encrypt algorithm, byte will change together.
	copy(byte34[:2], []byte{byte(18), byte(32)})
	copy(byte34[2:], ipfsb[:])

	return base58.Encode(byte34)
}

func onPurchase(event events.Event) bool {
	go func() {
		var op definition.OnPurchase
		op.Block = event.BlockNumber
		op.TransactionID = event.Data.Get("transactionId").(*big.Int).String()
		op.MetaDataIdEncWithSeller = event.Data.Get("metaDataIdEncSeller").([]byte)
		op.PublishID = event.Data.Get("publishId").(string)
		op.UserIndex = strconv.Itoa(int(event.Data.Get("index").(uint8)))
		op.TxState = setTxState(event.Data.Get("state").(uint8))

		// temp
		op.Buyer = event.Data.Get("buyer").(common.Address).String()

		if err = sendMessage("onPurchase", op); err != nil {
			rlog.Error(errors.Wrap(err, "onPurchase"+EventSendFailed))
		}
	}()
	return true
}

func onReadyForDownload(event events.Event) bool {
	go func() {
		var orfd definition.OnReadyForDownload
		orfd.Block = event.BlockNumber
		orfd.TransactionID = event.Data.Get("transactionId").(*big.Int).String()
		orfd.MetaDataIdEncWithBuyer = event.Data.Get("metaDataIdEncBuyer").([]byte)
		orfd.UserIndex = strconv.Itoa(int(event.Data.Get("index").(uint8)))
		orfd.TxState = setTxState(event.Data.Get("state").(uint8))

		if err = sendMessage("onReadyForDownload", orfd); err != nil {
			rlog.Error(errors.Wrap(err, "onReadyForDownload"+EventSendFailed))
		}
	}()
	return true
}

func onClose(event events.Event) bool {
	go func() {
		var oc definition.OnClose
		oc.Block = event.BlockNumber
		oc.TransactionID = event.Data.Get("transactionId").(*big.Int).String()
		oc.UserIndex = strconv.Itoa(int(event.Data.Get("index").(uint8)))
		oc.TxState = setTxState(event.Data.Get("state").(uint8))

		if err = sendMessage("onClose", oc); err != nil {
			rlog.Error(errors.Wrap(err, "onClose"+EventSendFailed))
		}
	}()

	return true
}

func onRegisterAsVerifier(event events.Event) bool {
	go func() {
		var orav definition.OnRegisterAsVerifier
		orav.Block = event.BlockNumber

		if err = sendMessage("onRegisterVerifier", orav); err != nil {
			rlog.Error(errors.Wrap(err, "onRegisterVerifier"+EventSendFailed))
		}
	}()

	return true
}

func onVote(event events.Event) bool {
	go func() {
		var (
			ov      definition.OnVote
			judge   bool
			comment string
		)
		ov.Block = event.BlockNumber
		ov.VerifierIndex = strconv.Itoa(int(event.Data.Get("index").(uint8)))
		judge = event.Data.Get("judge").(bool)
		comment = event.Data.Get("comments").(string)
		ov.VerifierResponse = setJudge(judge) + ", " + comment
		ov.TransactionID = event.Data.Get("transactionId").(*big.Int).String()
		ov.TxState = setTxState(event.Data.Get("state").(uint8))

		if err = sendMessage("onVote", ov); err != nil {
			rlog.Error(errors.Wrap(err, "onVote"+EventSendFailed))
		}
	}()

	return true
}

func onVerifierDisable(event events.Event) bool {
	go func() {
		var ovd definition.OnVerifierDisable
		ovd.Block = event.BlockNumber

		if err = sendMessage("onVerifierDisable", ovd); err != nil {
			rlog.Error(errors.Wrap(err, "onVerifierDisable"+EventSendFailed))
		}
	}()

	return true
}

func setTxState(state byte) string {
	var str string
	switch state {
	case 1:
		str = "Created"
	case 2:
		str = "Voted"
	case 3:
		str = "Buying"
	case 4:
		str = "ReadyForDownload"
	case 5:
		str = "Closed"
	default:
		str = "Unknow TxState!"
	}
	return str
}

func setJudge(judge bool) string {
	var str = "Not suggest to buy"
	if judge {
		str = "Suggest to buy"
	}
	return str
}

repository: gzydalian/dp

repo_name: gzydalian/dp


text:
package ast

import (
	"encoding/json"

	"github.com/carlcui/expressive/signature"
	"github.com/carlcui/expressive/token"
	"github.com/carlcui/expressive/typing"
)

// AssignmentNode represents a node with assignment statement
type AssignmentNode struct {
	*BaseNode
	LHS      Node
	RHS      Node
	Operator signature.Operator // if assignment is a compound assignment
}

// Accept is part of visitor pattern.
func (node *AssignmentNode) Accept(visitor Visitor) {
	visitor.VisitEnterAssignmentNode(node)
	node.VisitChildren(visitor)
	visitor.VisitLeaveAssignmentNode(node)
}

// VisitChildren is part of visitor pattern. Visit left-hand side node, then right-hand side node.
func (node *AssignmentNode) VisitChildren(visitor Visitor) {
	Accept(node.LHS, visitor)
	Accept(node.RHS, visitor)
}

func (node *AssignmentNode) MarshalJSON() ([]byte, error) {
	return json.Marshal(struct {
		NodeType string
		Token    *token.Token
		LHS      Node
		Typing   typing.Typing
		RHS      Node
		Operator signature.Operator
	}{
		NodeType: "assignment",
		Token:    node.BaseNode.Tok,
		LHS:      node.LHS,
		Typing:   node.Typing,
		RHS:      node.RHS,
		Operator: node.Operator,
	})
}

func CreateAssignmentStmtNode(tok *token.Token) *AssignmentNode {
	var node AssignmentNode
	node.BaseNode = CreateBaseNode(tok, nil)

	return &node
}

repository: CarlCui/expressive

repo_name: CarlCui/expressive

gha_license_id: MIT

gha_language: Go


text:
@article{ClusteringGuijo19,
 author = {David Guijo-Rubio and Antonio Manuel Durán-Rosal and Pedro Antonio Gutiérrez and Alicia Troncoso and César Hervás-Martínez},
 awards = {JCR(2019): 11.079 Position: 5/136 (Q1) Category: COMPUTER SCIENCE, ARTIFICIAL INTELLIGENCE},
 comments = {JCR(2019): 11.079 Position: 5/136 (Q1) Category: COMPUTER SCIENCE, ARTIFICIAL INTELLIGENCE},
 doi = {10.1109/TCYB.2019.2962584},
 journal = {IEEE Transactions on Cybernetics},
 keywords = {Time series clustering, data mining, segmentation, feature extraction},
 note = {JCR(2019): 11.079 Position: 5/136 (Q1) Category: COMPUTER SCIENCE, ARTIFICIAL INTELLIGENCE},
 title = {Time series clustering based on the characterisation of segment typologies},
 url = {doi.org/10.1109/TCYB.2019.2962584},
 year = {2020}
}

repository: dguijo/academic-kickstart

repo_name: dguijo/academic-kickstart


text:
package request

import (
	"net/http"
	"strconv"
)

const (
	// DefaultPageSize 默认分页大小
	DefaultPageSize = 20
	// DefaultPageNumber 默认页号
	DefaultPageNumber = 1
)

// NewPageRequestFromHTTP 从HTTP请求中加载分页请求
func NewPageRequestFromHTTP(req *http.Request) *PageRequest {
	qs := req.URL.Query()

	ps := qs.Get("page_size")
	pn := qs.Get("page_number")
	os := qs.Get("offset")

	psUint64, _ := strconv.ParseUint(ps, 10, 64)
	pnUint64, _ := strconv.ParseUint(pn, 10, 64)
	osInt64, _ := strconv.ParseInt(os, 10, 64)

	if psUint64 == 0 {
		psUint64 = DefaultPageSize
	}
	if pnUint64 == 0 {
		pnUint64 = DefaultPageNumber
	}

	return &PageRequest{
		PageSize:   psUint64,
		PageNumber: pnUint64,
		Offset:     osInt64,
	}
}

func NewDefaultPageRequest() *PageRequest {
	return NewPageRequest(DefaultPageSize, DefaultPageNumber)
}

// NewPageRequest 实例化
func NewPageRequest(ps uint, pn uint) *PageRequest {
	return &PageRequest{
		PageSize:   uint64(ps),
		PageNumber: uint64(pn),
	}
}

// GetOffset skip
// 如果传入了offset则使用传入的offset参数
func (p *PageRequest) ComputeOffset() int64 {
	if p.Offset != 0 {
		return p.Offset
	}

	return int64(p.PageSize * (p.PageNumber - 1))
}

repository: infraboard/mcube

repo_name: infraboard/mcube