<!DOCTYPE html>
<html lang="en-US">
<head itemscope itemtype="https://schema.org/WebSite">
<meta charset="UTF-8" />
<meta name="description" content="Algorithms, for the heck of it" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
	<!-- Google Tag Manager -->
	
<title>Algorithm.co.il – Algorithms, for the heck of it</title>
<link rel='dns-prefetch' href='//unpkg.com' />
<link rel='dns-prefetch' href='//fonts.googleapis.com' />
<link rel='dns-prefetch' href='//use.fontawesome.com' />
<link rel='dns-prefetch' href='//s.w.org' />
<link rel="alternate" type="application/rss+xml" title="Algorithm.co.il &raquo; Feed" href="https://www.algorithm.co.il/feed/" />
<link rel="alternate" type="application/rss+xml" title="Algorithm.co.il &raquo; Comments Feed" href="https://www.algorithm.co.il/comments/feed/" />
<link rel="canonical" href="https://www.algorithm.co.il/" />
		<!-- This site uses the Google Analytics by MonsterInsights plugin v7.17.0 - Using Analytics tracking - https://www.monsterinsights.com/ -->
							<script src="//www.googletagmanager.com/gtag/js?id=UA-10629484-1"  type="text/javascript" data-cfasync="false"></script>
			<script type="text/javascript" data-cfasync="false">
				var mi_version = '7.17.0';
				var mi_track_user = true;
				var mi_no_track_reason = '';
				
								var disableStr = 'ga-disable-UA-10629484-1';

				/* Function to detect opted out users */
				function __gtagTrackerIsOptedOut() {
					return document.cookie.indexOf( disableStr + '=true' ) > - 1;
				}

				/* Disable tracking if the opt-out cookie exists. */
				if ( __gtagTrackerIsOptedOut() ) {
					window[disableStr] = true;
				}

				/* Opt-out function */
				function __gtagTrackerOptout() {
					document.cookie = disableStr + '=true; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/';
					window[disableStr] = true;
				}

				if ( 'undefined' === typeof gaOptout ) {
					function gaOptout() {
						__gtagTrackerOptout();
					}
				}
								window.dataLayer = window.dataLayer || [];
				if ( mi_track_user ) {
					function __gtagTracker() {dataLayer.push( arguments );}
					__gtagTracker( 'js', new Date() );
					__gtagTracker( 'set', {
						'developer_id.dZGIzZG' : true,
						                    });
					__gtagTracker( 'config', 'UA-10629484-1', {
						forceSSL:true,link_attribution:true,					} );
										window.gtag = __gtagTracker;										(
						function () {
							/* https://developers.google.com/analytics/devguides/collection/analyticsjs/ */
							/* ga and __gaTracker compatibility shim. */
							var noopfn = function () {
								return null;
							};
							var newtracker = function () {
								return new Tracker();
							};
							var Tracker = function () {
								return null;
							};
							var p = Tracker.prototype;
							p.get = noopfn;
							p.set = noopfn;
							p.send = function (){
								var args = Array.prototype.slice.call(arguments);
								args.unshift( 'send' );
								__gaTracker.apply(null, args);
							};
							var __gaTracker = function () {
								var len = arguments.length;
								if ( len === 0 ) {
									return;
								}
								var f = arguments[len - 1];
								if ( typeof f !== 'object' || f === null || typeof f.hitCallback !== 'function' ) {
									if ( 'send' === arguments[0] ) {
										var hitConverted, hitObject = false, action;
										if ( 'event' === arguments[1] ) {
											if ( 'undefined' !== typeof arguments[3] ) {
												hitObject = {
													'eventAction': arguments[3],
													'eventCategory': arguments[2],
													'eventLabel': arguments[4],
													'value': arguments[5] ? arguments[5] : 1,
												}
											}
										}
										if ( typeof arguments[2] === 'object' ) {
											hitObject = arguments[2];
										}
										if ( typeof arguments[5] === 'object' ) {
											Object.assign( hitObject, arguments[5] );
										}
										if ( 'undefined' !== typeof (
											arguments[1].hitType
										) ) {
											hitObject = arguments[1];
										}
										if ( hitObject ) {
											action = 'timing' === arguments[1].hitType ? 'timing_complete' : hitObject.eventAction;
											hitConverted = mapArgs( hitObject );
											__gtagTracker( 'event', action, hitConverted );
										}
									}
									return;
								}

								function mapArgs( args ) {
									var gaKey, hit = {};
									var gaMap = {
										'eventCategory': 'event_category',
										'eventAction': 'event_action',
										'eventLabel': 'event_label',
										'eventValue': 'event_value',
										'nonInteraction': 'non_interaction',
										'timingCategory': 'event_category',
										'timingVar': 'name',
										'timingValue': 'value',
										'timingLabel': 'event_label',
									};
									for ( gaKey in gaMap ) {
										if ( 'undefined' !== typeof args[gaKey] ) {
											hit[gaMap[gaKey]] = args[gaKey];
										}
									}
									return hit;
								}

								try {
									f.hitCallback();
								} catch ( ex ) {
								}
							};
							__gaTracker.create = newtracker;
							__gaTracker.getByName = newtracker;
							__gaTracker.getAll = function () {
								return [];
							};
							__gaTracker.remove = noopfn;
							__gaTracker.loaded = true;
							window['__gaTracker'] = __gaTracker;
						}
					)();
									} else {
										console.log( "" );
					( function () {
							function __gtagTracker() {
								return null;
							}
							window['__gtagTracker'] = __gtagTracker;
							window['gtag'] = __gtagTracker;
					} )();
									}
			</script>
				<!-- / Google Analytics by MonsterInsights -->
				<script type="text/javascript">
			window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/13.0.0\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/13.0.0\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/www.algorithm.co.il\/wp-includes\/js\/wp-emoji-release.min.js?ver=5.5.5"}};
			!function(e,a,t){var n,r,o,i=a.createElement("canvas"),p=i.getContext&&i.getContext("2d");function s(e,t){var a=String.fromCharCode;p.clearRect(0,0,i.width,i.height),p.fillText(a.apply(this,e),0,0);e=i.toDataURL();return p.clearRect(0,0,i.width,i.height),p.fillText(a.apply(this,t),0,0),e===i.toDataURL()}function c(e){var t=a.createElement("script");t.src=e,t.defer=t.type="text/javascript",a.getElementsByTagName("head")[0].appendChild(t)}for(o=Array("flag","emoji"),t.supports={everything:!0,everythingExceptFlag:!0},r=0;r<o.length;r++)t.supports[o[r]]=function(e){if(!p||!p.fillText)return!1;switch(p.textBaseline="top",p.font="600 32px Arial",e){case"flag":return s([127987,65039,8205,9895,65039],[127987,65039,8203,9895,65039])?!1:!s([55356,56826,55356,56819],[55356,56826,8203,55356,56819])&&!s([55356,57332,56128,56423,56128,56418,56128,56421,56128,56430,56128,56423,56128,56447],[55356,57332,8203,56128,56423,8203,56128,56418,8203,56128,56421,8203,56128,56430,8203,56128,56423,8203,56128,56447]);case"emoji":return!s([55357,56424,8205,55356,57212],[55357,56424,8203,55356,57212])}return!1}(o[r]),t.supports.everything=t.supports.everything&&t.supports[o[r]],"flag"!==o[r]&&(t.supports.everythingExceptFlag=t.supports.everythingExceptFlag&&t.supports[o[r]]);t.supports.everythingExceptFlag=t.supports.everythingExceptFlag&&!t.supports.flag,t.DOMReady=!1,t.readyCallback=function(){t.DOMReady=!0},t.supports.everything||(n=function(){t.readyCallback()},a.addEventListener?(a.addEventListener("DOMContentLoaded",n,!1),e.addEventListener("load",n,!1)):(e.attachEvent("onload",n),a.attachEvent("onreadystatechange",function(){"complete"===a.readyState&&t.readyCallback()})),(n=t.source||{}).concatemoji?c(n.concatemoji):n.wpemoji&&n.twemoji&&(c(n.twemoji),c(n.wpemoji)))}(window,document,window._wpemojiSettings);
		</script>
		<link rel='stylesheet' id='genesis-blocks-fontawesome-css'  href='https://www.algorithm.co.il/wp-content/plugins/genesis-blocks/dist/assets/fontawesome/css/all.min.css?ver=1621550315' type='text/css' media='all' />
<link rel='stylesheet' id='algorithm-css'  href='https://www.algorithm.co.il/wp-content/themes/algorithm/style.css?ver=1.0' type='text/css' media='all' />
<link rel='stylesheet' id='wp-block-library-css'  href='https://www.algorithm.co.il/wp-includes/css/dist/block-library/style.min.css?ver=5.5.5' type='text/css' media='all' />
<link rel='stylesheet' id='genesis-blocks-style-css-css'  href='https://www.algorithm.co.il/wp-content/plugins/genesis-blocks/dist/blocks.style.build.css?ver=1621550315' type='text/css' media='all' />
<link rel='stylesheet' id='wp-syntax-css-css'  href='https://www.algorithm.co.il/wp-content/plugins/wp-syntax/css/wp-syntax.css?ver=1.1' type='text/css' media='all' />
<link rel='stylesheet' id='theme-styles-css'  href='https://www.algorithm.co.il/wp-content/themes/algorithm/style.css?ver=1623674234' type='text/css' media='all' />
<link rel='stylesheet' id='algorithm-fonts-css'  href='//fonts.googleapis.com/css?family=Rubik%3A300%2C400%2C600%2C700&#038;ver=1.0' type='text/css' media='all' />
<link rel='stylesheet' id='font-awesome-css'  href='//use.fontawesome.com/releases/v5.5.0/css/all.css?ver=1.0' type='text/css' media='all' />
<link rel='stylesheet' id='dashicons-css'  href='https://www.algorithm.co.il/wp-includes/css/dashicons.min.css?ver=5.5.5' type='text/css' media='all' />
<script type='text/javascript' id='monsterinsights-frontend-script-js-extra'>
/* <![CDATA[ */
var monsterinsights_frontend = {"js_events_tracking":"true","download_extensions":"doc,pdf,ppt,zip,xls,docx,pptx,xlsx","inbound_paths":"[{\"path\":\"\\\/go\\\/\",\"label\":\"affiliate\"},{\"path\":\"\\\/recommend\\\/\",\"label\":\"affiliate\"}]","home_url":"https:\/\/www.algorithm.co.il","hash_tracking":"false","ua":"UA-10629484-1"};
/* ]]> */
</script>
<script type='text/javascript' src='https://www.algorithm.co.il/wp-content/plugins/google-analytics-for-wordpress/assets/js/frontend-gtag.min.js?ver=7.17.0' id='monsterinsights-frontend-script-js'></script>
<script type='text/javascript' src='https://www.algorithm.co.il/wp-includes/js/jquery/jquery.js?ver=1.12.4-wp' id='jquery-core-js'></script>
<script type='text/javascript' src='//unpkg.com/scrollreveal/dist/scrollreveal.min.js?ver=5.5.5' id='scrollreveal-js'></script>
<link rel="https://api.w.org/" href="https://www.algorithm.co.il/wp-json/" /><link rel="alternate" type="application/json" href="https://www.algorithm.co.il/wp-json/wp/v2/pages/937" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://www.algorithm.co.il/xmlrpc.php?rsd" />
<link rel="alternate" type="application/json+oembed" href="https://www.algorithm.co.il/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.algorithm.co.il%2F" />
<link rel="alternate" type="text/xml+oembed" href="https://www.algorithm.co.il/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.algorithm.co.il%2F&#038;format=xml" />
<link rel="pingback" href="https://www.algorithm.co.il/xmlrpc.php" />
<meta itemprop="name" content="Algorithm.co.il" />
<meta itemprop="url" content="https://www.algorithm.co.il/" />
<style type="text/css">.site-title a { background: url(https://www.algorithm.co.il/wp-content/uploads/2021/05/logo.png) no-repeat !important; }</style>
<style type="text/css">.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style>
<!-- Jetpack Open Graph Tags -->
<meta property="og:type" content="website" />
<meta property="og:title" content="Algorithm.co.il" />
<meta property="og:description" content="Algorithms, for the heck of it" />
<meta property="og:url" content="https://www.algorithm.co.il/" />
<meta property="og:site_name" content="Algorithm.co.il" />
<meta property="og:image" content="https://s0.wp.com/i/blank.jpg" />
<meta property="og:locale" content="en_US" />
<meta name="twitter:text:title" content="Home" />
<meta name="twitter:image" content="https://www.algorithm.co.il/wp-content/uploads/2021/06/header.jpg?w=640" />
<meta name="twitter:card" content="summary_large_image" />

<!-- End Jetpack Open Graph Tags -->
</head>
<body class="home page-template-default page page-id-937 wp-embed-responsive custom-header header-image header-full-width full-width-content genesis-title-hidden genesis-breadcrumbs-hidden genesis-footer-widgets-hidden" itemscope itemtype="https://schema.org/WebPage">	<!-- Google Tag Manager (noscript) -->

	<div class="site-container"><ul class="genesis-skip-link"><li><a href="#genesis-nav-primary" class="screen-reader-shortcut"> Skip to primary navigation</a></li><li><a href="#genesis-content" class="screen-reader-shortcut"> Skip to main content</a></li></ul><header class="site-header" itemscope itemtype="https://schema.org/WPHeader"><div class="wrap"><div class="title-area"><p class="site-title" itemprop="headline"><a href="https://www.algorithm.co.il/">Algorithm.co.il</a></p></div><nav class="nav-primary" aria-label="Main" itemscope itemtype="https://schema.org/SiteNavigationElement" id="genesis-nav-primary"><ul id="menu-main-menu" class="menu genesis-nav-menu menu-primary"><li id="menu-item-661" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-661"><a href="https://www.algorithm.co.il/about/" itemprop="url"><span itemprop="name">About</span></a></li>
<li id="menu-item-658" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-658"><a href="https://www.algorithm.co.il/best-posts/" itemprop="url"><span itemprop="name">Best Posts</span></a></li>
<li id="menu-item-659" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-659"><a href="https://www.algorithm.co.il/origami/" itemprop="url"><span itemprop="name">Origami</span></a></li>
<li id="menu-item-660" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-660"><a href="https://www.algorithm.co.il/projects/" itemprop="url"><span itemprop="name">Older Projects</span></a></li>
<li class="menu-item"><form class="search-form" method="get" action="https://www.algorithm.co.il/" role="search" itemprop="potentialAction" itemscope itemtype="https://schema.org/SearchAction"><label class="search-form-label screen-reader-text" for="searchform-1">Search</label><input class="search-form-input" type="search" name="s" id="searchform-1" placeholder="Search" itemprop="query-input"><button type="submit" class="search-form-submit" aria-label="Search"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="search-icon"><path d="M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"></path></svg><span class="screen-reader-text">Search...</span></button><meta content="https://www.algorithm.co.il/?s={s}" itemprop="target"></form></li></ul></nav></div></header><div class="site-inner"><div class="wrap"><div class="content-sidebar-wrap"><main class="content" id="genesis-content"><article class="post-937 page type-page status-publish entry" aria-label="Home" itemscope itemtype="https://schema.org/CreativeWork"><div class="entry-content" itemprop="text">
<div class="wp-block-genesis-blocks-gb-container gb-block-container"><div class="gb-container-inside"><div class="gb-container-content">
<figure class="wp-block-image size-large full-size-image"><img loading="lazy" width="932" height="198" src="https://www.algorithm.co.il/wp-content/uploads/2021/06/header.jpg" alt="" class="wp-image-962" srcset="https://www.algorithm.co.il/wp-content/uploads/2021/06/header.jpg 932w, https://www.algorithm.co.il/wp-content/uploads/2021/06/header-300x64.jpg 300w, https://www.algorithm.co.il/wp-content/uploads/2021/06/header-768x163.jpg 768w" sizes="(max-width: 932px) 100vw, 932px" /></figure>
</div></div></div>



<div style="padding-left:5%;padding-right:5%;padding-bottom:5%;padding-top:5%" class="wp-block-genesis-blocks-gb-container gb-block-container"><div class="gb-container-inside"><div class="gb-container-content">
<h1 class="section-title">Latest posts</h1>


<section class="gb-block-post-grid featuredpost aligncenter posts-gallery"><div class="gb-post-grid-items is-grid columns-3"><article id="post-925" class="gb-post-grid-item post-925 post type-post status-publish format-standard category-algo tag-interval tag-portion tag-tree entry"><div class="gb-block-post-grid-text"><header class="gb-block-post-grid-header"><h3 class="gb-block-post-grid-title"><a href="https://www.algorithm.co.il/programming/algo/working-with-intervals/" rel="bookmark">Working with Intervals</a></h3><div class="gb-block-post-grid-byline"><div class="gb-block-post-grid-author" itemprop="author" itemtype="https://schema.org/Person"><a class="gb-text-link" href="https://www.algorithm.co.il/author/admin/" itemprop="url" rel="author"><span itemprop="name">admin</span></a></div><time datetime="2020-08-30T07:07:59+03:00" class="gb-block-post-grid-date" itemprop="datePublished">2020-08-30</time></div></header><div class="gb-block-post-grid-excerpt"><p>Over the last couple of months my team at Flytrex had occasion to use intervals more than once, and in both cases the team asked me, &#8220;What&#8217;s the right way to solve this?&#8221;. Since this is a common problem, I thought I&#8217;d write a short post about it. Most interval problems seem deceptively simple, while&hellip;</p>
<p><a class="gb-block-post-grid-more-link gb-text-link" href="https://www.algorithm.co.il/programming/algo/working-with-intervals/" rel="bookmark">Read more <span class="screen-reader-text">Working with Intervals</span></a></p></div></div></article>
<article id="post-919" class="gb-post-grid-item post-919 post type-post status-publish format-standard category-projects tag-deployment tag-git entry"><div class="gb-block-post-grid-text"><header class="gb-block-post-grid-header"><h3 class="gb-block-post-grid-title"><a href="https://www.algorithm.co.il/projects/how-we-deploy-with-git/" rel="bookmark">How we deploy with Git</a></h3><div class="gb-block-post-grid-byline"><div class="gb-block-post-grid-author" itemprop="author" itemtype="https://schema.org/Person"><a class="gb-text-link" href="https://www.algorithm.co.il/author/admin/" itemprop="url" rel="author"><span itemprop="name">admin</span></a></div><time datetime="2020-08-16T10:00:00+03:00" class="gb-block-post-grid-date" itemprop="datePublished">2020-08-16</time></div></header><div class="gb-block-post-grid-excerpt"><p>It seems common practice to have a staging and production branches for deploying your code. A common pattern is to push (or pull request) to these branches, then merge the changes. Then, some system watching this branch will notice, and deploy to the appropriate environment. (Another way this is done is with tags, but I&hellip;</p>
<p><a class="gb-block-post-grid-more-link gb-text-link" href="https://www.algorithm.co.il/projects/how-we-deploy-with-git/" rel="bookmark">Read more <span class="screen-reader-text">How we deploy with Git</span></a></p></div></div></article>
<article id="post-812" class="gb-post-grid-item post-812 post type-post status-publish format-standard category-projects tag-app tag-gamification tag-learntoread tag-lessons tag-mobile-development entry"><div class="gb-block-post-grid-text"><header class="gb-block-post-grid-header"><h3 class="gb-block-post-grid-title"><a href="https://www.algorithm.co.il/projects/5-useful-lessons-from-writing-an-app-for-kids/" rel="bookmark">5 useful lessons from writing an app for kids</a></h3><div class="gb-block-post-grid-byline"><div class="gb-block-post-grid-author" itemprop="author" itemtype="https://schema.org/Person"><a class="gb-text-link" href="https://www.algorithm.co.il/author/lorg/" itemprop="url" rel="author"><span itemprop="name">lorg</span></a></div><time datetime="2020-08-07T16:37:48+03:00" class="gb-block-post-grid-date" itemprop="datePublished">2020-08-07</time></div></header><div class="gb-block-post-grid-excerpt"><p>It always starts with an itch. Today, there aren&#8217;t really many good apps to teach kids to read Hebrew. The best one is &#8220;Kesem&#8217;s Monsters&#8221; &#8211; and when I tried getting my son to play it, it annoyed me. He liked playing it &#8211; but I thought it wasn&#8217;t teaching reading all that well. About&hellip;</p>
<p><a class="gb-block-post-grid-more-link gb-text-link" href="https://www.algorithm.co.il/projects/5-useful-lessons-from-writing-an-app-for-kids/" rel="bookmark">Read more <span class="screen-reader-text">5 useful lessons from writing an app for kids</span></a></p></div></div></article>
</div></section>


<div class="wp-block-buttons all-posts-link">
<div class="wp-block-button"><a class="wp-block-button__link" href="https://www.algorithm.co.il/all-posts/">Browse all posts</a></div>
</div>
</div></div></div>



<div style="padding-left:5%;padding-right:5%;padding-bottom:10%;padding-top:10%" class="wp-block-genesis-blocks-gb-container favourites gb-block-container"><div class="gb-container-inside"><div class="gb-container-content">
<h1 class="section-title">Favourites</h1>


<section class="gb-block-post-grid featuredpost aligncenter posts-gallery"><div class="gb-post-grid-items is-grid columns-3"><article id="post-74" class="gb-post-grid-item post-74 post type-post status-publish format-standard category-algorithms category-favourites category-humour category-programming category-python tag-algorithm tag-natural-language-processing tag-nltk tag-python tag-rhymes tag-xkcd entry"><div class="gb-block-post-grid-text"><header class="gb-block-post-grid-header"><h3 class="gb-block-post-grid-title"><a href="https://www.algorithm.co.il/humour/rhyme-and-reason-with-python/" rel="bookmark">Rhyme and Reason with Python</a></h3><div class="gb-block-post-grid-byline"><div class="gb-block-post-grid-author" itemprop="author" itemtype="https://schema.org/Person"><a class="gb-text-link" href="https://www.algorithm.co.il/author/lorg/" itemprop="url" rel="author"><span itemprop="name">lorg</span></a></div><time datetime="2008-02-06T03:55:22+02:00" class="gb-block-post-grid-date" itemprop="datePublished">2008-02-06</time></div></header><div class="gb-block-post-grid-excerpt"><p>After reading xkcd&#8217;s blog, I went to LimerickDB.com. It looks and works just like bash.org, but for limericks. Quite amused with some of the limericks available, I wanted to try and compose my own. The first one came out fine, but I got stuck without a rhyme for the second one: a man named guido&hellip;</p>
<p><a class="gb-block-post-grid-more-link gb-text-link" href="https://www.algorithm.co.il/humour/rhyme-and-reason-with-python/" rel="bookmark">Read more <span class="screen-reader-text">Rhyme and Reason with Python</span></a></p></div></div></article>
<article id="post-73" class="gb-post-grid-item post-73 post type-post status-publish format-standard category-compilation category-computer-science category-favourites category-programming category-projects category-python tag-compilation tag-fuzzing tag-homework tag-python tag-testing entry"><div class="gb-block-post-grid-text"><header class="gb-block-post-grid-header"><h3 class="gb-block-post-grid-title"><a href="https://www.algorithm.co.il/computer-science/manually-fuzzing-my-own-compiler/" rel="bookmark">Manually fuzzing my own compiler</a></h3><div class="gb-block-post-grid-byline"><div class="gb-block-post-grid-author" itemprop="author" itemtype="https://schema.org/Person"><a class="gb-text-link" href="https://www.algorithm.co.il/author/lorg/" itemprop="url" rel="author"><span itemprop="name">lorg</span></a></div><time datetime="2008-01-30T14:21:36+02:00" class="gb-block-post-grid-date" itemprop="datePublished">2008-01-30</time></div></header><div class="gb-block-post-grid-excerpt"><p>As I mentioned before, I had to write a compiler for simplified CPL. An obvious requirement was that the compiler generate correct code. A less obvious requirement, but important none-the-less, was that after a syntax error, the compiler will keep parsing the source program. Now, the default behavior of a parser generated by Bison for&hellip;</p>
<p><a class="gb-block-post-grid-more-link gb-text-link" href="https://www.algorithm.co.il/computer-science/manually-fuzzing-my-own-compiler/" rel="bookmark">Read more <span class="screen-reader-text">Manually fuzzing my own compiler</span></a></p></div></div></article>
<article id="post-66" class="gb-post-grid-item post-66 post type-post status-publish format-standard category-favourites category-fractals category-math category-programming category-python tag-base-systems tag-dragon-fractal tag-fractal tag-knuth tag-python entry"><div class="gb-block-post-grid-text"><header class="gb-block-post-grid-header"><h3 class="gb-block-post-grid-title"><a href="https://www.algorithm.co.il/math/fractals-in-10-minutes-no-3-the-dragon/" rel="bookmark">Fractals in 10 minutes no. 3 &#8211; The Dragon</a></h3><div class="gb-block-post-grid-byline"><div class="gb-block-post-grid-author" itemprop="author" itemtype="https://schema.org/Person"><a class="gb-text-link" href="https://www.algorithm.co.il/author/lorg/" itemprop="url" rel="author"><span itemprop="name">lorg</span></a></div><time datetime="2008-01-16T14:12:33+02:00" class="gb-block-post-grid-date" itemprop="datePublished">2008-01-16</time></div></header><div class="gb-block-post-grid-excerpt"><p>When first I looked through the pages of the book &#8220;Hacker&#8217;s Delight&#8221;, I found myself looking at the chapter about bases. There I learned a very curious fact &#8211; with the digits of 0,1 and the base of -2, you can represent any integer. Right afterwards I learned something even more interesting &#8211; with the&hellip;</p>
<p><a class="gb-block-post-grid-more-link gb-text-link" href="https://www.algorithm.co.il/math/fractals-in-10-minutes-no-3-the-dragon/" rel="bookmark">Read more <span class="screen-reader-text">Fractals in 10 minutes no. 3 &#8211; The Dragon</span></a></p></div></div></article>
<article id="post-58" class="gb-post-grid-item post-58 post type-post status-publish format-standard category-favourites category-fractals category-graphics category-programming category-python tag-fractals tag-python entry"><div class="gb-block-post-grid-text"><header class="gb-block-post-grid-header"><h3 class="gb-block-post-grid-title"><a href="https://www.algorithm.co.il/programming/fractals-in-10-minutes-no-2-recursive-spring/" rel="bookmark">Fractals in 10 minutes No. 2 &#8211; Recursive Spring</a></h3><div class="gb-block-post-grid-byline"><div class="gb-block-post-grid-author" itemprop="author" itemtype="https://schema.org/Person"><a class="gb-text-link" href="https://www.algorithm.co.il/author/lorg/" itemprop="url" rel="author"><span itemprop="name">lorg</span></a></div><time datetime="2007-12-19T06:00:17+02:00" class="gb-block-post-grid-date" itemprop="datePublished">2007-12-19</time></div></header><div class="gb-block-post-grid-excerpt"><p>Imagine a straight wire. Bend this wire until its ends meet. You get a ring. Next stage. Take another straight wire, bend it as before, but this time, don&#8217;t let the ends meet, instead continue bending the wire more and more, until you get a spring. Now, Think of this spring as the first wire,&hellip;</p>
<p><a class="gb-block-post-grid-more-link gb-text-link" href="https://www.algorithm.co.il/programming/fractals-in-10-minutes-no-2-recursive-spring/" rel="bookmark">Read more <span class="screen-reader-text">Fractals in 10 minutes No. 2 &#8211; Recursive Spring</span></a></p></div></div></article>
<article id="post-54" class="gb-post-grid-item post-54 post type-post status-publish format-standard category-favourites category-math category-programming category-python tag-module-usage tag-python tag-python-packages tag-statistics entry"><div class="gb-block-post-grid-text"><header class="gb-block-post-grid-header"><h3 class="gb-block-post-grid-title"><a href="https://www.algorithm.co.il/math/python-module-usage-statistics-cont/" rel="bookmark">Python module usage statistics &#8211; Cont.</a></h3><div class="gb-block-post-grid-byline"><div class="gb-block-post-grid-author" itemprop="author" itemtype="https://schema.org/Person"><a class="gb-text-link" href="https://www.algorithm.co.il/author/lorg/" itemprop="url" rel="author"><span itemprop="name">lorg</span></a></div><time datetime="2007-11-21T06:11:33+02:00" class="gb-block-post-grid-date" itemprop="datePublished">2007-11-21</time></div></header><div class="gb-block-post-grid-excerpt"><p>Well, very embarrassingly for me, turns out I had a bug in my original post and code. As per Doug&#8217;s suggestion, I tried running the script I wrote on the standard library, and got results I didn&#8217;t quite believe. So I checked them, opened socket.py, and there was an &#8220;import _socket&#8221;. However module &#8220;_socket&#8221; was&hellip;</p>
<p><a class="gb-block-post-grid-more-link gb-text-link" href="https://www.algorithm.co.il/math/python-module-usage-statistics-cont/" rel="bookmark">Read more <span class="screen-reader-text">Python module usage statistics &#8211; Cont.</span></a></p></div></div></article>
<article id="post-52" class="gb-post-grid-item post-52 post type-post status-publish format-standard category-favourites category-math category-programming category-python tag-module-usage tag-python tag-python-packages tag-statistics entry"><div class="gb-block-post-grid-text"><header class="gb-block-post-grid-header"><h3 class="gb-block-post-grid-title"><a href="https://www.algorithm.co.il/math/python-module-usage-statistics/" rel="bookmark">Python module usage statistics</a></h3><div class="gb-block-post-grid-byline"><div class="gb-block-post-grid-author" itemprop="author" itemtype="https://schema.org/Person"><a class="gb-text-link" href="https://www.algorithm.co.il/author/lorg/" itemprop="url" rel="author"><span itemprop="name">lorg</span></a></div><time datetime="2007-11-19T11:45:24+02:00" class="gb-block-post-grid-date" itemprop="datePublished">2007-11-19</time></div></header><div class="gb-block-post-grid-excerpt"><p>IMPORTANT UPDATE: The code I used to create these statistics had some bugs. The fixed statistics are available here. After reading Doug Hellman&#8217;s post about python stdlib modules he needs the documentation to, I commented there that I need the documentation for logging because I don&#8217;t use it too frequently. Later, I thought a little&hellip;</p>
<p><a class="gb-block-post-grid-more-link gb-text-link" href="https://www.algorithm.co.il/math/python-module-usage-statistics/" rel="bookmark">Read more <span class="screen-reader-text">Python module usage statistics</span></a></p></div></div></article>
</div></section>


<p></p>
</div></div></div>
</div></article></main>	<a href="#" class="button scroll-top" id="scroll-top">
 		<i class="arrow up"></i>
	</a>
	</div></div></div><footer class="site-footer" itemscope itemtype="https://schema.org/WPFooter"><div class="wrap">	<div class="flexbox stack-1280">
		
		<div class="logo-footer flex-1 flex-item">
			<small>&#x000A9;&nbsp;2021 <a href="https://www.algorithm.co.il/">Algorithm.co.il</a></small>
			<!-- <img src="https://www.algorithm.co.il/wp-content/themes/algorithm/images/logo/logo.svg" alt="COMPANY NAME logo" /> -->
		</div>
		
	</div>
	</div></footer></div>	<script type="text/javascript">
		function genesisBlocksShare( url, title, w, h ){
			var left = ( window.innerWidth / 2 )-( w / 2 );
			var top  = ( window.innerHeight / 2 )-( h / 2 );
			return window.open(url, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width=600, height=600, top='+top+', left='+left);
		}
	</script>
	<script type='text/javascript' src='https://www.algorithm.co.il/wp-content/plugins/genesis-blocks/dist/assets/js/dismiss.js?ver=1621550315' id='genesis-blocks-dismiss-js-js'></script>
<script type='text/javascript' src='https://www.algorithm.co.il/wp-content/plugins/wp-syntax/js/wp-syntax.js?ver=1.1' id='wp-syntax-js-js'></script>
<script type='text/javascript' src='https://www.algorithm.co.il/wp-content/themes/genesis/lib/js/skip-links.min.js?ver=3.3.3' id='skip-links-js'></script>
<script type='text/javascript' id='algorithm-responsive-menu-js-extra'>
/* <![CDATA[ */
var genesis_responsive_menu = {"mainMenu":"Menu","menuIconClass":"dashicons-before dashicons-menu","subMenu":"Submenu","subMenuIconClass":"dashicons-before dashicons-arrow-down-alt2","menuClasses":{"combine":[".nav-primary"],"others":[]}};
/* ]]> */
</script>
<script type='text/javascript' src='https://www.algorithm.co.il/wp-content/themes/algorithm/js/responsive-menus.min.js?ver=1.0' id='algorithm-responsive-menu-js'></script>
<script type='text/javascript' src='https://www.algorithm.co.il/wp-content/themes/algorithm/js/algorithm.js?ver=1.0' id='algorithm-js'></script>
<script type='text/javascript' src='https://www.algorithm.co.il/wp-content/themes/algorithm/js/smooth-scroll.js?ver=1.0' id='smooth-scroll-js'></script>
<script type='text/javascript' src='https://www.algorithm.co.il/wp-includes/js/wp-embed.min.js?ver=5.5.5' id='wp-embed-js'></script>
</body></html>
