INCOSE Systems Engineering Handbook short review.
(This is an old post that I have forgotten to re-post here. Original date: 30 June 2018)
In two words: unless you work in a company of more than 10000 people, you don’t need it.
In more words:
Some time ago I became increasingly suspicious of books and films without authors. For some reason, ‘collectively’ or ‘in the name of an organization’ written books tend to be not as useful as those which have some author’s name on the front page.
And this book was a relatively nice example. Well, it has ‘some’ authors mentioned in a fineprint piece of technical text on the second page, and by a sheer coincidence the book turned out to be better than completely authorless books tend to be on average.
Nevertheless, the book completely lacks the general picture of the field. The beginning, which is expected to give a broad overview, before plunging into the details in the latter chapters, is in fact full of citations of ‘revered people’s work’, but short of actual definitions or explanations of what’s going on.
The rest of the book is filled with ‘process descriptions’, which are presented in a relatively obscure marketingese, which, if purified, happen to be job descriptions templates. Pretty useful for bosses willing to write instructions for their subjects, but not as useful for people who actually understand what their employees should do. (That is, they rule less than 1000 people.)
The last part even suggests to semi-automate the process of writing instructions to people using the ‘sysml’ diagram notations (which, is not properly supported anywhere, since all CASE development systems were designed with octopi in mind), which is so cumbersome that to be justified unless your company has less than 1000 people.
The book is pockmarked with references to how useful NASA, JPL and various other well-known guys find the suggested model, but let’s be honest, what the reference _actually_ tells is is that if you are smaller than NASA, don’t even think about adopting such a huge bureaucratic model of an organization.
Conclusion: unless you REALLY know what you’re doing, stay away from UML, SysML or huge bureaucratic organizations which care more about insuring you against legal consequences than actually doing something new and technologically breaking through.
The voting is open on the contents of the second (out of eight) beta-version of the Revised^7 Report on Algorithmic Language Scheme (R7RS-large, Tangerine Edition), as well as the ‘straw poll’ on the contents of the third beta-version (Orange Edition).
Scheme, one of the branches of the Lisp family of languages, is a modern algorithmic programming language known for its proclivity to functional programming paradigm, although not limited to it.
The Lisp family is the second oldest (after FORTRAN) family of languages, invented by Jong McCarthy as in instrument of Artificial Intelligence development. One of the active developers of the specially designel Lisp-machines was Richard Stallman, the founder of the Free Software Foundation. As a byproduct, the main instrument in Scheme development is Emacs (Geiser, Scheme-Complete, company-mode). It is expected that at some point Scheme will replace Emacs Lisp as an internal language of Emacs. (At the moment one may have a look at EdWin.)
Scheme is Lisp, aimed at the ease of portability, functional approach and incorporation of the best software languages theory.
Scheme is developed in two processes. Individual language extensions are formulated according to a standartized process called Scheme Request For Implementation (SRFI). On the other hand, when there are enough changes pending, the new versions of the ‘Revised Report’ are published.
The latest finalized report is Revised^7 Report on Algorithmic Language Scheme (small language), whereas the latest experimental report is R7RS-large Red Edition. It is expected that before R7RS-large is finalized, there will be 7 or 8 intermediate beta editions, and currently the second (Tangerine) and the third (Orange) editions are being reviewed.
Interested professionals are expected to study the proposed discussion material and vote in the election, after presenting themselves briefly in the firstname.lastname@example.org mailing list.
The topics considered for voting are:
- String library
- Regular expressions
- Integer Division
- Bitwise operations
- Fixpoint numbers
- Floating point numbers
- Homogeneous numeric vectors
- Inexact numbers
- Exact numbers
The questions considered for the third beta version:
- Random numbers
- Prime numbers
- Integer sets
- Descriptive statistics
Below you can see the original voting announcement email.
Apologies to those who receive multiple copies of this posting. There are two ballots to vote on this time, the Tangerine Edition ballot, which decides what goes into R7RS-large, and the Orange Edition straw poll, which helps to decide what will go on the ballot for the future Orange Edition. Voting on both is open until the end of January. Please vote! Links to the ballots, which are Google Forms, will be sent to scheme-reports-wg2 ONLY. However, you can also reach the forms at at < https://docs.google.com/forms/d/1XQNvIzijmCxHgnaRq31u9MogloG0YWDaWKBs-J9CCTA> (Tangerine) and < https://docs.google.com/forms/d/1qn1Ut7tR5bzXyWOrxpbLu5O7rJJ5_m2HhAeG8YqfgGI/> (Orange). You don't need a Google account. Let me know if anything goes wrong. Here are the detailed instructions for the Tangerine Edition ballot: This is a ballot to decide which SRFIs are to be included in the Tangerine (data structures and numerics) Edition of R7RS-large. This is the second of about 8 editions, so only certain topics are being voted on now. If you are seeing this ballot, you are a member of Working Group 2 provided you actually vote. However, if you have not voted on a Scheme ballot or ratification before, please send an email to scheme-re...@groups.google.com giving your name and a short explanation of your interest in Scheme. Choose "No vote" if you wish to abstain, which means that your vote on this question will not be counted. Note that if one person votes for alternative A, and two people for alternative B, and everyone else abstains, alternative B wins. That is because we are going by a majority of the legal votes cast for each ballot question. If no alternative achieves a majority, the question will be reballoted at a later date. Otherwise, choose "None" if you wish not to include a library of the type described in R7RS-large, or choose one of the SRFIs or R6RS according to the choices given. You can also choose "Other" for a write-in vote. There are also some yes/no questions on the ballot, for which the answers are "No vote", "No", and "Yes". If you want to revote, just vote again using the same name. Only the last vote is counted. The ballot closes at the last moment of Friday, February 1, 2019, in any time zone, which is equivalent to noon February 2 UTC. All ballots will be made public. If you object to using Google Forms (you do not need a Google account), post your ballot in an email to scheme-re...@groups.google.com. As an absolute fallback, send an email to co...@ccil.org and I will post your vote for you. Ballots posted to other fora will be used if I see them, but are not formally supported. And here are the instructions for the Orange Edition straw poll: Please vote on the proposals you think should be considered for R7RS-large. This vote is not binding, but provides guidance to the editor about which pre-SRFI proposals should be converted into SRFIs and which should not. Ones that are already SRFIs or which have simple or existing implementations are excluded. There are four options in all cases: "No vote", "No", "Yes", and "Volunteer"; the last means that you are volunteering to write the implementation. -- John Cowan http://vrici.lojban.org/~cowan co...@ccil.org weirdo: When is R7RS coming out? Riastradh: As soon as the top is a beautiful golden brown and if you stick a toothpick in it, the toothpick comes out dry. --0000000000005cc1d3057b80739c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printableApologies to those who receive multiple cop= ies of this posting.There are two ballots to vote= on this time, the Tangerine Edition ballot, which decides what goes into R= 7RS-large, and the Orange Edition straw poll, which helps to decide what wi= ll go on the ballot for the future Orange Edition.=C2=A0 Voting on both is = open until the end of January.=C2=A0 Please vote!= Links to the ballots, which are Google Forms, will be sent to scheme-report= s-wg2 ONLY.=C2=A0 However, you can also reach the forms atat <= ;https://docs.google.com/forms/d/1XQNvIzijmCxHgnaRq31u9MogloG= 0YWDaWKBs-J9CCTA> (Tangerine) and <https://docs.go= ogle.com/forms/d/1qn1Ut7tR5bzXyWOrxpbLu5O7rJJ5_m2HhAeG8YqfgGI/> (Ora= nge).=C2=A0 You don't need a Google account.=C2=A0 Let me know if anyth= ing goes wrong.Here are the detailed instructions= for the Tangerine Edition ballot:=C2=A0This is a= ballot to decide which SRFIs are to be included in the Tangerine (data str= uctures and numerics) Edition of R7RS-large.=C2=A0 This is the second=C2=A0= of about 8 editions, so only certain topics are being voted on now.=C2=A0 = =C2=A0If you are seeing this ballot, you are a member of Working Group 2 pr= ovided you actually vote.=C2=A0 However, if you have not voted on a Scheme = ballot or ratification before, please send an email to scheme-re...@groups.google.com giving you= r name and a short explanation of your interest in Scheme.Choose "No vote" if you wish to abstain, which means tha= t your vote on this question will not be counted.=C2=A0 Note that if one pe= rson votes for alternative A, and two people for alternative B, and everyon= e else abstains, alternative B wins.=C2=A0 That is because we are going by = a majority of the legal votes cast for each ballot question.=C2=A0 If no al= ternative achieves a majority, the question will be reballoted at a later d= ate.Otherwise, choose "None" if you wis= h not to include a library of the type described in R7RS-large, or choose o= ne of the SRFIs or R6RS according to the choices given.=C2=A0 You can also = choose "Other" for a write-in vote.Ther= e are also some yes/no questions on the ballot, for which the answers are &= quot;No vote", "No", and "Yes".
=If you want to revote, just vote again using the same name.=C2= =A0 Only the last vote is counted.=C2=A0 The ballot closes at the last mome= nt of Friday, February 1, 2019, in any time zone, which is equivalent to no= on February 2 UTC.All ballots will be made public= .=C2=A0 If you object to using Google Forms (you do not need a Google accou= nt), post your ballot in an email to scheme-re...@groups.google.com.=C2=A0 As an absolute fallba= ck, send an email to co...@ccil.org a= nd I will post your vote for you.=C2=A0 Ballots posted to other fora will b= e used if I see them, but are not formally supported.<= div>And here are the instructions for the Orange Edition straw poll:</div><= div><br></div>Please vote on the proposals you think should be co= nsidered for R7RS-large.=C2=A0 This vote is not binding, but provides guida= nce to the editor about which pre-SRFI proposals should be converted into S= RFIs and which should not.=C2=A0 Ones that are already SRFIs or which have = simple or existing implementations are excluded.T= here are four options in all cases:=C2=A0 "No vote", "No&quo= t;, "Yes", and "Volunteer"; the last means that you are= volunteering to write the implementation.-= -=C2=A0John Cowan=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 http://vrici.lojban.org/~cowan=C2= =A0 =C2=A0 =C2=A0 =C2=A0 co...@ccil.orgweirdo:=C2=A0 =C2=A0 When is R7RS coming out?Riastr= adh: As soon as the top is a beautiful golden brown and if youst= ick a toothpick in it, the toothpick comes out dry.
Simulacra and Simulation
Russian below. (Русский перевод ниже.)
I have read the ‘Simulacra and Simulations’ by perhaps the most attributed to postmodernism author Jean Baudrillard.
Each time someone writes something about this book someone else recalls that this is the book wich lies in the foundation of the plot of “The Matrix” (1999) by Wachowski brothers (sisters). In 1999 “Simulacra and Simulation” turned 18 and Dr. Baudrillard was still alive, although he received the film critically and severely disapproved the directors’ interpretation of his book. But in my opinion it is actually for the better, as if he was wrong we all would only have a book and its screen adaptation, whereas now we have two independent, both highly influential masterpieces. By the way, it is the ‘simulacra’ book, in who’s cover Neo holds his hackish chips, which he sells to a suspicially looking subject at the beginning of the film.
However, this post would only be an example of intellectualist mumbo-jumbo, unless the way by which I have read this book.
The key thing is that I recently finished an online course of Chinese history, which I have studied done mostly audially, during mundane tasks and commute. And since the course ended I needed some new way to utilize this free time.
Yeah, by now you should have guessed. Baudrillard, Simulation… Computer Scientist professional… fed the book to the Text-To-Speech engine. It’s like you’re driving a bike, and a robot is reading the book aloud to you, and even the voice is not that metallic any more.
Turned out to be much better than I expected. Given that the robot voice I chose (the standard Android 8 make voice) had a few panicing overtones, and the book itself is aimed at exposing the gradual loss of sense in out modern society, the concoction turned out to be perfect in its imperfection.
Speaking of the book itself, I have to admit my own ignorance. I don’t really understand why the proponents of postmodernism consider Baudrillard to be on their side, as well as the ‘new left’. He’s definitely not about their ideas, moreover, criticises them vehemently.
Although, admittedly, the right nowadays are just as prone to postmodernism, and Baudrillard doesn’t spare them of his critique, but the right are more about the dissuasion, whereas the left are about the fashion and the fascination, and therefore illustrate the farewell said to sense much more evidently.
It’s interesting that Baudrillard wrote this all in 1976, that is even before the Perestroika in China. (Although Chinese postmodernism is different.)
So… that’s my sketch. I recommend the book to everyone, together with “The Matrix”.
What should be next?
What do you think about postmodernism?
Я прочитал “Симулякры и Симуляции” от, наверное, самого известного атрибуцируемого постмодернизму философа, Жана Бодрийяра.
Каждый раз, когда кто-нибудь пишет что-нибудь про эту книгу, кто-нибудь другой немедленно вспоминает, что именно по ней сняли фильм “Матрица” в 1999 году, когда “Симулякрам” было 18 лет. Однако, сам Бодрийяр , который дожил аж до 2007 года, фильм не одобрил, и сказал, что авторы фильма поняли его неправильно. С другой стороны, по-моему это даже хорошо, потому что тогда у нас было бы произведение и экранизация, а сейчас есть два самостоятельных произведения, лишь косвенно связанных. Кстати, именно в книге “симулякры” Нео держит свои секретные чипы, которые продаёт сомнительно выглядящему субъекту в начале фильма.
Однако, этот пост был бы только постом интеллектуального выпендрёжа, если бы не тот способ, которым я прочитал эту книгу.
Дело в том, что я не так давно закончил слушать свой курс китайский истории, что я делал, несмотря на то, что курс видео, по большей части в аудио режиме, во время больших однообразных работ, или в дороге. И мне очень хотелось придумать способ использовать это же время не просто так.
Ну и вы, наверное, догадались. Бодрийяр же.
Я пропустил его через систему синтеза речи. TTS. Ведёшь ты мотоцикл, а робот тебе книжку читает своим уже совсем даже не таким чтобы металлическим голосом.
Это вышло даже лучше, чем я ожидал. При том, что у робота, которого я выбрал (стандартный мужской голос Андроида) ещё несколько панические нотки в произношении, а книга сама нацелена на иллюстрацию того, как наше общество постепенно теряет смысл, получилась идеальная комбинация.
Что же до самой книги, то я вынужден признать своё невежество. Совершенно не понимаю, почему сторонники постмодернизма считают Бодрийяра своим, так же, как, кстати, и новые левые. Он совершенно не про них, и как никто другой, кажется, не критикует их базовые посылки.
Впрочем, правые сейчас тоже изрядно грешат постмодернизмом, и Бодрийяр и их не обходит стороной, у правых он больше про апотропию, а у левых про фасцинацию, однако, даже у него прощание со смыслом у левых нагляднее и обширнее.
Любопытно, что Бодрийяр видел всё это ещё в 1976 году, ещё даже до перестройки в Китае. (Хотя постмодернизм в Китае другой.)
Вот такой эскиз. Всем рекомендую, вместе с “Матрицей”.
А что читать дальше?
И вообще, кто что думает про постмодернизм?
By the way, my Facebook is https://facebook.com/vladimir.nikishkin
And my Telegram is https://t.me/unobvious
Chinese history course from Harvard on www.edx.org
( Speaking with Neo’s from ‘The Matrix’ voice:) I know Chinese history.
Perhaps, nobody ever could say ‘I know Chinese history’, as Chinese history is very-very long, almost surely not as along as the Chinese officials are claiming, or the Chinese high school teaches its pupils, but still about 3000 years.
Nevertheless, at http://www.edx.org (I am giving a link to the first part of the course, out of 10. The interface there is a bit lousy, but I believe in you: https://courses.edx.org/courses/course-v1:HarvardX+SW12.1x+2016/course/) there is an excellent course on Chinese history for those who only have a very remote image of China or history in their minds, giving more or less everything you need to know about different Chinese epochs to be able to read Chinese literature and understand what’s going on, to recognise common plots, to spot anachronisms and like. Of useful, but slightly queer skills, it gives you a unique opportunity to support a blue Chinese person who may happen to be near you in his time of missing home.
In general, right in the first chapter of the course one of the lecturers, William Kirby, pronounces a characteristic phrase that “when I started learning Chinese culture, almost everything I had thought I had known about China turned out to have been wrong”. And that’s almost exactly describes my feelings too. And getting rid of this disgusting feeing may be another reason why you may want to take this course.
The other two things this course is speaking about and which are hard to conceive by other means, perhaps, and which may be actually more important than the titular topic of the course, the Chinese history:
Firstly, this course teaches the ‘humanities method’. Despite the fact that I still consider hard sciences much more important than soft sciences (and this is where I disagree with Prof. Kirby), still a universal development of a human and for brain understanding the humanitarian method is very significant. Significant because, firstly, for to implement any hard projects, at least so far we still need to work in teams, and understanding how human thinking functions, how this functioning works “by default”, and how it changes with education and specialist training is very important, at least to be able to predict how your colleague or a subordinate performs without having an explicit instruction, or having an incomplete one (which is the case in almost 100% of the cases, since no instruction may cover all possible cases). Secondly, now I even more believe that hard and soft sciences utilise different parts of the brain, which actually need to be developed separately. In hard sciences most of the brain resources are spent on actually understanding the essence, the meaning of a statement. In other words, everything is just too difficult, and after all participants in a discussion have spend enormous effort on grasping what’s actually going on, establishing consensus and inferring the consequences doesn’t require much energy (even though as far as I understand, string theory and quantum mechanics ‘interpretations’ are much closer to the humanitarian-style discussion in this aspect). On the other hand, in soft sciences the very understanding of a statement doesn’t require as much effort, but on the other hand, interpreting this statement requires a lot of work, establishing a common (in a group) understanding of a statement requires a lot of work, predicting how other people will interpret this statement is not easy, and generating implications of the statement requires a lot of creativity. Thus, understanding a statement is easy, but establishing consensus is hard. And this feeling “ow, I haven’t even thought about it” is very much worth the trouble of learning.
Secondly, peculiarly, the course itself may serve as a nice introduction to state building. It’s quite interesting, because exactly the same questions discussed in the Chinese history course could have been discussed the course of studying European or Russian history, but for some reason I haven’t meet them before, either at school or at the Uni. Here, on the other hand, many point where the government/state may be present in the world are exposed. What are the areas where the state is present, where the society is present, where there are both and where there is none, and only the individual is present. Which questions arise during the interaction of various human organisation structures between each other, which human requirements/necessities/desires the state may or can provide. It is very interesting that these questions are discussed without a defined ideological attitude of the state being good or bad by definition. The Chinese state has been very different in different times from totally anarchist to completely totalitarian, while still preserving the same ‘Chinese’ cultural lineage, and in this sense was a unique testbench of different human interaction models.
To sum up, I highly commend. Despite the course seeming a little bit too easy for me (I know, in the Russian HEI, as in most Asian in general, the students are pushed beyond any reasonable sanity level, so it probably would have looked like this to many my compatriots and history nerds all over the planet) it took me slightly less then three years (with breaks). But the presentation is very good, understandable, clear and succinct. And perhaps the relative ease it precisely to give more liberty in personal extracurricular exploration, so that the studen’t wouldn’t have less of a desire to say ” Over. This sisyphian labour is done, and I’m not touching this any more.” but would rather want to go further and explore more of the wonderful world of Chinese culture on his own.
As I have already said, highly recommend. The next round of the guided (with human instructors) run of the course has not been announced so far, but even in the automatic mode it’s still very much worth it.
So I have read super famous book by the ‘Gang of Four’.
“Design Patterns: Elements of Reusable Object-Oriented Software”
The book was, and is, immensely influential in software development world. I believe, it was Gamma himself, who coined the word “Software Pattern”, although he wasn’t the one who invented the concept of patterns outside of textile industry, it was Alexander, who first applied the pattern terminology to real civil engineering, to making buildings.
This book was originally recommended to me by my former University teacher, although I believe, at that time, in 2011, not a single person actually ever opened even a single page of that book. Probably that happened because the context of the recommendation was learning UML, and because none of us understood what UML even was, we didn’t see any reason to learn it.
Meanwhile, as I now I am endorsed to learn graphical representation languages as in an attempt to promote the usage of the so-called Model-Based Systems Architecture, I have actually decided to find at least some way to make sense out of the UML thing. All the better that I actually am the person responsible for the architecture of the software system we develop.
So having read the book left me in a sense of slight confusion.
On the one hand, describing software patterns (with heavy commenting in a natural language), is actually, one of that few places where UML makes sense in its own right (not as a part of some general larger documentation system). Also, speaking of the software architecture in terms of patterns seems to really be the correct way of talking about large software (and not necessarily software) systems.
On the other hand, I did have a feeling that Gamma is, maybe, not really that much of a great programmer, as the whole way of expressing things in the book left me in a feeling of unease, and the code proposed there, although not bad, was always reminding me of a sort of a “pay per line” rewarding paradigm, used in some less technologically advanced companies.
Still, this is mostly emotional, not technological.
Right in the first chapter, Gamma admits that patterns may look very differently from one programming language to another. In particular, I can refer the reader to the essay by Norvig http://norvig.com/design-patterns/design-patterns.pdf , on how lots of these patterns are dramatically simpler in languages that are less strict towards type safety. On the other hand, perhaps, thinking in terms of patterns is usefult even with respect to dynamic languages, as although implementing them may be easy, still, thinking of them in a paradigmatic way is a different story. I even have a conjecture, that patterns ARE a way in which programming language syntax should be developed, as as language essentially is a way of transforming semantics to syntax.
Practically, many parts of languages actually share their names with patterns. Examples may be the ‘Template Method’ in C++ (which appeared actually earlier than the concept of a pattern), ‘Decorator’ in Python (which is a direct implementation), or a lot of factory classes in the Java standard library (an indirect implementation).
Still, the amount of ready to use patterns in the book is low, and most of them are relatively straightforward. Although the authors defend themselves by saying that they had only laid the foundation of the domain, not described it extensively, the development of the field doesn’t seem to be going in a too steady way, and the whole field, just as with the UML, resembles something existing for the sake of existing, not for the sake of making someone’s life much of a better place.
Maybe this is justified by the fact that the amount of programmers is high, and the amount of software architects is low, and especially low is the amount of software architects developing huge projects, and even lower is the amount of software architects who understand the need of consistently describing their designing approach. As a result, all the knowledge is being generated by ivory-tower academics, who don’t often have that much exposure to really huge projects.
Anyway, for those who got interested in how to describe in the most general terms “what is conceptually the stuff we are doing”, I think that Gamma’s book is a good place to start.
One of the greatest benefits for me personally was the subconsciously developed skill of only reading the substantial part of the text, while skipping the verbose details (and the book is very verbose).
The structure of every described pattern roughly follows the Alexander’s pattern language, and includes the essential description, the collaborations, the implementation details, and so on.
For those who are interested in software architecture more, there is a huge 5-volume series, called POSA: Pattern-Oriented Software Architecture, and there is also a large survey of open-source software (obviously, because it’s the only kind you can study yourself) http://aosabook.org
Do I recommend reading the book? Well, yes, but rather more of read through the first chapter (which is a case study), rather than the actual catalogue. That’s enough to grasp the language, but doesn’t bury you in the detail.
I have read the book by Oliveira and Stewart.
I guess, this is what happens when a long-standing, respected software engineer writes a book about his own profession. Speaking frankly, the best trait of this book is the bibliography. The authors collected a truly magnificent list of books concerning numerical algorithms, programming, tricks and techniques. The main contribution of the book is rather the “glue” which connects together all these dispersed bits. It’s not that the books doesn’t contain information in its own right. But it seems more like an experience transfer book rather than a knowledge transfer book.
As a practicing scientific programmer, I can’t stop complaining about the fact that the floating point numbers still generate so much trouble for the developers to sort out. It’s a shame that a huge share of such a book is still dedicated to combating floating point problems. Still, the guys are right in doing so.
Other noteworthy parts of the book are dedicated to a comprehensive survey of different scientific software packages available, such as BLAS. Again, this information is probably findable on Google, but nevertheless, it’s great that there is a place to sum everything up.
Who would be the best target audience for the book? I would suggest every beginner scientific workers to read it. It’s not that difficult, end even solving the two small problem sets doesn’t seem much of a burden, and it is probably a good introduction into what may be actually required from a junior scientific contributor in a modern laboratory.
Even though experienced scientific developers probably already know the lion’s share of the book, some “design patterns” and lifehacks can be also useful for this audience.
To sum up: do I recommend reading the book? Rather yes than no, but probably not as thoroughly as various scientific workers are may be inclined to.
Scientific Software: Object-Oriented Way but Rouson and Xu
So I have finished the book by Rouson and Xu.
I started reading it because I turned out to be in the lead of the software development process, while not being fully qualified for it. So I needed some source of experience to substitute for my own poor knowledge.
To complement the text I need to mention the two links to the book materials:
The un-official github source page:
The official Cambridge university press page:
What can I say about the book itself?
The book is mainly focused on writing differential equation solvers in an abstract way, because essentially, most scientific software revolves around solving PDEs.
There is a brief introduction into the process of numerical modellin, namely, physical modelling, PDE construction, semi-numeric modelling, and fully numeric modelling.
Afterwards, there is a brief short summary of object-oriented analysis for typical PDE objects, such as fields and operators, and basic patterns, which could be useful for mathematical modelling are given, thus building a link to the process of software design. It is interesting that the authors try to justify the usage of the advanced writing techniques by mathematical formulas describing average time for a bug search and fixing process, which is, I guess, not too precise, but a very scientific approach to talking to bosses.
The book doesn’t pay too much attention to the multithreading part of the programming, although it does say a few thing about using MPI and OpenMP, but the main emphasis is still more on the architecture, essentially just because there already is a huge base of knowledge on multithreading programming.
It was quite insightful to get deeper into the world of the ‘Hardcore old-school programmers’. I guess I should have a expected the book to have examples writen in Fortran, althought I hadn’t, and was pleasingly surprised to realize that Fortran is moving forward quite steadily, and the recent versions are fully object-oriented, support advanced allocation mechanisms, parallelism, et cetera.
However, I’m not totally satisfied with the book.
Firstly, althouth the examples and quite illuminating in terms of posed problems, but still there is a lot of things left out of the scope.
Secondly, personally, I didn’t feel that the problems were really solved beautifylly there. I understand that it’s a very shaky argument, but for a book that constantly references beauty and real (not software) architecture as its sources of inspiration, I can’t resist using this argument.
The style is quite readable, and although I sometimes felt that the authors tried to show off a bit by deliberately inventing more physically convoluted examples, those were quite entertaining and giving a feeling of joy before science.
One of the other reasons why I was interested in the book is that they were using UML as a helper tool in describing software architecture. And here, just as everywhere, I have to say that UML suffers from being (although quite illustrative) rather cumbersome to draw.
I am still quite sure that UML should not be drawn by hand, but rather only generated automatically from source code (maybe with a few helper comments.)
I also have to say a few words about the exersises. I haven’t finished them all, although this is in my plan, but I have to say that although they are good, they still leave a slight feeling of being unfiinshed.
As a conclusion: the book is sort of worth reading, as there are only a few book on scientific software architecture at all, and beggars cannot be choosers. Secondly, the advices and the exersises there certainly do give a lot of useful suggestions, they do leave a lot to the reader’s imagination, so perhaps should be used more of like the first step, rather than a full guide.
Do I recommend reading it? Well, rather yes than no.
I seriously recommend reading Ernst Jünger’s ‘Storm of Steel’. A very vivid and detailed chronicle of the World War I, with little ideological load, trying to neither exhonerate nor blame the common soldiers for the first ‘technology-intensive war’ in this world.
The book spots quite some interesting things about the WWI, including the fact that, for example, the average gauge of the guns used was actually higher than the one of the WWII. Cos ‘when you don’t know how to make efficient guns, just make big ones’. I also failed to know that the trenches were actually a rather poor defence method, with heavy guns changing the topography of the landscape. That is… like, literally reshaping the Earth.
The sheer volume of munitions produced was so huge that the UK even created a ‘Ministry of Munitions’, a separate entity from the ‘War Ministry’.
And that was even more than 100 years ago. (By the way, for those who are not good with dates: The War ended on the 11th of November 1918, so we are actually having quite a big date coming on.)
Also interesting how former enemies were actually finding each other right after the war to exchange letters, because, hell, the war had been over.
The book has a nice mixture of tactics, action, emotions (but not hysteria), humour and wizdom.
Junger himself is quite an interesting guy, lived to 102 y.o., and died in 1998, having time to catch the reunification of Germany. All that despite being wounded 17 times, of which 11 times being deliberately shot at.
The picture is an illustration of how much stuff was actually made.
By the way, I also have Telegram:
Various thoughts November
An amusing oddity of Chinese culture.
A person who has an independent lifestyle we may call a “Lone wolf”. This can be translated as 独狼(dúláng), but colleagues claim that this is not very popular. Sometimes it can be translated as “lonely dog”, 单身狗(dānshēngǒu).
The interesting oddity here is that there’s an expression 吃狗粮(chīgǒuliáng). Literally “eat dog food”, but really it means “peep at hugging couples ” or “talk to married people about family life”. (Promiscuity in to included because being marries you also may have enough of it. ) Since Chinese language does not have a concept of gender (even less than English), the expression applies both sexes.
Instead of 狗(gǒu), you can use 犬(quǎn), which will sound something between obsolete, rude, and japanese. Noone says like this, but but people will understand you.
Из курьёзов китайской культуры.
У нас человека, склонного к независимому образу жизни называют “одиноким волком”. В принципе, это можно перевести как 独狼 (dúláng), но коллеги утверждают, что это не очень популярно. Иногда называют “одиноким псом”, 单身狗(dānshēngǒu) .
Так вот интересный курьёз в том, что есть выражение 吃狗粮(chīgǒuliáng). Дословно, “есть собачий корм”, а на самом деле, “пялиться на обнимающиеся парочки” или “разговаривать с замужними о семейной жизни”. Короче, замещать межполовое общение суррогатом. (Беспорядочные половые связи сюда не входят, потому что их и в замужнем состоянии их можно иметь достаточно.) Благодаря тому, что в китайском языке нет понятия рода (даже меньше, чем в англиийском), выражение применимо к одиночкам любого полу.
А ещё вместо 狗（gǒu), можно применить 犬(quǎn), что будет звучать то ли грубее, то ли олдовее, то ли японообразно. Но, короче, так никто не говорит, но понять — поймут.
Hmm, finding a Chinese girlfriend would be absolutely unreal to anyone at my age – they’re all married and already have children.
Again, everyone says that Chinese are so keen on family values. And indeed, everyone has a picture of their child on the table.
However, they spend 10 hours and more at work, and a lot of them work on Saturdays. Maternity leave is three months. I’m asking, how do the manage to raise the kids? And they say it’s easy: just give the child to your grandma and grandpa.
All right, I guess. Isn’t it being keen on family values, seing your baby only on weekends once a week.
Really, I wonder if the Chinese will suffer from grandmom’s nurturing as much as the Russians.
Хм, найти девушку-китаянку абсолютно нереально никому в моём возрасте — они все замужем и уже родили по ребёнку.
Опять же, все говорят, что мол, китайцы-китайцы так сильно ориентированны на семейные ценности. И действительно, у каждого фотография ребёнка на столе.
При этом на работе они проводят по 10 часов и больше, много кто работает по субботам. Декрет три месяца. Спрашиваю, а как дети-то? А, говорят, легко — родила и бабушке с дедушкой отдала.
Ну ништяк, думаю. Ещё бы тут не семейные ценности, если ты ребёнка своего по выходным видишь один раз в неделю.
Вот, правда, интересно, огребут китайцы от воспитания детей бабушками так же сильно, как русские огребают, или нет?
Нытья пост. В китайском языке есть ударение, и довольно сильное, без него тебя не понимают. И при этом про него нигде не написано, и в словаре оно не указано. Ну что за беда?
A whining post. There is stress in Chinese language, and it’s not negligible, people understand you much eaiser if you put it correctly. And yet it’s not described in any textbook and it’s not given in the dictionaries. Sad.
Hehe-hehehehe. Went to an organic coffee shop today and ordered a cup of tea. Of course they brought one sweet like syrup. Asked if there were any unsweetened versions, they said the menu has nothing like that. Asked them what people with the diabetes can order, got an evasive answer, and the bottom line was that the diabetic people may proceed to hell.
Keep in mind, dealing with organic green coffee shops is dangerous for your health. As dealing with greenish activists in general. (Few notable exceptions excluded.)
Хехе-хехехехе. Зашёл сегодня в органическое здоровое кафе и заказал чаёк. Ну конечно, принесли сладкий, как сироп. Спросил, есть ли несладкий, ответили, что в меню в принципе нет. Уточнил, что делать диабетикам, получил уклончивый ответ, в сухом остатке сводящийся к тому, что диабетики идут к дьяволу.
Имейте в виду, общение с леваками опасно для вашего здоровья.
[У поста должен бы был быть возрастной рейтинг, но я считаю их нарушением первой поправки и потому его нет.]
О сколько нам открытий чудных…
С самого приезда, проезжая некую остановку, слышу, как запись объявляет по-китайски: улица “драконий член”. До сих пор думал про себя “вот безграмотный лаовай, слышит всякую ерунду”. Сегодня собрался, вбил в словарь, и точно, улица “драконий член”. Второе значение слова — “гомосексуалист”. Ну ништяк, думаю.
[The post would have had an age rating, but I consider them to be in violation of the First Amendment and therefore it has not.]
How many wondrous discoveries do we have?
Since my arrival to China, on a certain Metro stop, I can hear a recording in Chinese: “Dragon’s Penis Street”. Hah, was I thinking about myself “here’s an ignorant laowai who hears nonsense “. Today consulted the dictionary and really a “Dragon Penis”, the second meaning of the word being ” homosexual “. ‘Okay’, methinks.
I’ve been told a wonderfully quaint fact by my colleagues. Turns out all Russian women want to marry Chinese men because (as everyone knows) Russian men drink a lot of vodka and that’s why they can’t make a family.
Мне тут коллеги рассказали прелюбопытнейшую вещь! Оказывается, все русские женщины мечтают выйти замуж за китайцев, потому что, как известно, русские мужчины очень много пьют водки, и поэтому с ними нельзя строить семью.