PageSourceSearch

https://www.i-programmer.info/

html i-programmer.info collected 2026-09-24 08:39:56 UTC 62,538 bytes, 715 lines download raw bytes

1
2<!DOCTYPE html>
3<html lang="en-gb" dir="ltr">
4    <head>
5		<!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 66 bytes, lines 5-6
5
6	<script async src="https://www.googletagmanager.com/gtag/js?id=
6UA-9645537-2
vendor: 14 bytes, lines 6-7
6"></script>
7	
7<script>
8	  
vendor: 141 bytes, lines 8-12
8window.dataLayer = window.dataLayer || [];
9	  function gtag(){dataLayer.push(arguments);}
10	  gtag('js', new Date());
11
12	  gtag('config', '
12UA-9645537-2
vendor: 6 bytes, lines 12-13
12');
13	
13</script>
13
14        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
15		<link rel="canonical" href="https://www.i-programmer.info" />
16      <base href="https://www.i-programmer.info/" />
17  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
18  <meta name="robots" content="index, follow" />
19  <meta name="keywords" content="Programming book reviews, programming tutorials,programming news, developer news,software programmer news, C#, Ruby, Python,C, C++, PHP, Visual Basic, Computer book reviews, computer history, programming history, joomla, theory, spreadsheets, developer book reviews, programmer news, developer news, news" />
20  <meta name="description" content="Programming book reviews, programming tutorials,programming news, C#, Ruby, Python,C, C++, PHP, Visual Basic, Computer book reviews, computer history, programming history, joomla, theory, spreadsheets and more." />
21  <meta name="generator" content="I Programmer CMS" />
22  <title>i-programmer.info</title>
23  <link href="/index.php?format=feed&amp;type=rss" rel="alternate" type="application/rss+xml" title="RSS 2.0" />
24  <link href="/index.php?format=feed&amp;type=atom" rel="alternate" type="application/atom+xml" title="Atom 1.0" />
25  <link href="/templates/rhuk_milkyway/favicon.ico" rel="shortcut icon" type="image/x-icon" />
26  <link href="https://www.i-programmer.info/index.php?option=com_ninjarsssyndicator&amp;feed_id=3&amp;format=raw" rel="alternate" type="application/rss+xml" title="I Programmer - full contents" />
27  
27<script type="text/javascript" src="/media/system/js/mootools.js"></script>
27
28  
28<script type="text/javascript" src="/media/system/js/caption.js"></script>
28
29  <link rel="stylesheet" type="text/css" href="/modules/mod_minifrontpage/css/style.css" title="default" />
30  <link rel="stylesheet" type="text/css" href="/modules/mod_minifrontpage/css/style.css" title="default" />
31
32  
33    <!--iprogrammer scripts-->
34    
34<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
34
35     
35<script src="/includes/js/iprogrammer/frontpage.js" type="text/javascript"></script>
35
36
37
38    <link rel="stylesheet"
39          href="/templates/news/css/template.css"
40          type="text/css" />
41    <link href="https://fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet">
42
43</head>
44
45<body class="site" >
46     <!-- Body -->
47    <div class="body" id="top">
48        <div class="container">
49            <!-- Header -->
50            <header class="header" role="banner">
51                <div class="header-inner clearfix">
52                    <div class="header-search pull-left">
53                        <div class="bannergroup">
54
55<div class="banneritem"><div id="iptop"></div>
56<script>
57
58IPtop={};
59IPtop.UK=[];
60
61IPtop.World=[];
62IPtop.World[0]={};
63IPtop.World[0].name="ianbooksTop";
64IPtop.World[0].code='<a href="/component/banners/click/359.html" target="_blank"><img src="https://www.i-programmer.info/images/banners/ianElliot.gif" alt="Banner"></a>';
65IPtop.World[0].W=1;
66
67IPtop.World[1]={};
68IPtop.World[1].name="mikebooksTop";
69IPtop.World[1].code='<a href="/component/banners/click/361.html" target="_blank"><img src="https://www.i-programmer.info/images/banners/fourmike.gif" alt="Banner"></a>';
70IPtop.World[1].W=1;
71
72IPtop.World[2]={};
73IPtop.World[2].name="effectus";
74IPtop.World[2].code='<iframe width="728" height="90" scrolling=No frameborder=0 marginheight=0 marginwidth=0 src="https://effectus.nui.media/pipeline/674042/0/vh?z=effectus&dim=602464&kw=&click=">';
75IPtop.World[2].code+='
75<script type="text/javascript" language="JavaScript" src="https://effectus.nui.media/pipeline/674042/0/vj?z=effectus&dim=602464&kw=&click=&abr=$scriptiniframe">';
76IPtop.World[2].code+="<\/script>";
77IPtop.World[2].code+='<noscript><a href="https://effectus.nui.media/pipeline/674042/0/cc?z=effectus"><img src="https://effectus.nui.media/pipeline/674042/0/vc?z=effectus&dim=602464&kw=&click=&abr=$imginiframe" width="728" height="90" alt="" border="0">';
78IPtop.World[2].code+="<\/a><\/noscript><\/iframe>";
79IPtop.World[2].W=0;
80
81IPtop.World[3]={};
82IPtop.World[3].name="GoogleTop";
83IPtop.World[3].code='
83<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"><\/script>';
84IPtop.World[3].code+='<ins class="adsbygoogle"';
85IPtop.World[3].code+='style="display:inline-block;width:728px;height:90px"';
86IPtop.World[3].code+='data-ad-client="ca-pub-9936000140414196" data-ad-slot="6248088135"></ins>';
87IPtop.World[3].code+='
87<script>(adsbygoogle = window.adsbygoogle || []).push({});<\/script>';
88IPtop.World[3].W=1;
89
90IPtop.World[4]={};
91IPtop.World[4].name="LQTop";
92IPtop.World[4].code='<div data-type="ad" data-publisher="lqm.iprogrammer.site" data-format="728x90" data-zone="ros" ></div>';
93IPtop.World[4].W=0;
94
95IPtop.World[5]={};
96IPtop.World[5].name="harrybooksTop";
97IPtop.World[5].code='<a href="/component/banners/click/379.html" target="_blank"><img src="https://www.i-programmer.info/images/banners/HarryF.gif" alt="Banner"></a>';
98IPtop.World[5].W=1;
99
100IPtop.World[6]={};
101IPtop.World[6].name="JanetbooksTop";
102IPtop.World[6].code='<a href="/component/banners/click/380.html" target="_blank"><img src="https://www.i-programmer.info/images/banners/topbannerswift.jpg" alt="Banner"></a>';
103IPtop.World[6].W=1;
104
105IPtop.World[7]={};
106IPtop.World[7].name="Python";
107IPtop.World[7].code='<a href="/component/banners/click/391.html" target="_blank"><img src="https://www.i-programmer.info/images/banners/python.gif" alt="Banner"></a>';
108IPtop.World[7].W=1;
109
110IPtop.World[8]={};
111IPtop.World[8].name="Undemy2";
112IPtop.World[8].code='<a href="https://click.linksynergy.com/fs-bin/click?id=d2N6hGst4zs&offerid=1060092.28884&subid=0&type=4"><IMG border="0"   alt="Knowledge opens doors. Courses on sale from $13.99" src="https://ad.linksynergy.com/fs-bin/show?id=d2N6hGst4zs&bids=1060092.28884&subid=0&type=4&gridnum=16"></a>';
113IPtop.World[8].W=0;
114
115IPtop.World[9]={};
116IPtop.World[9].name="ESP32";
117IPtop.World[9].code='<a href="/component/banners/click/392.html" target="_blank"><img src="https://www.i-programmer.info/images/banners/ESP32.gif" alt="Banner"></a>';
118IPtop.World[9].W=1;
119
120IPtop.World[10]={};
121IPtop.World[10].name="Pico";
122IPtop.World[10].code='<a href="/component/banners/click/390.html" target="_blank"><img src="https://www.i-programmer.info/images/banners/Pico.gif" alt="Banner"></a>';
123IPtop.World[10].W=1;
124
125//IPtop.Region = document.cookie.match(/Region=COM|Region=UK|Region=CA|Region=FR|Region=DE|Region=JP|Region=CN|Region=BR|Region=ES|Region=IT/)[0];
126//if (IPtop.Region === null) IPtop.Region = "COM";
127//IPtop.Region = IPtop.Region.match(/COM|UK|CA|FR|DE|JP|CN|BR|ES|IT/)[0];
128IPtop.Region = "COM";
129IPtop.div=jQuery("#iptop");
130if(IPtop.Region==="UK" && IPtop.UK.length>0 && Math.random()<0.5){
131        IPtop.num = Math.floor(Math.random() * IPtop.UK.length);
132        IPtop.div.append(IPtop.UK[IPtop.num].code);
133        gtag('event', IPtop.UK[IPtop.num].name, {
134        'event_category': "Adverts"
135});
136}else{
137
138       IPtop.tot=0;
139       for(i=0;i<IPtop.World.length;i++){
140         IPtop.tot += IPtop.World[i].W;
141       }  
142       IPtop.num = IPtop.World.length-1;
143       IPtop.random=Math.floor(Math.random()*IPtop.tot);
144       IPtop.tot=0;
145       for(i=0;i<IPtop.World.length;i++){
146          IPtop.tot+=IPtop.World[i].W;
147          if(IPtop.random<IPtop.tot){
148           IPtop.num = i;
149            break;
150          }
151       }  
152
153      
154       IPtop.div.append(IPtop.World[IPtop.num].code);
155       gtag('event', IPtop.World[IPtop.num].name,    {'event_category':"Adverts"});
156};
157
158</script>
158<div class="clr"></div>
159	</div>
160
161</div>
162                    </div>
163                    <!-- Load Icons -->
164<svg class="icon" aria-hidden="true" style="position: absolute; width: 0; height: 0; overflow: hidden;" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
165    <defs>
166        <symbol id="iconsearch" viewBox="0 0 32 32">
167            <title>search</title>
168            <path d="M31.008 27.231l-7.58-6.447c-0.784-0.705-1.622-1.029-2.299-0.998 1.789-2.096 2.87-4.815 2.87-7.787 0-6.627-5.373-12-12-12s-12 5.373-12 12 5.373 12 12 12c2.972 0 5.691-1.081 7.787-2.87-0.031 0.677 0.293 1.515 0.998 2.299l6.447 7.58c1.104 1.226 2.907 1.33 4.007 0.23s0.997-2.903-0.23-4.007zM12 20c-4.418 0-8-3.582-8-8s3.582-8 8-8 8 3.582 8 8-3.582 8-8 8z"></path>
169        </symbol>
170    </defs>
171</svg>
172<svg aria-hidden="true" style="position: absolute; width: 0; height: 0; overflow: hidden;" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
173<defs>
174    <symbol id="icon-cog" viewBox="0 0 32 32">
175<title>cog</title>
176<path d="M29.181 19.070c-1.679-2.908-0.669-6.634 2.255-8.328l-3.145-5.447c-0.898 0.527-1.943 0.829-3.058 0.829-3.361 0-6.085-2.742-6.085-6.125h-6.289c0.008 1.044-0.252 2.103-0.811 3.070-1.679 2.908-5.411 3.897-8.339 2.211l-3.144 5.447c0.905 0.515 1.689 1.268 2.246 2.234 1.676 2.903 0.672 6.623-2.241 8.319l3.145 5.447c0.895-0.522 1.935-0.82 3.044-0.82 3.35 0 6.067 2.725 6.084 6.092h6.289c-0.003-1.034 0.259-2.080 0.811-3.038 1.676-2.903 5.399-3.894 8.325-2.219l3.145-5.447c-0.899-0.515-1.678-1.266-2.232-2.226zM16 22.479c-3.578 0-6.479-2.901-6.479-6.479s2.901-6.479 6.479-6.479c3.578 0 6.479 2.901 6.479 6.479s-2.901 6.479-6.479 6.479z"></path>
177</symbol>
178</defs>
179</svg>
180
181
182<!-- Logo -->
183
184<nav class="navigation pull-left" role="navigation" style="clear:both">
185    <div class="nav">
186        <ul class="nav menu nav-pills">
187
188            <li class="item-998 active pull-right">
189                <a href="https://www.i-programmer.info">                   
190                    I Programmer HOME
191                </a>
192            </li>
193        </ul>
194    </div>
195</nav>
196<nav class="navigation pull-left" role="navigation" >
197
198    <!-- Collapse place holder -->
199    <div class="navbar pull-left">
200        <a class="btn btn-navbar collapsed" data-toggle="collapse" data-target=".nav-collapse">
201            <span class="element-invisible">Toggle Navigation</span>
202            <span class="icon-bar"></span>
203            <span class="icon-bar"></span>
204            <span class="icon-bar"></span>
205        </a>
206    </div>
207
208    <!-- Collapse part of main menu -->
209    <div class="nav-collapse pull-left collapse" >
210        <ul class="nav menu nav-pills" >           
211            <!-- BOOKS -->
212            <li class="item-110 active">
213                <a>Books</a>
214                <ul class="nav-child">
215                    <li class="item-102">
216                        <a href="/bookreviews.html" >Book Reviews</a>
217                    </li>
218                    <li class="item-115">
219                        <a href="/book-watch-archive.html" >Book Watch</a>
220                    </li>
221                    <li class="item-167">
222                        <a href="/professional-programmer/183-programmers-bookshelf.html" >Programmer's Bookshelf</a>
223                    </li>
224                </ul>
225            </li>
226            <!-- ARTICLES -->
227            <li class="item-111 active">
228                <a>Articles</a>
229                <ul class="nav-child">
230
231                    <li class="item-116">
232                        <a>The Core</a>
233                        <ul class="nav-child">
234						    <li class="item-153">
235                                <a href="/programming/211-android.html">Android</a>
236                            </li>
237							<li class="item-138">
238                                <a href="/programming/102-artificial-intelligence.html" >Artifical Intelligence</a>
239                            </li>						
240                            <li class="item-117">
241                                <a href="/programming/195-python.html" >Python</a>
242                            </li>
243                            <li class="item-118">
244                                <a href="/programming/113-javascript.html" >Javascript</a>
245                            </li>
246                            <li class="item-132">
247                                <a href="/programming/54-wpf-workings.html" >WPF Workings</a>
248                            </li>
249                            <li class="item-133">
250                                <a href="/programming/55-joomla.html" >Joomla</a>
251                            </li>
252                            <li class="item-134">
253                                <a href="/programming/56-php.html" >PHP</a>
254                            </li>
255                            <li class="item-135">
256                                <a href="/programming/72-theory.html" >Theory</a>
257                            </li>
258                            <li class="item-136">
259                                <a href="/programming/79-silverlight.html" >Silverlight</a>
260                            </li>
261                            <li class="item-137">
262                                <a href="/programming/100-c.html" >C#</a>
263                            </li>                     
264                            <li class="item-139">
265                                <a href="/programming/108-other-languages.html" >Other Languages</a>
266                            </li>
267                            <li class="item-140">
268                                <a href="/programming/109-visual-basic.html" >Visual Basic</a>
269                            </li>
270                            <li class="item-141">
271                                <a href="/programming/111-cc.html" >C/C++</a>
272                            </li>
273                            <li class="item-142">
274                                <a href="/programming/117-mobile.html" >Mobile</a>
275                            </li>
276                            <li class="item-143">
277                                <a href="/programming/139-database.html" >Database</a>
278                            </li>
279                            <li class="item-144">
280                                <a href="/programming/147-asp-net.html" >ASP .NET</a>
281                            </li>
282                            <li class="item-145">
283                                <a href="/programming/148-hardware.html" >Hardware/IoT</a>
284                            </li>
285                            <li class="item-146">
286                                <a href="/programming/153-graphics-and-imaging.html" >Graphics/Imaging</a>
287                            </li>
288                            <li class="item-147">
289                                <a href="/programming/154-uiux.html" >UI/UX</a>
290                            </li>
291                            <li class="item-148">
292                                <a href="/programming/176-perl.html" >Perl</a>
293                            </li>
294                            <li class="item-149">
295                                <a href="/programming/179-winrt.html" >WinRT</a>
296                            </li>
297                            <li class="item-150">
298                                <a href="/programming/180-htmlcss.html">HTML/CSS</a>
299                            </li>
300                            <li class="item-151">
301                                <a href="/programming/207-jquery.html" >jQuery</a>
302                            </li>
303                            <li class="item-152">
304                                <a href="/programming/210-ruby.html" >Ruby</a>
305                            </li>
306                            <li class="item-154">
307                                <a href="/programming/223-security.html" >Security</a>
308                            </li>
309                            <li class="item-155">
310                                <a href="/programming/226-methodology-a-testing.html" >Methodology & Testing</a>
311                            </li>
312                            <li class="item-156">
313                                <a href="/programming/228-cloud.html">Cloud</a>
314                            </li>
315							<li class="item-157">
316                                <a href="/programming/241-devops.html">DevOps</a>
317                            </li>
318							<li class="item-158">
319                                <a href="/programming/178-java.html">Java</a>
320                            </li>
321                        </ul>
322                    </li>
323                    <li class="item-197 active">
324                        <a href="/babbages-bag.html">Babbage's Bag</a>          
325                    </li>
326
327                    <li class="item-122 active">
328                        <a href="/projects.html">Projects</a>          
329                    </li>
330
331                    <li class="item-168 active">
332                        <a>Programmer Puzzles</a>
333                        <ul class="nav-child">
334                            <li class="item-172">
335                                <a href="/programmer-puzzles/140-c.html" >C#</a>
336                            </li>
337                            <li class="item-173">
338                                <a href="/programmer-puzzles/168-cpp.html" >C++</a>
339                            </li>
340                            <li class="item-174">
341                                <a href="/programmer-puzzles/170-java.html" >Java</a>
342                            </li>
343                            <li class="item-175">
344                                <a href="/programmer-puzzles/137-javascript.html" >JavaScript</a>
345                            </li>
346                            <li class="item-177">
347                                <a href="/programmer-puzzles/212-python.html" >Python</a>
348                            </li>
349			    <li class="item-179">
350                                <a href="/programmer-puzzles/142-php.html" >PHP</a>
351                            </li>
352                            <li class="item-178">
353                                <a href="/programmer-puzzles/203-sharpen-your-coding-skills.html" >Sharpen Your Coding Skills</a>
354                            </li>
355                        </ul>
356                    </li>
357
358                    <li class="item-109 active">
359                        <a>History</a>
360                        <ul class="nav-child">
361                            <li class="item-119">
362                                <a href="/history/9-machines.html" >Machines</a>
363                            </li>
364                            <li class="item-120">
365                                <a href="/history/8-people.html" >People</a>
366                            </li>
367                            <li class="item-120">
368                                <a href="/history/57-computer-languages.html" >Software & computer languages</a>
369                            </li>
370                        </ul>
371                    </li>
372
373                    <li class="item-158 active">
374                        <a>Swift's Spreadsheets</a>
375                        <ul class="nav-child">
376                            <li class="item-159">
377                                <a href="/spreadsheets/53-finance.html" >Finance</a>
378                            </li>
379                            <li class="item-160">
380                                <a href="/spreadsheets/58-personal.html" >Personal</a>
381                            </li>
382                            <li class="item-161">
383                                <a href="/spreadsheets/60-general.html" >General</a>
384                            </li>
385                        </ul>
386                    </li>
387                    <li class="item-163 active">
388                        <a>Professional Programmer</a>
389                        <ul class="nav-child">
390                            <li class="item-164">
391                                <a href="/professional-programmer/67-certification.html" >Accreditation & Training</a>
392                            </li>
393                            <li class="item-166">
394                                <a href="/professional-programmer/103-i-programmer.html" >I Programmer</a>
395                            </li>
396                            <li class="item-166">
397                                <a href="/professional-programmer/127-resources-and-tools.html" >
397Resources and Tools</a>
398                            </li>
399                        </ul>
400                    </li>
401                    <li class="item-170 active">
402                        <a href="/i-programmer-weekly.html">I Programmer Weekly</a>          
403                    </li>
404                    <li class="item-171 active">
405                        <a href="/ebooks.html">eBooks</a>          
406                    </li>
407                    <li class="item-162 active">
408                        <a href="/the-stone-tapes.html">Stone Tapes</a>          
409                    </li>
410                    <li class="item-169 active">
411                        <a href="/codebin.html">CodeBin</a>          
412                    </li>
413                </ul>
414            </li>
415            <!-- NEWS -->
416            <li class="item-112 active">
417                <a href="/news.html" >News</a>
418            </li>
419    </div>
420</nav>
421<!-- 'Sticky' (non-collapsing) right-side menu item(s) -->
422<nav class="navigation pull-right" role="navigation" >
423    <div class="nav">
424        <ul class="nav menu nav-pills">
425
426            <li class="item-998 active pull-right">
427                <a>                   
428                    <svg class="icon">
429                        <use xlink:href="#icon-cog"/>
430                    </svg>
431                </a>
432                <ul class="nav-child">
433                    <li class="item-129">
434                        <a href="/register.html" >Register</a>
435                    </li>
436                    <li class="item-131">
437                        <a href="/about-us.html" >About Us</a>
438                    </li>
439                </ul>
440            </li>
441
442            <li class="item-999 active pull-right">
443                <a href="/search.html" >
444                    <svg class="icon">
445                        <use xlink:href="#iconsearch"/>
446                    </svg>
447                </a>
448            </li>
449
450
451        </ul>
452
453        </ul>
454    </div>
455</nav>
456
457                </div>
458
459            </header>
460
461           
462            <!--
463                       
464            -->
465            <div class="row-fluid">   
466
467                <main id="content" role="main" class="fixedwidth600"> 
468
469                    <!-- Begin Content -->
470                    
471                    
472
473
474                    <div class="blog-featured" itemscope="" itemtype="https://schema.org/Blog">
475
476                        <div class="items-row cols-2 row-0 row-fluid">
477                            <!-- First column -->  
478                            <div class="item column-1 fixedwidth300" itemprop="blogPost" itemscope="" itemtype="https://schema.org/BlogPosting">
479                              <!-- NEWS --> 
480                                <h1><span style="color: #ff0000;">Programming News and Views</span></h1>
481                                <p><strong>Send your programming press releases, news items or comments to</strong>: <a href="mailto:[email protected]">[email protected]</a></p>
482                                
483<table width="100%" class="minifp"><tr> 
484		<td valign="top" width="100%" class="minifp"><hr/><span class="minifp-introtitle"><a href="/news/245-view-point/19164-ai-has-no-motivation.html">AI Has No Motivation</a></span><br class="minifp-seperator" /><span class="minifp-date">23 Sep</span> | <span class="minifp-date">Mike James</span><br class="minifp-seperator" /><a href="/news/245-view-point/19164-ai-has-no-motivation.html"><img src="https://www.i-programmer.info/images/stories/minifp//AIchaos_thumb.jpg" width="120" height="91" align="left" alt="article thumbnail"  /></a><p><p>We seem to be worried a lot about the threat from AI going rogue, and there are lots of examples of it doing just that. However, they are all misrepresentations, as AI has no intent and no motivation.</p>
485</p><br class="minifp-seperator" /> 
486			<div class="minifp-full-link-wrp"><a class="minifp-full-link" href="/news/245-view-point/19164-ai-has-no-motivation.html">+ Full Story</a></div></td></tr><tr> 
487		<td valign="top" width="100%" class="minifp"><hr/><span class="minifp-introtitle"><a href="/news/105-artificial-intelligence/19165-gpt-6-astra-scores-at-cryptanalysis.html">GPT-6 Astra Scores At Cryptanalysis</a></span><br class="minifp-seperator" /><span class="minifp-date">23 Sep</span> | <span class="minifp-date">Sue Gee</span><br class="minifp-seperator" /><a href="/news/105-artificial-intelligence/19165-gpt-6-astra-scores-at-cryptanalysis.html"><img src="https://www.i-programmer.info/images/stories/News/2018/Sep/B/enigmasoldatauction.JPG" width="100" height="120" align="left" alt="article thumbnail"  /></a><p><p>OpenAI's latest generation LLM has successfully deciphered unsolved coded messages from both World War I and World War II, demonstrating yet another area of expertise. Is this a 
487superhuman achievement?</p>
488</p><br class="minifp-seperator" /> 
489			<div class="minifp-full-link-wrp"><a class="minifp-full-link" href="/news/105-artificial-intelligence/19165-gpt-6-astra-scores-at-cryptanalysis.html">+ Full Story</a></div></td></tr><tr> 
490		<td valign="top" width="100%" class="minifp"><hr/><span class="minifp-introtitle"><a href="/news/105-artificial-intelligence/19162-cloudflare-os-an-open-ai-platform-for-enterprise-work.html">Cloudflare OS: An Open AI Platform For Enterprise Work</a></span><br class="minifp-seperator" /><span class="minifp-date">22 Sep</span> | <span class="minifp-date">Nikos Vaggalis</span><br class="minifp-seperator" /><a href="/news/105-artificial-intelligence/19162-cloudflare-os-an-open-ai-platform-for-enterprise-work.html"><img src="https://www.i-programmer.info/images/stories/minifp//cloudflarelogo_thumb.jpg" width="120" height="120" align="left" alt="article thumbnail"  /></a><p><p>Cloudflare OS is an open source productivity platform designed to integrate AI agents, custom applications and secure corporate workflows into a unified workspace.</p>
491</p><br class="minifp-seperator" /> 
492			<div class="minifp-full-link-wrp"><a class="minifp-full-link" href="/news/105-artificial-intelligence/19162-cloudflare-os-an-open-ai-platform-for-enterprise-work.html">+ Full Story</a></div></td></tr><tr> 
493		<td valign="top" width="100%" class="minifp"><hr/><span class="minifp-introtitle"><a href="/news/90-tools/19161-google-releases-adk-for-kotlin.html">Google Releases ADK For Kotlin</a></span><br class="minifp-seperator" /><span class="minifp-date">22 Sep</span> | <span class="minifp-date">Mike James</span><br class="minifp-seperator" /><a href="/news/90-tools/19161-google-releases-adk-for-kotlin.html"><img src="https://www.i-programmer.info/images/stories/minifp//kotlinlogo_thumb.jpg" width="120" height="122" align="left" alt="article thumbnail"  /></a><p><p>Google has released version 1.0 of the Agent Development Kit (ADK) for Kotlin. The ADK comes with a set of tools, custom functions, and OpenAPI specs which can be used to define agent logic, tools, and orchestration directly in Kotlin.</p>
494</p><br class="minifp-seperator" /> 
495			<div class="minifp-full-link-wrp"><a class="minifp-full-link" href="/news/90-tools/19161-google-releases-adk-for-kotlin.html">+ Full Story</a></div></td></tr><tr> 
496		<td valign="top" width="100%" class="minifp"><hr/><span class="minifp-introtitle"><a href="/news/80-java/19158-java-27-released-whats-new.html">Java 27 Released - What's New?</a></span><br class="minifp-seperator" /><span class="minifp-date">21 Sep</span> | <span class="minifp-date">Nikos Vaggalis</span><br class="minifp-seperator" /><a href="/news/80-java/19158-java-27-released-whats-new.html"><img src="https://www.i-programmer.info/images/stories/News/2026/April/A/openjdk_logo.JPG" width="100" height="100" align="left" alt="article thumbnail"  /></a><p><p>Java 27 brings 9 official JDK Enhancement Proposals, comprising of 4 finalized features, 4 preview features, and 1 incubator feature, along with several notable runtime cleanups and performance improvements.</p>
497</p><br class="minifp-seperator" /> 
498			<div class="minifp-full-link-wrp"><a class="minifp-full-link" href="/news/80-java/19158-java-27-released-whats-new.html">+ Full Story</a></div></td></tr><tr> 
499		<td valign="top" width="100%" class="minifp"><hr/><span class="minifp-introtitle"><a href="/news/98-languages/19160-swift-64-improves-interoperability.html">Swift 6.4 Improves Interoperability</a></span><br class="minifp-seperator" /><span class="minifp-date">21 Sep</span> | <span class="minifp-date">Kay Ewbank</span><br class="minifp-seperator" /><a href="/news/98-languages/19160-swift-64-improves-interoperability.html"><img src="https://www.i-programmer.info/images/stories/minifp//swiftlogo_thumb.jpg" width="120" height="120" align="left" alt="article thumbnail"  /></a><p><p>Apple has released Swift 6.4 with enhanced interoperability, and a new stable, cross-platform way to run and interact with other programs from Swift, from command-line tools to streaming processes.</p>
500</p><br class="minifp-seperator" /> 
501			<div class="minifp-full-link-wrp"><a class="minifp-full-link" href="/news/98-languages/19160-swift-64-improves-interoperability.html">+ Full Story</a></div></td></tr><tr> 
502		<td valign="top" width="100%" class="minifp"><hr/><span class="minifp-introtitle"><a href="/news/105-artificial-intelligence/19157-smart-weed-killing-at-scale.html">Smart Weed-Killing At Scale</a></span><br class="minifp-seperator" /><span class="minifp-date">20 Sep</span> | <span class="minifp-date">Lucy Black</span><br class="minifp-seperator" /><a href="/news/105-artificial-intelligence/19157-smart-weed-killing-at-scale.html"><img src="https://www.i-programmer.info/images/stories/News/2026/Sep/B/Weed_Zap.JPG" width="100" height="122" align="left" alt="article thumbnail"  /></a><p><p>The claims made this month that AI could be an existential threat to humans and wipe out mankind within the decade may have dented our confidence and optimism in what the era of AI brings. However, it being an existential threat to weeds in agricultural crops sounds much more promising,&nbsp;</p>
503</p><br class="minifp-seperator" /> 
504			<div class="minifp-full-link-wrp"><a class="minifp-full-link" href="/news/105-artificial-intelligence/19157-smart-weed-killing-at-scale.html">+ Full Story</a></div></td></tr><tr> 
505		<td valign="top" width="100%" class="minifp"><hr/><span class="minifp-introtitle"><a href="/i-programmer-weekly/246-i-programmer-weekly-2026/19152-september-week-2.html">September Week 2</a></span><br class="minifp-seperator" /><span class="minifp-date">19 Sep</span> | <span class="minifp-date">Editor</span><br class="minifp-seperator" /><a href="/i-programmer-weekly/246-i-programmer-weekly-2026/19152-september-week-2.html"><img src="https://www.i-programmer.info/images/stories/minifp//IP2_thumb.jpg" width="100" height="99" align="left" alt="article thumbnail"  /></a><p><p>Get up to speed on stuff that affects with our weekly digest. It summarizes the week's news together and includes new titles selected for our Book Watch Archive. This week to mark the date that would have been Dennis Ritchie's 85th birthday, we've raided our history section to bring you the story of the creators of C and Unix.</p>
506</p><br class="minifp-seperator" /> 
507			<div class="minifp-full-link-wrp"><a class="minifp-full-link" href="/i-programmer-weekly/246-i-programmer-weekly-2026/19152-september-week-2.html">+ Full Story</a></div></td></tr><tr> 
508		<td valign="top" width="100%" class="minifp"><hr/><span class="minifp-introtitle"><a href="/news/82-heritage/19037-j-w-cooley-of-fft-fame-born-100-years-ago.html">Cooley Of FFT Fame Born 100 Years Ago</a></span><br class="minifp-seperator" /><span class="minifp-date">18 Sep</span> | <span class="minifp-date">Mike James</span><br class="minifp-seperator" /><a href="/news/82-heritage/19037-j-w-cooley-of-fft-fame-born-100-years-ago.html"><img src="https://www.i-programmer.info/images/stories/minifp//FFTdiagram_thumb.jpg" width="120" height="83" align="left" alt="article thumbnail"  /></a><p><p>There was a time when the Fast Fourier Transform was the star of the show, but today it is simply the foundation that we take for granted. This makes it no less amazing. We celebrate it on the occasion of the 100th birthday of one of its inventors.</p>
509</p><br class="minifp-seperator" /> 
510			<div class="minifp-full-link-wrp"><a class="minifp-full-link" href="/news/82-heritage/19037-j-w-cooley-of-fft-fame-born-100-years-ago.html">+ Full Story</a></div></td></tr><tr> 
511		<td valign="top" width="100%" class="minifp"><hr/><span class="minifp-introtitle"><a href="/news/216-python/19155-what-happened-at-pycon-us-2026.html">What Happened At PyCon US 2026</a></span><br class="minifp-seperator" /><span class="minifp-date">18 Sep</span> | <span class="minifp-date">Nikos Vaggalis</span><br class="minifp-seperator" /><a href="/news/216-python/19155-what-happened-at-pycon-us-2026.html"><img src="https://www.i-programmer.info/images/stories/minifp//pyconlogo_thumb.jpg" width="120" height="120" align="left" alt="article thumbnail"  /></a><p><p>PyCon US is the largest and longest running annual gathering of the Python community. We provide an overview of this year's event.</p>
512</p><br class="minifp-seperator" /> 
513			<div class="minifp-full-link-wrp"><a class="minifp-full-link" href="/news/216-python/19155-what-happened-at-pycon-us-2026.html">+ Full Story</a></div></td></tr><tr> 
514		<td valign="top" width="100%" class="minifp"><hr/><span class="minifp-introtitle"><a href="/news/98-languages/19154-nvidia-introduces-cuda-gpu-programming-in-rust.html">NVidia Introduces CUDA GPU Programming In Rust</a></span><br class="minifp-seperator" /><span class="minifp-date">17 Sep</span> | <span class="minifp-date">Kay Ewbank</span><br class="minifp-seperator" /><a href="/news/98-languages/19154-nvidia-introduces-cuda-gpu-programming-in-rust.html"><img src="https://www.i-programmer.info/images/stories/minifp//nvidia_thumb.jpg" width="114" height="109" align="left" alt="article thumbnail"  /></a><p><p>NVIDIA has announced a new Rust environment for writing native GPU kernels. CUDA Rust will join CUDA C++ and CUDA Python in NVIDIA's range of CUDA languages.&nbsp;</p>
515</p><br class="minifp-seperator" /> 
516			<div class="minifp-full-link-wrp"><a class="minifp-full-link" href="/news/98-languages/19154-nvidia-introduces-cuda-gpu-programming-in-rust.html">+ Full Story</a></div></td></tr><tr> 
517		<td valign="top" width="100%" class="minifp"><hr/><span class="minifp-introtitle"><a href="/news/98-languages/19153-julia-113-improves-latency.html">Julia 1.13 Improves Latency</a></span><br class="minifp-seperator" /><span class="minifp-date">17 Sep</span> | <span class="minifp-date">Kay Ewbank</span><br class="minifp-seperator" /><a href="/news/98-languages/19153-julia-113-improves-latency.html"><img src="https://www.i-programmer.info/images/stories/minifp//julialogo1_thumb.jpg" width="120" height="92" align="left" alt="article thumbnail"  /></a><p><p>Julia 1.13 has been released. This version improves latency and the Julia REPL now has syntax highlighting.</p>
518</p><br class="minifp-seperator" /> 
519			<div class="minifp-full-link-wrp"><a class="minifp-full-link" href="/news/98-languages/19153-julia-113-improves-latency.html">+ Full Story</a></div></td></tr><tr> 
520		<td valign="top" width="100%" class="minifp"><hr/><span class="minifp-introtitle"><a href="/news/105-artificial-intelligence/19150-open-ai-claims-ai-has-solved-a-millenium-prize-problem.html">Open AI Claims AI Has Solved A Millenium Prize Problem</a></span><br class="minifp-seperator" /><span class="minifp-date">16 Sep</span> | <span class="minifp-date">Sue Gee</span><br class="minifp-seperator" /><a href="/news/105-artificial-intelligence/19150-open-ai-claims-ai-has-solved-a-millenium-prize-problem.html"><img src="https://www.i-programmer.info/images/stories/News/2026/Sep/B/Navier_stokes_Eq.JPG" width="100" height="69" align="left" alt="article thumbnail"  /></a><p><p>Open AI has announced an AI-generated proof of the Navier-Stokes Existence and Smoothness, one of the seven Millennium Prize Problems.&nbsp;Whether it is accepted as a fully verified solution is now the subject of intense academic scrutiny, but Open AI has already said it doesn't intend to claim the million-dollar prize.</p>
521</p><br class="minifp-seperator" /> 
522			<div class="minifp-full-link-wrp"><a class="minifp-full-link" href="/news/105-artificial-intelligence/19150-open-ai-claims-ai-has-solved-a-millenium-prize-problem.html">+ Full Story</a></div></td></tr><tr> 
523		<td valign="top" width="100%" class="minifp"><hr/><span class="minifp-introtitle"><a href="/news/91-hardware/19149-arduino-reaches-core-zephyr-10.html">Arduino Reaches Core Zephyr 1.0</a></span><br class="minifp-seperator" /><span class="minifp-date">16 Sep</span> | <span class="minifp-date">Harry Fairhead</span><br class="minifp-seperator" /><a href="/news/91-hardware/19149-arduino-reaches-core-zephyr-10.html"><img src="https://www.i-programmer.info/images/stories/minifp//zephyricon_thumb.jpg" width="120" height="96" align="left" alt="article thumbnail"  /></a><p><p>So the deed is done - Zephyr is now Arduino's operating system. After a lot of work it has now reached Version 1.0 and is fully part of the Arduino family. This is good, but it raises some interesting questions.&nbsp;</p>
524</p><br class="minifp-seperator" /> 
525			<div class="minifp-full-link-wrp"><a class="minifp-full-link" href="/news/91-hardware/19149-arduino-reaches-core-zephyr-10.html">+ Full Story</a></div></td></tr><tr> 
526		<td valign="top" width="100%" class="minifp"><hr/><span class="minifp-introtitle"><a href="/news/89-net/19147-net-11-rc1-released-with-go-live-support.html">.NET 11 RC1 Released With Go-Live Support</a></span><br class="minifp-seperator" /><span class="minifp-date">15 Sep</span> | <span class="minifp-date">Kay Ewbank</span><br class="minifp-seperator" /><a href="/news/89-net/19147-net-11-rc1-released-with-go-live-support.html"><img src="https://www.i-programmer.info/images/stories/minifp//dotnet_thumb.jpg" width="100" height="105" align="left" alt="article thumbnail"  /></a><p><p>Microsoft has released .NET 11 Release Candidate 1 with a go-live support license, so it can be used in production applications.</p>
527</p><br class="minifp-seperator" /> 
528			<div class="minifp-full-link-wrp"><a class="minifp-full-link" href="/news/89-net/19147-net-11-rc1-released-with-go-live-support.html">+ Full Story</a></div></td></tr><tr> 
529		<td valign="top" width="100%" class="minifp"><hr/><span class="minifp-introtitle"><a href="/news/150-training-a-education/19146-mits-missing-semester-of-your-cs-education-2026-edition.html">MIT's Missing Semester of Your CS Education, 2026 Edition</a></span><br class="minifp-seperator" /><span class="minifp-date">15 Sep</span> | <span class="minifp-date">Nikos Vaggalis</span><br class="minifp-seperator" /><a href="/news/150-training-a-education/19146-mits-missing-semester-of-your-cs-education-2026-edition.html"><img src="https://www.i-programmer.info/images/stories/minifp//mitlogo_thumb.jpg" width="120" height="120" align="left" alt="article thumbnail"  /></a><p><p>The Missing Semester of Your CS Education course aims to teach students essential tools and techniques that are often overlooked in the traditional computer science curriculum.</p>
530</p><br class="minifp-seperator" /> 
531			<div class="minifp-full-link-wrp"><a class="minifp-full-link" href="/news/150-training-a-education/19146-mits-missing-semester-of-your-cs-education-2026-edition.html">+ Full Story</a></div></td></tr><tr> 
532		<td valign="top" width="100%" class="minifp"><hr/><span class="minifp-introtitle"><a href="/news/90-tools/19143-vs-code-gets-updated-agent-sessions.html">VS Code Gets Updated Agent Sessions</a></span><br class="minifp-seperator" /><span class="minifp-date">14 Sep</span> | <span class="minifp-date">Kay Ewbank</span><br class="minifp-seperator" /><a href="/news/90-tools/19143-vs-code-gets-updated-agent-sessions.html"><img src="https://www.i-programmer.info/images/stories/minifp//vscodeicon_thumb.jpg" width="120" height="120" align="left" alt="article thumbnail"  /></a><p><p>Visual Studio Code 1.136 has been released with multi-root workspaces for agent sessions, and a redesigned new-session input that brings the prompt, model selection, workspace selection, and other session controls together in one layout.</p>
533</p><br class="minifp-seperator" /> 
534			<div class="minifp-full-link-wrp"><a class="minifp-full-link" href="/news/90-tools/19143-vs-code-gets-updated-agent-sessions.html">+ Full Story</a></div></td></tr><tr> 
535		<td valign="top" width="100%" class="minifp"><hr/><span class="minifp-introtitle"><a href="/news/90-tools/19144-apache-iggy-achieves-top-level-status.html">Apache Iggy Achieves Top Level Status</a></span><br class="minifp-seperator" /><span class="minifp-date">14 Sep</span> | <span class="minifp-date">Alex Denham</span><br class="minifp-seperator" /><a href="/news/90-tools/19144-apache-iggy-achieves-top-level-status.html"><img src="https://www.i-programmer.info/images/stories/minifp//iggy_thumb.jpg" width="120" height="98" align="left" alt="article thumbnail"  /></a><p><p>The Apache Software Foundation (ASF) has announced that Apache Iggy has become a Top-Level Project (TLP). Iggy is a hyper-efficient, persistent message streaming platform written in Rust, built for predictable ultra-low latency and a minimal infrastructure footprint.&nbsp;</p>
536</p><br class="minifp-seperator" /> 
537			<div class="minifp-full-link-wrp"><a class="minifp-full-link" href="/news/90-tools/19144-apache-iggy-achieves-top-level-status.html">+ Full Story</a></div></td></tr><tr><td valign="top" colspan="1"><span class='minifp-anotherlinks'>Other Recent News</span><ul class="minifp"><li class='minifp'><a href="/news/82-heritage/19142-zuse-computer-museum-forced-to-close.html">Zuse Computer Museum Forced To Close</a></li><li class='minifp'><a href="/i-programmer-weekly/246-i-programmer-weekly-2026/19136-september-week-1.html">September Week 1</a></li><li class='minifp'><a href="/news/169-robotics/19141-berkeley-develops-humanoid-lite.html">Berkeley Develops Humanoid Lite</a></li><li class='minifp'><a href="/news/126-os/19140-cern-moves-to-debian.html">CERN Moves To Debian</a></li><li class='minifp'><a href="/news/84-database/19138-polygres-advanced-search-on-postgresql.html">Polygres: Advanced Search On PostgreSQL</a></li><li class='minifp'><a href="/news/177-windows-8/19137-microsoft-announces-windows-11-for-developers.html">
537Microsoft Announces Windows 11 For Developers</a></li><li class='minifp'><a href="/news/150-training-a-education/19133-learn-python-for-date-analysis-with-jetbrains.html">Learn Python For Date Analysis With JetBrains</a></li><li class='minifp'><a href="/news/86-browsers/19117-chrome-deletes-manifest-v2-extensions.html">Chrome Deletes Manifest V2 Extensions</a></li><li class='minifp'><a href="/news/98-languages/19132-bun-14-rewritten-in-rust.html">Bun 1.4 Rewritten In Rust</a></li><li class='minifp'><a href="/news/167-javascript/19131-sveltekit-3-release-candidate-available.html">Sveltekit 3 Release Candidate Available</a></li><li class='minifp'><a href="/news/84-database/19130-actian-vectorai-db-a-new-player-in-the-vector-database-space.html">Actian VectorAI DB: A New Player In The Vector Database Space</a></li><li class='minifp'><a href="/news/80-java/19129-eclipse-jnosql-11-adds-asynchronous-repository-methods.html">Eclipse JNoSQL 1.1 Adds Asynchronous Repository Methods</a></li><li class='minifp'><a href="/news/167-javascript/19127-jquery-turns-20.html">jQuery Turns 20</a></li><li class='minifp'><a href="/i-programmer-weekly/246-i-programmer-weekly-2026/19121-august-week-5.html">August Week 5</a></li><li class='minifp'><a href="/news/99-professional/19126-what-happened-at-pgconfdev-2026.html">What happened At PGconf.dev 2026</a></li><li class='minifp'><a href="/news/204-challenges/19125-kaggle-knee-check-competition-now-open.html">Kaggle Knee Check Competition Now Open</a></li><li class='minifp'><a href="/news/197-data-mining/19122-apache-tike-40-adds-vision-language-model-parsers.html">Apache Tika 4.0 Adds Vision Language Model Parsers</a></li></ul></td></tr></table>
538                                <p><img src="/images/banners/newssmall.jpg" alt="news" style="display: block; margin-left: auto; margin-right: auto;" /></p>
539                            </div>
540                            
541                            <!-- Second column />-->
542                            <div class="item column-2 fixedwidth300" itemprop="blogPost" itemscope="" itemtype="https://schema.org/BlogPosting">
543                                 
544                                <!-- BOOK REVIEW --> 
545                                <div id="reviewoftheday">
546                                    <h1><span style="color: #ff0000;">I Programmer Library</span></h1>
547                                </div>
548                                 
549                                 <!-- ARTICLES --> 
550                                <div>
551                                    <h1><span style="color: #ff0000;">Featured Articles</span></h1>
552                                    
553<table width="100%" class="minifp"><tr> 
554		<td valign="top" width="100%" class="minifp"><hr/><span class="minifp-introtitle"><a href="/programming/72-theory/19163-programmers-guide-to-theory-computation.html">Programmer's Guide To Theory - Computation?</a></span><br class="minifp-seperator" /><span class="minifp-date">23 Sep</span> | <span class="minifp-date">Mike James</span><br class="minifp-seperator" /><a href="/programming/72-theory/19163-programmers-guide-to-theory-computation.html"><img src="https://www.i-programmer.info/images/stories/minifp//church_thumb.jpg" width="100" height="134" align="left" alt="article thumbnail"  /></a><p><p class="western">Computation— we all know what it is but can you define it? This is the first problem to be solved, before we can even start on a theory of computation.</p>
555</p><br class="minifp-seperator" /> 
556			<div class="minifp-full-link-wrp"><a class="minifp-full-link" href="/programming/72-theory/19163-programmers-guide-to-theory-computation.html">+ Full Story</a></div></td></tr><tr> 
557		<td valign="top" width="100%" class="minifp"><hr/><span class="minifp-introtitle"><a href="/programming/72-theory/6431-functional-and-dysfunctional-programming.html">Functional And Dysfunctional Programming</a></span><br class="minifp-seperator" /><span class="minifp-date">22 Sep</span> | <span class="minifp-date">Mike James</span><br class="minifp-seperator" /><a href="/programming/72-theory/6431-functional-and-dysfunctional-programming.html"><img src="https://www.i-programmer.info/images/stories/News/2026/Sep/B/xkcdfunctional.JPG" width="100" height="118" align="left" alt="article thumbnail"  /></a><p><p>What is functional programming? Surely all our programs should function in some way or other? No - that's not what it means. Functional programming is altogether different....</p>
558</p><br class="minifp-seperator" /> 
559			<div class="minifp-full-link-wrp"><a class="minifp-full-link" href="/programming/72-theory/6431-functional-and-dysfunctional-programming.html">+ Full Story</a></div></td></tr><tr> 
560		<td valign="top" width="100%" class="minifp"><hr/><span class="minifp-introtitle"><a href="/programming/148-hardware/19148-esp32-risc-v-in-micropython-basic-gpio.html">ESP32 RISC-V In MicroPython: Basic GPIO</a></span><br class="minifp-seperator" /><span class="minifp-date">16 Sep</span> | <span class="minifp-date">Harry Fairhead and Mike James</span><br class="minifp-seperator" /><a href="/programming/148-hardware/19148-esp32-risc-v-in-micropython-basic-gpio.html"><img src="https://www.i-programmer.info/images/stories/minifp//espriscgpio3_thumb.jpg" width="100" height="24" align="left" alt="article thumbnail"  /></a><p><p>A fundamental is how fast GPIOs are. This extract from <strong>Programming the ESP32 RISC V in MicroPython, </strong>part of the I&nbsp;Programmer Library, shows you how to work with GPIO.</p>
561</p><br class="minifp-seperator" /> 
562			<div class="minifp-full-link-wrp"><a class="minifp-full-link" href="/programming/148-hardware/19148-esp32-risc-v-in-micropython-basic-gpio.html">+ Full Story</a></div></td></tr><tr> 
563		<td valign="top" width="100%" class="minifp"><hr/><span class="minifp-introtitle"><a href="/history/8-people/547-ritchie-a-thompson.html">Ritchie & Thompson - Creators of C and Unix</a></span><br class="minifp-seperator" /><span class="minifp-date">11 Sep</span> | <span class="minifp-date">Harry Fairhead</span><br class="minifp-seperator" /><a href="/history/8-people/547-ritchie-a-thompson.html"><img src="https://www.i-programmer.info/images/stories/minifp//Kendennis_thumb.jpg" width="100" height="65" align="left" alt="article thumbnail"  /></a><p><p>Dennis Ritchie and Kenneth Thompson produced both Unix and C, two groundbreaking inventions that have shaped computer programming. This&nbsp; account of how it all happened is posted to mark what would have been Ritchie's 85th birthday..</p>
564</p><br class="minifp-seperator" /> 
565			<div class="minifp-full-link-wrp"><a class="minifp-full-link" href="/history/8-people/547-ritchie-a-thompson.html">+ Full Story</a></div></td></tr><tr> 
566		<td valign="top" width="100%" class="minifp"><hr/><span class="minifp-introtitle"><a href="/programming/207-jquery/19134-jquery-4-modifying-dom-objects.html">jQuery 4 - Modifying DOM Objects</a></span><br class="minifp-seperator" /><span class="minifp-date">09 Sep</span> | <span class="minifp-date">Ian Elliot</span><br class="minifp-seperator" /><a href="/programming/207-jquery/19134-jquery-4-modifying-dom-objects.html"><img src="https://www.i-programmer.info/images/stories/minifp//jquery180_thumb.jpg" width="100" height="143" align="left" alt="article thumbnail"  /></a><p><p class="western">Finding things with selectors etc is only the start. Usually you want to modify the DOM as well as searching it. This is an exclusive extract from Ian Elliot's new book on jQuery&nbsp;4.</p>
567</p><br class="minifp-seperator" /> 
568			<div class="minifp-full-link-wrp"><a class="minifp-full-link" href="/programming/207-jquery/19134-jquery-4-modifying-dom-objects.html">+ Full Story</a></div></td></tr></table>
569                                </div>
570                                 
571                                 <!-- CARTOON --> 
572                                <table style="width: 300px; margin-left: auto; margin-right: auto;">
573<tbody>
574<tr>
575<td style="margin-left: 30px;" align="center">
576<h1 style="text-align: center;"><span style="color: #ff0000;">Unhandled Exception!<br />Forth<br /></span></h1>
577<p style="text-align: center;"><span style="font-size: 8pt;"> <em>More cartoon fun at&nbsp;<a href="https://xkcd.com/" rel="noopener noreferrer" target="_blank">xkcd</a>&nbsp;a webcomic of&nbsp;romance,sarcasm, math, and language</em></span></p>
578<img style="display: block; margin-left: auto; margin-right: auto;" src="https://imgs.xkcd.com/comics/forth.png" alt="" />I it Like.
579<p><a class="mfp-readon" href="/component/content/article/235/942.html">+ More Cartoons</a></p>
580</td>
581</tr>
582</tbody>
583</table>
584
585                                <hr />
586                                 <!-- BOOKWATCH --> 
587                                <div class="bookwatch">
588                                    <h1><span style="color: #ff0000;">Book Watch<br /></span></h1>
589                                           <p><em><a href="http://www.i-programmer.info/book-watch-archive.html" target="_self">Book Watch</a> 
590                                            is I Programmer's listing of new books and is compiled using 
591                                            publishers' publicity material. 
592                                            It is not to be read as a review where we provide an independent assessment. 
593                                            </em></p>
594                                    
595<table width="100%" class="minifp"><tr> 
596		<td valign="top" width="100%" class="minifp"><hr/><span class="minifp-introtitle"><a href="/book-watch-archive/19166-murachs-python-programming-3rd-ed-murachs.html">Murach's Python Programming, 3rd Ed (Murachs)</a></span><br class="minifp-seperator" /><span class="minifp-date">23 Sep</span><br class="minifp-seperator" /></a><p><p>This book takes a self-paced approach to cater for new and existing programmers. If you already know other languages, you can move quickly through the familiar to focus on the new as you learn Python faster. Joel Murach and Michael Urban start with an 8-chapter introduction course to Python that gets as far as using functions and modules to organize a program that uses file I/O to read and write data. Section 2 builds on that foundation with additional skills every Python programmer needs. Section 3 dives into object-oriented programming. And section 4 brings it all together as you build realistic database and GUI applications.</p>
597<p>&lt;ASIN:B0H1ZNKWDD &gt;</p>
598</p><br class="minifp-seperator" /> 
599			<div class="minifp-full-link-wrp"><a class="minifp-full-link" href="/book-watch-archive/19166-murachs-python-programming-3rd-ed-murachs.html">+ Full Story</a></div></td></tr><tr> 
600		<td valign="top" width="100%" class="minifp"><hr/><span class="minifp-introtitle"><a href="/book-watch-archive/19159-fundamentals-of-computer-graphics-5th-ed-crc-press.html">Fundamentals of Computer Graphics, 5th Ed (CRC Press)</a></span><br class="minifp-seperator" /><span class="minifp-date">21 Sep</span><br class="minifp-seperator" /></a><p><p>This book provides a comprehensive introduction to basic computer graphic technology and theory. Focusing on geometric intuition, Steve Marschner and Peter Shirley give the necessary information for understanding how images get onto the screen by using the complementary approaches of ray tracing and rasterization. It covers topics common to an introductory course, such as sampling theory, texture mapping, spatial data structure, and splines. It also includes a number of contributed chapters from authors known for their expertise and clear way of explaining concepts.</p>
601<p>&lt;ASIN:0367505584 &gt;</p>
602</p><br class="minifp-seperator" /> 
603			<div class="minifp-full-link-wrp"><a class="minifp-full-link" href="/book-watch-archive/19159-fundamentals-of-computer-graphics-5th-ed-crc-press.html">+ Full Story</a></div></td></tr><tr> 
604		<td valign="top" width="100%" class="minifp"><hr/><span class="minifp-introtitle"><a href="/book-watch-archive/19156-unreal-engine-5-for-beginners-packt.html">Unreal Engine 5 for Beginners (Packt)</a></span><br class="minifp-seperator" /><span class="minifp-date">18 Sep</span><br class="minifp-seperator" /></a><p><p>Subtitled "A step-by-step guide to building your first playable third-person game", this book teaches Unreal Engine 5 via a hands-on game project, progressing from editor basics and Blueprints to AI, UI, cinematics, polish, and packaging.<br/> Authors Zhenyu George Li , Charles Shih-I Yeh and Michael Oakes begin by showing how to install Unreal Engine, setting up a first project, and exploring the editor to build and light levels. As the book progresses, readers will create gameplay with Blueprints, import and animate a player character, and configure controls with Enhanced Input. They'll then develop AI enemies and implement gameplay rules, mission objectives, and win-and-lose conditions.</p>
605<p>&lt;ASIN:1806105918 &gt;</p>
606</p><br class="minifp-seperator" /> 
607			<div class="minifp-full-link-wrp"><a class="minifp-full-link" href="/book-watch-archive/19156-unreal-engine-5-for-beginners-packt.html">+ Full Story</a></div></td></tr><tr> 
608		<td valign="top" width="100%" class="minifp"><hr/><span class="minifp-introtitle"><a href="/book-watch-archive/19151-the-well-grounded-rubyist-4th-ed-manning.html">The Well-Grounded Rubyist 4th Ed (Manning)</a></span><br class="minifp-seperator" /><span class="minifp-date">16 Sep</span><br class="minifp-seperator" /></a><p><p>This book puts the core principles of the language on full display rather than treating it as a collection of syntax rules. In the updated fourth edition, David A Black and Joseph Leo III tell a clear programming story: start with basic language literacy, explore how objects and methods interact, build a strong foundation in object-oriented design, and finally move into dynamic features like runtime introspection.</p>
609<p>&lt;ASIN:1633434869&gt;</p>
610</p><br class="minifp-seperator" /> 
611			<div class="minifp-full-link-wrp"><a class="minifp-full-link" href="/book-watch-archive/19151-the-well-grounded-rubyist-4th-ed-manning.html">+ Full Story</a></div></td></tr><tr><td valign="top" colspan="1"><span class='minifp-anotherlinks'>More Book Watch</span><ul class="minifp"><li class='minifp'><a href="/book-watch-archive/19145-designing-and-implementing-semantic-data-layers-technics-publications.html">Designing and Implementing Semantic Data Layers (Technics Publications)</a></li><li class='minifp'><a href="/book-watch-archive/19139-no-one-planned-this-how-platforms-rewired-entertainment--dca.html">No One Planned This: How Platforms Rewired Entertainment ( DCA)</a></li><li class='minifp'><a href="/book-watch-archive/19135-python-automation-cookbook-3rd-ed-packt.html">Python Automation Cookbook, 3rd Ed (Packt)</a></li><li class='minifp'><a href="/book-watch-archive/19128-rust-for-c-engineers-fromc2rust.html">Rust for C Engineers (FromC2Rust)</a></li><li class='minifp'><a href="/book-watch-archive/19124-the-evolution-of-the-swipe-taps-and-apps-manuscripts.html">
611The Evolution of the Swipe: Taps and Apps (Manuscripts)</a></li><li class='minifp'><a href="/book-watch-archive/19120-python-3-2nd-ed-rheinwerk-computing.html">Python 3 2nd Ed (Rheinwerk Computing)</a></li></ul></td></tr></table>
612                                    <hr /><a href="/book-watch-archive.html"><strong>Previous Book Watch</strong>.</a>
613                                    <p>Publishers send your book news to:<br /><a href="mailto:[email protected]">[email protected]</a></p>
614                                </div>
615                                <hr />
616                            </div>
617                        </div>
618
619
620                        <span class="breadcrumbs pathway">
621</span>
622
623                        <div class="clearfix"></div>
624
625                        <!-- End Content -->
626                </main>
627
628
629                <div id="aside" class="hidden-tablet hidden-phone" style="float:left">
630
631                    <!-- Begin Right Sidebar -->
632                    <!-- <div class="bannergroup">
633
634<div class="banneritem"><a href="/component/banners/click/317.html" target="_blank"><img src="https://www.i-programmer.info/images/banners/iot.gif" alt="Banner" /></a><div class="clr"></div>
635	</div>
636<div class="banneritem"><div id="azk4904"></div><div class="clr"></div>
637	</div>
638
639</div><div class="bannergroup">
640
641<div class="banneritem"><div id="azk23147"></div><div class="clr"></div>
642	</div>
643
644</div><div class="bannergroup">
645
646<div class="banneritem"><div id="azk4904"></div><div class="clr"></div>
647	</div>
648<div class="banneritem">
648<script id="mNCC" language="javascript">
649   medianet_width = "160";
650   medianet_height = "600";
651   medianet_crid = "661715628";
652   medianet_versionId = "111299";
653   (function() {
654       var isSSL = 'https:' == document.location.protocol;
655       var mnSrc = (isSSL ? 'https:' : 'http:') + '//contextual.media.net/nmedianet.js?cid=8CUG5J6EY' + (isSSL ? '&https=1' : '');
656       document.write('<scr' + 'ipt type="text/javascript" id="mNSC" src="' + mnSrc + '"></scr' + 'ipt>');
657   })();
658</script>
658<div class="clr"></div>
659	</div>
660
661</div><div class="bannergroup">
662
663<div class="banneritem">
663<script type="text/javascript">
664google_ad_client = "pub-9936000140414196";
665/* 160x600, created 08/01/09 */
666google_ad_slot = "1615484292";
667google_ad_width = 160;
668google_ad_height = 600;
669</script>
669
670<script src="//pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>
670<div class="clr"></div>
671	</div>
672
673</div><div class="bannergroup">
674
675
676</div>
677                     End Right Sidebar -->
678                </div>
679
680            </div>
681        </div>
682		    <footer class="footer" role="contentinfo">
683        <div class="container fluidContainer">         
684            <div class="bannergroup">
685
686<div class="banneritem"><div id="amzn-assoc-ad-06b2a910-2ea4-402d-ad19-e3c81b1cd26e"></div>
686<script async src="//z-na.amazon-adsystem.com/widgets/onejs?MarketPlace=US&adInstanceId=06b2a910-2ea4-402d-ad19-e3c81b1cd26e"></script>
686<div class="clr"></div>
687	</div>
688<div class="banneritem">
688<script async src="//pagead2.googlesyndication.com/pagead
688<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
688
689<!-- newBottomAd -->
690<ins class="adsbygoogle"
691     style="display:block"
692     data-ad-client="ca-pub-9936000140414196"
693     data-ad-slot="9386811720"
694     data-ad-format="auto"
695     data-full-width-responsive="true"></ins>
696<script>
697(adsbygoogle = window.adsbygoogle || []).push({});
698</script>
698<div class="clr"></div>
699	</div>
700
701</div><div style="text-align:left" class="bcarss">
702	<div style="text-align:left" class="bcarss_message">
703		RSS feed of all content    </div>
704<div style="text-align:left" class="bcarss_feed"><a href="https://www.i-programmer.info/index.php?option=com_ninjarsssyndicator&amp;feed_id=3&amp;format=raw"><img src="https://www.i-programmer.info/components/com_ninjarsssyndicator/assets/images/buttons/rss20.gif" alt="I Programmer - full contents" title="I Programmer - full contents" /></a></div></div>
705
706            <div style="padding:4px;">
707                Copyright 2009-2026 i-programmer.info. All Rights Reserved.
708                <br><br>
709            </div> 
710        </div>
711    </footer>
712    </div>
713
714</body>
715</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.