Computer Tricks https://www.scienceblogs.com/ en How to build your own computer https://www.scienceblogs.com/gregladen/2017/08/09/how-to-build-your-own-computer <span>How to build your own computer</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>Almost every resource on the Internet on building your own computer is oriented towards building a gaming computer. The second most common discussion is how to build a "budget PC." </p> <p>When I sought out the latest information on building a computer a few weeks ago, I did not like either of these two options.</p> <p>A "gaming computer" is oriented towards two features: a) overclocking your processor and b) having one or two mondo power-hungry and gigunda graphics cards. A "budget PC" is an under powered machine that replicates what I could have purchased in many forms for less than the cost of a build. </p> <p>My intention was to build a computer that would be able to crunch large amounts of data quickly, allow a large number of normal applications to be open at once, to be able to handle multiple very large text files, and to do mid level audio and maybe video editing (even if that required shutting down other software). Also, I wanted the computer to be 200% to 300% faster than my currently fastest computer, which is an Intel I7 holding laptop that is several years old. </p> <p>I had on hand a small pile of "hard drives," including one 2.5 terabyte hard drive, and one 125 gigabyte solid state drive (not called a "hard drive" by many, but it is essentially the hard drive.) I also had a case, and a keyboard, and a collection of monitors. I also had a case. The fact that I already had a case turns out to have been a big problem, and I'll discuss that below.</p> <p>I decided to go for an Intel I5 but a higher end one, which would give me that 300% performance increase required to make me feel like I had something new and cool, but to put in in a motherboard that would likely handle a later upgrade to a faster I7, if I made that upgrade within a year or two. Also, the mother board had to be able to handle 64 gigabytes of RAM because the best way to meet the requirements listed above is not with multiple processors or multi threading etc., but with a whopping amount of memory. </p> <p>Here is a list of the parts that I bought to assemble:</p> <p></p><h3>Motherboard</h3> <p><a target="_blank" href="https://www.amazon.com/gp/product/B01N2V0ATE/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B01N2V0ATE&amp;linkCode=as2&amp;tag=grlasbl0a-20&amp;linkId=32d804849ebce2896af065be73b6c16a">GIGABYTE GA-H270-HD3 LGA1151 Intel H270 2-Way Crossfire ATX DDR4 Motherboard</a><img src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&amp;l=am2&amp;o=1&amp;a=B01N2V0ATE" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></p> <p>This motherboard costs about 100 bucks. It handles sixth and seventh generation Intel Core processors, and Dual Channel DDRF4 memory, and has graphics support on board. It does not have a lot of other bells and whistles. It is supposedly sturdy and has high ratings everywhere I've looked. </p> <p>The documentation on the motherboard is very well done. I've referred to it many times while messing around with this build, so I should know. </p> <p></p><h3>Processor (CPU) </h3> <p><a target="_blank" href="https://www.amazon.com/gp/product/B01MZZJ1P0/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B01MZZJ1P0&amp;linkCode=as2&amp;tag=grlasbl0a-20&amp;linkId=92f394fa3470bee74573d980af3075a4">Intel Core i5-7500 LGA 1151 7th Gen Core Desktop Processor (BX80677I57500)</a><img src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&amp;l=am2&amp;o=1&amp;a=B01MZZJ1P0" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></p> <p>As noted, I chose the I5 for just under 200 bucks instead of an I7 for more. The old I7 in my Dell Laptop, which is a reasonable computer, has a passmark rating of somewhere beteen 2000 and 3000. This process is just over 8000. I don't know much about passmark ratings, but I know more is better and most normal fast processors produced today that you would actually buy are in the 8000 to 9000 range, so this is good. </p> <p>The key number here is 7500, which makes this a seventh generation processor. Here is a key point: This mother board and this processor are claimed to work together, and I can tell you that they do. A lot of other motherboards require bios upgrades or other fiddling to make them work with the most current processor. </p> <p>Anticipating something I'll be discussing below, yes, this motherboard and processor combination work fine with Linux. It never occurred to me to worry about that, because Linux works with everything, but in case you were wondering, it does. I do not know if this configuration can be a Hackintosh or not. </p> <p></p><h3>Cooling system</h3> <p>I used the cooling fan that came with the processor and it works fine. I've checked the temperature readings and the processor does not get hot. However, I think the fan that came with the processor is a bit noisy. I intend to install a different cooling fan to see if it is quieter, and the one I got to do this is the <a target="_blank" href="https://www.amazon.com/gp/product/B005O65JXI/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B005O65JXI&amp;linkCode=as2&amp;tag=grlasbl0a-20&amp;linkId=10b34bfa2110337435fb1dd2fa66a83c">Cooler Master Hyper 212 EVO RR-212E-20PK-R2 CPU Cooler with 120mm PWM Fan</a><img src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&amp;l=am2&amp;o=1&amp;a=B005O65JXI" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />, which happens to be on sale right now for 30 bucks. I've not installed it, installation looks to be a bit complicated and I don't know how I'll like it, but that's what I have sitting here on my workbench. </p> <p></p><h3>Power Supply</h3> <p>My build does not need a fancy power supply. The <a target="_blank" href="https://www.amazon.com/gp/product/B01F5LX55K/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B01F5LX55K&amp;linkCode=as2&amp;tag=grlasbl0a-20&amp;linkId=4154fe40f76ca8e664c8df32ee1915e1">EVGA 450 B1, 80+ BRONZE 450W, 3 Year Warranty, Includes FREE Power On Self Tester, Power Supply 100-B1-0450-K1</a><img src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&amp;l=am2&amp;o=1&amp;a=B01F5LX55K" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> is inexpensive and highly rated. It is onlyh 450 watts. If you are using a graphics card or two you may need to upgrade beyond this. </p> <p></p><h3>Bluetooth</h3> <p>The motherboard does not have Bluetooth or wireless. I got the <a target="_blank" href="https://www.amazon.com/gp/product/B00M1ATR4C/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B00M1ATR4C&amp;linkCode=as2&amp;tag=grlasbl0a-20&amp;linkId=bd6c357e6924a7ad0022111e6b26cfa4">MIATONE Wireless Bluetooth CSR 4.0 USB Adapter Dongle for PC with Windows 10 8 7 Vista XP 32/64</a><img src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&amp;l=am2&amp;o=1&amp;a=B00M1ATR4C" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> dongle to give me Bluetoth, for seven bucks. Works with Linux. Note: This is a USB 3.0 device, and it won't work if you plug it into a USB 2.0 port. I found out. </p> <p></p><h3>My Wired Networking Thing</h3> <p>This motherboard does not have a wireless card. It does have an ethernet jack. You probably don't even want wireless if you have a LAN nearby. In my case, temporarily (until I drill some holes in the house) my nearest LAN device is not in my office. I wanted the computer's LAN to be hooked to the network, so when I do get around to bringing a router or switch into the office, I'll just change what it is plugged into. So, I got the <a target="_blank" href="https://www.amazon.com/gp/product/B004UAKCS6/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B004UAKCS6&amp;linkCode=as2&amp;tag=grlasbl0a-20&amp;linkId=d03830e8d010cb2d85c8795c5b5d7895">IOGEAR Universal Ethernet to Wi-Fi N Adapter</a><img src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&amp;l=am2&amp;o=1&amp;a=B004UAKCS6" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />.</p> <p>This cute little device is basically a wireless router that hooks into your wireless LAN, and pretends to be an ethernet jack. It can get its power from a powered USB port or it can use a USB charger brick, which is supplied. Works great. </p> <p></p><h3>Display</h3> <p>As noted, I have a pile of displays laying around but they all suck. I bought a <a target="_blank" href="https://www.amazon.com/gp/product/B012AQICKG/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B012AQICKG&amp;linkCode=as2&amp;tag=grlasbl0a-20&amp;linkId=4fa3a0892a5b70f919a244def1f22b75">Dell SE2416H 24" Screen LED-Lit Monitor</a><img src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&amp;l=am2&amp;o=1&amp;a=B012AQICKG" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />. I had purchsed one of these from Best Buy for about 135 for a different computer. I got this one for about the same price from Amazon. The price of this monitor ranges from 120 to 190. There is also a version that is higher grade, as in, more finely tuned up but with the same specs, for a bit more. Right now, I'm using this and second, older, display, and things are working fine, but eventually I intend to get a second Dell 24 inch. This is obviously a very personal choice and people will have strong preferences. I may get the upgraded version of this monitor when it comes time to getting the second one, see below. (Reminder: This is not a gaming computer.) </p> <p></p><h3>RAM</h3> <p>Given the mother board, I went for fast. Also, since I want to eventually have 64 gigabytes, I went for large. So, I got one chip of <a target="_blank" href="https://www.amazon.com/gp/product/B0171GQXME/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B0171GQXME&amp;linkCode=as2&amp;tag=grlasbl0a-20&amp;linkId=0d94e3ab924b48592674a30bb1d60401">G.SKILL Ripjaws V Series 16GB 288-Pin DDR4 SDRAM DDR4 3200 (PC4 25600) Intel Z170 Desktop Memory Model F4-3200C16S-16GVK</a><img src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&amp;l=am2&amp;o=1&amp;a=B0171GQXME" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> with 16 gigs on it. I will add a second, third, and eventually, fourth chip over time.</p> <p>The motherboard and memory uses a dual channel technology, which allows for effectively faster RAM. But with only one chip installed, I don't get the dual channel effect. So, when I buy the second chip, I'll be both increasing RAM to 32 gigabytes, and unlocking the dual channel technology, so that may be a noticeable upgrade in my future. </p> <p>Here is a list of parts that are rough equivalents to the parts I had on hand. This list together with the list above will produce a full working computer:</p> <p></p><h3>Computer Case</h3> <p>I had an old case that had never been used and that is supposed to be quite. It isn't especially quiet, and the front connectors don't include some of the modern things computers have (it is about 12 years old) and does include some things that are fairly arcane. I regret not just getting a new case. But then, when I look at cases, I realize that I want a really good case. But, like computer build documentation, cases are either crap-budget or gamer cases, and I want neither of those. I list a case below that might be a good one to get, and if I do get that case, it will be the most expensive single element in the whole build. But it might be worth it.</p> <p></p><h3>Second Monitor</h3><br /> An old RGB monitor that works. <p></p><h3>OS "Hard Drive"</h3> <p>Something like this: <a target="_blank" href="https://www.amazon.com/gp/product/B00LMXBOP4/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B00LMXBOP4&amp;linkCode=as2&amp;tag=grlasbl0a-20&amp;linkId=8fc0d516c5daad852db0bf571b5c80ce">Samsung 850 PRO - 256GB - 2.5-Inch SATA III Internal SSD (MZ-7KE256BW)</a><img src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&amp;l=am2&amp;o=1&amp;a=B00LMXBOP4" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />. I installed the operating system on it.<br /> </p><h3>Data Hard Drive</h3> <p>Something like this, on which I keep files: <a target="_blank" href="https://www.amazon.com/gp/product/B01IEKG402/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B01IEKG402&amp;linkCode=as2&amp;tag=grlasbl0a-20&amp;linkId=5c831c0e9532c75927e4a904e5eecfc7">Seagate 2TB BarraCuda SATA 6Gb/s 64MB Cache 3.5-Inch Internal Hard Drive (ST2000DM006)</a><img src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&amp;l=am2&amp;o=1&amp;a=B01IEKG402" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></p> <p></p><h3>Keyboard</h3> <p>I like mechanical keyboards, and had this one: <a target="_blank" href="https://www.amazon.com/gp/product/B01IRASQA0/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B01IRASQA0&amp;linkCode=as2&amp;tag=grlasbl0a-20&amp;linkId=3cb90ca0d714d595f129c104da3c77cf">AUKEY Mechanical Keyboard with Blue Switches, RGB Backlit 104-Key Gaming Keyboard with Preset and Customizable Lighting Effects for PC &amp; Mac Gamers</a><img src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&amp;l=am2&amp;o=1&amp;a=B01IRASQA0" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></p> <p></p><h3>Mouse and Mousepad</h3> <p>There are advantages to having a wired mouse, and if you use a laser mouse, there are advantages to having an appropriate mouse pad. Or you can just get some wireless mouse of your choice. Currently am using these:</p> <p><a target="_blank" href="https://www.amazon.com/gp/product/B01BC4TXXC/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B01BC4TXXC&amp;linkCode=as2&amp;tag=grlasbl0a-20&amp;linkId=cd6f7048536bfa97ac70e2e8dbd236a4">TeckNet Pro S2 Ergonomic USB Wired Optical Mouse for Laptop Computer, 6 Buttons, 2000DPI</a><img src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&amp;l=am2&amp;o=1&amp;a=B01BC4TXXC" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></p> <p><a target="_blank" href="https://www.amazon.com/gp/product/B00L2AN9PK/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B00L2AN9PK&amp;linkCode=as2&amp;tag=grlasbl0a-20&amp;linkId=7eae8bfea987a707509c2c83f1ffe4ef">3M Precise Mouse Pad Enhances the Precision of Optical Mice at Fast Speeds and Extends the Battery Life of Wireless Mice up to 50%, 9 in x 8 in (MP114-BSD1)</a><img src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&amp;l=am2&amp;o=1&amp;a=B00L2AN9PK" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></p> <p>Here is a list of parts that I have not gotten yet but as I do I'll be adding them to the computer.</p> <p></p><h3>Better second monitor </h3><a target="_blank" href="https://www.amazon.com/gp/product/B06XYSZRQT/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B06XYSZRQT&amp;linkCode=as2&amp;tag=grlasbl0a-20&amp;linkId=3d684c00fb57697ec5b614d03da4b63a">Dell S Series Screen LED-Lit Monitor 23.8" Black (S2418H)</a><img src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&amp;l=am2&amp;o=1&amp;a=B06XYSZRQT" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> or similar <p></p><h3>Better case</h3>Something like <a target="_blank" href="https://www.amazon.com/gp/product/B01H6JQC0O/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B01H6JQC0O&amp;linkCode=as2&amp;tag=grlasbl0a-20&amp;linkId=7cba20c620191ac70094d3e3370f44ff">be quiet! BGW10 DARK BASE PRO 900 ATX Full Tower Computer Chassis - Black/Orange</a><img src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&amp;l=am2&amp;o=1&amp;a=B01H6JQC0O" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />, because I want a full size ATX case that is quiet. <p></p><h2>Building the computer</h2> <p>Take your time. </p> <p>Get a magnetic screwdriver that fits your screws, probably Phillips. </p> <p>Some people like to ground themselves with various grounding devices (such as <a target="_blank" href="https://www.amazon.com/gp/product/B004N8ZQKY/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B004N8ZQKY&amp;linkCode=as2&amp;tag=grlasbl0a-20&amp;linkId=79fe9b564722ab5f298f0f0a304bdc66">Rosewill ESD Anti-Static Wrist Strap Components RTK-002, Black/Yellow</a><img src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&amp;l=am2&amp;o=1&amp;a=B004N8ZQKY" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />) when they are building computers. </p> <p>Start by putting the processor into the motherboard, then put the motherboard into the case, then the cooling fan on the processor, and the ram in the slot. You can change around the order of these things if you want. You'll need to put some goop (such as <a target="_blank" href="https://www.amazon.com/gp/product/B06Y156V4Z/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=B06Y156V4Z&amp;linkCode=as2&amp;tag=grlasbl0a-20&amp;linkId=fd27df1e129d5348b47ad73073e78867">Thermal Compound Paste, Carbon Based High Performance heatsink Paste, Thermal Compound CPU for all Cooler computer PC Fan</a><img src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&amp;l=am2&amp;o=1&amp;a=B06Y156V4Z" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />) between the CPU and the CPU fan, but that will probably be supplied with the fan, most likely already smeared on the correct location. </p> <p>Then put the hard drives where they are supposed to go, screw in the power supply, anything else that is not hooked up, and hook up all the wires.</p> <p>Then attach a keyboard, mouse, and monitor, and turn the thing on. It will work fine.</p> <p>Hint: A motherboard does not "turn on" until if has power from the power supply (and the power supply is plugged in and turned on) AND the motherboard gets a signal from the case's off/on switch. </p> <p></p><h2>Installing the Operating System</h2> <p>Set up a USB stick to be bootable, insert it into the appropriate slot, turn on the computer and select the function key that switches the boot process to a boot menu. Pick the likely choice for the USB stick, and <a href="http://scienceblogs.com/gregladen/2017/05/08/things-to-do-after-installing-ubuntu-17-04/">run through the install procedure</a> (just follow the instructions and mostly pick defaults). </p> <p>Since I have a second drive for data, I created a new partition using the whole drive (ext4) and added the UUID code to the fstab file, mounting it as "/hdd" and put my Dropbox folder there. Dropbox complained, I ignored the complaints, and so far so good. </p> <p>You can use a service like PC Parts Picker to work out compatibility. </p> <p>For me, this was worth it. I could not get a computer this powerful and with this configuration for this price (I did explore that option). Also, I'm getting some parts later to increase the overall quality of the build, such as RAM and a monitor and probably some other things, so even if the total cost is the same or slightly more than an out of the box computer, I've got added flexibility that I like. Plus it is fun. </p> <p>Building a computer is fairly easy, and nothing can really go wrong. If it does, I don't know you, OK? </p> <p>Good luck! </p> </div> <span><a title="View user profile." href="/author/gregladen" lang="" about="/author/gregladen" typeof="schema:Person" property="schema:name" datatype="">gregladen</a></span> <span>Wed, 08/09/2017 - 11:40</span> <div class="field field--name-field-blog-tags field--type-entity-reference field--label-inline"> <div class="field--label">Tags</div> <div class="field--items"> <div class="field--item"><a href="/tag/computer-tricks" hreflang="en">Computer Tricks</a></div> <div class="field--item"><a href="/tag/technology" hreflang="en">Technology</a></div> <div class="field--item"><a href="/tag/build-computer" hreflang="en">Build computer</a></div> <div class="field--item"><a href="/tag/diy-computer" hreflang="en">diy computer</a></div> <div class="field--item"><a href="/tag/technology" hreflang="en">Technology</a></div> </div> </div> <section> <article data-comment-user-id="0" id="comment-1484355" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1502297334"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Been a long time since I did this, but my thoughts are:</p> <p>Highly endorse using large screens. Too many people are squinting at tablets. </p> <p>Even 450W seems high. Will the power adjust to a lower level as needed? </p> <p>Why no BTX design, which supposedly requires less power with better airflow.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1484355&amp;1=default&amp;2=en&amp;3=" token="GuxkmnG5b7AfZUO01pYyFcNUpX-uqjOCyo9MaUuqBIs"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">MikeN (not verified)</span> on 09 Aug 2017 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1484355">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-1484356" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1502303714"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Something to note about the dual channel. Adding a third module removes the dual channel for all three modules, so you won't get dual channel back until you get a fourth memory module.</p> <p>Re #1, yes, the PSU won't draw normally over 230W and that'll be mostly during bootup. All PSUs are rated for the maximum current draw on each plug (e.g. one for the ATX, one for the PCIe and two for the drives) and added up. That is their MAXIMUM draw.Not their constant draw. Not sure why you'd think differently. So the main reason for graphics cards requiring a 600W PSU is because there may not be enough amps on the PCIe power cables to run the card(s) with a smaller PSU, not that the total system draw will be over 450W.</p> <p>BTX changes the MB draw by changing how the PCB is laid out, but the difference is in watts. Better airflow mostly doesn't matter because the cables will make a bigger difference to airflow. It makes more difference in rackspaces.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1484356&amp;1=default&amp;2=en&amp;3=" token="uxy5h1V1fUMo3EQxCCUc0aGIx6T2KMRuN8HQ-xWNTow"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">Wow (not verified)</span> on 09 Aug 2017 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1484356">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-1484357" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1502329762"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>For someone getting into building a computer or folks like me who have done it but like convenience, Google "pc parts picker" and head to their site. You can specify a system there starting from the component most critical to your design, and it will restrict further choices to compatible parts. It links to sources to buy (and includes prices in your build list so you know how much the whole thing will cost you). </p> <p>I built a server/media system that lives in my mother-in-law's family room. I used a Fractal Design case to keep it quiet, and that does a good job. IIRC, the case was under $120.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1484357&amp;1=default&amp;2=en&amp;3=" token="OuTHkchKEu0ADAlEiR3D_AP-pfSiXOuCOSj5td0gXCA"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">Wesley R. Elsberry (not verified)</span> on 09 Aug 2017 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1484357">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-1484358" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1502359688"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>"I installed the operating system on it."</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1484358&amp;1=default&amp;2=en&amp;3=" token="Cig-bf8iMA8_wAlGvAd7_8u4k2Af2JpQUFcd0v3O6Qs"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">Sam Lyon (not verified)</span> on 10 Aug 2017 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1484358">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-1484359" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1502374541"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Good outline.. </p> <p>A word of warning on dual channel memory - it typically requires that the new chip be identical in every way to the existing one. You can't just put another 16G chip in, and get dual channel.. I learned this the hard way on my son's gaming PC. The memory chip in there is no longer made, so getting dual channel requires buying two new memory chips. </p> <p>Second Wesley's recommendation for PC Parts Picker, used that on several builds and it was very helpful. </p> <p>The first thing to do is to pick the CPU. Then find a motherboard that is certified for the CPU (cf Parts Picker). The rest follows..</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1484359&amp;1=default&amp;2=en&amp;3=" token="LmS0nZhrFzjmwTTuYUMG75wyk9SWb7NhIZSxd5tuCq4"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">Doug K (not verified)</span> on 10 Aug 2017 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1484359">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-1484360" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1502376017"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>I built my own budget PC because I was sick and tired of struggling with proprietary hardware and its failures.. *cough Dell cough*<br /> The budget build cost about the same as a built box: but the case is spacious and cool with plenty of room to work and for expansion, the parts are all COTS and easily replaced/upgraded. Gobs of memory was really what I was after, for sound editing, and I have room for another 32G here.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1484360&amp;1=default&amp;2=en&amp;3=" token="EJURdIqMPFF77A_Iu2-KPN5Av-xosRxbW0LJF1xuRi0"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">Doug K (not verified)</span> on 10 Aug 2017 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1484360">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-1484361" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1502381446"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Wow, I read a long time ago a recommendation to reduce your power bill by replacing the power supply level to 200 or 300. I assumed this means a constant draw, because otherwise there is no savings. This was many years ago, so perhaps it was a different situation then, or maybe I am misremembering the issue.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1484361&amp;1=default&amp;2=en&amp;3=" token="KcDkd3UaJSo5dZ4GOBqW3J46khrySGxZHUQXjgd26Es"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">MikeN (not verified)</span> on 10 Aug 2017 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1484361">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-1484362" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1502382610"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>No, the only figure you need to worry about for PSUs above the requirement is the efficiency rating. 80+ PSUs are common and only slightly more expensive.</p> <p>Getting an underpowered PSU only works if you check out what each rail supplies to each component. If you can't draw enough amps for the motherboard when running the CPU at max power, plus GC plus sound plus network, then your computer will randomly lock from the voltage drop.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1484362&amp;1=default&amp;2=en&amp;3=" token="7k9eAapUndm4QVb3kz8hvJlT3Phs49vottMMdAmzgvM"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">Wow (not verified)</span> on 10 Aug 2017 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1484362">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="31" id="comment-1484363" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1502429479"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>MikeN: I don't think they make BTX designs any more. </p> <p>My current case, the old one, is actually BTX-esque but with the power supply on the bottom.</p> <p>Regarding the power supply: Toda's power supplies are pretty much all more efficient than power supplies of old. The one I got is pretty efficient, but for an extra hundred bucks it could be a bit more efficient.</p> <p>One thing I like about this build, and I attribute this to the motherboard because it must be the motherboard that does this, is that the computer goes into sleep mode really fast, and comes out of sleep mode really fast. That's a good power savings.</p> <p>One thing you get by building your own computer is the sense that if something breaks, you just fix it. So, this idea that turning a computer on and off kills it, which is only a little bit true, is not so much of an issue. This is a "durable" motherboard. I don't know what that means exactly, but I chose to believe it means it won't be as likely to die if the computer goes into and out of sleep mode a couple of times a day. Between that and the fact that I know I can swap a motherboard out and replace it in ten minutes makes the computer more comfortable to use.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1484363&amp;1=default&amp;2=en&amp;3=" token="tyJYQfYbgBve49i7JvqyjtQzJmmECEq2XjyIgtc1IVc"></drupal-render-placeholder> </div> <footer> <em>By <a title="View user profile." href="/author/gregladen" lang="" about="/author/gregladen" typeof="schema:Person" property="schema:name" datatype="">gregladen</a> on 11 Aug 2017 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1484363">#permalink</a></em> <article typeof="schema:Person" about="/author/gregladen"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/author/gregladen" hreflang="en"><img src="/files/styles/thumbnail/public/pictures/HumanEvolutionIcon350-120x120.jpg?itok=Tg7drSR8" width="100" height="100" alt="Profile picture for user gregladen" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="31" id="comment-1484364" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1502430482"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Yes, I did mention PC Parts Picker in the post.</p> <p>I intend to get the new memory very soon, and I picked a type of memory that I trust will be made or a while. </p> <p>I don' t think they have to match exactly-exactly, but there they do have to match across several criteria.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1484364&amp;1=default&amp;2=en&amp;3=" token="5LXRJBMjDEnfiiwQIwJSCprbVpks2PdtRxJDe_NH4Yg"></drupal-render-placeholder> </div> <footer> <em>By <a title="View user profile." href="/author/gregladen" lang="" about="/author/gregladen" typeof="schema:Person" property="schema:name" datatype="">gregladen</a> on 11 Aug 2017 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1484364">#permalink</a></em> <article typeof="schema:Person" about="/author/gregladen"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/author/gregladen" hreflang="en"><img src="/files/styles/thumbnail/public/pictures/HumanEvolutionIcon350-120x120.jpg?itok=Tg7drSR8" width="100" height="100" alt="Profile picture for user gregladen" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-1484365" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1502438737"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>dual memory - check the MB documentation - my Asus doc says the dual channel memory have to be identical, same brand, chip, speed, etc. But this appears to differ by manufacturer, Intel does not have the same requirements..<br /> <a href="https://www.intel.com/content/www/us/en/support/boards-and-kits/000005657.html">https://www.intel.com/content/www/us/en/support/boards-and-kits/0000056…</a><br /> "The following conditions do not need to be met:<br /> Same brand<br /> Same timing specifications<br /> Same speed (MHz)"</p> <p>TIL..</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1484365&amp;1=default&amp;2=en&amp;3=" token="mPAt4iT10QJ2xWWiJK5nxKIUuFPtuFbAg6sPqYbafFg"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">Doug K (not verified)</span> on 11 Aug 2017 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1484365">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-1484366" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1502442395"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Each memory module has an SPD, a region of silicon that holds the timing. So if you put some 7-5-5 module in there and a 9-7-7 module later, it will negotiate a speed of 9-7-7 for both. That's part of the North Bridge/South Bridge silicon which nowadays is the same for either brand (AMD or Intel).</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1484366&amp;1=default&amp;2=en&amp;3=" token="1fr_eAWewygVFWFjb_Ph0GcU0upckAsMULoHGCG7rNw"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">Wow (not verified)</span> on 11 Aug 2017 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1484366">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-1484367" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1502446874"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>#8, looks like I got bad info back then. I don't remember if I switched out a high power supply or a low one or just bought a low when when building a computer. Hoping it's the latter.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1484367&amp;1=default&amp;2=en&amp;3=" token="gqJGBCzKo6nZnSyjX00BnBBVIH8cBIK7mHzZDZdi7zc"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">MikeN (not verified)</span> on 11 Aug 2017 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1484367">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-1484368" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1502450036"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>If it runs,then fine. But if it's barely enough, then you'll find upgrades (even adding memory: about 10W per stick) could throw it out as soon as the CPU spools up.</p> <p>Getting one much bigger than you need is a waste and it has bigger and noisier cooling, but it's not *bad* per se, just wasteful.</p> <p>And as long as it works, then "too small" is fine. There's not much way any more to tell what amperage your ATX connection is drawing, and that's mostly where you get problems with the PSU.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1484368&amp;1=default&amp;2=en&amp;3=" token="Ro0-W2xsW0dn9s2T5YsNYEkJpJ0B04fwVrgsaAVOZdM"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">Wow (not verified)</span> on 11 Aug 2017 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1484368">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-1484369" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1502461706"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Would you get bigger and noisier cooling? Don't the fans all use sensors now? Plus a bigger fan should be quieter as it has more airflow, so less speed.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1484369&amp;1=default&amp;2=en&amp;3=" token="vyTVgs-PldrYlCOyd_WyOvrTjQuf9iamYKjoyXL7kSQ"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">MikeN (not verified)</span> on 11 Aug 2017 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1484369">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-1484370" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1502469200"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>The design of the larger 120mm fans really don't actually make them much quieter than the 90mm ones, and most fan connections are just simple signals, I don't know of any montherboards that use PWM except for the CPU and *sometimes* one of the case fans.</p> <p>If the PSU has fan speed control for its own cooling fan, it will say so. Many of the "Quiet" label ones have this. They do the fan control themselves.</p> <p>So for the M/B, check it has PWM (fan control), and for the PSU check its specs too. Most quiet PSUs do control themselves.</p> <p>The worst culprit for sound nowadays is the GPU fan. If you don'tplay much in the way of games, either use the built-in graphics (generally good enough to play games of a quality of a AAA title 10-15 years ago) or get a passive one (which would be a min spec of non-FPS type games today).</p> <p>I really can't say much more than that. There are too many variables. Just look at what you want carefully. The specs usually have a lot more than you'd expect. Google for the user manual for M/B and read it first. That will tell you what you can select in the BIOS.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1484370&amp;1=default&amp;2=en&amp;3=" token="H6i_YkMlYPdqu171zWcVqjrWZ2ej5leWm9Zch4wM5xQ"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">Wow (not verified)</span> on 11 Aug 2017 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1484370">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="31" id="comment-1484371" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1502516673"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>My GPU fan is perfectly quiet, in that it does not exist. I don't have a GPU, and won't need it unless I go above two monitors, most likely. This allows me to use way less power, have the smaller power supply, less noise, etc. </p> <p>My current CPU fan is whiny and varies in its speed constantly. </p> <p>Regarding the memory, I hope to not have this problem, but I think the key thing is the amount, speed, and configuration on the chip of the chipettes. </p> <p>If, however, this turns out to be some sort of scam ... changing the configuration on chips so people have to re-purchase memory (selling off the oldmemory I assume) than I will take that up as a cause, as I've taken memory up as a cause in the past, and do a lot more financial damage to the chip companies than they end up doing to me! </p> <p>So if you are the chip company that made the above referenced chip you better get some more in stock soon!</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1484371&amp;1=default&amp;2=en&amp;3=" token="NiK9bmKnpHfH0SjGvY2WNTaRj-TDQWD22aYCZX8MRZc"></drupal-render-placeholder> </div> <footer> <em>By <a title="View user profile." href="/author/gregladen" lang="" about="/author/gregladen" typeof="schema:Person" property="schema:name" datatype="">gregladen</a> on 12 Aug 2017 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1484371">#permalink</a></em> <article typeof="schema:Person" about="/author/gregladen"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/author/gregladen" hreflang="en"><img src="/files/styles/thumbnail/public/pictures/HumanEvolutionIcon350-120x120.jpg?itok=Tg7drSR8" width="100" height="100" alt="Profile picture for user gregladen" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-1484372" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1502680721"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p><i>"My intention was to build a computer that would be able to crunch large amounts of data quickly ... "</i></p> <p>So, you did not have a graphics card? Some number crunching software uses the cores in the graphics card to speed up processing. Do you have any experience of that or did you consider the pros/cons of using a graphics card?</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1484372&amp;1=default&amp;2=en&amp;3=" token="fiNQ_3h8eTempBJa3b5L_h1x4Rc9OZEf3FkqFII9j-0"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">Ens Josh (not verified)</span> on 13 Aug 2017 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1484372">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-1484373" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1502895616"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>What was the cost of the build for the box only (no kbd,dsp,mouse, etc.), adding the price of the case you mentioned that you are considering purchasing?</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1484373&amp;1=default&amp;2=en&amp;3=" token="J19sfuDylNiCZLezP4CMKNSp6pM7jQoyffN6sniD-v0"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">jl (not verified)</span> on 16 Aug 2017 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1484373">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-1484374" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1503345641"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>I am not a good candidate for building my own PC, though I'm an avid gamer. My last three PCs have been built by a boutique called IBuyPower PC. I got to pick my own parts with assistance by their software so no picking parts that won't work together. </p> <p>All I've had to do since purchasing is upgrade the GPU. I got lucky and grabbed a 1080ti when they first arrived. Now, it's like pulling teeth to find one on sale, and then they're at very inflated prices.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1484374&amp;1=default&amp;2=en&amp;3=" token="FGgs1e9boAPwUl-r_oAa5deEzTZyrt2FKs9cqeJTDng"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">Thomas Rogers (not verified)</span> on 21 Aug 2017 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1484374">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="31" id="comment-1484375" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1504549582"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>jl: Sorry, didn't see your question.</p> <p>processor203.88<br /> mobo112.48<br /> cooling fan29.99<br /> ram 138.99<br /> power supplyh34.99<br /> blue tooth 5.99<br /> ethernet36.81<br /> Total no case:563.13<br /> Case:130<br /> total with case:693.13</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1484375&amp;1=default&amp;2=en&amp;3=" token="Q6T_hUFy_wFVwQzP1c3nCM8lFNAl2OXzrDDfiyGHPfQ"></drupal-render-placeholder> </div> <footer> <em>By <a title="View user profile." href="/author/gregladen" lang="" about="/author/gregladen" typeof="schema:Person" property="schema:name" datatype="">gregladen</a> on 04 Sep 2017 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1484375">#permalink</a></em> <article typeof="schema:Person" about="/author/gregladen"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/author/gregladen" hreflang="en"><img src="/files/styles/thumbnail/public/pictures/HumanEvolutionIcon350-120x120.jpg?itok=Tg7drSR8" width="100" height="100" alt="Profile picture for user gregladen" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-1484376" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1508630252"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Great information!<br /> But i do not willing to do this uptill task xD</p> <p>Thanks :-:</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1484376&amp;1=default&amp;2=en&amp;3=" token="IJh97f8JCZgLko6_J1PPbFdjanv9GkEnnoSAcB2hRCk"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">Puneet Parmar (not verified)</span> on 21 Oct 2017 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1484376">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> </section> <ul class="links inline list-inline"><li class="comment-forbidden"><a href="/user/login?destination=/gregladen/2017/08/09/how-to-build-your-own-computer%23comment-form">Log in</a> to post comments</li></ul> Wed, 09 Aug 2017 15:40:43 +0000 gregladen 34472 at https://www.scienceblogs.com Python Programming To Automate Common Tasks https://www.scienceblogs.com/gregladen/2017/05/11/python-programming-to-automate-common-tasks <span>Python Programming To Automate Common Tasks</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p><a target="_blank" href="https://www.amazon.com/gp/product/1593275994/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1593275994&amp;linkCode=as2&amp;tag=grlasbl0a-20&amp;linkId=515bc153dae67d8daadb3a1628211d50">Automate the Boring Stuff with Python: Practical Programming for Total Beginners</a><img src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&amp;l=am2&amp;o=1&amp;a=1593275994" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> by super Python expert Al Sweigart is a pretty thick intermedia to somewhat advanced level programming book. </p> <p>It covers how Python works, so someone familiar with programming languages can get up to speed. Then, the book tackles a number of key important tasks one may use a computer for. This includes working with Regular Expressions, file reading and writing, web scraping, interacting with Excel spreadsheets and PDF files, scheduling things, working with email, manipulating images, and messing around with the keyboard and mouse. </p> <p>I wold like to see a second volume with yet more programming ideas and examples. It could be a series. </p> <p>From the publishers: </p> <blockquote><p>If you've ever spent hours renaming files or updating hundreds of spreadsheet cells, you know how tedious tasks like these can be. But what if you could have your computer do them for you?</p> <p>In Automate the Boring Stuff with Python, you'll learn how to use Python to write programs that do in minutes what would take you hours to do by hand—no prior programming experience required. Once you've mastered the basics of programming, you'll create Python programs that effortlessly perform useful and impressive feats of automation to:</p> <li>Search for text in a file or across multiple files</li> <li>Create, update, move, and rename files and folders</li> <li>Search the Web and download online content</li> <li>Update and format data in Excel spreadsheets of any size</li> <li>Split, merge, watermark, and encrypt PDFs</li> <li>Send reminder emails and text notifications</li> <li>Fill out online forms</li> <p>Step-by-step instructions walk you through each program, and practice projects at the end of each chapter challenge you to improve those programs and use your newfound skills to automate similar tasks.</p></blockquote> <p><a target="_blank" href="https://www.amazon.com/gp/product/1593275994/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1593275994&amp;linkCode=as2&amp;tag=grlasbl0a-20&amp;linkId=71fa5a0a2589c0d481ff4ed6b5ce1f95">Check it out.</a><img src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&amp;l=am2&amp;o=1&amp;a=1593275994" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><a href="/files/gregladen/files/2017/05/Screen-Shot-2017-05-08-at-3.15.53-PM.png"></a></p> </div> <span><a title="View user profile." href="/author/gregladen" lang="" about="/author/gregladen" typeof="schema:Person" property="schema:name" datatype="">gregladen</a></span> <span>Thu, 05/11/2017 - 01:00</span> <div class="field field--name-field-blog-tags field--type-entity-reference field--label-inline"> <div class="field--label">Tags</div> <div class="field--items"> <div class="field--item"><a href="/tag/computer-tricks" hreflang="en">Computer Tricks</a></div> <div class="field--item"><a href="/tag/opensource" hreflang="en">OpenSource</a></div> <div class="field--item"><a href="/tag/technology" hreflang="en">Technology</a></div> <div class="field--item"><a href="/tag/coding" hreflang="en">coding</a></div> <div class="field--item"><a href="/tag/programming" hreflang="en">programming</a></div> <div class="field--item"><a href="/tag/python" hreflang="en">python</a></div> <div class="field--item"><a href="/tag/they-used-call-it-programming" hreflang="en">They used to call it programming</a></div> <div class="field--item"><a href="/tag/technology" hreflang="en">Technology</a></div> </div> </div> <section> <article data-comment-user-id="0" id="comment-1481955" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1494480188"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>One of these years I have got to learn Python -- which seems to be taking over from Perl in the domain of running webservers. I wish somebody would translate or "port" the <a href="http://mindsz.com/ideasz/ai-mind">http://mindsz.com/ideasz/ai-mind</a> project form Perl into Python so that then any Python programmer could become a <a href="http://ai.neocities.org/maintainer.html">http://ai.neocities.org/maintainer.html</a> AI Mind Maintainer.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1481955&amp;1=default&amp;2=en&amp;3=" token="FNLpcN_sIiJrPohof42PHLuu4n3x3oYBDYKJn71jRrM"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="" content="Mentifex (Arthur T. Murray)">Mentifex (Arth… (not verified)</span> on 11 May 2017 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1481955">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-1481956" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1494533786"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Greg - the entire book is also available online <a href="https://automatetheboringstuff.com/">https://automatetheboringstuff.com/</a></p> <p>Thanks, for pointing the book out.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1481956&amp;1=default&amp;2=en&amp;3=" token="0i90V8iNqWKbb9AzGf5R6OCSU9a8kyNJsch35p6yEwY"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">Kevin Thomas O&#039;Neill (not verified)</span> on 11 May 2017 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1481956">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-1481957" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1495967567"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Just want to say, "Thanks again."</p> <p>I took the time yesterday to sit down and learn enough Python to automate inspection of 8000 Excel files. I collected the filename, file size, the last modification date, names of all worksheets in each workbook, the names and cell ranges of all Defined Names in each worksheet, a list of all external links, and the cell value for a particular Defined Name (where it existed).</p> <p>I spent a dozen hours on the project, but much of that was because I kept adding to the information being retrieved. This wasn't a 'mission critical' project, In other words, it never would have been done without automation :)</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1481957&amp;1=default&amp;2=en&amp;3=" token="DIsKoR3TTYixxsUukgy86PqE94fac2sKiPK0r99A8PU"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">Kevin ONeill (not verified)</span> on 28 May 2017 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1481957">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> </section> <ul class="links inline list-inline"><li class="comment-forbidden"><a href="/user/login?destination=/gregladen/2017/05/11/python-programming-to-automate-common-tasks%23comment-form">Log in</a> to post comments</li></ul> Thu, 11 May 2017 05:00:42 +0000 gregladen 34387 at https://www.scienceblogs.com Learn Scratch Programming (For Kids And Adults) https://www.scienceblogs.com/gregladen/2016/10/28/learn-scratch-programming-for-kids-and-adults <span>Learn Scratch Programming (For Kids And Adults)</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p><a target="_blank" href="https://www.amazon.com/gp/product/1593277628/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1593277628&amp;linkCode=as2&amp;tag=grlasbl0a-20&amp;linkId=d73e0c8c9e0718a3f0eda0c3039834ff">Scratch Programming Playground: Learn to Program by Making Cool Games</a><img src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&amp;l=am2&amp;o=1&amp;a=1593277628" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> is a brand new offering from No Starch Press. </p> <p><a href="/files/gregladen/files/2016/10/ScratchProgrammingPlayground_cover.png"><img src="http://scienceblogs.com/gregladen/files/2016/10/ScratchProgrammingPlayground_cover-300x396.png" alt="scratchprogrammingplayground_cover" width="300" height="396" class="alignright size-medium wp-image-23182" /></a>Never mind all the other programming books for kids, this is the best so far. </p> <p>It helps that the Scratch Programming environment is so easy to use and allows such creative development, and it also helps that Scratch is likely to be a programming environment for basic robotics in the future (<a href="http://scienceblogs.com/gregladen/2016/08/24/how-to-make-your-own-robot/">as I discuss briefly here</a>). But the book itself is excellent, and works at several levels. A young kid working with an adult, a medium level kid working on their own, or an adult playing on the computer after the kids have gone to bed. </p> <p>Scratch is in the Logo family of object oriented programming. Indeed, Scratch itself, as a language, is a very short distance from the original object oriented programming, much closer to the source than many professional object oriented language. </p> <p><a href="/files/gregladen/files/2016/10/Screen-Shot-2016-10-28-at-8.55.57-PM.png"><img src="/files/gregladen/files/2016/10/Screen-Shot-2016-10-28-at-8.55.57-PM.png" alt="screen-shot-2016-10-28-at-8-55-57-pm" width="227" height="244" class="alignright size-full wp-image-23177" /></a>It works like this. See the graphic to the right. This is code that controls a "sprite" which in this case is a picture of a ball. </p> <p>The light brown C-shaped things are control constructs. An outer one called "forever" contains code that will be run from the time the program is started until it is stopped externally. Inside that is an "if" loop that checks to see if the object "paddle" (specified in the blue object) touches the sprite (ball). If that event happens, then the code inside the "if" thingie is executed. In this case, the variable "score" goes up by one, a funny little blerp sound is made, and the ball turns in the opposite direction. </p> <p>Meanwhile, the paddle has a wadge of code that goes with it as well, which responds to key presses or mouse movements, so that the paddle can be used as part of the bouncing the ball game. And so on. </p> <p><a href="/files/gregladen/files/2016/10/Screen-Shot-2016-10-28-at-8.55.24-PM.png"><img src="/files/gregladen/files/2016/10/Screen-Shot-2016-10-28-at-8.55.24-PM.png" alt="screen-shot-2016-10-28-at-8-55-24-pm" width="238" height="236" class="alignleft size-full wp-image-23178" /></a>In the code block on the left, contact between a pirate (a sprite) and a leaf causes the leaf to disappear and the pirate to get a score for making the leaf disappear. </p> <p>You can imagine the possibilities.</p> <p>So, imagine the following game. A complex maze is on the screen. The player uses arrow keys, etc., to move a tiny cat around in the maze, working the cat from the beginning to the end. At the end, there is a hole that the cat goes through, and now the cat is in another maze. And so on for several mazes.</p> <p>Are there objects in the maze the cat must avoid? Or obtain? Will you time how long it takes to get through each level? Will you keep a high score? Will you have two cats, with two people controlling them, each moving in opposite directions through the maze?</p> <p>The code examples I give above are not from <a target="_blank" href="https://www.amazon.com/gp/product/1593277628/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1593277628&amp;linkCode=as2&amp;tag=grlasbl0a-20&amp;linkId=67e9d71effb9a77e0e0a268c40746847">Scratch Programming Playground</a><img src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&amp;l=am2&amp;o=1&amp;a=1593277628" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />, but the maze example is. It is one of several projects that the book works you though, as you learn all the various programming concepts in Scratch 2.0. The programs you learn to code produce complicated results and are really spiffy, but the programming itself is easy and the code is not extensive, because Scratch 2.0 is so powerful yet easy to use. </p> <p>Each example, such as the maze, is fully developed, and then, new versions (like having the second player ability, etc.) added, and by the time you are done with that example, if not sooner, you are already adding things of your own design, from your own imagination.</p> <p>Scratch 2.0 can be run as a stand along program in windows and on a Mac, but works better on the web, in a browser, on all platforms. Working in that environment, on the browser, has the important advantage of immediate access to a large amount of work done by others, that you can freely borrow from. And, of course, you can show off your own work.</p> <p><a target="_blank" href="https://www.amazon.com/gp/product/1593277628/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1593277628&amp;linkCode=as2&amp;tag=grlasbl0a-20&amp;linkId=67e9d71effb9a77e0e0a268c40746847">Scratch Programming Playground</a><img src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&amp;l=am2&amp;o=1&amp;a=1593277628" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> tells you how to obtain or set up an account on Scratch at MIT, holding your hand effectively but respectfuly through the entire process. The book is also associated with, as per usual for a No Starch book, a web site with the code and other items used in the book. However, I recommend actually hand building most of this code on your own, so you actually learn what you are doing. </p> <p>This is the overview table of contents for the book:</p> <p><a href="/files/gregladen/files/2016/10/Screen-Shot-2016-10-28-at-8.52.19-PM.png"><img src="/files/gregladen/files/2016/10/Screen-Shot-2016-10-28-at-8.52.19-PM.png" alt="screen-shot-2016-10-28-at-8-52-19-pm" width="550" height="443" class="aligncenter size-full wp-image-23179" /></a></p> <p>And this is the Maze Runner project contents expanded, to give you an idea of how the learning and making process is parsed out:</p> <p><a href="/files/gregladen/files/2016/10/Screen-Shot-2016-10-28-at-8.52.35-PM.png"><img src="/files/gregladen/files/2016/10/Screen-Shot-2016-10-28-at-8.52.35-PM.png" alt="screen-shot-2016-10-28-at-8-52-35-pm" width="534" height="648" class="aligncenter size-full wp-image-23180" /></a></p> <p>Note the multiple versions of the project that are developed after the main project is up and running. </p> <p>It is possible to figure out how to make a hand held game controller work with Scratch programs, but that will depend on the controller you have and the platform. A USB controller and a bit of software from the web that lets you set up the buttons should work. </p> <p>I would not be surprised if future Internet of Things programming, robotic programming, and other coding you might want to get involved in either uses Scratch or follows this model. The mBot robots can be controlled with a version of Scratch, which produces Arduino code for that robot, and there is now a compiler that allows the general use of scratch for Arduino. Arduino is a basic prototyping machine that can run things, as in "Internet of Things" and that is similar to controllers in general, like the ones in your computer, VCR, thermostat, DVD, car, Mars Rover, etc. (Wait, did I just say "VCR" ... whatever.)</p> <div style="width: 310px;float:right;"><a href="/files/gregladen/files/2016/10/Screen-Shot-2016-10-28-at-8.51.50-PM.png"><img src="http://scienceblogs.com/gregladen/files/2016/10/Screen-Shot-2016-10-28-at-8.51.50-PM-300x272.png" alt="A bit of the book giving instruction on a code block to control a tennis ball sprite." width="300" height="272" class="size-medium wp-image-23181" /></a> A bit of the book giving instruction on a code block to control a tennis ball sprite. </div> <p>Anyway, Scratch 2.0 on the web, as per <a target="_blank" href="https://www.amazon.com/gp/product/1593277628/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1593277628&amp;linkCode=as2&amp;tag=grlasbl0a-20&amp;linkId=67e9d71effb9a77e0e0a268c40746847">Scratch Programming Playground</a><img src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&amp;l=am2&amp;o=1&amp;a=1593277628" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />, gives you, er, your kids, great training in all the programming concepts, and with it you basically controls sprites (objects) on a screen. But the same language is already adapted to control a common form of robot (mBot) and has been adapted to program a widely used controller. So, with <a target="_blank" href="https://www.amazon.com/gp/product/1593277628/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1593277628&amp;linkCode=as2&amp;tag=grlasbl0a-20&amp;linkId=67e9d71effb9a77e0e0a268c40746847">Scratch Programming Playground</a><img src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&amp;l=am2&amp;o=1&amp;a=1593277628" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />, a little practice and nine dollars worth of hardware, you can take over the world! Or, at least, a good portion of the Tri State Area. </p> <p>When I do my "Science oriented holiday gift guide" (SOHGG) in a few weeks, this book is going to be on it. Al Sweigart, author, has really nailed a kids oriented programming book better than I've seen done before, and I've seen them all. </p> </div> <span><a title="View user profile." href="/author/gregladen" lang="" about="/author/gregladen" typeof="schema:Person" property="schema:name" datatype="">gregladen</a></span> <span>Fri, 10/28/2016 - 15:29</span> <div class="field field--name-field-blog-tags field--type-entity-reference field--label-inline"> <div class="field--label">Tags</div> <div class="field--items"> <div class="field--item"><a href="/tag/computer-tricks" hreflang="en">Computer Tricks</a></div> <div class="field--item"><a href="/tag/robots" hreflang="en">robots</a></div> <div class="field--item"><a href="/tag/science-education" hreflang="en">Science Education</a></div> <div class="field--item"><a href="/tag/technology" hreflang="en">Technology</a></div> <div class="field--item"><a href="/tag/book-review" hreflang="en">book review</a></div> <div class="field--item"><a href="/tag/kids-programming" hreflang="en">Kids programming</a></div> <div class="field--item"><a href="/tag/programming-book" hreflang="en">Programming book</a></div> <div class="field--item"><a href="/tag/scratch-20" hreflang="en">Scratch 2.0</a></div> <div class="field--item"><a href="/tag/robots" hreflang="en">robots</a></div> <div class="field--item"><a href="/tag/science-education" hreflang="en">Science Education</a></div> <div class="field--item"><a href="/tag/technology" hreflang="en">Technology</a></div> </div> </div> <section> </section> <ul class="links inline list-inline"><li class="comment-forbidden"><a href="/user/login?destination=/gregladen/2016/10/28/learn-scratch-programming-for-kids-and-adults%23comment-form">Log in</a> to post comments</li></ul> Fri, 28 Oct 2016 19:29:54 +0000 gregladen 34145 at https://www.scienceblogs.com Linux Shell Scripting https://www.scienceblogs.com/gregladen/2013/10/07/linux-shell-scripting <span>Linux Shell Scripting</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>I just finished "<a href="http://www.packtpub.com/linux-shell-scripting-cookbook-second-edition/book">Linux Shell Scripting Cookbook</a>" (Second Edition) by Shantanu Tushar and Sarath Lakshman. This is a beginner's guide to using shell scripting (bash) on linux. </p> <p><a href="/files/gregladen/files/2013/10/Screen-Shot-2013-10-07-at-8.25.59-AM.png"><img src="http://scienceblogs.com/gregladen/files/2013/10/Screen-Shot-2013-10-07-at-8.25.59-AM-246x300.png" alt="Screen Shot 2013-10-07 at 8.25.59 AM" width="246" height="300" class="alignright size-medium wp-image-17927" /></a>Usually, a "cookbook" is set up more like a series of projects organized around a set of themes, and is usually less introductory than this book. "Linux Shell Scripting Cookbook" might be better titled "Introduction to Linux Shell Scripting" because it is more like a tutorial and a how too book than like a cookbook. Nonetheless, it is an excellent tutorial that includes over 100 "recipes" that address a diversity of applications. It's just that they are organized more like a tutorial. What this means is that a beginner can use only the resources in this book and get results. The various recipes are organized in an order that brings the reader through basics (like how to use the terminal, how to mess with environment variables, etc.) then on to more complex topics such as regular expressions, manipulating text, accessing web pages, and archiving. One very nice set of scripts that is not often found in intro books addresses networking. The book also covers MySQL database use. </p> <p>All of the scripts are available from the publisher in a well organized zip archive.</p> <p>I read the e-version of the book, in iBooks, but the PDF version is very nice as well. I don't know how this would translate as at Kindle book. But, importantly (and this may be more common now than not) the ebook uses all text, unlike some earlier versions of ebooks that used photographs of key text snippets as graphics which essentially renders them useless. Of course, copy and paste from a ebook is difficult, and that is where the zip file of scrips comes in. You can open the PDF file, get the zip archive, and as you read through examples simply open up (or copy and paste) the scripts from the zip archive and modify or run them. Also, the ebook is cheaper than a paper edition and clearly takes up way less space!</p> <p>If I was going to recommend a starting out guide to shell scripting this is the book I'd recommend right now. It is well organized and well executed. </p> <p>I do have a small rant that applies to virtually ALL tech-related books I've seen. There is an old tradition in *nix style documentation of putting certain information in the front matter. Books always have front matter, of course, but computer documents tend to have more front matter than usual. A typical example <a href="http://www.debian.org/doc/manuals/debian-reference/">is this reference resource</a> for Debian:</p> <p><a href="/files/gregladen/files/2013/10/Screen-Shot-2013-10-07-at-8.20.29-AM.png"><img src="http://scienceblogs.com/gregladen/files/2013/10/Screen-Shot-2013-10-07-at-8.20.29-AM-640x599.png" alt="Screen Shot 2013-10-07 at 8.20.29 AM" width="640" height="599" class="aligncenter size-large wp-image-17925" /></a></p> <p>Notice all that stuff in the beginning. Like anybody reads any of that, especially the "conventions" section. Proper typography in a code-rich book does not have to be explained in detail. You can see what is code, what are comments, etc. etc. Most of this information should be added as an appendix at the end of the book where it is out of the way and can be ignored. </p> <p>On a web page like the one shown here all you have to do is scan down, but in a book you have to leaf (virtually or meatspacelly) past all that stuff to get to the actual book contents. The Linux Shell Scripting book being discussed here has the first actual text on actual page 25 or so (though it is numbered page 8). I recommend moving as much of this front matter as possible to the back.</p> <p>But that is a general rant about all books of this sort, which I happen to think of while reviewing this book. </p> <p>"Linux Shell Scripting Cookbook" is available at <a href="http://www.packtpub.com/linux-shell-scripting-cookbook-second-edition/book">Packt Publishing</a>. </p> <p>Other Linux related posts are <a href="http://scienceblogs.com/gregladen/category/technology/linux/">HERE</a></p> <p>Other book reviews are <a href="http://scienceblogs.com/gregladen/category/books/">HERE</a></p> </div> <span><a title="View user profile." href="/author/gregladen" lang="" about="/author/gregladen" typeof="schema:Person" property="schema:name" datatype="">gregladen</a></span> <span>Mon, 10/07/2013 - 02:28</span> <div class="field field--name-field-blog-tags field--type-entity-reference field--label-inline"> <div class="field--label">Tags</div> <div class="field--items"> <div class="field--item"><a href="/tag/books" hreflang="en">Books</a></div> <div class="field--item"><a href="/tag/computer-tricks" hreflang="en">Computer Tricks</a></div> <div class="field--item"><a href="/tag/linux" hreflang="en">Linux</a></div> <div class="field--item"><a href="/tag/technology" hreflang="en">Technology</a></div> <div class="field--item"><a href="/tag/shell-scripting" hreflang="en">Shell Scripting</a></div> <div class="field--item"><a href="/tag/books" hreflang="en">Books</a></div> <div class="field--item"><a href="/tag/technology" hreflang="en">Technology</a></div> </div> </div> <section> <article data-comment-user-id="0" id="comment-1454207" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1381177730"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>I read this book (vol 1) back when I was in high school and tinkering with Ubuntu. Great book and BaSH is a beautiful language, ver worth learning.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1454207&amp;1=default&amp;2=en&amp;3=" token="9RinEHepl7pg1P1a6mGLSsAHxt21Rv1DuyaTZnQnC0E"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">roger (not verified)</span> on 07 Oct 2013 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1454207">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-1454208" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1403237568"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>I read this book (vol 1) back when I was in high school and tinkering with Ubuntu. Great book and BaSH is a beautiful language,</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1454208&amp;1=default&amp;2=en&amp;3=" token="f2LOoYihqTyrGzUEzo6Jg4UQS45fNHfqIN7FepeHIu8"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">johnbeeter (not verified)</span> on 20 Jun 2014 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1454208">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> </section> <ul class="links inline list-inline"><li class="comment-forbidden"><a href="/user/login?destination=/gregladen/2013/10/07/linux-shell-scripting%23comment-form">Log in</a> to post comments</li></ul> Mon, 07 Oct 2013 06:28:20 +0000 gregladen 32923 at https://www.scienceblogs.com Hot PC? https://www.scienceblogs.com/gregladen/2007/12/13/hot-pc <span>Hot PC?</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>Too hot? There is more than one way to cool down a PC. Air is a great insulator, so having your PC in the air (like, where it is right now) is a bad idea. Stop doing that. Instead, submerge it in oil.<br /> <a href="http://www.tomshardware.com/2006/01/09/strip_out_the_fans/"><br /> <img src="http://scienceblogs.com/gregladen/wp-content/blogs.dir/472/files/2012/04/i-f3a503d4a9ca9ef04e45302c295fffc3-aufmacher.jpg" alt="i-f3a503d4a9ca9ef04e45302c295fffc3-aufmacher.jpg" /></a></p> </div> <span><a title="View user profile." href="/author/gregladen" lang="" about="/author/gregladen" typeof="schema:Person" property="schema:name" datatype="">gregladen</a></span> <span>Thu, 12/13/2007 - 04:30</span> <div class="field field--name-field-blog-tags field--type-entity-reference field--label-inline"> <div class="field--label">Tags</div> <div class="field--items"> <div class="field--item"><a href="/tag/computer-tricks" hreflang="en">Computer Tricks</a></div> </div> </div> <section> <article data-comment-user-id="0" id="comment-1368748" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1197549433"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>I saw this thing a while back. I think that it might not be a bright idea to use cooking oil as it gets rancid after a while. But if you've got the dough, you could buy those non-conductive coolant fluids that boil at about 60 degrees Celcius and no part of your PC will ever heat above the boiling point. Of course the heat still has to go someplace, since the tank must be sealed as it's too expensive to let any of the vapour escape.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1368748&amp;1=default&amp;2=en&amp;3=" token="avPra4pf3bRODHZFCDSPM62c942rSWpR8m5ruT0D43I"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">Flaky (not verified)</span> on 13 Dec 2007 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1368748">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> </section> <ul class="links inline list-inline"><li class="comment-forbidden"><a href="/user/login?destination=/gregladen/2007/12/13/hot-pc%23comment-form">Log in</a> to post comments</li></ul> Thu, 13 Dec 2007 09:30:47 +0000 gregladen 23053 at https://www.scienceblogs.com How to Turn Linux Calendar Output Into a Blog Post https://www.scienceblogs.com/gregladen/2007/12/08/how-to-turn-linux-calendar-out <span>How to Turn Linux Calendar Output Into a Blog Post</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>I know all my fellow bloggers are jealous about my Linux calendar posts (<a href="http://scienceblogs.com/gregladen/2007/12/todays_linux_calendar_output.php">like this one</a>) and normally I don't reveal my secrets. But this is so cool I have to share it. </p> <p>The Linux calendar command (in the terminal window) puts out, by default, a listing of events, etc. from today and tomorrow. The listings come from "calendar" files that come with your Linux distribution (these are also on most Unix systems). You can also make your own calendar files. (I'm working on that now.)</p> <p>But how do you take the output from Linux Calendar and turn it into a blog post?</p> <!--more--><p>Well, you can type "calendar" into the Linux terminal, copy and paste the output, then manually insert the HTML code and put that on your blog.</p> <p>Or, you can do the same thing but use a search and replace function to make the manual insertion of code easier.</p> <p>Or, you can use a simple bash shell script, which I will be happy to explain to you now. </p> <p>I'm trying to convert each calendar line, which is simple text, into a particular HTML format. I want to go from this:</p> <blockquote><p> Dec 08 Mother's Day in Panama</p></blockquote> <p>to this:</p> <blockquote><p>&lt;DL&gt;<br /> &lt;DT&gt;Dec 08 &lt;/DT&gt;<br /> &lt;DD&gt;Mother's Day in Panama&lt;/DD&gt;</p> <p>...</p> <p>&lt;/DL&gt;</p></blockquote> <p>The "DL" tags define the totality of a "definition list" which is a kind of HTML list. Each element in the definition list has two parts, a "term" defined by the "DT" tags and a definition, defined by the "DD" tags. </p> <p>The script I do this conversion with is a bash script that invokes a perl one-liner and some other code, uses piping and redirection, and within the perl one-liner, a substitution type regular expression. At the end, I will give you a list of the books you need to read to really understand this.</p> <p>Here is the script:</p> <blockquote><p> #!/bin/bash</p> <p>echo '&lt;DL&gt;' &gt; calendar.html<br /> calendar | perl -pe _<br /> 's/^(........)(.*\n)/&lt;dt&gt;$1&lt;\/dt&gt;\n&lt;dd&gt;$2&lt;\/dd&gt;\n/g'_<br /> &gt;&gt; calendar.html<br /> echo '&lt;/DL&gt;' &gt;&gt; calendar.html</p></blockquote> <p>What is this gobbldygook? </p> <p>First, you have to know that the "_" symbol simply means "this line of code is wrapped onto the next line" ... the "_" is NOT part of the code.</p> <p>The first line ('#!/bin/bash') is always the first line in a Linux shell script that uses the "bash" shell. </p> <p>The beginning and end "echo" statements send information (using '&gt;' or '&gt;&gt;') to a file. A single '&gt;' sends the text to the file and destroys whatever was in the file to begin with. If the file did not exist, it is created. Two arrow-thingies ('&gt;&gt;') append the text to the end of the file without destroying it. </p> <p>So the first echo statement makes a file that has the first HTML tag to define a "definition list". The second echo statement, at the end of the script, appends the closing tag for a definition list to the end of the file.</p> <p>The stuff in the middle is a little more complicated.</p> <p>This part: 'calendar | blablabla' ... invokes the calendar command and sends its output to blablabla, using a "pipe" ('|') rather than to where it would normally go, which would be the terminal screen. So whatever output would spew forth by typing "calendar" into the terminal is sent to "blablabla" as though it was being typed in or read from a file. </p> <p>perl -pe is the opening of a one-line pearl command. The word perl invokes the perl interpreter (perl is a programming language). The 'e' parameter tells the perl that it is to run the following stuff, coming up soon in single quotes, don't ask any questions, just do it. The 'p' parameter tells perl to do whatever is in this one liner on every line in whatever input it gets given to it. </p> <p>The input, of course, will be the output of 'calendar' coming from the pipe ('|'). </p> <p>So, we have:</p> <blockquote><p>perl -pe 'blablabla' &gt;&gt; calendar.html</p></blockquote> <p>in the middle of this gobblygook, which is going to do something to the output from calendar and append it to the file calendar.html. </p> <p>The blablabla part is:</p> <blockquote><p>'s/^(........)(.*\n)/&lt;dt&gt;$1&lt;\/dt&gt;\n&lt;dd&gt;$2&lt;\/dd&gt;\n/g'</p></blockquote> <p>This is a perl regular expression, and may require a certain amount of explanation. </p> <p>A perl regular expression can take this form:</p> <blockquote><p>s/blablabla/foobar/g</p></blockquote> <p>The 's' means that this is a substitution. blablabla is going to be substituted with fobar. The 'g' means that this is going to happen every time it is possible to happen. If you don't put in the 'g' then the command will only work on the first instance it encounters. (Technically, you don't need the 'g' here because there is only one instance per line for our particular problem, and the 'p' makes this work on each line, but I put it there anyway. Its just my programming style, man.)</p> <p>So now you can see that the gobblygook has two parts: blablabla and foobar. Perl is looking for blablabla, and every time it finds that, it is going to replace it with fobar. So for instance, if we have this text:</p> <blockquote><p>"The creationist perspective differs from that of the evolutionist"</p></blockquote> <p>and we run this perl regular expression substitution command on it:</p> <p>s/reation/Intelligent Design Proponent/g</p> <p>... we would get this result:</p> <blockquote><p> "The cIntelligent Design Proponentist perspective differs from that of the evolutionist"</p></blockquote> <p>Hmmm....</p> <p>OK, so here is the output of one line of calendar on my Linux machine:</p> <blockquote><p>"Dec 08 First Ph.D. awarded by Computer Science Dept, Univ. of Penna, 1965"</p></blockquote> <p>(You can't see it, but there is a carriage return at the end of that line.)</p> <p>And here is the regular expression I used:</p> <blockquote><p>s/^(........)(.*\n)/&lt;dt&gt;$1&lt;\/dt&gt;\n&lt;dd&gt;$2&lt;\/dd&gt;\n/g</p></blockquote> <p>So, I'm looking for this:</p> <blockquote><p>^(........)(.*\n)</p></blockquote> <p>and replacing it with this:</p> <blockquote><p>&lt;dt&gt;$1&lt;\/dt&gt;\n&lt;dd&gt;$2&lt;\/dd&gt;\n</p></blockquote> <p>The thing I'm looking for actually matches the entire line of output from the calendar program. Lines of output from the calendar program always start with three letters indicating the month, a space, two digits indicating the day, and then two spaces. (sometimes the second space is an ampersand for some reason, but that does not matter.) In a perl regular expression, a dot ('.') equals one thing, a letter, number, space, whatever, but just one of them. So ........ will match, for instance, 'Dec 08 ' or 'Jan 21 ' or whatever. Anything that is eight thingies long. </p> <p>The caret ('^") says "This has to be at the beginning of the line." Therefore, '^(........)' simply matches the first eight letters/numbers/spaces at the beginning of the line. </p> <p>Now, here is the kick-ass cool part. Since this bunch of dots is in parenthesis, once it is found, the match itself (like, for instance, 'Dec 08 ') will be stored in a special variable called '$1' ... whatever is in parentheses gets stored in a variable. How cool is that? </p> <p>$1 can then be used in the second part of the regular expression. So, for instance, if we had this text:</p> <blockquote><p>"many"</p></blockquote> <p>and ran this regular expression on it:</p> <blockquote><p>s/(many)/$1$1$1/</p></blockquote> <p>we would get:</p> <blockquote><p>manymanymany</p></blockquote> <p>The second half of the first part of our expression looks like this:</p> <blockquote><p>(.*\n)</p></blockquote> <p>Again, the parentheses. So, whatever is matched by a dot followed by an ampersand followed by a slash-n will be stored in variable $2. The first thing in parens gets stored in variable $1, the second in variable $2, and so on.</p> <p>A dot is any letter, number, or space, as you know. A star following anything means "any number, including zero, of whatever was just before me" (that's the star talking). So, dot-star means pretty much whatever is there. The slash-n means the "newline" ... the carriage return at the end of the line where you hit the "enter" key. </p> <p>So, the first part of the calendar output is "eaten" by the first thing in parens, and the second part ... everything not including that first, already consumed part, up to and including the newline (carriage return) at the end, is stored in the second part. So,</p> <p>$1 = 'Dec 08 '<br /> $2 = ' First Ph.D. awarded by Computer Science Dept, Univ. of Penna, 1965\n"</p> <p>The second part of the regular expression looks like this:</p> <blockquote><p>&lt;dt&gt;$1&lt;\/dt&gt;\n&lt;dd&gt;$2&lt;\/dd&gt;\n</p></blockquote> <p>Reading from left to right this means:</p> <p>The opening HTML tag for "definition term" [followed by] whatever is in variable $1 [followed by] the closing HTML tag for "definition term" [followed by] a carriage return [followed by] the opening HTML tag for definition definition (the actual definition) [followed by] whatever is in variable $2 [followed by] the closing tag, [followed by] a newline. </p> <p>Now, lets say we named the script "calendar2html.sh" ... To run it, if you are in the same directory as the script, you can type "bash calendar2html.sh". But if you want to have this become part of your regular set of available commands, you will need to put the file in a directory that is on your path, and to change (chmod) the script file into an "executable" file. I'm not going to go into that stuff right now.</p> <p>Also, my script always makes a file called "calendar.html" rather than allowing you to specify some other name. I find that very convenient and see no reason to complicate matters. But others will prefer to complicate matters. </p> <p>There is more than one way to do this. For instance, there is another, more elegant way to specify "eight whatevers." Also, the newlines that end up being in the code at the end do not really need to be there. all the HTML code in this case can be all smushed up, no problem. Also, I could have used a regular expression to put the definition lists opening and closing tags around the whole thing, rather than the echo statements. But then, we wouldn't get to talk about redirection that appends vs. overwrites to a file. </p> <p>Whenever I read this kind of thing written by someone else on the web, there is always a disclaimer. Obviously, if you try this on your own computer, and your computer blows up, then you're some kind of chump for doing what I said to do, OK? </p> <p>Also, this is all being done on a Linux computer, but the basic idea will work on any computer with perl, and that could in theory be a Mac or a Windows computer. However, I think the calendar program is confined to the linux/unix system.</p> <p>Gentlemen/women, start your terminals....</p> <hr /> <p>Sources:</p> <p><a href="http://www.amazon.com/gp/product/0596005954?ie=UTF8&amp;tag=wwwgregladenc-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0596005954">Classic Shell Scripting</a><img src="http://www.assoc-amazon.com/e/ir?t=wwwgregladenc-20&amp;l=as2&amp;o=1&amp;a=0596005954" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></p> <p><a href="http://www.amazon.com/gp/product/0596528124?ie=UTF8&amp;tag=wwwgregladenc-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0596528124">Mastering Regular Expressions</a><img src="http://www.assoc-amazon.com/e/ir?t=wwwgregladenc-20&amp;l=as2&amp;o=1&amp;a=0596528124" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></p> <p>Not necessary for this level of scripting, but useful:</p> <p><a href="http://www.amazon.com/gp/product/0596000278?ie=UTF8&amp;tag=wwwgregladenc-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0596000278">Programming Perl (3rd Edition)</a><img src="http://www.assoc-amazon.com/e/ir?t=wwwgregladenc-20&amp;l=as2&amp;o=1&amp;a=0596000278" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></p> </div> <span><a title="View user profile." href="/author/gregladen" lang="" about="/author/gregladen" typeof="schema:Person" property="schema:name" datatype="">gregladen</a></span> <span>Sat, 12/08/2007 - 11:15</span> <div class="field field--name-field-blog-tags field--type-entity-reference field--label-inline"> <div class="field--label">Tags</div> <div class="field--items"> <div class="field--item"><a href="/tag/computer-tricks" hreflang="en">Computer Tricks</a></div> </div> </div> <section> <article data-comment-user-id="0" id="comment-1368550" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1197136708"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>That's a lot of how, but why?</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1368550&amp;1=default&amp;2=en&amp;3=" token="Z7pL-6MXwDotRWAGTE0OJwPqEZJpdSy1kh3HN74vUWw"></drupal-render-placeholder> </div> <footer> <em>By <a rel="nofollow" href="http://rrresearch.blogspot.com" lang="" typeof="schema:Person" property="schema:name" datatype="">Rosie Redfield (not verified)</a> on 08 Dec 2007 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1368550">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-1368551" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1197139578"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Rosie</p> <p>Because he can :)</p> <p>Greg - next step is to automate the importation and posting of that file into your blog and set up a cron job to do it at regular intervals :D - hands free blogging LOL</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1368551&amp;1=default&amp;2=en&amp;3=" token="xh3-jLA8ahg0RjLYQ5TYp3ZS9Vd1qcvfjCFJIITwMSE"></drupal-render-placeholder> </div> <footer> <em>By <a rel="nofollow" href="http://www.thealders.net/blogs/" lang="" typeof="schema:Person" property="schema:name" datatype="">Doug Alder (not verified)</a> on 08 Dec 2007 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1368551">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="31" id="comment-1368552" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1197141321"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Rosie: Yea, what he said. </p> <p>Actually, this took me a half hour to make work, and an hour to write up the post. So I don't count the post.</p> <p>That half hour will save me a minute for every post, but more importantly, I've learned something that I can use for other automation effects. So in ten or twenty months I'll start to break even...</p> <p>Doug ... Exactly. I have a Python script hat will load text onto the movable type engine, so a chron job at one end and python on the other... I'll provide the option to calendar to only give one day of data instead of two, then "Greg Laden's Blog" will be the GOTO BLOG for what's happenin'.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1368552&amp;1=default&amp;2=en&amp;3=" token="H1YkRhG4Cj29kRijdd86T8BIoTP1ePzbzwebTbS2_4M"></drupal-render-placeholder> </div> <footer> <em>By <a title="View user profile." href="/author/gregladen" lang="" about="/author/gregladen" typeof="schema:Person" property="schema:name" datatype="">gregladen</a> on 08 Dec 2007 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1368552">#permalink</a></em> <article typeof="schema:Person" about="/author/gregladen"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/author/gregladen" hreflang="en"><img src="/files/styles/thumbnail/public/pictures/HumanEvolutionIcon350-120x120.jpg?itok=Tg7drSR8" width="100" height="100" alt="Profile picture for user gregladen" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> </section> <ul class="links inline list-inline"><li class="comment-forbidden"><a href="/user/login?destination=/gregladen/2007/12/08/how-to-turn-linux-calendar-out%23comment-form">Log in</a> to post comments</li></ul> Sat, 08 Dec 2007 16:15:13 +0000 gregladen 22986 at https://www.scienceblogs.com Kill! Kill! Kill! (A Linux tip) https://www.scienceblogs.com/gregladen/2007/12/03/kill-kill-kill-a-linux-tip <span>Kill! Kill! Kill! (A Linux tip)</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>Now and then a program (a "process") will need to be killed. It got annoyingly slow, or got stuck somehow. In Windows, the final solution for killing a process is <em>"alt-ctrl-delete" </em>which may or may not give you the capacity to shut down a process, and if that works, it requires a lot of struggling with dialog boxes, etc. Best case scenario in Windows is that the process dies cleanly. Often, a Windows process will leave messy bits and pieces of itself behind that may affect performance or create security problems, and often, the worst case scenario happens ... you've got to "kill" the process hard, by turning off the power or yanking the cord from the wall or throwing the computer into the nearest lake. </p> <p>In Linux, nothing actually goes wrong, of course. </p> <!--more--><p>But when it does, you need to learn to kill a process. In the vast, vast majority of cases, the kill will be clean and a reboot will not be necessary. If you think a process, or killing a process, causes you to require a reboot, you should look into the possibility that something else more deeply screwy is going on, like that squirrels have moved into your computer or something along those lines. There are linux computers that have been running for years and have never been rebooted, even with system upgrades. There is one computer in the British Museum of Natural History that was pilfered by early archaeologists, believed to be one of the first Linux systems from the fifth dynasty of Egypt, that is still running, presumably on batteries from Atlantis. </p> <p>The tools that you can play around with for this are top, kill, ps, and pkill. You will ultimately use pkill most of the time, but pkill needs to know the "name" of the process you are taking a contract out on, and the other tools can help with that.</p> <p>So go ahead and start a program that you don't mind killing. For instance, the gnome dictionary utility that may or may not be installed on your toolbar. This will be the process to kill.</p> <p>Now open a terminal window and type in "top"</p> <p>This starts a program that lists every single processes you have access to and many you don't have access to. Top is one of those cool terminal based programs that looks like a gui but since it is not a gui, it is crispy and works all the time. </p> <p>Try to find the target program. It is probably not visible because there is too much stuff running and since the software is likely not too busy it is probably way down on the bottom of the list . </p> <p>So type a "u" and Top will ask you for which user's processes you want to see. Type in your user name. Now you will see that there are only your processes listed, but there is still a large number of them, probably way too many to find the target process. But it is cool to see how many processes their are that are all yours, and you didn't even know about them. If you go and fiddle with the target program (I just went and looked up a word in the Gnome Dictionary utility) the process will jump to the top of the pile and become briefly visible (the default sort order is CPU usage). You can use the &lt; and &gt; buttons to change the column the data are sorted on, and "R" to reverse the sort order. This might help you find the process you want to kill.</p> <p>Once you find the process on top, you can type "k" for kill, and up near the top of top it will say "PID to kill:" ... here is where you type in the number from the PID column of the process to kill. This works but is a pain because it is hard to find the process. </p> <p>Suppose you have a process that often gets stuck and you often want to know its PID number. Here's a neat (though as we'll see in a moment unnecessary) trick to do this. Grep a batch version of the top command using part of the likely name of the process. The grep command can be used to isolate a line of text in a text stream based on the presence of a string on that line. Top, however, is not a data stream, but rather, one of these fake GUI programs. But it has "batch" mode. </p> <p>This simply spits out the entire stream of process data every second or two until you figure out how to stop it (you may well end up having to "kill" top. So you can "pipe" (using a pipe, or a "|") the output of top's batch mode to grep. The command for my search of a dictionary program might be:</p> <p> top -b | grep "dict"</p> <p>I'm guessing that the string "dict" is part of the file name, and indeed, it is. Good thing I did not choose "dictionary" because the process name turns out to be gnome-dictionar (no y!). </p> <p>Anyway, I can see my process id from this output, stop the top batch mode by frantically pressing various buttons such as control-c and control-d until it stops, or even better, just close that terminal window when I'm done with it. I can, for instance, have regular top running in one window and top -b | grep "whatever" running in another, use the info form the later to kill the process in the former, then just shut both terminal windows.</p> <p>However, "top", as it turns out, is not really a nice *xnix program. It's actually a program based on other programs that are more relevant to what you want to use. For instance, there is a program called ps that simply lists all the processes. Open a terminal window, and type in ps. You get a fairly useless list of programs including the terminal window itself and the ps command itself and possibly nothing else. It is only telling you what is running in this terminal. So try typing in: </p> <p>ps -e</p> <p>the "-e" stands for "everything" ... and will cause ps to print out a full list of processes.</p> <p>To find a particular process, grep the list with a guess of the process name, for instance:</p> <p><a href="mailto:greg@greg">greg@greg</a>-laptop:~$ ps -e | grep "dict"<br /> 7451 ? 00:00:00 gnome-dictionar</p> <p>The second line is the output. Cool.</p> <p>Now, I can kill the dictionary with a simple kill command:</p> <p><a href="mailto:greg@greg">greg@greg</a>-laptop:~$ kill 7451<br /> <a href="mailto:greg@greg">greg@greg</a>-laptop:~$ ps -e | grep "dict"<br /> <a href="mailto:greg@greg">greg@greg</a>-laptop:~$ </p> <p>Here, I've killed the process using the number that I learned from grepping ps, then re-grepped ps and got nothing back, meaning that the process is dead, nice and clean-like.</p> <p>But wait, there's more. If you know the name of the process, you can kill it with the command pkill, like this:</p> <p><a href="mailto:greg@greg">greg@greg</a>-laptop:~$ ps -e | grep "dict"<br /> 8018 ? 00:00:00 gnome-dictionar<br /> <a href="mailto:greg@greg">greg@greg</a>-laptop:~$ pkill gnome-dictionar<br /> <a href="mailto:greg@greg">greg@greg</a>-laptop:~$ ps -e | grep "dict"<br /> <a href="mailto:greg@greg">greg@greg</a>-laptop:~$ </p> <p>Here I've grepped ps to show that gnome-dictionar is running, then I killed it by referring to its name with pkill, then checked and ding-dong, the dictionary is dead. The first and third steps here were not necessary, I just wanted to show you that gnome-dictionar was there, then gone. Its like bringing back a finger or an ear. </p> <p>There are other ways to kill things, including a utility that sits on your gnome toolbar, with an icon that looks like a window breaking in half . You pick that icon and touch any program with it, and this give you the option to "force" an application closed. </p> <p>I do that when I need to, but I also like killing stuff from the terminal. It is simply more fun. </p> <p>On a final note, I mentioned above that the "-e" option in ps meant "everything" ... I was only kidding, just pushing troll buttons. It actually means "every process." </p> <p>One other thing. Don't "kill all" or pkill with wildcards. Both commands may well work on your system. A good hit-man does not use a hand-grenade. Why should you?</p> </div> <span><a title="View user profile." href="/author/gregladen" lang="" about="/author/gregladen" typeof="schema:Person" property="schema:name" datatype="">gregladen</a></span> <span>Mon, 12/03/2007 - 10:07</span> <div class="field field--name-field-blog-tags field--type-entity-reference field--label-inline"> <div class="field--label">Tags</div> <div class="field--items"> <div class="field--item"><a href="/tag/computer-tricks" hreflang="en">Computer Tricks</a></div> <div class="field--item"><a href="/tag/linux" hreflang="en">Linux</a></div> <div class="field--item"><a href="/tag/technology" hreflang="en">Technology</a></div> </div> </div> <section> <article data-comment-user-id="0" id="comment-1368308" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1196698916"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>There is also xkill that lets you select a gui program to kill.</p> <p>I use some non-native programs that do not always respond to the default kill command when they become unresponsive. I have to use "kill -9 " in that case. It doesn't do a proper cleanup, but it works as a last resort.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1368308&amp;1=default&amp;2=en&amp;3=" token="r_KmfsZBAKgFh1e8zWQ2ynMswddJJnSJUcN7wdgPWS0"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">CS (not verified)</span> on 03 Dec 2007 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1368308">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="31" id="comment-1368309" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1196701310"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Yes! xkill with no process ID number gives you a cool skull and crossbones cursor. Whatever you touch with it dies. </p> <p>man xkill gives us:</p> <p>" This program is very dangerous, but is useful..."</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1368309&amp;1=default&amp;2=en&amp;3=" token="m8JtWmfELD6iIcnHhE7Q7Bln83HRS3idD9-OVPw-ZjA"></drupal-render-placeholder> </div> <footer> <em>By <a title="View user profile." href="/author/gregladen" lang="" about="/author/gregladen" typeof="schema:Person" property="schema:name" datatype="">gregladen</a> on 03 Dec 2007 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1368309">#permalink</a></em> <article typeof="schema:Person" about="/author/gregladen"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/author/gregladen" hreflang="en"><img src="/files/styles/thumbnail/public/pictures/HumanEvolutionIcon350-120x120.jpg?itok=Tg7drSR8" width="100" height="100" alt="Profile picture for user gregladen" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-1368310" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1196733017"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>There are ways to kill processes from a GUI. In KDE, use KSysGuard. It has two tabs, one for system load, and the other for process table. Click the process you don't like and hit the kill button. Gnome must have something similar.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1368310&amp;1=default&amp;2=en&amp;3=" token="6XkvDQL8-7fyyEk66AJnEO2EcS2iLCh4j2zKuX_lksE"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">Lassi Hippeläinen (not verified)</span> on 03 Dec 2007 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1368310">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-1368311" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1196743111"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>What do you do if the x server hangs on shutdown? Other than pull the power with a menacing spork?</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1368311&amp;1=default&amp;2=en&amp;3=" token="xBO28JwYBaYVf3BmH2pUz65A6cnPSn-uM2zCOdbJ07A"></drupal-render-placeholder> </div> <footer> <em>By <a rel="nofollow" href="http://yorkshire-ranter.blogspot.com/" lang="" typeof="schema:Person" property="schema:name" datatype="">Alex (not verified)</a> on 03 Dec 2007 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1368311">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="31" id="comment-1368312" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1196752044"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>I supposed it depends on where in shutdown you are. You could hit ctrl-function key (try various ones) to get a terminal and then kill the x server from a distance.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1368312&amp;1=default&amp;2=en&amp;3=" token="0TCzAhGG8mYCLF3-gF67K27fOoy64X1VX5bBXw4nGbM"></drupal-render-placeholder> </div> <footer> <em>By <a title="View user profile." href="/author/gregladen" lang="" about="/author/gregladen" typeof="schema:Person" property="schema:name" datatype="">gregladen</a> on 04 Dec 2007 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1368312">#permalink</a></em> <article typeof="schema:Person" about="/author/gregladen"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/author/gregladen" hreflang="en"><img src="/files/styles/thumbnail/public/pictures/HumanEvolutionIcon350-120x120.jpg?itok=Tg7drSR8" width="100" height="100" alt="Profile picture for user gregladen" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-1368313" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1196763046"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>When all else fails you need to "kill -9."<br /> <a href="http://www.youtube.com/watch?v=Fow7iUaKrq4">http://www.youtube.com/watch?v=Fow7iUaKrq4</a></p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1368313&amp;1=default&amp;2=en&amp;3=" token="19yh62D3e9pXumdCPKpOcPGmUV8zaFNs8Fpwooq8rKc"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">Greg Buchholz (not verified)</span> on 04 Dec 2007 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1368313">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-1368314" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1196763635"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>depending on how your X11 is configured, it may listen to ctrl-alt-backspace. that hotkey --- unless it's been disabled, which is rare --- kills off the X server (the GUI part of the OS alone), which can lead to either a restart of the GUI dumping you at the log-in screen (the usual result) or a text-mode-only user interface (rarer).</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1368314&amp;1=default&amp;2=en&amp;3=" token="HWRd2YmrWPIrHRsph6cY5xbz_Uhje0PFD7GZSvHO8-s"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">Nomen Nescio (not verified)</span> on 04 Dec 2007 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1368314">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> </section> <ul class="links inline list-inline"><li class="comment-forbidden"><a href="/user/login?destination=/gregladen/2007/12/03/kill-kill-kill-a-linux-tip%23comment-form">Log in</a> to post comments</li></ul> Mon, 03 Dec 2007 15:07:49 +0000 gregladen 22896 at https://www.scienceblogs.com Do you want to be a Super Geek? https://www.scienceblogs.com/gregladen/2007/11/27/do-you-want-to-be-a-super-geek <span>Do you want to be a Super Geek?</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><blockquote><p>RAIDs (Redundant Arrays of Inexpensive [sic] Disks) are considered pretty handy for a number of things. This is an example of productive and practical use of a RAID. Granted, this project does not have the archaic grandeur of a Floppy Disk RAID, but then again, the capacity and performance of this system are utterly superior to those of a Floppy Disk RAID. The following is meant as an instruction sheet of how to build a rock-hard USB stick RAID system and simultaneously transform from an ordinary nerd to a SUPER LINUX GURU.</p></blockquote> <p>Get your sticks together and go <a href="http://cs.joensuu.fi/~mmeri/usbraid/">here.</a> </p> </div> <span><a title="View user profile." href="/author/gregladen" lang="" about="/author/gregladen" typeof="schema:Person" property="schema:name" datatype="">gregladen</a></span> <span>Tue, 11/27/2007 - 13:53</span> <div class="field field--name-field-blog-tags field--type-entity-reference field--label-inline"> <div class="field--label">Tags</div> <div class="field--items"> <div class="field--item"><a href="/tag/computer-tricks" hreflang="en">Computer Tricks</a></div> <div class="field--item"><a href="/tag/linux" hreflang="en">Linux</a></div> <div class="field--item"><a href="/tag/technology" hreflang="en">Technology</a></div> </div> </div> <section> <article data-comment-user-id="0" id="comment-1368016" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1196196429"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>At one time, I worked in a place that used "Dell" desktop systems for all the employees' workstations. Given that anything important was supposed to be kept on the network servers to be backed up, there was a lot of wasted space on those machines' local hard drives.</p> <p>I never tried this, but I considered experimenting with the following scenario:</p> <p>1)Set up a shared directory on each workstation's disk.<br /> 2)Create a large empty file of the same size in each directory.<br /> 3)Mount each directory via mount.cifs and, treating the files as virtual hard drives, combine them into a RAID array.</p> <p>It would probably perform about as well as the USB stick RAID does if it worked at all...but at least it'd be a way to put all the wasted space on the Windows™ systems to better use.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1368016&amp;1=default&amp;2=en&amp;3=" token="7cwY1pMBC2wauR_6LVaMV4fYC5J1j_MF6Xo6mA1dBf8"></drupal-render-placeholder> </div> <footer> <em>By <a rel="nofollow" href="http://www.bigroom.org/wordpress" lang="" typeof="schema:Person" property="schema:name" datatype="">SMC (not verified)</a> on 27 Nov 2007 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1368016">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> </section> <ul class="links inline list-inline"><li class="comment-forbidden"><a href="/user/login?destination=/gregladen/2007/11/27/do-you-want-to-be-a-super-geek%23comment-form">Log in</a> to post comments</li></ul> Tue, 27 Nov 2007 18:53:18 +0000 gregladen 22809 at https://www.scienceblogs.com Fixing Your Dictionary https://www.scienceblogs.com/gregladen/2007/11/23/fixing-your-dictionary <span>Fixing Your Dictionary</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>Your are typing some text into your FIrefox 2.0 Browser, and you spell something terribly wrong. Like this:</p> <blockquote><p>I am so glad I upgreaded to Firefox 2.0, because it has a built in spell checker.</p></blockquote> <p>You see the error where you meant to type "upgraded." So you right click on it to pick the correct spelling, and accidentally hit the "Add to Dictionary" menu choice, which is annoyingly placed right next to the correctly spelled word. </p> <p>From now on, you can never be sure if your text will be correct. Bummer.</p> <p>There is a way to fix this. </p> <!--more--><p>In Linux, go to a terminal window.</p> <p>Change the directory to where Firefox stores the dictionary file. Thiis in your home directory, in a subdirectory with a "dot" at the beginning of the name (to make it invisible), then a couple of subdirectories down below that. The file you are looking for is called "persdict.dat"</p> <p>Most likely, you can just type this into the terminal window:</p> <blockquote><p>cd ~/.mozilla/firefox/*.default</p></blockquote> <p>and that will bring you to the default configuration file. The "star" is because the exact name of your configuration file is unknown to me. Your Linux system will open to the first directory that fits this "wildcard."</p> <p>Now type "ls" to see if you see a persdict.dat. </p> <p>If it was me, I'd then type:</p> <blockquote><p>gedit persdict.dat</p></blockquote> <p>so you can edit the dictionary in a nice word processor (Gedit). </p> <p>An even more direct approach which may work nicely is to go to the terminal window and simply type in this command:</p> <blockquote><p>gedit ~/.mozilla/firefox/*.default/persdict.dat</p></blockquote> <p>Either way, edit the file, save it, and you're cool.</p> </div> <span><a title="View user profile." href="/author/gregladen" lang="" about="/author/gregladen" typeof="schema:Person" property="schema:name" datatype="">gregladen</a></span> <span>Fri, 11/23/2007 - 08:15</span> <div class="field field--name-field-blog-tags field--type-entity-reference field--label-inline"> <div class="field--label">Tags</div> <div class="field--items"> <div class="field--item"><a href="/tag/computer-tricks" hreflang="en">Computer Tricks</a></div> <div class="field--item"><a href="/tag/linux" hreflang="en">Linux</a></div> <div class="field--item"><a href="/tag/technology" hreflang="en">Technology</a></div> </div> </div> <section> <article data-comment-user-id="0" id="comment-1367956" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1195977564"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>I just looked at the Micro$oft version.</p> <p>Look at C:\Program Files\Mozilla Firefox\dictionaries<br /> The file in question is en-US.dic</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1367956&amp;1=default&amp;2=en&amp;3=" token="6UR3Lol_qUhmOa5212LNTASzHJsOqwS9tjj9sup3efE"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">Some lurker (not verified)</span> on 25 Nov 2007 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1367956">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> </section> <ul class="links inline list-inline"><li class="comment-forbidden"><a href="/user/login?destination=/gregladen/2007/11/23/fixing-your-dictionary%23comment-form">Log in</a> to post comments</li></ul> Fri, 23 Nov 2007 13:15:20 +0000 gregladen 22793 at https://www.scienceblogs.com Form Field Woes https://www.scienceblogs.com/gregladen/2007/11/21/form-field-woes <span>Form Field Woes</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><p>A form field is one of those boxes on a web page (or elsewhere) that you can fill in with information. Your web browser may try to "auto complete" an entry that you are trying to type in. </p> <p>For example, when I try to type my name into a box that that I've visited before, when I type the first letter ... "G" ... my browser suggests several different options, remembering the various pseudonyms I use, giving me a list like this:</p> <p>Greg Laden<br /> Grog Stevenson<br /> Greeb Miller</p> <p>and so on. </p> <p>That's convenient, but it can be annoying when things go wrong...</p> <!--more--><p>For instance, for a long time, when I started to type in my email address, I was being given only one choice, which was incorrect. I assume this came from some earlier typo that the browser recorded. So, whenever I would type in:</p> <p><a href="mailto:greg@gregladen">greg@gregladen</a>. ...</p> <p>I would get as my only choice:</p> <p><a href="mailto:greg@gregladen.om">greg@gregladen.om</a></p> <p>Which is incorrect. </p> <p>Another inconvenient and annoying possibility is when you type in your user name and password into one box by accident, so that every time you (or anyone else who has access to your computer, whether or not they are supposed to) types in your user name, you see the password as well in plain text:</p> <p>Greg_Laden muffyThe#&amp;Cat</p> <p>... thus exposing your password to the whole world. Or, at least the part of the world that is looking over your shoulder or who may look in the place on your computer where these data are stored to see if your password is recorded there in plain text. </p> <p>Did you ever wonder how to fix this? Well, if you are using Foxfire, it is easy. </p> <p>Start typing in the letters that will bring up the list of options which includes the one you don't ever want to see again.</p> <p>When you see the option, selected it using the arrow button on your keyboard so that it is highlighted.</p> <p>Hit Shift-Delete (where "Delete" is the "Delete Key").</p> <p>It will be gone.</p> <p><strong><br /> BONUS TIP:</strong></p> <p>It is strongly suggested that you do NOT use the name of your pet or your child as a password. One reason for this is that names such as "Steven" or "Muffy" are not very secure because they do not have an odd mixture of upper and lower case, and do not include characters such as #*#(*&amp;% and so on. </p> <p>There is an incredibly easy way to fix this.</p> <p>Next time you have a child or acquire a pet, give it a name with mixed upper and lower case, and a sprinkling of unusual characters. For instance, you could name your cat "sPr!!nkles" or "paTCHe$" A good name for a child might be ro%#$Bert! if it is a boy, or GlAdY$$ if it is a girl. </p> <p>This will give you much more secure passwords.</p> <p>That is all. </p> </div> <span><a title="View user profile." href="/author/gregladen" lang="" about="/author/gregladen" typeof="schema:Person" property="schema:name" datatype="">gregladen</a></span> <span>Wed, 11/21/2007 - 07:16</span> <div class="field field--name-field-blog-tags field--type-entity-reference field--label-inline"> <div class="field--label">Tags</div> <div class="field--items"> <div class="field--item"><a href="/tag/computer-tricks" hreflang="en">Computer Tricks</a></div> </div> </div> <section> <article data-comment-user-id="0" id="comment-1367885" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1195649718"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>One must use care when <a href="http://xkcd.com/327/">including special characters in your children's names</a> ...</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1367885&amp;1=default&amp;2=en&amp;3=" token="Ect91Z8XcbyYTeIvYC0cZX9dsKt9J14hb-Ci5nvcu48"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">Scott Simmosn (not verified)</span> on 21 Nov 2007 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1367885">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-1367886" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1195650955"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>OK, how did you happen to come across this trick?</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1367886&amp;1=default&amp;2=en&amp;3=" token="loUa-XqWihGXd3onof-VgDzGqbvlfr2QpkGQNiMKREg"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">Ahcuah (not verified)</span> on 21 Nov 2007 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1367886">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-1367887" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1195655957"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Um Ahcuah - try hitting F1 in Firefox and then going to Keyboard Shortcuts ;)</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1367887&amp;1=default&amp;2=en&amp;3=" token="LEbcLykAJsFcKXndbm6GNALVCWd9uRgg6ViLwd96BaQ"></drupal-render-placeholder> </div> <footer> <em>By <a rel="nofollow" href="http://www.thealders.net/blogs/" lang="" typeof="schema:Person" property="schema:name" datatype="">Doug Alder (not verified)</a> on 21 Nov 2007 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1367887">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-1367888" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1195659361"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>I named my cats Admin and Ntpriv. </p> <p>I guess next time I'll know better.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1367888&amp;1=default&amp;2=en&amp;3=" token="lFDixDNq5Fpl0LGpS7MuoO1yUd3_a-2CA-1hlrjrhh4"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">HP (not verified)</span> on 21 Nov 2007 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1367888">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-1367889" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1195665085"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Um, Doug Alder - you didn't answer the question at all.</p> <p>I didn't ask where it was documented, I asked how he happened to come across the trick.</p> <p>Possible answers include things like:</p> <blockquote><p>Reading the help manual in exhausting detail.</p></blockquote> <blockquote><p>Being told about it by a friend.</p></blockquote> <blockquote><p>Reading about it somewhere else.</p></blockquote> <blockquote><p>Wanting to remove one and searching the Mozilla website for the answer.</p></blockquote> <blockquote><p>Searching the website for something else, and happening across this trick.</p></blockquote> <p>Do you see the difference? ;)</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1367889&amp;1=default&amp;2=en&amp;3=" token="jzV5rmsbDuDDl1MPyfSvuSgBFNpyXQ9fpX3SbyRoWwQ"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">Ahcuah (not verified)</span> on 21 Nov 2007 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1367889">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="31" id="comment-1367890" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1195668070"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>Yes, I searched high and low for it and it ended up being in the help section.</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1367890&amp;1=default&amp;2=en&amp;3=" token="jlglmaeUolQx5o_XZRn0qBgelBAZAE8fuiSR7sp8Wnw"></drupal-render-placeholder> </div> <footer> <em>By <a title="View user profile." href="/author/gregladen" lang="" about="/author/gregladen" typeof="schema:Person" property="schema:name" datatype="">gregladen</a> on 21 Nov 2007 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1367890">#permalink</a></em> <article typeof="schema:Person" about="/author/gregladen"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/author/gregladen" hreflang="en"><img src="/files/styles/thumbnail/public/pictures/HumanEvolutionIcon350-120x120.jpg?itok=Tg7drSR8" width="100" height="100" alt="Profile picture for user gregladen" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> <article data-comment-user-id="0" id="comment-1367891" class="js-comment comment-wrapper clearfix"> <mark class="hidden" data-comment-timestamp="1195674957"></mark> <div class="well"> <strong></strong> <div class="field field--name-comment-body field--type-text-long field--label-hidden field--item"><p>I'll try to remember that. There was one blog I wanted to comment on, but I misstyped the password and had checked the remember this box. I couldn't figure out how to eliminate the cookie, and was excluded....</p> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=1367891&amp;1=default&amp;2=en&amp;3=" token="GrOjVQQKgDzQ02hWcnlwIkSmg8bsWJSNSkHF7LhXHDA"></drupal-render-placeholder> </div> <footer> <em>By <span lang="" typeof="schema:Person" property="schema:name" datatype="">bigTom (not verified)</span> on 21 Nov 2007 <a href="https://www.scienceblogs.com/taxonomy/term/4595/feed#comment-1367891">#permalink</a></em> <article typeof="schema:Person" about="/user/0"> <div class="field field--name-user-picture field--type-image field--label-hidden field--item"> <a href="/user/0" hreflang="und"><img src="/files/styles/thumbnail/public/default_images/icon-user.png?itok=yQw_eG_q" width="100" height="100" alt="User Image" typeof="foaf:Image" class="img-responsive" /> </a> </div> </article> </footer> </article> </section> <ul class="links inline list-inline"><li class="comment-forbidden"><a href="/user/login?destination=/gregladen/2007/11/21/form-field-woes%23comment-form">Log in</a> to post comments</li></ul> Wed, 21 Nov 2007 12:16:17 +0000 gregladen 22774 at https://www.scienceblogs.com