So you think you know C?

So you think you know C?

A lot of programmers claim they know C. Well, it has the most famous syntax, it has been there for 44 years, and it’s not cluttered with obscure features. It’s easy!

I mean, it’s easy to claim that you know C. You probably learned it in college or on the go, you probably had some experience with it, you probably think that you know it through and through, because there’s not much to know. Well, there is. C is not that simple.

Source: So you think you know C?

 

The Infancy of Julia: An Inside Look at How Traders and Economists Are Using the Julia Programming Language

Seven years ago, four individuals came together to create a fast and expressive programming language to compete with the likes of R, Matlab, Python and about three dozen other dynamic tools. Their work gave birth to the Julia programming language. Anthony Malakian takes an inside look at how some finance firms and economists are using Julia, and examines why 2017 could be a year of significant growth for the upstart.,Industry Issues & Initiatives,High Frequency Trading,Research & Commentary,Market Data & Data Analytics ,Tech,Julia programming language,Big Data,high-frequency trading,Federal Reserve Bank of New York,Berkery Noyes,Julia Computing (company),BestX Ltd.,AOT Trading AG,Conning, Inc.

Source: The Infancy of Julia: An Inside Look at How Traders and Economists Are Using the Julia Programming Language

 

How to pick startup ideas

One of the most important things I learned from running a startup is that on a macro scale the innovation market is efficient. If the market conditions allow for a startup to arise, it’s overwhelmingly probable that multiple startups already exist in that market. The converse is also true — if there are no startups in a given market, it’s overwhelmingly probable that market conditions are not hospitable and startups cannot arise.

In this sense startups are similar to biological life. Wherever the conditions are hospitable, life already exists. The difference is that startups live in an economic rather than a biological environment.

This has massive implications for picking startup ideas because technology companies tend to be winner-takes-all. The first technology company to solve a problem is often worth much more than all of its competitors combined. So if a company already exists in a market, it’s overwhelmingly likely you won’t be able to displace it.

Source: How to pick startup ideas

 

C for Python Programmers

C for Python programmers by Carl Burch is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.
Based on a work at www.toves.org/books/cpy/.

Contents

In the 1970’s at Bell Laboratories, Ken Thompson designed the C programming language to help with developing the UNIX operating system. Through a variety of historical events, few intentional, UNIX grew from a minor research diversion into a popular industrial-strength operating system. And along with UNIX’s success came C, since the operating system was designed so that C programs could access all of its features. As more programmers gained experience with C, they began to use it on other platforms, too, so that it became one of the primary languages for developing software by the end of the 1980’s.

While C does not enjoy the broad dominance it once did, its influence was so great that many other languages were designed to look like it, including C++, C#, Objective-C, Java, JavaScript, PHP, and Perl. Knowing C is in itself a good thing — it is an excellent starting point for relating more directly with what a computer does. But learning C is also a good starting point for becoming familiar with all these other languages.

This document is directed at people who have learned programming in Python and who wish to learn about C. C’s “influence on Python is considerable,” in the words of Python’s inventor, Guido van Rossum (“An Introduction to Python for UNIX/C Programmers,” 1993). So learning Python is a good first step toward learning C.

Source: C for Python Programmers

 

The Right Way to Grant Equity to Your Employees

Andy Rachleff, co-founder of Benchmark Capital, breaks down the ideal plan for granting equity to incentivize loyalty.

“The defining difference between Silicon Valley companies and almost every other industry in the U.S. is the virtually universal practice among tech companies of distributing meaningful equity (usually in the form of stock options) to ordinary employees. Before companies like Fairchild andHewlett-Packard began the practice fifty years ago, distributing stock options to anyone other than top management was virtually unheard of. But the engineering tradition that spawned Silicon Valley was much more egalitarian than traditional corporate culture.”

Steven Johnson, The Peer Society

The equity culture among young technology companies is almost universal. When implemented properly, broad employee ownership withina company can:

  • Align the risk and reward of employees betting on an unproven company.

  • Reward long-term value creation and thinking by employees.

  • Encourage employees to think about the company’s holistic success.

Source: The Right Way to Grant Equity to Your Employees

 

Django security releases issued: 1.10.3, 1.9.11 and 1.8.16

CVE-2016-9013: User with hardcoded password created when running tests on Oracle

When running tests with an Oracle database, Django creates a temporary database user. In older versions, if a password isn’t manually specified in the database settings TEST dictionary, a hardcoded password is used. This could allow an attacker with network access to the database server to connect.

This user is usually dropped after the test suite completes, but not when using the manage.py test --keepdb option or if the user has an active session (such as an attacker’s connection).

A randomly generated password is now used for each test run.

Thanks Marti Raudsepp for reporting the issue.

CVE-2016-9014: DNS rebinding vulnerability when DEBUG=True

Older versions of Django don’t validate the Host header against settings.ALLOWED_HOSTS when settings.DEBUG=True. This makes them vulnerable to a DNS rebinding attack.

While Django doesn’t ship a module that allows remote code execution, this is at least a cross-site scripting vector, which could be quite serious if developers load a copy of the production database in development or connect to some production services for which there’s no development instance, for example. If a project uses a package like the django-debug-toolbar, then the attacker could execute arbitrary SQL, which could be especially bad if the developers connect to the database with a superuser account.

settings.ALLOWED_HOSTS is now validated regardless of DEBUG. For convenience, if ALLOWED_HOSTS is empty and DEBUG=True, the following variations of localhost are allowed ['localhost', '127.0.0.1', '::1']. If your local settings file has your production ALLOWED_HOSTS value, you must now omit it to get those fallback values.

Thanks Aymeric Augustin for reporting the issue.

Security Advisory: Social media fingerprinting

Along with the above security issues, we want to inform you about a “social media fingerprinting” information leakage technique that was recently disclosed.

If you enable redirect_authenticated_user on the login views, other websites will be able to determine if their visitors are authenticated on your site by requesting redirect URLs to image files on your website. To avoid this, host all images and your favicon on a separate domain that is not part of the ALLOWED_HOSTS.

Affected supported versions

  • Django master development branch
  • Django 1.10
  • Django 1.9
  • Django 1.8

Per our supported versions policy, Django 1.7 and older are no longer receiving security updates.

Source: Django security releases issued: 1.10.3, 1.9.11 and 1.8.16 | Weblog | Django