Monday, 16 March 2020

Tech Books I Will Read Again

I have read a crap-ton of technical books, mostly on software, but some either more general or hardware related so I felt the need to generalize the genre to "technical" books. If you've been following my blog for the last year, you'll agree that especially recently, my reading rate has been arguably excessive. I'm reaching a point where I'd like to slow down and focus on some other things in my free time, but I'm also reflecting on all of the great and not-so-great tech books I've read. One of the defining factors in whether I think a tech book is excellent versus merely good is if I have the urge to read it again. (For anyone wondering, there is no distinction needed for the bad tech books.) This feeling might happen right after I finish it, or even while I'm reading it the first time. It also might take a while to percolate and rise back to the surface as a book I want to go back to. The bottom line is, a mark of a great tech book is that it's worth revisiting, so what follows is a list of tech books I've read that I thought were so great that I'm going to read them again.

Object Oriented Design Heuristics 



This is a completely underrated book about software design, not in the sense that it gets poor reviews, because it doesn't, but it's not a very well-known book for how great it is. Other software design books, specifically Design Patterns, the notorious GoF book, steals all of the oxygen in the room, but I strongly prefer Object-Oriented Design Heuristics. While GoF is heavily prescriptive and mechanical in how it lays out the design patterns to use when writing software, OODH digs into the guidelines and rules-of-thumb that lie underneath those patterns. Instead of attempting to memorize a couple dozen patterns and their various applications, the reader learns why certain ways of organizing code work and naturally make the code easier to understand, debug, and change. It teaches fundamental concepts instead of lists of tools, and in the end knowing the fundamentals is much more valuable. In addition to being able to derive the tools you need without needing to remember them all, you can apply the fundamentals to new situations and invent new tools when the ones you have don't fully meet the requirements. The fundamentals are always worth revisiting.

The Pragmatic Programmer: From Journeyman to Master


The Pragmatic Programmer was a shoe-in for this list. It is the definition of short and sweet for a programming book, and every piece of advice contained within it is pure gold. So many concepts that I use every day are contained in these pages. DRY. Tracer bullets. The Broken Window Theory. It's all in here, and now there's the 20th anniversary edition. It's the perfect excuse to go back and read it again for the first time. 

Clean Code: A Handbook of Agile Software Craftsmanship


Clean Code has a fair amount of overlap with the previous two books, but there's plenty that's unique in here and Robert C. Martin is such a great writer that it's worth it to reread this book, too. This book was surprisingly engaging for how deep it went into the minutiae of writing code. Like Object-Oriented Design Heuristics, it lays out guidelines and heuristics for writing better code, but it focuses a bit more on the specifics of how to name variables, structure functions, and write comments. It may veer more into the list-of-tools arena, but Martin reasons about everything nicely and it just seems to work for me in a way that GoF doesn't. It's always good to periodically refresh the concepts behind writing clean code.

Agile Principles, Patterns, and Practices in C#


This book covers much more ground than any of the previous three books, and it is subsequently much longer than any of them. It weaves together the topics listed on the cover quite well throughout the book, driving many of the chapters with simple, instructive examples. This book is where the SOLID design principles are laid out, along with a review of most of the standard patterns in GoF. Where this book does things better than the prescriptive GoF is in how the pattern discussions are example-driven and grounded in the design principles covered earlier in the book. The flow is so much better, and the reader comes away with a great understanding of why the patterns work, when to use them, and how to apply them appropriately.

Facts and Fallacies of Software Engineering


This is such a quick, sharp, and relevant read, that it's definitely worth a reread every now and again. You won't agree with every one of Robert Glass' facts and fallacies, (when does anyone agree with everything in a software engineering book?) but they will make you think and rethink your assumptions, which is always valuable for growth as a developer. 

The Little Schemer and The Seasoned Schemer


These gems were such a joy to read the first time, there's no way they were not going to make this list. The quirky humor and self-guided Q&A format work perfectly. I can't think of a better way to refresh my basic programming skills with Scheme, and rewrite a Scheme interpreter, than to reread these books. Scheme is essentially a fundamental programming language, so in addition to these books being great to go back to, Scheme is a great language to go back to and polish up any rusty programming skills.

Structure and Interpretation of Computer Programs


While SICP is the polar opposite of The Little Schemer and The Seasoned Schemer, it's just as good for learning and reviewing Scheme and programming fundamentals. Most introductory programming books are not worth revisiting because they tend to focus on language syntax and mechanics, but that's not true here. Scheme doesn't have much syntax to begin with, so SICP goes deep into fundamental programming concepts and, well, how to structure programs. It goes so deep that it's probably only worth revisiting the first three of its five chapters (how often do you need to review how to build a register machine simulator?), but that still presents a challenging and valuable exercise.

Eloquent Ruby


If I had to pick a favorite language, it would be Ruby, and this book exemplifies why. Everything needed to write beautiful Ruby programs is contained in here, and it has none of the boring cruft of an introductory programming language book. Russ Olsen is also an excellent technical writer, so the book is an enjoyable and easy read. This is how all intermediate-to-expert level programming books should be, and it makes it a pleasure to refresh those Ruby programming skills.

Confident Ruby: 32 Patterns for Joyful Coding


This book is like an up-to-date version of Object-Oriented Design Heuristics for Ruby. It's a quick, enjoyable read, with Avdi Grimm writing in an approachable, conversational style. The content is superb, detailing the best ways to write Ruby methods that have a definitive purpose without stumbling over edge cases that often weaken code. It's a great book for reviewing how to write clean, concise, purposeful code, and it would probably work for any programmer, not just the Rubyists out there.

Rails Antipatterns: Best Practice Ruby on Rails Refactoring


The books on this list are here because they offer timeless advice, and this book is no different. It may seem like it's specifically about Ruby on Rails 3 programming, but the methods of refactoring the example antipatterns covered in the book—and why those antipatterns are bad in the first place—extend well beyond Rails. Bad code sucks for the same reasons no matter which programming language it's written in, and clean code shines in any language for the same reasons. It just so happens that Ruby and Rails are such pleasant vehicles for learning how to write clean code, and this book in particular uses a great style of showing how not to write code and how to fix that ugly code that was written before learning all of this great advice. 

HTML and CSS: Design and Build Websites


This is hands-down the most beautiful technical book I've ever read, and after looking through it, it becomes obvious that this is the best way to present the HTML and CSS syntax. These are the languages of visual design for the web, after all, so it makes sense to show how all of the tags and attributes work with full color pictures and diagrams on every page. It's especially helpful when showing the differences between borders, padding, and margins in CSS, but really most HTML tags and CSS attributes translate well to this kind of presentation. It's also quick to page through every once in a while, and such an enjoyable experience that it's worth doing multiple times.

Don't Make Me Think (Revisited)


This book was an easy addition to this list, partly because I already have read it twice. It was just as good the second time around when the updated version came out. Don't Make Me Think (Revisited) is packed with examples of both the right way and the wrong way to design websites, but mostly the right way. Steve Krug has a quick wit and the full color page layouts are great to look through for ideas. All of this makes the book a fast, easy read so there's no excuse to not refresh your knowledge on website design best practices.

Envisioning Information, Visual Explanations, and The Visual Display of Quantitative Information


This is another set of books that's easy to kick back with and peruse at your leisure, this time with a focus on how to display information in a way that makes insights jump off the page. These books are full of excellent advice and ideas on how to present information in charts, diagrams, and pictures so that the relevant information is clear and obvious instead of confusing and obfuscated. How data is represented is as important as the quality of the data itself, and reviewing these books will help drive your imagination to show that data in the best light for consumption and the spread of ideas.

Data Smart: Using Data Science to Transform Information Into Insight


I enjoyed this book way more than I was expecting to. John Foreman has a great sense of humor that really comes through in his writing, and he's able to take a normally dry topic and make it, dare I say, entertaining. He runs through a bunch of data science algorithms using real data and everyone's favorite spreadsheet program, Excel. Really. He develops all of these algorithms in Excel, and yes I meant entertaining. It's not a typo. A spreadsheet is actually a natural fit for learning about these algorithms because you can see every step in the process all laid out before you in black and white. It was so good, I'm planning to read the book again the next time I need a refresher course on K-Means Clustering or regression models. 

Data Science From Scratch: First Principles With Python


This is another great book about data science that teaches the reader how to implement a number of data science algorithms and supported with an excellently dry wit. Instead of using Excel as Data Smart did, this time we're doing everything in Python. More than anything, rereading this book would be for the sake of deliberate practice. It's great for practicing programming, problem solving, and algorithmic knowledge because the book is building up data science from first principles. The more comfortable you are with the fundamentals, the easier everything else gets.

Python Machine Learning


Okay, it may start to be feeling like this list is getting a little data science and machine learning heavy, but there's a reason for that. These are great books for developing analytical thinking and problem solving skills in the context of programming. Most programming books are either introductory books that aren't worth reading again once you know the language, or they're programming craftsmanship books—like the first part of this list—that are definitely worth reading, but don't flex the analytical parts of your brain much. These machine learning books do work your analytical brain more, and that goes for Python Machine Learning, too.

Professional CUDA C Programming


I found multiprocessor parallel programming with CUDA to be fascinating, and this was the best of the three books I read on the subject. It was well organized and understandable with nice, clear writing on a complex topic. It will be excellent practice to work through this book again.

The Annotated Turing


If we're going to talk about the fundamentals, we can't get more fundamental than Alan Turing's paper on computability. Charles Petzold did an amazing job parsing out Turing's paper and making it accessible to more people. This is still a challenging read, but incredibly rewarding and thought provoking. Of all the books on this list, this book will be the one that I get the most out of with a second reading. The topics covered here are so deep and subtle that it would be foolish to think that one reading would be enough to absorb everything sufficiently. I'm looking forward to another round with this book in the near future.

Notable Omissions

People may notice some popular programming books missing from this list. First, I'll say that this is my list, and I'm not making any apologies for it. Wanting to read a book more than once is some of the highest praise I'll give for a book. Reading a book a second time is a rare occurrence. There are so many potential other good books out there yet to be read! Having said that, here are a few books I purposely didn't include.

Code Complete, I felt was too long and dry for my tastes. I much preferred Pragmatic Programmer, Clean Code, and Agile Principles, Patterns, and Practices in C#, and between the three of those books the same topics were covered in a more enjoyable way and even in less pages!

Refactoring was just a slog to get through. I thought it was worse than GoF in its itemized drudgery. Much of the same material is present in other books on the list, but those books teach the reasons and motivations behind good refactorings without listing them out ad nauseum.

Introduction to Algorithms maybe should have been on the list because I did read this book twice, but the second time was such an exercise in tedium with not much reward that I wouldn't recommend it to anyone other than aspiring CS professors. There have got to be more accessible algorithms books out there to brush up on this subject.

Seven Languages in Seven Weeks is a book that I would put on any best tech book list because it's an excellent book that's definitely worth a read, but probably only once. I don't have much desire to read it or any of the other Seven in Seven Weeks books again, even though I thoroughly enjoyed them all on the first read.

Well, there you have it. A complete list of tech books that were so good that I'm planning to read them again. They all have a common thread running through them in that they teach the fundamentals of whatever topic they're covering, and they do it really well. The fundamentals are extremely important in any field, and it's worthwhile to constantly revisit them and refresh your skills. Doing that with books that are engaging and enjoyable to read makes the whole process that much easier, and that is another defining characteristic of the books on this list. I imagine I'll add a few more books over time, but probably not too many. It's a rare thing to find a tech book worth reading multiple times.
Read More :- "Tech Books I Will Read Again"

Thursday, 5 March 2020

Recent Playtesting: Apotheosis (FKA Worker Learning)


Apotheosis

Since I last posted about it, I've had the opportunity to play Apotheosis (the current title for my Worker Learning game) about a dozen times. We've quickly iterated on a couple of different aspects, going from 8 starting workers (one level 1 and one level 2 of each type) to 4 (one of each type, some level 1, some level 2, depending on turn order), adding a space to recruit more workers (I'm torn on this), adding a space to pay a chunk of resources for steps on the victory tracks, and tweaking the resolution of the Recall turns and the requirements and rewards for adventures.

The current version looks something like this:

You start with a Fighter, a Cleric, a Mage, and a Thief, 0/1/2/2 of them are level 2 at the beginning if you are player 1/2/3/4 (the ones that start leveled up are dealt to you randomly, and no two players will have the same combination of upgraded starting workers).

You take turns either placing a worker and gaining the benefit of that space (your worker must be at least tied for the highest level in that area), or recalling your workers and sending them on an adventure. Most spaces are better if you are higher level, or the right class. You can gain resources, train (level up), claim adventures (so nobody can do them out from under you), buy progress on the victory tracks, turn resources into blessings, which are like wild resources, visit the Throne Room to earn royal favors, or visit the tavern to recruit more workers.

When you place a worker, you have the opportunity to play a Side Quest card for either of 2 effects (one cares about what type of worker you are placing that turn, the other doesn't). When you recall workers, you earn steps on the three victory tracks, and if you qualify, you may do an adventure to earn more steps. The adventures have 3 tiers, and the higher the tier you do, the better the rewards. After returning from an adventure, your workers level up, becoming better at their jobs.

When you do certain Side Quests, or tier 3 adventures, you get a special resource called Spoils. You can visit the throne room to turn those Spoils into Royal Favors, which you can use at certain points on the victory tracks to take a "shortcut" as well as earn a Boon (reusable power card).

Design concerns


I'm noticing a real tightness in the design -- a difficulty creating adventures that are both doable by a player who has not recruited any new workers, but also doable by a player who has. The current level cap is 6, and so I wanted the adventures to require max 6 levels of any one class. If you hire a worker, then place it, and recall once, then you have 2 workers who's levels total 4 or 5 -- that's almost maxed out already! I am considering making the level cap 8 instead of 6, but d6s are easier to use in the prototype. Doing so would allow for more variety and more texture in the adventure requirements. It's also possible that not every adventure needs to be doable without recruiting another worker.

With just 4 types of worker, many of the tier 2 adventures require 3 of the 4 types. So you basically need to train up all of your workers if you wan to use them at all, there's not really such a things as choosing a class and neglecting it. I'm considering adding a 5th worker type to help with this -- it would allow the adventure requirements to be much more diverse.

Another thought is to add Split and/or Prestige classes:
Split classes would be like regular workers, that count as either one or the other of two types (like a Fighter/Thief would count as either a Fighter or a Thief.
Prestige classes would be like super workers that count as BOTH of two different types (Paladin = Fighter AND Cleric). For these you would probably have to discard your previous worker, therefore they BECOME a dual class worker.

Brainstorming possible solutions


Split/Prestige class workers would be pretty cool. but that sounds like expansion content to me. However adding a 5th (maybe even a 6th?) class to make the adventures more different from each other sounds reasonable. But that idea comes with its own challenges...

In the current game, each worker type is associated with 1 resource, and 3 of them are associated with one of the victory tracks. When you recall a fighter, you advance on the Crown Imperial track, and adventures that require fighters advance you further on that track. Thieves are associated with the Prince of Thieves track, and Mages are associated with the Mastermind track. Clerics are great supporting characters -- they aren't associated with any particular track, but instead give you Blessings, which are sort of like a wild resource that can be used in various different ways.

So if another worker type is added, do we need another resource? That might be a pain, but would be doable. Another victory track? I don't necessarily think that's a good idea (though I suppose it could work). What is another iconic adventurer class anyway?

One possibility is to make this 5th class a sort of Split/Prestige class like I mentioned above. Like a Paladin, which could act as either (or both) of a fighter or a cleric. But that would simply overload the fighter related stuff. So maybe better if whatever the new class is, it doesn't advance any of the tracks, but is otherwise "better" than a normal worker (counts as all types when placing?). Or perhaps it advances the track of your choice, and has some other drawback (doesn't count as any type when placing?).

As for the level caps, one way to fix that situation is to not use dice as workers (even though it's super convenient for prototypes). Instead, perhaps a mini or standee, with a base that has a little pointer, then a dial could be attached to the bottom such that the pointer points to the number on the tile corresponding to the current level. This is a user friendly way to not have to use dice, and therefore not be as limited in their value. The level cap could easily be 8, or even 9!

Another, different possible solution to the over-leveling issue is to limit the level-ups to only 1 per recall turn. This would slow things down considerably, and it would probably matter quite a bit which one you choose to gain levels and which ones you don't. It might also make a much bigger difference between playing 1-2 workers then recalling vs playing 3 or 4 before recalling. I'd be afraid this is TOO slow, but it ought to be easy enough to test. If it works, then that would make a level cap of 6 potentially viable after all.
Read More :- "Recent Playtesting: Apotheosis (FKA Worker Learning)"

(22MB) Download Subway Surfers For Free

(22MB) Download Subway Surfers for Free


SCREENSHOT




System Requirements Of Subway Surfers Download For Free

  • Tested on Window 7 64 Bit
  • Operating System: Window XP/ Vista/ Window 7/ Window 8 and 8.1/10
  • CPU: 2.0 GHz Intel Pentium 4 or later
  • RAM: 512 MB
  • Setup size: 22 MB
  • Hard Disk Space: 200 MB









Read More :- "(22MB) Download Subway Surfers For Free"

Recent Painting/Basing

Just some recently finished bits and pieces.

3x Panzer IVs with various gun options.
Plastic, Battlefront Miniatures

Fiat Cr.32 "Chirri" for the Nationalists in Spanish Civil War
1:100 by Minairons

It's a cool piece but a little fiddly to put together.

Goblin Pyros for Pathfinder
Reaper Bones

Read More :- "Recent Painting/Basing"

Wednesday, 4 March 2020

Crysis 2 Free Download

Crysis 2 Free Download



===============================================

How To Install Crysis 2 without Errors and Problems







===============================================

🔶🔴🔶🔶🔴🔶 DOWNLOAD HERE 🔶🔴🔶🔶🔴🔶

🌹 Please use IDM (Internet Download Manager) to download the files without any error.

=======================================


💘 To Download Latest Movies In 720P & 1080P Visit My Other Site :- https://www.worldfree4utechno.ml/
=======================================

Please Install "7-zip and WINRAR" to extract the files.

💘 Download Winrar :-
🌹  (32bit PC)
🌹  (64bit PC)

💘 Visual C++ Redistributable 2012 :-
🌹 Download

If your PC has no net framework then, you can
download net framework from here :-

💘 net framework 4.6
🌹 Download

💘 IMPORTANT 💘:-
🌹 ALWAYS DISABLE YOUR ANTIVIRUS BEFORE EXTRACTING THE FILES.
----------------------------------------------

Thank You For Watching My Video.....

We Are Thank Full To You...

And Don't Forget To Subscribe To My Channel...

And Keep Visiting Our Channel, Keep Supporting Our Channel, And Keep Loving Our Channel ...

Thank You So Much................
----------------------------------------------------------------------

THANK YOU SOO MUCH FOR VISITING OUR SITE.
Read More :- "Crysis 2 Free Download"

Global Game Jam 2018 @ KSU 48 HOURS Jam!

IMPORTANT UPDATE:  GGJ @ KSU will be OPEN for the ENTIRE 48 hours.

The Global Game Jam 2018 @ KSU will be held from Friday, January 26th through Sunday, January 28th. 

This is a great opportunity to come and make a game over a weekend. Anyone can join in regardless of skill or experience. Come and have fun, learn, and meet some new people.

Come to the J/Atrium building (Marietta campus). Driving directions and a campus map is available at http://www.kennesaw.edu/maps/docs/marietta_printable_campus_map.pdf and http://www.kennesaw.edu/directionsparking.php 

Register now and save, registration fee increases to $45 on January 19th
https://epay.kennesaw.edu/C20923_ustores/web/classic/product_detail.jsp?PRODUCTID=2015

You will also need to register https://globalgamejam.org/2018/jam-sites/kennesaw-state-university

The registration desk will be on Level 2 of J-Block at 1:00 pm. 

The opening ceremonies will take place in Q-202 and will start at 4:30 pm. The jam will take place in J-Block and will start at 6:00 pm on Friday January 26, 2019.

This is an 18 Plus event. If you are not 18 or older, you will not be able to participate. 


Read More :- "Global Game Jam 2018 @ KSU 48 HOURS Jam!"