txt / se20 Goto Github PK
View Code? Open in Web Editor NEWfall2020 cs310 se csc ncsu
License: Other
fall2020 cs310 se csc ncsu
License: Other
an expert's view: do you understand all these issues?
Long doc is not good
kinds of doc:
examples good:
doc generation tools docopt. pdoc3
don't get too excited about the tools. they are meerely the vans you draw on. once that is going its still up to you to write doc that makes sense to people.
doc is an explanation. good explanations reuse patterns known to the reader. different people have need different explanations. SE people have their patterns:
lists of patterns:
btw, patterns harder in OO that in functional Programmers. evidence: 23 GOF patterns, rarely changed. functional programming: 10 patterns before breakfast
great example of good docs. spatial trees
finally, a note on doc and artifacts. so many artifacts. so few replicated. why? cause no on knows they exist! doc rules!
special accommodations. normally we use delta for those with special needs for exams but delta will be over whelmed.
so no exam.
attercnace not expected
but active presence in your group and at lectures is required till nov13
things to brag about https://shields.io
from http://jakob.space/blog/thoughts-on-lisps.html#org965e8ce:
So what licenses are popular?
Some history:
license
TL;DR: , it means that if a patent is granted to an author of the project, you are still allowed to use the project
There are two, completely independent, forms of intellectual property rights that can be used to protect software against unwanted copying/modification:
Copyright protects the "expression of an idea" and applies to the source code that gets written. Copyright protection is granted automatically at the moment that the code is written. Copyright protection means that only the author is allowed to make copies of or changes in the code, unless the author explicitly gives this right also to others by means of a copyright license.
Patents protect inventions and need to be explicitly requested. When a patent has been granted to you, you have the exclusive right to make use of that invention or to give a patent license to others.
Patents can be broader that copyrights, because if someone else makes the same invention that you have a patent on, then you can force them to stop using the invention or to buy a patent license from you. With copyright, however, it is possible that multiple people independently write very similar code and each has their own copyright protection.
The Apache License 2.0 is primarily a copyright license that gives people the right to use the code written by the person granting the license.
However, contrary to many other copyright licenses, the Apache license also takes patents into consideration and includes a license to use the relevant patents that the person holds who released the code under the Apache license. That is what the phrase means that you quoted.
access: doi
syntax:
first:
second:
can you write code that anyone else will want to use?
have the projects disappear at half time
each second half project needs to be supported by 2 teams (no support for your current project? u have to move)
how to make your project attractive?
iterm2+ zsh
https://medium.com/ayuth/iterm2-zsh-oh-my-zsh-the-most-power-full-of-terminal-on-macos-bdb2823fb04c
bash tricks
doc + test + code vim
fake it till you make it
good to be ambitious
bad to lie to shareholders + regulators
we work
thanks
people
people ware. your software succeeds if other people use and extend it
new business plan: build an environement within which people extend with build tools.
the stack overflow effect
process metrics dominate
meme engineering. how to organize the growd
linux foundation experience
crowd testing research
and that's what your project is about.
ai bias
should not exist, cant exist when reasoning at Cale across 1000s of developers all doing CI
must exist essential for test, for high quality
horses for cources
separating reliability and safety
inheritance is just sugar on top of the module system. see
https://stackoverflow.com/questions/47561840/python-how-can-i-separate-functions-of-class-into-multiple-files
for example
https://www.youtube.com/watch?v=iYLxw6OsZug
TDD: red green reactor
premise: tests are short. often not. long overnight runs. LN experience. Goolge experience. test case prioritization.
TDD results: can't define TDD. can't show that it is useful
also, hard to build good tests. phd example.y
also testing is impossibly. maths f sampling. 100% certainly is infinitely experience.
why is testing possible: narrow valleys climbs. GCC. ostrand, . not testing. focusing on where it matters. ndistrial studies with testing
testing is not certainty. statistical process of reducing issues, not removing them. layers of oracles. when do u call in the g guns
testing for safety cirtical systems is a different animal. demand u mining isystem. eg. rules for safety critical. small size. on one main loop. if you can find it n 15 seconds go look got it sit safe way
different kinds of testing: tender man usability. ini. system.
mechanics of test
black box
white box
symbolic execution
forma: temporal logic, spin, lurch, cobra
fuzzing
test case prioritization
test case generation, theorem provers
speed checker in 5 lines
https://www.youtube.com/watch?v=MWpOiE13YCM
learning from n languages
basic terms
an exemplary product to show off your stuff
process
team experience
N languages
AI
ethics
While we've tamed (mostly) version control, there are two other issues that are open.
what are feature flags
C. {Parnin} and E. {Helms} and C. {Atlee} and H. {Boughton} and M. {Ghattas} and A. {Glover} and J. {Holman} and J. {Micco} and B. {Murphy} and T. {Savor} and M. {Stumm} and S. {Whitaker} and L. {Williams}},
"The Top 10 Adages in Continuous Deployment," in IEEE Software, vol. 34, no. 3, pp. 86-95, May-Jun. 2017, doi: 10.1109/MS.2017.86.
Abstract: Continuous deployment involves automatically testing incremental software changes and frequently deploying them to production environments. With it, developers' changes can reach customers in days or even hours. Such ultrafast changes create a new reality in software development. To understand the emerging practices surrounding continuous deployment, researchers facilitated a one-day Continuous Deployment Summit at the Facebook campus in July 2015, at which participants from 10 companies described how they used continuous deployment. From the resulting conversation, the researchers derived 10 adages about continuous-deployment practices. These adages represent a working set of approaches and beliefs that guide current practice and establish a tangible target for empirical validation by the research community.
https://zlmonroe.com/CSE566/Readings/5.The_Top_10_Adages_In_Continuous_Deployment.pdf
Rahman MT*, Rigby PC, Shihab E. (2018). The Modular and Feature Toggle Architectures of Google Chrome. Empirical Software Engineering (EMSE) Invited to FSE'18 as a journal first paper. pdf
https://www.joelonsoftware.com/2000/08/09/the-joel-test-12-steps-to-better-code/
The Joel Test
the zephyr experience
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.