cv
Academic Positions
Assistant Professor (Tenure Track) August 2019 to present Humanities Program University of Colorado, Boulder
Assistant Professor (Tenure Track) July 2016 to July 2019 Department of Cultures, Societies and Global Studies Northeastern University
Postdoctoral Researcher January 2015 to June 2016 Institute for Digital Research in the Humanities University of Kansas
Postdoctoral Fellowship September 2013 to December 2014 CulturePlex Lab University of Western Ontario
Degrees
2013 Ph.D. Literature (Hispanic Studies) Department of Modern Languages and Literatures University of Western Ontario
2007 M.A. English Department of English University of Toronto
2006 M.A. Modern Languages and Literatures Facultad de Filosofía y Letras National Autonomous University of Mexico
2004 B.A. Modern Languages and Literatures (English) Facultad de Filosofía y Letras National Autonomous University of Mexico
Publications
Articles and Chapters
- “Print Then Digital. Material Reimaginations in Anacrón and Tesauro.” Digital Encounters. (eds) Cecily Raynor and Rhian Lewis. (under review).
- “Media and Cultural Hybridity in the Digital Humanities.” PMLA. especial issue Varieties of Digital Humanities. Eds. Alison Booth and Miriam Posner. Forthcoming January 2020.
- “Binding Media: Print Digital Literatures from Latin America” (under review at AMODERN).
- “Dimensiones materiales de la literatura digital.” Estamos aquí. Escrituras tocadas: Literatura, tecnología e internet. (ed) Mónica Nepote. Centro de Cultura Digital. Mexico. (Forthcoming).
- “Zonas de Contacto: A Digital Humanities Ecology of Knowledges.” Debates in the Digital Humanities 2019. (eds) Matthew Gold and Lauren Klein. University of Minnesota Press. 2019.
- “Archives, Libraries, Collections, and Databases: A First Look at Digital Literary Studies in Mexico.” Hispanic Review. Mexican Literary Archives Special Issue. Hispanic Review 86 (2), 229-247. (pre-print).
- “Not a Case of Words: Textual Environments and Multimateriality in Between Page and Screen.” Electronic Book Review. 2017.
- “El @rte nuevo de h@cer bots: Ulises C@rrión en Twitter y la literatura cotidiana.” Pliego 16. 12:21. Fundación para las letras mexicanas. 2017.
- “Interhistorias. Narrativa intermedial y metaficcionalidad en la nueva ecología de medios.” Garone, M., Galina, I. y Godinas, L. (eds). “De la piedra al pixel- Reflexiones en torno a las edades del libro.” Ciudad de México: UNAM, 2016.
- “Textos intermediales, textos metaficcionales: autoficción, lectores y nuevos medios en Orsai de Hernán Casciari.” Gil González, Antonio J. (ed). Las sombras del novelista. AutoRepresentacioneS #3. Binges: Editions Orbis Tertius, 2014. 241-255.
- “La historia dinámica de la lectura y su potencial frente a los medios digitales.” Revista Internacional Magisterio. 60. 2013. p. 16-20.
- “Narración intermedial y metaficción: el ejemplo de Orsai.” Proceedings of the International Conference: Ages of the Book, (eds) Marina Garone Gravier, Isabel Galina Russell and Laurette Godinas, Instituto de Investigaciones Bibliográficas de la Universidad Nacional Autónoma de México, 2012.
- “Orality and The Power of Silence in Yvonne Vera’s Under the Tongue.” Current Writing. Text and Reception in Southern Africa. 19:1. 2007. pp. 103-115.
Co-authored Articles and Chapters
- Ortega, Élika and Alex Saum-Pascual. “Toys and Toons: From Hispanic Literary Traditions to a Global E-Lit Landscape.” Electronic Literature: Contexts, Forms, and Practices. (eds) Dene Grigar and James O’Sullivan. (Forthcoming).
- Ortega, Élika and Alex Gil. “Project Statement: GO::DH Translation Toolkit” DHCommons. October 2016.
- Gil, Alex and Élika Ortega. “Global Outlooks in Digital Humanities: Multilingual Practices and Minimal Computing.” Doing Digital Humanities. (eds) Richard Lane, Raymond Siemens, and Constance Crompton. London/NY: Routledge, 2016.
- Ortega, Élika, David Brown, and Juan Luis Suárez. “Redes textuales: Diseño y análisis de bases de datos en grafo para estudios literarios.” Ínsula 882. 2015.
- Ortega, Élika and Silvia Gutiérrez. “MapaHD. Una exploración de las Humanidades Digitales en español y portugués.” Romero Frías, Esteban and María Sánchez. Ciencias Sociales y Humanidades Digitales. CAC, Cuadernos Artesanos de Comunicación, 61. 2014.
- Ortega, Élika, Javier de la Rosa, and Juan Luis Suárez. “Readers Read, Readers Write: A Methodology for The Study of Reading Practices in Media Convergence.” Journal Scholarly Research and Communication. 5:2. 2014.
- Suárez, Juan Luis, Fernando Sancho-Caparrini, Élika Ortega, Javier de la Rosa, Natalia Caldas and David Brown. “Towards a Digital Geography of Hispanic Baroque Art.” Literary and Linguistic Computing 28.4 (2013): 718–735.
Talks
Invited Talks
2019
- “Hispanic Approaches to the Digital Humanities. A Brief History and Emerging Directions.” (Keynote) Digital Humanities: Studies of/from the Periphery. 22nd SPAGrad Literature Conference. ASU. Tempe, March 15.
- “Creative Expressions in Digital Literature and Media Courses.” NULab Spring Conference. Boston, March 29.
- “Literary mestizajes – Print-Digital Books from Latin America.” Decolonizing the Digital Humanities: Indigenous Arts, Histories, and Knowledges from the Material to the Screen. Charlottesville, April 5.
2018
- “DH in Latin American Studies.” Stanford University. Stanford. CA. February 2.
- “Binding Media: Print-Digital Literatures in Latin America” CMDC Program, ELL Lab, Washington State University Vancouver. Vancouver, WA. March 9.
- “Binding Media: Print-Digital Literature 1980s-2010s.” Digital Studies Colloquium. MITH. University of Maryland. College Park. MD. April 6.
- “Digital Culture and Cultural Hybridity: Reading Print-Digital Literature with Latin American Eyes.” DH and Social Justice Speaking Series. University of Houston. Houston. TX. April 26. (Video available here)
- “Cultural-Media Hybridity in Digital Humanities.” Digital Bridges Symposium. Grinnell College. Grinnell, IA. August 9.
- “Maquinas de escritura.” Hay Festival Querétaro. Querétaro, Mexico. September 8.
- “Hybrid Works, the Digital Humanities, and New Hemispheric Approaches.” Repenser les humanités numériques / Thinking the Digital Humanities Anew. Centre de recherche interuniversitaire sur les humanités numériques. Université de Montréal. Montréal, QC. Canada. October 26. (Video available here)
2017
- “An Ecology of Knowledges and the Global Digital Humanities.” Pacific Lutheran University. Tacoma WA. March 2.
- “From Page to Screen to Page: Approaches to Electronic Literature.” Pacific Lutheran University. Tacoma WA. March 3.
- “Between Media and Gestures: Reading (Print) Digital Literature.” Narrative at the Edge of the World. Hood College. Frederick. MD. April 18.
- “Humanidades Digitales: Dimensiones históricas y tendencias actuales.” Día de las Humanidades Digitales. Coordinación de Humanidades. Universidad Nacional Autónoma de México. Mexico City, Mexico. August 23.
2016
- “Surfaces.” Compositions Across/Between Edges, Surfaces and Materialities. UCLA. L.A. CA. December 8.
- “Encoding Diversity”: UCLA Digital Humanities Seminar. L.A. CA. December 9.
- “Distributed Media Architectures in Print-Digital Literature.” NULab. Snell Library. Northeastern University. October 28.
- “Distributed Architectures in Textual Media: Beyond Scrolls and Books.” The Inevitabilities of the Book Symposium at the Yale Program in the History of the Book. Yale University. September 9-10.
- “Come One, Come All! Teaching Digital Humanities from the Library.” Digital Humanities Speaker Series. University of Cincinnati. February 29.
- “Each Thing was Infinite Things: The Potential of Digital Humanities Microprojects to Build Skills and Teams.” Digital Humanities Speaker Series. University of Cincinnati. February 29.
- “The Myth of Print-Digital Supersession and the Case of Print Electronic Literature.”Digital Humanities Speaker Series. University of Cincinnati. March 1.
2015
- “El libro de artista postdigital antes del giro digital. El ejemplo de The Case for the Burial of Ancestors de Paul Zelevansky.” Seminario de Bibliología. Instituto de Investigaciones Bibliográficas. October 8. UNAM, Mexico City.
- “Formas de mediación múltiple en la literatura electrónica.” Máquinas de inminencia: estéticas de la literatura electrónica. Sala Carlos Chávez. CCU. October 8. UNAM, Mexico City.
- “Media Reframes: Carrión, Hostos, and Borges in the Twitter Bot Scene.” Merienda Brown Bag Lecture. Center for Latin American and Caribbean Studies. October 1. University of Kansas, Lawrence, KS.
- “Random Borges | Infinite E-Lit A Look from Hispanic Legacies.” Digital Humanities Seminar. March 25. Hall Center for the Humanities. University of Kansas. Lawrence, KS. (Video available here)
Conference Presentations
2019
- “Latin American Hybridity and Media Encounters.” Digital Hispanisms, MLA19. Chicago, January 5.
2018
- “Activist Infrastructures: Vulnerable Collections and Minimal Computing.” Chair. MLA Convention 2018. New York, NY.
- “The Infinite Question: Borges and E-Lit.” Electronic Literature Organization 2018. Concordia University. Montréal. QC. Canada
2017
- “Exposé!! The Global Practice of Curating E-Lit Exhibits.” Electronic Literature Organization Conference 2017. Fernando Pessoa University. Porto, Portugal. July 20.
- “Diasporic Media Architectures: Digital Literature in Latin America at the Intersection of Print.” Electronic Literature Organization Conference 2017. Fernando Pessoa University. Porto, Portugal. July 20.
- “A Handbook of Electronic Literature Reading.” DH2017. McGill Univertisy. Montreal, Quebec, Canada. August 9.
- “Digital Boundaries of the Global South.” MLA Convention 2017. Philadelphia, PA.
- “Diasporic Architectures: (Print) Digital Literatures in Latin America.” NeMLA convention. Baltimore, MD.
2016
- “The New Art of Making Bots: A Reading of Ulises Carrión.” Electronic Literature Organization Conference. Victoria, Canada. June 11
- Intersectional Scholarship in Electronic Literature and Digital Humanities. Digital Humanities 2016. Krakow, Poland. July 15
- “Crisscrossing Borders: GO::DH (Global Outlook::Digital Humanities) Regional Networks in Dialogue,” Digital Humanities (DH) at the Borders. January 8. MLA16 Convention. Austin TX.
- “Textual Environments and Reader Mediations in Electronic Literature,” Reader Mediations In Electronic Literature. January 10. MLA16 Convention. Austin TX.
2015
- “Psst! An Informal Approach to Expanding the Linguistic Range of the Digital Humanities.” With Alex Gil and Daniel Paul O’Donnell. Digital Humanities 2015. Global Digital Humanities. Sydney, Australia. July 1st.
- RedHD: Open, Collective, and Multilingual Work Dynamics” Priani, Ernesto; Galina, Isabel; Ortega, Élika; Peña, Miriam. Joint CSDH-ACH conference. Ottawa, ON. June 3rd.
- “Multilingualism in DH” Disrupting Digital Humanities. Modern Languages Association. Jan 8-11. Vancouver.
2014
- “Textual Environments: Multimateriality Beyond and Around Between Page and Screen” International Conference Ages of The Book. October 13-17. Instituto de Investigaciones Bibliográficas. UNAM. Mexico City.
- “The Remediation of Reading: From The Print To The Electronic Public Interface”. Experimental Interfaces for Reading 2.0. INKE ID Conference. September 18-20. Chicago, IL.
- “MapaHD: Exploring Spanish and Portuguese Speaking DH Communities.” DH2014. July 8-12. Lausanne, Switzerland. (With Silvia Gutiérrez)
- “The Landscapes of Casta Paintings: Depictions of Social Anxieties in XVIII Century New Spanish Art.” DH2014. July 8-12. Lausanne, Switzerland. (With Natalia Caldas and David Brown.)
- “Spanish / Speaking / Digital Humanities”. DHSI Colloquium 2014. June 2-6. Victoria, Canada.
- “Network Analysis for the Study of Intertextual Relationships.” CSDH-SCHN 2014. May 26-28. St Catherines, Canada.
- “La remediación de la lectura: un proceso de publicación.” Segundo Encuentro de Humanistas Digitales, RedHD and GO::DH, May 21-23. Mexico City.
- “Atlas de las ciencias sociales y humanidades digitales en español.” Segundo Encuentro de Humanistas Digitales, RedHD and GO::DH, May 21-23. Mexico City.
- “MapaHD: Una cartografía de las humanidades digitales en español y portugués.” Segundo Encuentro de Humanistas Digitales, RedHD and GO::DH, May 21-23. Mexico City.
- “Interstory: Three Narratives in Media Convergence.” MLA Convention. January 8-12. Chicago, IL. USA.
2013
- “Readers Read, Readers Write: A Methodology for The Study of Reading Practices in Media Convergence.” INKE2013. September 26-27. New York University. New York, USA.
- “Interhistoria: un estudio sobre narrativa y lectores en red.” Humanidades Digitales: desafíos, logros y perspectivas de futuro I Congreso Internacional de la HDH. July 9-12. Universidade da Coruña. A Coruña, Spain.
- “Where is the Story? Textual and Social Network Analysis of Interstory” HASTAC. April 25-28. York University. Toronto, Ontario, Canada.
Curatorial Work
- No Legacy || Literatura Electrónica. Doe Library. University of California Berkerley. March-September 2016. Berkeley, California.
Reviews of No Legacy || Literatura Electrónica.
- Extender los campos mediante los materiales: No Legacy, una exposición de literatura electrónica. By Roberto Cruz Arzabal. Revista de Literatura Mexicana Contemporánea 72:24. 2017
- No Legacy || Literatura Electrónica Symposium Revisited. By Camille Villa. Digital Humanities at Berkeley. April 4, 2016.
Associations Membership and Service
Service
- 2017 to present. Modern Languages Association. Digital Humanities Forum Executive Committee.
- 2015 to present. Executive Council Officer, Association for Computers and the Humanities
- 2014-2018. Executive Committee Member, Global Outlook Digital Humanities
- 2015-2017. ADHO’s Standing Committee on Multi-Lingualism and Multi-Culturalism (ACH Representative)
Member
- Modern Languages Association
- Association for Computers and the Humanities
- Alliance of Digital Humanities Organizations
- Red de Humanidades Digitales
- Global Outlook::Digital Humanities
- Electronic Literature Association
- Red Latinoamericana de Literatura Electrónica
Book Reviews
- “Geopolíticas tecnológicas y literarias: un vistazo a las poéticas digitales latinoamericanas: Una reseña de Poesía y poéticas digitales / electrónicas / tecnos / new-media en América Latina: Definiciones y exploraciones.” Poéticas, Revista de estudios literarios. (Forthcoming).
- “Earhart, Amy E. Traces of the Old, Uses of the New: The Emergence of Digital Literary Studies.” Papers of the Bibliographical Society of America. Papers of the Bibliographical Society of America 111 (3), 424–427
- “Preservation Paths. A Review of Pathfinders: Documenting the Experience of Early Digital Literature by Dene Grigar and Stuart Moulthrop.” Digital Literary Studies. 1.1. 2016.


{% extends "base.html" %} {% import "macros.html" as macros %} {% block title %}Request Login Link - {{ super() }}{% endblock %} {% block container %}
You can log in using just your email address -- we'll send a link that you can click which will return you to the site logged in and ready to go!
{% endblock %}


jQuery时间轴幻灯片
This slideshow needs JavaScript to be switched on in your browser.
This is HTML text. It could also be flash, embedded video etc.
More examples and technical info below.
This example will repeat automatically. It can also stop at the last slide if you want it to.


Hello! I'm Diana Gisela.
Currently living in Barcelona and passionate about digital arts. My work drawsinspiration from geometric shapes and fractals, and exploration of the body and subconscious through multimedia experiences. I am interested in the intersection between media design and code, constantly in search of new technologies
Art,Installation, Technology.
Working at the intersection of media, Diana combines sculpture and electronics to explore discomfort, action and inaction, emotions like deception,descontrol,anxiety and the design of purposefully anti-functional objects
!!!! SAY HELLO !!!.
I’m open to new interesting projects so feel free to contact me
dian.gc4@gmail.com


--- layout: page title: Resources permalink: /resources/ ---
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install python3
pip3 install jupyter -U


when i was one, my parents called me “pumpkin.”
when i was two, my sister was born, and i was pissed.
when i was three, my sister became deaf and then later miraculously regained her hearing.
when i was four, i went to a catholic grade school.
when i was five, i wrote a haiku about staring down a spider.
when i was six, i dropped out of school.
when i was seven, i had nightmares about driving my parents’ car.
when i was eight, i built a birdhouse and painted it teal blue.
when i was nine, my dad taught me to use napster.
when i was ten, it was a new millennium.
when i was eleven, i had an internet boyfriend.
when i was twelve, my grandparents took me on a four-thousand-mile road trip and played stevie nicks in the car.
when i was thirteen, i had a series of choppy, unflattering haircuts that seemed very punk rock at the time.
when i was fourteen, i received my first french kiss from a boy who had food stuck in his braces.
when i was fifteen, i played ‘annie’ in the school musical.
when i was sixteen, my driving instructor asked if i was high (i was allegedly the worst driver she had ever seen).
when i was seventeen, i learned to write a screenplay.
when i was eighteen, i went to art school in a city that seemed bigger to me then than it does now.
when i was nineteen, i got evicted from my very first apartment.
when i was twenty, i realized that bad things can happen to anyone.
when i was twenty-one, i drank long island iced teas for the first time and, later, for the last time.
when i was twenty-two, i watched the sun rise over the california desert.
when i was twenty-three, my grandma spun tales about the dust bowl as we traveled eastward on lonely roads.
when i was twenty-four, i was a narcissist.


The FileOrganiserWindow plugin allows you to organise your files in a virtual manner, i.e. independently of where they are physically located. Your virtual environment is remembered from one session to another and is originally empty:
Now, say that you are working on a specific project. You might then want to create a (virtual) folder, which contains (a virtual link to) all the files you need for your project. For this, you first need to click on the button in the toolbar (or use the context menu). This will add a folder to your virtual environment:
You can rename the folder as you wish, as well as create other (sub-)folders, if needed:
You can also move the (sub-)folders around by dragging and dropping them within your virtual environment, or delete an existing (sub-)folder by clicking on the button in the toolbar (or by using the context menu):
Next, you might want to open the File Browser window, so you can start dragging and dropping files into your virtual environment (alternatively, you can use your system's file manager):
As for folders, you can move and delete your (virtual) files:
| Create a new folder | |
| Delete the current folder(s) and/or link(s) to the current file(s) |


You have created of available plans
Plans that are shared with you
These are your archived personal learning plans


shuffle (PHP 4, PHP 5, PHP 7) shuffle — 将数组打乱 说明 bool shuffle ( array &$array ) 本函数打乱（随机排列单元的顺序）一个数组。 参数 array 待操作的数组。 返回值 成功时返回 TRUE，或者在失败时返回 FALSE。 范例 Example #1 shuffle() 例子 更新日志 版本 说明 4.2.0 随机数发生器自动进行播种。 注释 Note: 此函数为 array 中的元素赋与新的键名。这将删除原有的键名，而不是仅仅将 键名重新排序。 参见 • 数组排序函数对比 User Contributed Notes 19 notes =============================================================================== shuffle for associative arrays, preserves key=>value pairs. (Based on (Vladimir Kornea of typetango.com)'s function) *note: as of PHP 5.2.10, array_rand's resulting array of keys is no longer shuffled, so we use array_keys + shuffle. =============================================================================== Shuffle associative and non-associative array while preserving key, value pairs. Also returns the shuffled array instead of shuffling it in place. =============================================================================== Building on examples by m227 and pineappleclock, here is a function that returns all permutations of each set in the power set of an array of strings (instead of a string). Thanks for the great examples! Array ( [0] => A [1] => B [2] => C ) [1] => Array ( [0] => A [1] => C [2] => B ) [2] => Array ( [0] => B [1] => A [2] => C ) [3] => Array ( [0] => B [1] => C [2] => A ) [4] => Array ( [0] => C [1] => A [2] => B ) [5] => Array ( [0] => C [1] => B [2] => A ) [6] => Array ( [0] => A [1] => B ) [7] => Array ( [0] => B [1] => A ) [8] => Array ( [0] => B [1] => C ) [9] => Array ( [0] => C [1] => B ) [10] => Array ( [0] => A [1] => C ) [11] => Array ( [0] => C [1] => A ) [12] => Array ( [0] => A ) [13] => Array ( [0] => B ) [14] => Array ( [0] => C ) ) */ function power_perms($arr) { $power_set = power_set($arr); $result = array(); foreach($power_set as $set) { $perms = perms($set); $result = array_merge($result,$perms); } return $result; } function power_set($in,$minLength = 1) { $count = count($in); $members = pow(2,$count); $return = array(); for ($i = 0; $i < $members; $i++) { $b = sprintf("%0".$count."b",$i); $out = array(); for ($j = 0; $j < $count; $j++) { if ($b{$j} == '1') $out[] = $in[$j]; } if (count($out) >= $minLength) { $return[] = $out; } } //usort($return,"cmp"); //can sort here by length return $return; } function factorial($int){ if($int < 2) { return 1; } for($f = 2; $int-1 > 1; $f *= $int--); return $f; } function perm($arr, $nth = null) { if ($nth === null) { return perms($arr); } $result = array(); $length = count($arr); while ($length--) { $f = factorial($length); $p = floor($nth / $f); $result[] = $arr[$p]; array_delete_by_key($arr, $p); $nth -= $p * $f; } $result = array_merge($result,$arr); return $result; } function perms($arr) { $p = array(); for ($i=0; $i < factorial(count($arr)); $i++) { $p[] = perm($arr, $i); } return $p; } function array_delete_by_key(&$array, $delete_key, $use_old_keys = FALSE) { unset($array[$delete_key]); if(!$use_old_keys) { $array = array_values($array); } return TRUE; } ?> =============================================================================== I've been wondering why shuffle() doesn't provide the shuffled array as a return value instead of a bool. I mean, what could possibly go wrong in shuffling elements from an array? So I use something like this: =============================================================================== Here i wrote a custom shuffle function which preserves the array index and distributes the array element randomly. 'apple', 'b' => 'ball', 'c' => 'cat', 'd' => 'dog', 'e' => 'egg', 'f' => 'fan', 'g' => 'gun' ); print_r(custom_shuffle($array)); Array ( [c] => cat [e] => egg [f] => fan [a] => apple [b] => ball [g] => gun [d] => dog ) ?> =============================================================================== Here is a quick function I wrote that generates a random password and uses shuffle() to easily shuffle the order. =============================================================================== Many people in SEO need to supply an array and shuffle the results and need the same result each time that page is generated. This is my implementation with a working example: 0; $i--){ $j = @mt_rand(0, $i); $tmp = $items[$i]; $items[$i] = $items[$j]; $items[$j] = $tmp; } } $items = array('one','two','three','four','five','six'); $string = 'whatever'; echo '
'; print_r($items); echo ''; seoShuffle($items,$string); echo '
'; print_r($items); echo ''; ?> =============================================================================== This seems to do reasonably well as a shuffle() that preserves index assocation: Obviously only works if PHP has closures enabled... =============================================================================== Just a quick note to let people know that shuffle() will work on multidimensional associative arrays provided that the first key is already numeric. So this array can be shuffled without losing any of the secondary keys or their values: $array[0]['color'], $array[0]['size'], $array[0]['fabric'] . . . $array[50]['color'], $array[50]['size'], $array[50]['fabric'] I recently ran up against needing to randomize this array and tried shuffle even though it's not really for associative arrays. Hope it helps somebody out there. =============================================================================== I needed a simple function two shuffle a two dimensional array. Please note the second level arrays must be indexed using integers, for example $myarray[0] ["Name"] and not $myarray["One"]["Name"]. Here is the function: Please note it only works on two dimensional arrays. Here is an example: array("Name" => "Google", "URL" => "www.google.com", "Usage" => "Googling"), "Yahoo" => array("Name" => "Yahoo", "URL" => "www.yahoo.com", "Usage" => "Yahooing?"), "Ask" => array("Name" => "Ask", "URL" => "www.ask.com", "Usage" => "Asking Jeeves")); print_r(twodshuffle($myarray)); /* And the result is: Array ( [0] => Array ( [Name] => Ask [URL] => www.ask.com [Usage] => Asking Jeeves ) [1] => Array ( [Name] => Google [URL] => www.google.com [Usage] => Googling ) [2] => Array ( [Name] => Yahoo [URL] => www.yahoo.com [Usage] => Yahooing? ) ) */ ?> Hope you find it useful! =============================================================================== This is a replica of shuffle() but preserving keys (associative and non-associative) bool kshuffle ( array &$array ) $value) { $tmp[] = array('k' => $key, 'v' => $value); } shuffle($tmp); $array = array(); foreach($tmp as $entry) { $array[$entry['k']] = $entry['v']; } return true; } $array = array('first' => 0, 'second' => 1, 'third' => 2); kshuffle($array); print_r($array); // [second] => 1 [first] => 0 [third] => 2 $array = array('first', 'second', 'third'); kshuffle($array); print_r($array); // [1] => second [2] => third [0] => first ?> =============================================================================== If you want the Power Set (set of all unique subsets) of an array instead of permutations, you can use this simple algorithm: * array(array(a),array(b),array(c),array(a,b),array(b,c),array(a,b,c)) */ function powerSet($in,$minLength = 1) { $count = count($in); $members = pow(2,$count); $return = array(); for ($i = 0; $i < $members; $i++) { $b = sprintf("%0".$count."b",$i); $out = array(); for ($j = 0; $j < $count; $j++) { if ($b{$j} == '1') $out[] = $in[$j]; } if (count($out) >= $minLength) { $return[] = $out; } } return $return; } ?> =============================================================================== Here is IMO the simplest and extremely fast way to shuffle an associative array AND keep the key=>value relationship. However, it ONLY works if there are NO NUMERIC keys AT ALL. Look into array_merge for the reason why. 1,'two'=>2,'three'=>3); $shuffled = array_merge( array_flip(array_rand($unshuffled,count($unshuffled ))),$unshuffled ); ?> peace =============================================================================== Copy and paste this script and refresh the page to see the shuffling effect. array(), 'Spade' => array(), 'Diamond' => array(), 'Club' => array() ); // Add cards to their respective suits for($i = 0; $i < count($suits); $i++) { for($j = 0; $j < count($cards); $j++) { $suits['Heart'][$j] = $cards[$j]."& hearts;"; $suits['Spade'][$j] = $cards[$j]."♠"; $suits['Diamond'][$j] = $cards[$j]."& diams;"; $suits['Club'][$j] = $cards[$j]."♣"; } } // Create a deck $deck = array(); // Merge the suits into the empty deck array $deck = array_merge($deck, $suits); // Display the deck to the screen echo "
Deck of cards:
"; foreach($deck as $k1 => $v1) { // Display suit name echo " $k1's
{
";
$acc = 0;
// Display card value
foreach($v1 as $k2 => $v2)
{
echo "$v2 ";
$acc++;
if ($acc == 4)
{
echo "
";
$acc = 0;
}
}
echo "
}


Please fill out the form below and click the submit button to add an item to your collection. Please note: some fields are required.


Make sure that the ChRIS pfdcm service has been started. The simplest way to do this is to pull the source repo from github and run the make shell script:
cd ~/somwhere
git clone https://github.com/FNNDSC/pfdcm
cd pfdcm
make
Note the above assumes that you have docker and docker-compose installed, and ideally speaking, that your userID on your local system can do sudo-less docker commands.
The best way to run this interaction page is via a server (i.e. do not directly load this page into your browser using the file:/// directive). Simply start a python web server in the repository check out directory:
python -m SimpleHTTPServer [<port>]
Now, point your browser at
http://<hostIP>[:<port>]
On the top left of the control panel is the login status toggle button. On first run, this should say "login status: logged out". Simply hit the button and wait for the status to change to "logged in". Login never expires, only when you explicitly hit "logout".
If you wish to have consistency in the data space between calls to the API, you need to store the data DB to disk. Make sure that the "Use file DB" button reads "ON" and is green.
Toggle the "Create new DB" button to "ON" if you want to create a new DB. Note, this will overwrite/delete any previous DB tree at that file location.
Once logged in for the first time, or on each time this page is visited, hit the Call button to call the current URL (shown in the URLs available select box). With each call of a URL, the contents of this box will change. Simply keep choosing URLs as they are made available to explore the data space.
By default, the JSON syntax highlight is ON. Hitting the button on the top left will toggle this state. The OFF state is best for viewing error returns from the API because error messages from the python backend run across multiple lines. The syntax highlight ON would show a multi-line return as one long line with a scroll bar.
For the most, interacting with the ChRIS REST Web Service API requires no "input" from the user, other than perhaps manually specifying the ChRIS web service IP and port.
Each call to the ChRIS API returns a description of available URL actions that can be accessed, dependent on the current call. In this manner, software agents can self-discover the data/action space exposed by the ChRIS REST API.


--- layout: post title: OpenRasta needs an msdn license date: '2010-04-03T12:03:00.001+01:00' tags: [openrasta] modified_time: '2010-04-03T12:03:49.019+01:00' blogger_id: tag:blogger.com,1999:blog-4015568221071268916.post-328046247854626634 comments: true blogger_orig_url: http://serialseb.blogspot.com/2010/04/openrasta-needs-msdn-license.html ---
I don’t usually use this blog for requesting help, but I’m afraid on this one I have to.
I don’t have access to an MSDN license anymore, as the cost is too high, I’m not an MVP and the ActionPack works for my professional needs. Except it doesn’t work so well with OpenRasta.
With the upcoming Visual Studio release, and the new OSs out there, I’m out of licenses to continue testing OpenRasta on all those platforms.
So, my friends, the communnity, I’m turning to you. Do you have a spare MSDN license somewhere? Do you know someone at a vendor happy to provide such a license? Maybe even Microsoft? Now is the time to help OpenRasta!
Email<EMAIL_ADDRESS>with your suggestions! Thanks!


Preparation time
less than 30 mins
Cooking time
less than 10 mins
Serves
Serves 4
James Martin cooks this quick, easy and tasty version of Ken Hom's pineapple pork recipe - he says it’s perfection.
For the pork, put the pork into a bowl and add the light soy sauce, rice wine or sherry, sesame oil and cornflour. Mix well to cover the pork in the marinade, then set aside.
Heat the oil in a wok over a high heat. When the oil starts to smoke, add the garlic and stir-fry for 10 seconds, or until golden brown but not burned. Add the marinated pork, reserving the marinade in the bowl, and continue to stir-fry for 2-3 minutes.
Add the pineapple, sugar, reserved marinade, three-quarters of the spring onions, and the dark soy sauce and continue to stir-fry for a further 2-3 minutes. Add the coriander, stir well and remove the wok from the heat.
Meanwhile, for the rice omelette, whisk together the eggs and sesame oil in a bowl.
Heat the oil in a separate wok or large frying pan over a high heat. When the pan is hot, pour away the oil so that only a light coating remains in the wok.
Pour the egg mixture into the pan and swirl the pan so that the mixture forms a thin omelette. When the eggs have just set, sprinkle the cooked rice over the omelette and cook for one minute. Carefully fold the edges of the omelette over the rice to cover, then transfer the omelette to a warm plate and cover with a clean tea towel to allow the rice to finish heating through.
To serve, slice the omelette, divide the slices equally among four serving plates, then spoon the pork alongside. Garnish with the remaining spring onions.


| 525 | (A) | he soghte one an-oþer syde witħ a sade wapyn |
| 527 | (C) | And aftur on þat oþur syde . with a sore wepyn |
| 521 | (D) | And seth in þe same stede wiþ a sore wepyn |
| 513 | (E) | ¶ And sythen in þe same stede . with a soor wepene |
| (Ex) | ---- no text ---- | |
| 542 | (L) | souȝt þroȝ an-oþer side with a sore wepne |
| 501 | (P) | Soght thurgh þair sydes with many sad wapyn |
| 520 | (U) | And sen on that other syde / witħ a sore wepyn |
| (V) | ---- no text ---- |


GitHub Flow
Source: GitHub Guides
Create a branch
When you’re working on a project, you’re going to have a bunch of different features or ideas in progress at any given time – some of which are ready to go, and others which are not. Branching exists to help you manage this workflow.
When you create a branch in your project, you’re creating an environment where you can try out new ideas. Changes you make on a branch don’t affect the master
branch, so you’re free to experiment and commit changes, safe in the knowledge that your branch won’t be merged until it’s ready to be reviewed by someone you’re collaborating with.
ProTip
Branching is a core concept in Git, and the entire GitHub flow is based upon it. There’s only one rule: anything in the master
branch is always deployable.
Because of this, it’s extremely important that your new branch is created off of master when working on a feature or a fix. Your branch name should be descriptive (e.g., refactor-authentication
, user-content-cache-key
, make-retina-avatars
), so that others can see what is being worked on.
Add commits
Once your branch has been created, it’s time to start making changes. Whenever you add, edit, or delete a file, you’re making a commit, and adding them to your branch. This process of adding commits keeps track of your progress as you work on a feature branch.
Commits also create a transparent history of your work that others can follow to understand what you’ve done and why. Each commit has an associated commit message, which is a description explaining why a particular change was made. Furthermore, each commit is considered a separate unit of change. This lets you roll back changes if a bug is found, or if you decide to head in a different direction.
ProTip
Commit messages are important, especially since Git tracks your changes and then displays them as commits once they’re pushed to the server. By writing clear commit messages, you can make it easier for other people to follow along and provide feedback.
Open a Pull Request
Pull Requests initiate discussion about your commits. Because they’re tightly integrated with the underlying Git repository, anyone can see exactly what changes would be merged if they accept your request.
You can open a Pull Request at any point during the development process: when you have little or no code but want to share some screenshots or general ideas, when you’re stuck and need help or advice, or when you’re ready for someone to review your work. By using GitHub’s @mention system in your Pull Request message, you can ask for feedback from specific people or teams, whether they’re down the hall or ten time zones away.
ProTip
Pull Requests are useful for contributing to open source projects and for managing changes to shared repositories. If you’re using a Fork & Pull Model, Pull Requests provide a way to notify project maintainers about the changes you’d like them to consider. If you’re using a Shared Repository Model, Pull Requests help start code review and conversation about proposed changes before they’re merged into the master branch.
Discuss and review your code
Once a Pull Request has been opened, the person or team reviewing your changes may have questions or comments. Perhaps the coding style doesn’t match project guidelines, the change is missing unit tests, or maybe everything looks great and props are in order. Pull Requests are designed to encourage and capture this type of conversation.
You can also continue to push to your branch in light of discussion and feedback about your commits. If someone comments that you forgot to do something or if there is a bug in the code, you can fix it in your branch and push up the change. GitHub will show your new commits and any additional feedback you may receive in the unified Pull Request view.
ProTip
Pull Request comments are written in Markdown, so you can embed images and emoji, use pre-formatted text blocks, and other lightweight formatting.
Deploy
With GitHub, you can deploy from a branch for final testing in production before merging to master.
Once your pull request has been reviewed and the branch passes your tests, you can deploy your changes to verify them in production. If your branch causes issues, you can roll it back by deploying the existing master into production.
Merge
Now that your changes have been verified in production, it is time to merge your code into the master branch.
Once merged, Pull Requests preserve a record of the historical changes to your code. Because they’re searchable, they let anyone go back in time to understand why and how a decision was made.
ProTip
By incorporating certain keywords into the text of your Pull Request, you can associate issues with code. When your Pull Request is merged, the related issues are also closed. For example, entering the phrase Closes #32
would close issue number 32 in the repository.


The world is full of objects. Apples. Chairs. Doorknobs. Rude People. All things, good or bad, or very bad, (I'm looking at you, rude people!) are objects.
We can interact with objects and they with us. Objects have their own characteristics, and some of them can carry out their own tasks.  Object-oriented languages, like Ruby, attempt to replicate this interaction by using objects in classes and filling them with things that describe them and things that they can do. For example, babies. Babies have characteristics and they can perform actions, so they count as objects. They can be expressed in Ruby with the following code:
class Baby
end
Boom. We now have a child. Ruby makes it easy; no labor or anything! Right now, the kid doesn't do much. He or she can only perform the very basic functions that he or she inherits as an object in Ruby. He or she isn't even a he or she yet! We can fix this by filling in the space between "Class" and "end" with the child's characteristics and actions.
We start with an initialize method that's called when an object is created. For our new child, it could look something like this:
class Baby
def initialize(eye_color, hair_color, gender, age)
@eye_color = eye-color
@hair_color = hair-color
@gender = gender
@age = age
end
end
That's a lot of initializing going on there! What we're doing is taking the information that we receive, from the arguments in the method, and setting our instance variables to their value. The instance variables are general characteristics of that particular instance of the class which any method within that class can access. So any code that we write telling the baby what it can do will be able to access those variables if it needs to.
Now that we have a kid with physical characteristics, we need to make him or her do something! Observe:
class Baby
def initialize(eye_color, hair_color, gender, age)
@eye_color = eye-color
@hair_color = hair-color
@gender = gender
@age = age
cry(4)
end
def cry(cry_level)
case cry_level
when 1
puts "Wah!"
when 2
puts "Waaaah!"
when 3
puts "WAAAAAAH WAAAAH WAAAAAH!"
else
puts "OMG I'M NEVER GOING TO STOP CRYING EVER SO IT'S POINTLESS TO TRY TO CONSOLE ME!"
end
end
end
Now our kid can do something! It can cry... Great. In our cry method, we expect one argument, an integer greater than 1, that corresponds with the amount of crying. If we look back at our initialize method, this baby is coming out kicking and screaming. Let's fix the code so we can fix the kid.
class Baby
def initialize(eye_color, hair_color, gender, age)
@eye_color = eye-color
@hair_color = hair-color
@gender = gender
@age = age
cry(4)
end
def cry(cry_level)
case cry_level
when 1
puts "Wah!"
when 2
puts "Waaaah!"
when 3
puts "WAAAAAAH WAAAAH WAAAAAH!"
else
puts "OMG I'M NEVER GOING TO STOP CRYING EVER SO IT'S POINTLESS TO TRY TO CONSOLE ME!"
end
end
def console
#Hmmmm.... I have no way of changing the cry-level from here!
end
end
Well, we've started a method to console the baby, but how can we do it? We don't have any variables that we can access to alter it's crying behavior. The cry_level in our cry method is local and can only be accessed in that method. We're going to need to make a change to our cry method and add an instance variable:
class Baby
def initialize(eye_color, hair_color, gender, age)
@eye_color = eye-color
@hair_color = hair-color
@gender = gender
@age = age
@cry_level = 4
cry
end
def cry()
case @cry_level
when 0
puts "Giggle!"
when 1
puts "Wah!"
when 2
puts "Waaaah!"
when 3
puts "WAAAAAAH WAAAAH WAAAAAH!"
else
puts "OMG I'M NEVER GOING TO STOP CRYING EVER SO IT'S POINTLESS TO TRY TO CONSOLE ME!"
end
end
def console
@cry_level -= 1
end
end
We've made cry_level an instance variable in our class Baby so that we can at last act on the level of crying and console the child. Our console method will decrease the level of crying by 1 each time it is called. Finally!
Now, I have to try one more thing...
def behave
@cry_level = 0
@behavior = "angelic"
sleep(8 hours)
end
Yes! Let's give it a try!
/Users/mbaylis/DBC Assignments/BabyClass/Baby.rb:32:in `behave': uninitialized constant InYourDreams! (GetRealError)
*sigh* Well, it was worth a shot.


|
jubilant-funicular
|
#include "setup.hpp"
Go to the source code of this file.
Classes | |
| struct | glm::vec< L, T, Q > |
| struct | glm::mat< C, R, T, Q > |
| struct | glm::detail::is_aligned< P > |
Enumerations | |
| enum | glm::qualifier { glm::packed_highp, glm::packed_mediump, glm::packed_lowp, glm::highp = packed_highp, glm::mediump = packed_mediump, glm::lowp = packed_lowp, glm::packed = packed_highp, defaultp = highp } |
| Qualify GLM types in term of alignment (packed, aligned) and precision in term of ULPs (lowp, mediump, highp) More... | |
Definition in file qualifier.hpp.
| enum glm::qualifier |
Qualify GLM types in term of alignment (packed, aligned) and precision in term of ULPs (lowp, mediump, highp)
Definition at line 11 of file qualifier.hpp.


0.15.3 (03/10/2020)
Twenty-fifth alpha release.
Fix and refactorings
- Avoided using post-JDK8 APIs to allow JDK8 users to run the plugin smoothly.
-
Fixed the handling of recent VCS messages spawning multiple lines in default subject Provider.
- Removed some deprecated platform classes.


Invalid credentials
Successfully logged out
Username
Please enter valid Username
Password
Oh! you missed it
Login
Login with:
Client
Authorize


Simple OCCI Client
OCCI application's home:
Actions
Query Interface
GET
Compute
GET
POST
Storage
GET
POST
PUT
DELETE
Network
GET
POST
PUT
DELETE
Resources
clear
Request
Response
ToDo
Compute
use existing values as default for PUT
validation of input values (POST, PUT)
trigger actions on a resource
Storage
everything
Network
everything
Copyright (c) 2011 Sebastian Herbermann -
Source code
licensed under the MIT License


ARTICLE 3. CIVIL PROVISIONS OF GENERAL APPLICATION
Note
Article heading reenacted by L 2015, c 77, pt of §1.
§576B-301 Proceedings under this chapter. (a) Except as otherwise provided in this chapter, this article applies to all proceedings under this chapter.
(b) An individual petitioner or a support enforcement agency may initiate a proceeding authorized under this chapter by filing a petition in an initiating tribunal for forwarding to a responding tribunal or by filing a petition or a comparable pleading directly in a tribunal of another state or a foreign country which has or can obtain personal jurisdiction over the respondent. [L 1997, c 295, pt of §1; am L 2015, c 77, pt of §1]


Power struggle escalates at German railways
BERLIN: A power struggle has escalated at Germany's Deutsche Bahn , with the position of finance chief Alexander Doll at risk, company sources said ahead of a special meeting of the supervisory board of the railway company on Thursday (Nov 7).
Members of the executive and supervisory boards have Doll in their sights, the sources told Reuters, saying he did not inform the government and the supervisory board about problems in the planned sale of international unit Arriva.
A spokeswoman for Deutsche Bahn declined to comment.
Doll was called in on Wednesday by Transport Minister Andreas Scheuer, who the sources said had not shown any backing for Doll. Doll himself considers the accusations unfounded and does not want to go voluntarily.
Seen as a reformer at the company, Doll still has some supporters on the supervisory board, including among trade union representatives, the sources said. His opponents are Ronald Pofalla, infrastructure head, and Richard Lutz, railways head.
Deutsche Bahn said in September that it expects a 50 billion euro (US$55.4 billion) climate change package agreed by the German government to generate the railway company’s biggest growth spurt in its 180-year history.
However, the highly indebted firm and chief executive Lutz have been under fire over delays and for having insufficient capacity, with Scheuer setting Lutz an ultimatum of Nov 14 to present ideas for improvements in rail and freight.
The supervisory board meeting on Thursday was due to appoint Sigrid Nikutta, the head of the Berlin public transportation company, to the executive board to reorganize the ailing freight transport subsidiary DB Cargo, currently managed by Doll.
However, that appointment could also be at risk because of the power struggle around Doll.


TkTextPlus
What is TkTextPlus?
TkTextPlus is an extended Tk Text widget
with features
suitable
for source-code displaying and editing. Features include displaying
line numbers, syntax highlighting, code folding and linemarkers.
Development Status
TkTextPlus is in the early stages of development. The underlying Tk 8.5
text
widget itself still has some issues which make it not ready for daily
use (issues with -startline and -endline). This webpage serves as the
only (partial) documentation of the API, which is subject to change.
New Widget Options
-edgecolumn
-linenumbers
-showeol
-showtabs
-tabwidth
-whitespaceforeground
New Widget Commands
pathName identify x y
pathName linefoldable index
pathName linefolded index ?boolean?
pathName linefoldhighlight ?index?
pathName linefoldlevel index
pathName linevisible index ?boolean?
pathName togglecontraction index
Margins
A TkTextPlus widget can display up to 6 margins on the left and right
sides
of
the window. One margin is for displaying line numbers, one for
code-folding indicators, and the remaining 4 margins are for displaying
linemarkers. The margins are predefined (you can't create new ones) and
are named number,
fold, marker1, marker2, marker3 and marker4 respectively.
-activebackground
-activeforeground
-activeline
-background
-foreground
-justify
-leftedge
-padx
-rightedge
-side
-visible
-width
pathName
margin cget name option
pathName margin configure name ?option? ?value? ?option
value ...?
pathName margin names
pathName margin order ?list?
Line Markers
A linemarker is a graphical or textual annotation to a line. Each line
of text may have up to 4 linemarkers associated with it, one in each of
the 4 margins used for displaying linemarkers. A linemarker could be
used to display an icon representing a debugger breakpoint in a source
file for example.
-bitmap
-image
-text
pathName
linemarker cget
name option
pathName linemarker configure
margin ?option? ?value?
?option value ...?
pathName linemarker create name ?option value ...?
pathName linemarker delete name
pathName linemarker names
pathName linemarker set line ?margin? ?name?
Lexers
A lexer is used to scan the text being displayed and allows
language-specific syntax highlighting and folding. A lexer may for
example identify comments, keywords, operators and strings and
associate style information with the relevant pieces of text. The
appearance of the different styles is controlled using the familar text
widget tags, allowing you to specify the foreground and background
colors, font etc of each style individually using the tag configure
command.
Currently there are 6 lexers provided, named bash, cpp, lua, makefile, python and tcl. The lexing
logic (and code ;-} ) is based on the popular Scintilla editing
component. It should be fairly easy to add new languages but there is
no stable API for doing so.
Once a lexer is assigned to a text widget (using the lexer set command)
the lexer will spring into action whenever text is inserted or deleted.
The lexer invoke
command is provided to test the performace of the lexer. On my
machine for example lexer
invoke takes ~54000 microseconds with the cpp lexer to parse
all 9760 lines of tkTextDisp.c.
-bracestyle
-enable
pathName
lexer bracematch
index
pathName lexer cget name option
pathName lexer configure ?option? ?value? ?option value
...?
pathName lexer
invoke ?start?
end?
pathName lexer keywords index ?list?
pathName lexer names
pathName lexer set ?name?
pathName lexer styleat index
pathName lexer stylenames
Lexers & Tags
When a lexer is assigned with the lexer
set
command, one tag is created for each of the predefined lexer styles.
The tag names are the same as the lexer style names as returned by the lexer stylenames
command. Rather than applying tags using the tag add command, a
lexer records a byte of style information with each byte of text. This
method results in a considerable performance
gain and memory savings over the tags being applied in the usual
manner; it also limits the number of possible lexer styles to 255, but
that
shouldn't be a concern.
You can still add any number of other tags using tag add. The tag names
command will return the names of any tags including those created by a
lexer. Furthermore, bindings on lexer tags will work. However, the tag ranges command
will not
return the names of tags a lexer itself has applied to the text.
Tags created by a lexer may not be deleted using tag delete; attempts
to do so are silently ignored.
License
TkTextPlus is available under the standard Tcl license. Parts of it are
distributed with the following additional copyright (from Scintilla):
Copyright 1998-2003 by Neil Hodgson<EMAIL_ADDRESS>All Rights Reserved
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted,
provided that the above copyright notice appear in all copies and that
both that copyright notice and this permission notice appear in
supporting documentation."
Download
https://sourceforge.net/projects/tktextplus/
https://sourceforge.net/project/showfiles.php?group_id=188485
Last modified February 8
2007


|
Pebble Foundation Classes
0.2.0
C++ for Pebble
|
Use the following steps to create a new C++ application from scratch. In this short tutorial we will create a simple application that tells the time and responds to clicks.
From the command line start a new project as usual:
Then use the pebble package install
command to install the pebble-cpp
package. Execute a pebble build
to initialize the package.
The wscript
file located in the project root contains the instructions for the Pebble build system to compile the source files. This file needs to be modified to add commands to build C++ *.cpp
files.
You can copy an updated version of this file from the package folder node_modules/pebble-cpp/dist/include/pebble-cpp/wscript
. Execute the following command in the root of your project to copy this file over the existing wscript
file.
Alternatively you can view and download the updated wscript
file from here.
We've now added the ability to build C++ files but we haven't changed the ability to build C files. In fact, you can freely mix C and C++ files. But for the purposes of this tutorial we will erase the default C file and create a new single-file C++ application:
Remove the existing source file:
And now in your favorite text editor, create a new file called helloworld.cpp
in the src/c
folder. In that file add the following contents:
With all that code in the helloworld.cpp
file we just need to build the project and run it in the emulator:
If you have problems with the build, check the Known Issues.


using System; namespace AutobiographicMemory.DTOs { /// <summary> /// Base Data Type Object Class for the representation of an Event /// </summary> [Serializable] public class EventDTO { /// <summary> /// The unique identifier of the event /// </summary> public uint Id { get; set; } /// <summary> /// The full string representation of this event /// </summary> public string Event { get; set; } /// <summary> /// The subject of the event (ie. Who is responsible responsible for this event) /// </summary> public string Subject { get; set; } /// <summary> /// The timestamp/tick in which this event was stored /// </summary> public ulong Time { get; set; } } }


{% extends "base.html" %} {% block container %}
An error has occurred! Contact rc-help with any questions.


Preparation time
less than 30 mins
Cooking time
30 mins to 1 hour
Serves
Makes 3
Dietary
Preheat the oven to 180C/360F/Gas 4. Grease and line six 7.5cm/2in x 10cm/3in spring-sided cake tins with baking parchment.
For the cake, place the butter and sugar into a bowl and beat together until pale and fluffy.
Add the eggs, one at a time, beating well to combine before adding the next.
Add the flour and mix well.
Divide the cake batter among the six cake tins and place into the oven to bake for 25-30 minutes. Test by pushing a metal skewer into the centre of the cake; if it comes out clean the cakes are ready.
Remove from the oven and when cool enough to handle, remove from the tins and leave to cool on a wire rack.
For the filling, place the butter, vanilla seeds and sugar into a clean bowl and beat together until thick.
To serve, spread the raspberry jam onto three of the cakes. Top the jam layer with raspberries, then then add a dollop of buttercream topping to each.
Place one of the remaining cakes on top of each of the layered cakes and dust generously with icing sugar.


Apache HTTP server deployed alongside web applications (readme.md). Directory indexing grants access to file system content generated by apps. Specific applications are accessible via subdomain URLs
| Link | Notes |
|---|---|
| archive | APIs for uploading/archiving file system content |
| reflect | Web request reflection and WhatsMyIP support |
HTTPD proxy and web applications deployed using docker containers
Tools, doc, and config available via github.com/jason-matthew/bucket


| 1 | package fr.sii.ogham.core.builder.resolution; | |
| 2 | ||
| 3 | import fr.sii.ogham.core.builder.configuration.ConfigurationValueBuilder; | |
| 4 | import fr.sii.ogham.core.builder.configuration.ConfigurationValueBuilderDelegate; | |
| 5 | import fr.sii.ogham.core.builder.context.BuildContext; | |
| 6 | import fr.sii.ogham.core.builder.env.EnvironmentBuilder; | |
| 7 | import fr.sii.ogham.core.resource.resolver.FileResolver; | |
| 8 | import fr.sii.ogham.core.resource.resolver.ResourceResolver; | |
| 9 | ||
| 10 | /** | |
| 11 | * Configure resource resolver that loads files from filesystem. | |
| 12 | * | |
| 13 | * <p> | |
| 14 | * You can define the lookup (the prefix that indicates that filesystem | |
| 15 | * resolution must be used). For example: | |
| 16 | * | |
| 17 | * <pre> | |
| 18 | * .file().lookup("file:"); | |
| 19 | * | |
| 20 | * // path prefixed by file: matches | |
| 21 | * // then file resolver is used | |
| 22 | * resourceResolver.getResource("file:foo/bar.html"); | |
| 23 | * // path is not prefixed (or using another prefix) doesn't match | |
| 24 | * // then file resolver is not used | |
| 25 | * resourceResolver.getResource("foo/bar.html"); | |
| 26 | * </pre> | |
| 27 | * | |
| 28 | * <p> | |
| 29 | * You can define a path prefix and suffix for finding resources: | |
| 30 | * | |
| 31 | * <pre> | |
| 32 | * .file().lookup("file:").pathPrefix("foo/").pathSuffix(".html"); | |
| 33 | * | |
| 34 | * resourceResolver.getResource("bar"); | |
| 35 | * </pre> | |
| 36 | * | |
| 37 | * This will use the file resolver and the real path is {@code foo/bar.html}. | |
| 38 | * | |
| 39 | * @author Aurélien Baudet | |
| 40 | * | |
| 41 | * @param <P> | |
| 42 | * the type of the parent builder (when calling {@link #and()} | |
| 43 | * method) | |
| 44 | */ | |
| 45 | public class FileResolutionBuilder<P> extends AbstractSingleResolutionBuilder<FileResolutionBuilder<P>, P> implements PrefixSuffixBuilder<FileResolutionBuilder<P>> { | |
| 46 | ||
| 47 | /** | |
| 48 | * Initializes with the parent builder and the {@link EnvironmentBuilder}. | |
| 49 | * The parent builder is used when calling the {@link #and()} method. The | |
| 50 | * {@link EnvironmentBuilder} is used when calling {@link #build()} method | |
| 51 | * in order to evaluate property value. | |
| 52 | * | |
| 53 | * @param parent | |
| 54 | * the parent builder | |
| 55 | * @param buildContext | |
| 56 | * for property resolution | |
| 57 | */ | |
| 58 | public FileResolutionBuilder(P parent, BuildContext buildContext) { | |
| 59 | super(FileResolutionBuilder.class, parent, buildContext); | |
| 60 | } | |
| 61 | ||
| 62 | @Override | |
| 63 | protected ResourceResolver createResolver() { | |
| 64 |
1
1. createResolver : replaced return value with null for fr/sii/ogham/core/builder/resolution/FileResolutionBuilder::createResolver → RUN_ERROR |
return new FileResolver(lookups); |
| 65 | } | |
| 66 | ||
| 67 | @Override | |
| 68 | public FileResolutionBuilder<P> pathPrefix(String prefix) { | |
| 69 |
1
1. pathPrefix : removed call to fr/sii/ogham/core/builder/configuration/ConfigurationValueBuilderHelper::setValue → NO_COVERAGE |
pathPrefixValueBuilder.setValue(prefix); |
| 70 |
1
1. pathPrefix : replaced return value with null for fr/sii/ogham/core/builder/resolution/FileResolutionBuilder::pathPrefix → NO_COVERAGE |
return myself; |
| 71 | } | |
| 72 | ||
| 73 | @Override | |
| 74 | public ConfigurationValueBuilder<FileResolutionBuilder<P>, String> pathPrefix() { | |
| 75 |
1
1. pathPrefix : replaced return value with null for fr/sii/ogham/core/builder/resolution/FileResolutionBuilder::pathPrefix → NO_COVERAGE |
return new ConfigurationValueBuilderDelegate<>(myself, pathPrefixValueBuilder); |
| 76 | } | |
| 77 | ||
| 78 | @Override | |
| 79 | public FileResolutionBuilder<P> pathSuffix(String suffix) { | |
| 80 |
1
1. pathSuffix : removed call to fr/sii/ogham/core/builder/configuration/ConfigurationValueBuilderHelper::setValue → NO_COVERAGE |
pathSuffixValueBuilder.setValue(suffix); |
| 81 |
1
1. pathSuffix : replaced return value with null for fr/sii/ogham/core/builder/resolution/FileResolutionBuilder::pathSuffix → NO_COVERAGE |
return myself; |
| 82 | } | |
| 83 | ||
| 84 | @Override | |
| 85 | public ConfigurationValueBuilder<FileResolutionBuilder<P>, String> pathSuffix() { | |
| 86 |
1
1. pathSuffix : replaced return value with null for fr/sii/ogham/core/builder/resolution/FileResolutionBuilder::pathSuffix → NO_COVERAGE |
return new ConfigurationValueBuilderDelegate<>(myself, pathSuffixValueBuilder); |
| 87 | } | |
| 88 | } | |
Mutations | ||
| 64 |
1.1 |
|
| 69 |
1.1 |
|
| 70 |
1.1 |
|
| 75 |
1.1 |
|
| 80 |
1.1 |
|
| 81 |
1.1 |
|
| 86 |
1.1 |


Loving seeker of Christ ◆ Software Engineer ◆ Android & iOS & React Native Developer
Find Out MoreLearn more about the projects that are out there. Hover over the tiles to find the project you're looking for.
Get Started!Our templates are updated regularly so they don't break.
You can use this theme as is, or you can make changes!
We update dependencies to keep things fresh.
You have to make your websites with love these days!
Have a suggestion? That's great! Send an email and I'll get back to you as soon as possible!
This Privacy Policy describes how your personal information is collected, used, and shared when you use the app, Project Hymnal.
PERSONAL INFORMATION WE COLLECT
When you use the app, we do not collect any personal information about you.

We do not use the Personal Information since we do not collect any personal information about the users of the app.
SHARING YOUR PERSONAL INFORMATION
We do not sell your information to third parties. However, we may share your Personal Information to comply with applicable laws and regulations, to respond to a subpoena, search warrant or other lawful request for information we receive, or to otherwise protect our rights.
YOUR RIGHTS
If you are a European resident, you have the right to access personal information we hold about you and to ask that your personal information be corrected, updated, or deleted. If you would like to exercise this right, please contact us through the contact information below.
Additionally, if you are a European resident we note that we are processing your information in order to fulfill contracts we might have with you (for example if you make an order through the Site), or otherwise to pursue our legitimate business interests listed above. Additionally, please note that your information will be transferred outside of Europe, including to Canada and the United States.
CHANGES
We may update this privacy policy from time to time in order to reflect, for example, changes to our practices or for other operational, legal or regulatory reasons.
CONTACT US
For more information about our privacy practices, if you have questions, or if you would like to make a complaint, please contact us by e-mail at<EMAIL_ADDRESS>You can provide an EPUB to unlock offline capabilities, as well as provide footnotes and outlines to the app
Tracks only knows how to read the Holy Bible Recovery Version. So before you start, you'll need to have purchased this specific Google Play eBook. If you purchased this on Apple Books, you are welcome to try but your results may vary.
After you've purchased the ebook, you can download it to a desktop from Google Play Books or Apple Books.
What you have just downloaded is actually an ACSM file. So you'll need to go to the next step.
An ACSM is essentially a receipt, or voucher, from Adobe for your eBook. You can use Adobe Digital Editions to show you own the eBook and exchange the voucher for the ePub file.
Tracks won't be able to read the file if you skipped this step, because the file is encrypted. The DRM only allows you to read your eBook in specific programs.
Removing this will allow you to share the file across your personal devices and access the file in any program or application. Once you've done this, the file is ready to be imported into Tracks!
For step-by-step instructions you can read follow this link or look it up on Google
This privacy policy describes how your personal information is collected, used, and shared when you use the app, Vitality.
PERSONAL INFORMATION WE COLLECT
When you use the app, we automatically collect personal information about you, including, but not limited to, your name, email address, profile picture, and any data you choose to save in the app.
HOW DO WE USE YOUR PERSONAL INFORMATION?
We use the Personal Information that we collect to connect you with other users in the app, as well as journal data should you choose to opt-in to sharing your data with a group.
SHARING YOUR PERSONAL INFORMATION
We do not sell your information to third parties. However, we may share your Personal Information to comply with applicable laws and regulations, to respond to a subpoena, search warrant or other lawful request for information we receive, or to otherwise protect our rights.
YOUR RIGHTS
If you are a European resident, you have the right to access personal information we hold about you and to ask that your personal information be corrected, updated, or deleted. If you would like to exercise this right, please contact us through the contact information below.
Additionally, if you are a European resident we note that we are processing your information in order to fulfill contracts we might have with you (for example if you make an order through the Site), or otherwise to pursue our legitimate business interests listed above. Additionally, please note that your information will be transferred outside of Europe, including to Canada and the United States.
CHANGES
We may update this privacy policy from time to time in order to reflect, for example, changes to our practices or for other operational, legal or regulatory reasons.
CONTACT US
For more information about our privacy practices, if you have questions, or if you would like to make a complaint, please contact us by e-mail which can be found on the app page in the app store.
This privacy policy describes how your personal information is collected, used, and shared when you use our campus apps including Ekklesia and The Vine.
PERSONAL INFORMATION WE COLLECT
When you use the app, we automatically collect personal information about you, including, but not limited to, your name, email address, profile picture, and any data you choose to save in the app.
HOW DO WE USE YOUR PERSONAL INFORMATION?
We use the Personal Information that we collect to connect you with other users and administrators in the app.
SHARING YOUR PERSONAL INFORMATION
We do not sell your information to third parties. However, we may share your Personal Information to comply with applicable laws and regulations, to respond to a subpoena, search warrant or other lawful request for information we receive, or to otherwise protect our rights.
YOUR RIGHTS
If you are a European resident, you have the right to access personal information we hold about you and to ask that your personal information be corrected, updated, or deleted. If you would like to exercise this right, please contact us through the contact information below.
Additionally, if you are a European resident we note that we are processing your information in order to fulfill contracts we might have with you (for example if you make an order through the Site), or otherwise to pursue our legitimate business interests listed above. Additionally, please note that your information will be transferred outside of Europe, including to Canada and the United States.
CHANGES
We may update this privacy policy from time to time in order to reflect, for example, changes to our practices or for other operational, legal or regulatory reasons.
CONTACT US
For more information about our privacy practices, if you have questions, or if you would like to make a complaint, please contact us by e-mail which can be found on the app page in the app store.


Hello! You probably don't know me. I'll try to keep it that way, but you could probably find my name pretty easily if you tried. I created this site because I believe the internet should be free. If you don't share my opinion, please don't try to hinder my progress. The internet is far to powerful for that.
Whoever you are, thank you for visiting my site! Even if you don't approve of my motives, your acknowledgement of my presence is a reward in itself.
Find me on GitHub here if you have an problem with the site. Leave an issue. Trust me, I really don't have a pressing priority other than reading your feedback.
Licensed under the MIT License. Image under the CC BY 4.0.


Support package for general Compensating Transaction Framework. Contains default implementations of core interfaces as well as useful helper classes.


Please Sign Up
First name
Last name
Email
Password
Log In
Log In
Username or password incorrect. Try again!


2 overrides of Runspace
System.Management.Automation (2)
engine\hostifaces\pipelinebase.cs (1)
159
public override Runspace
Runspace
engine\remoting\client\remotepipeline.cs (1)
220
public override Runspace
Runspace
7 references to Runspace
System.Management.Automation (7)
engine\hostifaces\PowerShell.cs (3)
928
null, _worker.CurrentlyRunningPipeline.
Runspace
);
5722
CurrentlyRunningPipeline.
Runspace
.Close();
5729
pool.ReleaseRunspace(CurrentlyRunningPipeline.
Runspace
);
engine\remoting\client\Job.cs (3)
2770
Runspace = helper.Pipeline.
Runspace
;
2805
Runspace = helper.Pipeline.
Runspace
;
4205
RemoteRunspace remoteRS = helper.Pipeline.
Runspace
as RemoteRunspace;
engine\remoting\commands\PSRemotingCmdlet.cs (1)
3351
PipelineRunspace = pipeline.
Runspace
;


WITNESS LIST Subcommittee on Agriculture Committee March 18, 1999-1:00P SB 518 FOR: Joiner, Gary (Texas Farm Bureau), Austin Registering, but not testifying: For: Small, Ed (Texas & Southwestern Cattle Raisers Association), Austin Walzel, Jerry (Texas Produce Association), Mission On: Hunt, Darrel (Texas Department Transportation), Austin SB 631 FOR: Williams, Tony (Texas Cotton Ginners' Association), Austin Registering, but not testifying: For: Shields, Chris (Texas Agricultural Aviation Association), Austin Tucker, Durwood (Texas Farm Bureau), Austin On: Small, Ed (Texas Bollweevil Eradication Foundation), Austin


Chris Armstrong /
@carmstrong_afk
Deis engineering lead
Former SaaS builder
Former ops engineer
What is Deis?
Application Platform (PaaS)
Private Heroku
Go, Python & Shell
100% open source
Philosophy
Focus on 12 Factor Apps
Release early, release often
Keep a stable developer workflow
Integrate with open source ecosystem
1,200,000 downloads
~5000 stars, ~800 forks
2200+ Deis deployments daily
15 full-time devs, 150+ contributors
Why PaaS?
Developer Self-Service
Create applications
Deploy code or Docker images
Configure runtime environment
Manage releases and rollbacks
Run admin commands
View aggregated logs
Scale via the process model
Collaborate with a team
Division of Responsibility
Developers own the containers
Operations own the platform
How does it work?
Something Cool
Did you know this?
What about this?
This, too
What's next?
Deis 1.x LTS release
Deis on Kubernetes
Get involved!
https://github.com/deis/deis
http://docs.deis.io
#deis @ freenode
* We're hiring!
Thanks!
twitter.com/carmstrong_afk
github.com/carmstrong
chris@deis.com


About this website
This website exists in two pieces: the website, which you're on right now, and the back-end that communicates with the Twitch.tv API to report the channel's online status.
It serves one simple purpose: extra accessibility to Cohh's Twitch.tv channel's online status, and a live viewer if it's online. An alternative name for this website is iscohhonline.com.
But why not just visit Twitch.tv directly?
- This website is available on GitHub, to serve as a learning tool for web platform basics. It includes SCSS, autoprefixer JS, npm scripts, CSS Grid and other modern tools that can get you started with web development.
- The value of a network isn't just the number of people in it (n), it's proportional to the number of connected users (n²). Although this is Metcalfe's law which is originally applied to telecommunications networks, the same results can be seen in any network/community of people. The more accessible something is, and the more people get involved, the more the network grows! This is also the basis for growth hacking.
- The open source code of this website can be used as a basis for any enthusiastic or ambitious Twitch.tv streamer. Whether you just use it or build on it, it can help to improve your Twitch.tv channel.
- I love building things! 😊
Does Cohh know about and approve of this?
As of now: I don't know!
I've sent a message to CohhCarnage and private messages to a handful of moderators, as well as provided an e-mail address in the footer of this website to get in touch, hoping to get an official reply. I'm also open to giving all source code and domain names to Cohh, all he has to do is ask and I'll set it up.
If you know anyone who can get in touch with him, please let him know!
Got any feedback?
Get in touch with me via e-mail, send it my way and I'll take a look at all of your ideas. If it's a good one and realistic, I'll look at adding it. Remember that this website is open source, so you're welcome to submit a Pull Request with your changes.
And who are you?
I'm Seb. I live as a digital nomad and build my own projects for a living. And I try to give back when I can 🙂.
Back to the homepage!


Gate → Tone
Tone.Gate only passes a signal through when the incoming signal exceeds a specified threshold. To do this, Gate uses a Tone.Follower to follow the amplitude of the incoming signal. A common implementation of this class is a Noise Gate.
new
Tone.Gate
([threshold][, attack][, release])
code
var gate = new Tone.Gate(-30, 0.2, 0.3).toMaster();
var mic = new Tone.Microphone().connect(gate);
//the gate will only pass through the incoming
//signal when it's louder than -30db
default values
attack:0.1
release:0.1
threshold:-40
members
methods


Welcome to the hardest Quiz in the world!!!
What is the second word in the title of this page?
ot
welcome
to
Qweewee
CHeck all valid HTML tags:
<div>
<hello>
p
<Qweewee>
Can you spell your name correctly?
If you had a dollar would should you spend it on?
puppies
food
Computer Science material
All of the Above and Nothing else
What is the answer to life, the universe, and everything?
42
Computer Science
Javascript
Me
The Lab We He More For Science?!
Submit Quiz
Reset Quiz


Runtime type checking for React props and similar objects.
You can use prop-types to document the intended types of properties passed to components. React (and potentially other libraries—see the checkPropTypes() reference below) will check props passed to your components against those definitions, and warn in development if they don’t match.
npm install --save prop-types
import PropTypes from 'prop-types'; // ES6
var PropTypes = require('prop-types'); // ES5 with npm
If you prefer to exclude prop-types
from your application and use it
globally via window.PropTypes
, the prop-types
package provides
single-file distributions, which are hosted on the following CDNs:
<!-- development version -->
<script<EMAIL_ADDRESS><!-- production version -->
<script<EMAIL_ADDRESS><!-- development version -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/prop-types/15.6.0/prop-types.js"></script>
<!-- production version -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/prop-types/15.6.0/prop-types.min.js"></script>
To load a specific version of prop-types
replace 15.6.0
with the version number.
PropTypes was originally exposed as part of the React core module, and is commonly used with React components. Here is an example of using PropTypes with a React component, which also documents the different validators provided:
import React from 'react';
import PropTypes from 'prop-types';
class MyComponent extends React.Component {
render() {
// ... do things with the props
}
}
MyComponent.propTypes = {
// You can declare that a prop is a specific JS primitive. By default, these
// are all optional.
optionalArray: PropTypes.array,
optionalBool: PropTypes.bool,
optionalFunc: PropTypes.func,
optionalNumber: PropTypes.number,
optionalObject: PropTypes.object,
optionalString: PropTypes.string,
optionalSymbol: PropTypes.symbol,
// Anything that can be rendered: numbers, strings, elements or an array
// (or fragment) containing these types.
optionalNode: PropTypes.node,
// A React element (ie. <MyComponent />).
optionalElement: PropTypes.element,
// A React element type (ie. MyComponent).
optionalElementType: PropTypes.elementType,
// You can also declare that a prop is an instance of a class. This uses
// JS's instanceof operator.
optionalMessage: PropTypes.instanceOf(Message),
// You can ensure that your prop is limited to specific values by treating
// it as an enum.
optionalEnum: PropTypes.oneOf(['News', 'Photos']),
// An object that could be one of many types
optionalUnion: PropTypes.oneOfType([
PropTypes.string,
PropTypes.number,
PropTypes.instanceOf(Message)
]),
// An array of a certain type
optionalArrayOf: PropTypes.arrayOf(PropTypes.number),
// An object with property values of a certain type
optionalObjectOf: PropTypes.objectOf(PropTypes.number),
// You can chain any of the above with `isRequired` to make sure a warning
// is shown if the prop isn't provided.
// An object taking on a particular shape
optionalObjectWithShape: PropTypes.shape({
optionalProperty: PropTypes.string,
requiredProperty: PropTypes.number.isRequired
}),
// An object with warnings on extra properties
optionalObjectWithStrictShape: PropTypes.exact({
optionalProperty: PropTypes.string,
requiredProperty: PropTypes.number.isRequired
}),
requiredFunc: PropTypes.func.isRequired,
// A value of any data type
requiredAny: PropTypes.any.isRequired,
// You can also specify a custom validator. It should return an Error
// object if the validation fails. Don't `console.warn` or throw, as this
// won't work inside `oneOfType`.
customProp: function(props, propName, componentName) {
if (!/matchme/.test(props[propName])) {
return new Error(
'Invalid prop `' + propName + '` supplied to' +
' `' + componentName + '`. Validation failed.'
);
}
},
// You can also supply a custom validator to `arrayOf` and `objectOf`.
// It should return an Error object if the validation fails. The validator
// will be called for each key in the array or object. The first two
// arguments of the validator are the array or object itself, and the
// current item's key.
customArrayProp: PropTypes.arrayOf(function(propValue, key, componentName, location, propFullName) {
if (!/matchme/.test(propValue[key])) {
return new Error(
'Invalid prop `' + propFullName + '` supplied to' +
' `' + componentName + '`. Validation failed.'
);
}
})
};
Refer to the React documentation for more information.
Check out Migrating from React.PropTypes for details on how to migrate to prop-types
from React.PropTypes
.
Note that this blog posts mentions a codemod script that performs the conversion automatically.
There are also important notes below.
For apps, we recommend putting it in dependencies
with a caret range.
For example:
"dependencies": {
"prop-types": "^15.5.7"
}
For libraries, we also recommend leaving it in dependencies
:
"dependencies": {
"prop-types": "^15.5.7"
},
"peerDependencies": {
"react": "^15.5.0"
}
Note: there are known issues in versions before 15.5.7 so we recommend using it as the minimal version.
Make sure that the version range uses a caret (^
) and thus is broad enough for npm to efficiently deduplicate packages.
For UMD bundles of your components, make sure you don’t include PropTypes
in the build. Usually this is done by marking it as an external (the specifics depend on your bundler), just like you do with React.
This package is compatible with React 0.14.9. Compared to 0.14.8 (which was released in March of 2016), there are no other changes in 0.14.9, so it should be a painless upgrade.
# ATTENTION: Only run this if you still use React 0.14!
npm install --save<EMAIL_ADDRESS><EMAIL_ADDRESS>This package is compatible with React 15.3.0 and higher.
npm install --save<EMAIL_ADDRESS><EMAIL_ADDRESS>It outputs warnings with the message below even though the developer doesn’t do anything wrong. Unfortunately there is no solution for this other than updating React to either 15.3.0 or higher, or 0.14.9 if you’re using React 0.14.
First of all, which version of React are you using? You might be seeing this message because a component library has updated to use prop-types
package, but your version of React is incompatible with it. See the above section for more details.
Are you using either React 0.14.9 or a version higher than React 15.3.0? Read on.
When you migrate components to use the standalone prop-types
, all validator functions will start throwing an error if you call them directly. This makes sure that nobody relies on them in production code, and it is safe to strip their implementations to optimize the bundle size.
Code like this is still fine:
MyComponent.propTypes = {
myProp: PropTypes.bool
};
However, code like this will not work with the prop-types
package:
// Will not work with `prop-types` package!
var errorOrNull = PropTypes.bool(42, 'myProp', 'MyComponent', 'prop');
It will throw an error:
Calling PropTypes validators directly is not supported by the `prop-types` package.
Use PropTypes.checkPropTypes() to call them.
(If you see a warning rather than an error with this message, please check the above section about compatibility.)
This is new behavior, and you will only encounter it when you migrate from React.PropTypes
to the prop-types
package. For the vast majority of components, this doesn’t matter, and if you didn’t see this warning in your components, your code is safe to migrate. This is not a breaking change in React because you are only opting into this change for a component by explicitly changing your imports to use prop-types
. If you temporarily need the old behavior, you can keep using React.PropTypes
until React 16.
If you absolutely need to trigger the validation manually, call PropTypes.checkPropTypes()
. Unlike the validators themselves, this function is safe to call in production, as it will be replaced by an empty function:
// Works with standalone PropTypes
PropTypes.checkPropTypes(MyComponent.propTypes, props, 'prop', 'MyComponent');
See below for more info.
You might also see this error if you’re calling a PropTypes
validator from your own custom PropTypes
validator. In this case, the fix is to make sure that you are passing all of the arguments to the inner function. There is a more in-depth explanation of how to fix it on this page. Alternatively, you can temporarily keep using React.PropTypes
until React 16, as it would still only warn in this case.
If you use a bundler like Browserify or Webpack, don’t forget to follow these instructions to correctly bundle your application in development or production mode. Otherwise you’ll ship unnecessary code to your users.
React will automatically check the propTypes you set on the component, but if
you are using PropTypes without React then you may want to manually call
PropTypes.checkPropTypes
, like so:
const myPropTypes = {
name: PropTypes.string,
age: PropTypes.number,
// ... define your prop validations
};
const props = {
name: 'hello', // is valid
age: 'world', // not valid
};
// Let's say your component is called 'MyComponent'
// Works with standalone PropTypes
PropTypes.checkPropTypes(myPropTypes, props, 'age', 'MyComponent');
// This will warn as follows:
// Warning: Failed prop type: Invalid prop `age` of type `string` supplied to
// `MyComponent`, expected `number`.
PropTypes.checkPropTypes(...)
only console.error.log(...)
s a given message once. To reset the cache while testing call PropTypes.resetWarningCache()
prop-types is MIT licensed.


Money Play. How should Red play 61?
pips Red=160 White=153
(CorrectAnswer= 0/0, ErrorScore= 0)
This type of position is often misplayed.
The correct play is bar/24, 13/7. This play unstacks the heavy midpoint and if the blot is not hit there are more cover numbers than after bar/24, 11/5. That play is technically an error, but only just.
Red needs his checkers to work for him and that is best done by bar/24, 13/7.
The correct play is bar/24, 13/7. This play unstacks the heavy midpoint and if the blot is not hit there are more cover numbers than after bar/24, 11/5. That play is technically an error, but only just.
Red needs his checkers to work for him and that is best done by bar/24, 13/7.
1. Cubeful 2-ply bar/24 13/7 Eq.: +0.050 0.511 0.178 0.012 - 0.489 0.155 0.011 2. Cubeful 2-ply bar/24 11/5 Eq.: +0.025 (-0.025) 0.507 0.172 0.012 - 0.493 0.160 0.011 3. Cubeful 0-ply bar/24 8/2 Eq.: -0.235 (-0.285) 0.440 0.142 0.010 - 0.560 0.199 0.018


Return Of The Jedi A review by Joe Chamberlain Starring Mark Hamill; Harrison Ford; Carrie Fisher & Billy Dee Williams
Return Of The Jedi is the third installment of the Star Wars trilogy, and the second best of the three. (Star wars being the best.) It picks up where The Empire Strikes Back left off -- Han Solo is feeling somewhat confined and Luke Skywalker is dealing with some serious parental issues. In this film, Han Solo (Harrison Ford), Luke Skywalker (Mark Hamill), and Princess Leia (Carrie Fisher) travel to the forest moon of Endor. There they must try to deactivate a generator that is powering a shield protecting the Empire's new Death Star. Once the shield is removed the Rebel armada plans to attack the Empire's new space station in their final showdown with Darth Vader and friends. If you don't know all this by now, most likely you have either been in a coma or living in a South American jungle for the last 15 years.
Unlike The Empire Strikes Back, which bordered on depressing in places, Return Of The Jedi is much more fun. Especially the scenes on the Endor Moon involving the Ewoks -- probably the cutest creatures to ever hit the big screen, with the possible exception of E.T.. Return Of The Jedi also benefits from what seems like the most action of the three films. This is highlighted by the spectacular battle between the Imperial forces and the Rebel/Ewok team.
I must confess to being a much bigger Han Solo fan than I am a Luke Skywalker fan. So if I have one criticism of the movie, it is the extended periods in the film that focus on the Emperor's attempts to turn Luke to the dark side of the Force. A minor complaint, but one point worthy of note. Although it is not a point large enough to prevent me from ranking Return Of The Jedi as one of my favorite films of all time. Return Of The Jedi serves as a fitting end to one of the greatest series of movies ever produced. It ties up all the loose ends of the previous films and stands as a reminder that sequels don't necessarily have to be inferior knockoffs of the original film.
Whether you've seen the first two films or not, Return Of The Jedi is easily two of the most enjoyable hours you will ever spend watching a film.
10/10
Visit The Movie Guy http://members.tripod.com/~MovieGuy/index.html
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


public class LongObjectPagedHashMap<T> extends java.lang.Object implements java.lang.Iterable<LongObjectPagedHashMap.Cursor<T>>
| 限定符和类型 | 类和说明 |
|---|---|
static class |
LongObjectPagedHashMap.Cursor<T> |
| 构造器和说明 |
|---|
LongObjectPagedHashMap(BigArrays bigArrays) |
LongObjectPagedHashMap(long capacity,
BigArrays bigArrays) |
LongObjectPagedHashMap(long capacity,
float maxLoadFactor,
BigArrays bigArrays) |
| 限定符和类型 | 方法和说明 |
|---|---|
long |
capacity()
Return the number of allocated slots to store this hash table.
|
void |
close() |
T |
get(long key)
Get the value that is associated with
key or null if key
was not present in the hash table. |
protected void |
grow() |
java.util.Iterator<LongObjectPagedHashMap.Cursor<T>> |
iterator() |
T |
put(long key,
T value)
Put this new (key, value) pair into this hash table and return the value
that was previously associated with
key or null in case of
an insertion. |
T |
remove(long key)
Remove the entry which has this key in the hash table and return the
associated value or null if there was no entry associated with this key.
|
protected void |
removeAndAdd(long index)
Remove the entry at the given index and add it back
|
protected void |
resize(long capacity)
Resize to the given capacity.
|
long |
size()
Return the number of longs in this hash table.
|
protected boolean |
used(long bucket) |
public LongObjectPagedHashMap(BigArrays bigArrays)
public LongObjectPagedHashMap(long capacity, BigArrays bigArrays)
public LongObjectPagedHashMap(long capacity, float maxLoadFactor, BigArrays bigArrays)
public T get(long key)
key
or null if key
was not present in the hash table.public T put(long key, T value)
key
or null in case of
an insertion.public T remove(long key)
public java.util.Iterator<LongObjectPagedHashMap.Cursor<T>> iterator()
iterator
在接口中 java.lang.Iterable<LongObjectPagedHashMap.Cursor<T>>
public void close()
close
在接口中 java.io.Closeable
close
在接口中 java.lang.AutoCloseable
close
在接口中 Releasable
protected void resize(long capacity)
protected boolean used(long bucket)
protected void removeAndAdd(long index)
public long capacity()
public long size()
protected final void grow()