Biden will nominate Big Tech critic and antitrust star Lina Khan to the FTC

Biden didn’t campaign on getting tough against Big Tech, but his early actions are speaking louder than his words.

The White House confirmed its intentions to nominate Lina Khan to the FTC Monday, sending a clear signal that his administration will break from the Silicon Valley-friendly precedents of the Obama era. Politico first reported Biden’s planned nomination of Khan, which will be subject to Senate confirmation, earlier this month.

Lina Khan is a star of the antitrust movement, insofar as a topic like regulating big business can produce one. Khan is best known for a paper she published as a law student in 2017 called “Amazon’s Antitrust Paradox.” The paper argues that thinking about what qualifies as monopolistic behavior hasn’t kept pace with how modern businesses operate, particularly within the tech sector.

She believes that a modernized approach to antitrust must look at market forces in a big picture way instead of only examining traditional measures like price and output:

“My argument is that gauging real competition in the 21st century marketplace — especially in the case of online platforms — requires analyzing the underlying structure and dynamics of markets. Rather than pegging competition to a narrow set of outcomes, this approach would examine the competitive process itself. Animating this framework is the idea that a company’s power and the potential anticompetitive nature of that power cannot be fully understood without looking to the structure of a business and the structural role it plays in markets. Applying this idea involves, for example, assessing whether a company’s structure creates certain anticompetitive conflicts of interest; whether it can cross-leverage market advantages across distinct lines of business; and whether the structure of the market incentivizes and permits predatory conduct.”

As associate law professor at Columbia, Khan also contributed to a comprehensive report from the House’s antitrust subcommittee last year that set the stage for major antitrust reform that could trim back Big Tech’s considerable overgrowth.

Khan isn’t the only high-profile tech antitrust crusader in the Biden administration’s orbit. In early March, Biden named Columbia law’s Tim Wu to shape technology and competition policy at the National Economic Council. Wu came up with the term “net neutrality” and is well known as an advocate for an open internet. In 2018, Wu authored “The Curse of Bigness: Antitrust in the New Gilded Age,” a treatise calling out corporate consolidation in tech as a looming political and economic threat.

Sen. Amy Klobuchar, who is leading tech-focused antitrust reform efforts through the Senate’s own antitrust subcommittee, praised Khan’s nomination. “We need all hands on deck as we work to take on some of the biggest monopolies in the world, and President Biden is making his commitment to competition policy clear,” Klobuchar said in a statement provided to TechCrunch.

“Lina’s experience working both in Congress and at the Federal Trade Commission and as an advocate for competitive markets will be vital as we advance efforts to strengthen enforcement and protect consumers.”

Biden’s infrastructure plans could boost startups

New antitrust reform bill charts one possible path for regulating big tech

Read more:


Methods in Go Explained

In the Go programming language, a method is a function associated with a particular type. This connotation is associated with object-oriented programming (OOP). This article will explain, with examples, where a method is applied in connection with object-oriented features in Go programming.

The term method has been widely used in association with object-oriented programming or OOP. According to object-oriented terminology, an object consists of properties and functions. These functions are also called methods. It is through the method an object exposes its properties. A method typically operates on the data structure and helps in hiding the properties of the object. The availability of the properties of an object through its method is an important aspect of object-oriented programming known as encapsulation.

In Go, we use several methods from the standard library such as the Seconds, Minutes, Round, and so forth of type time.Duration.

Declaring Methods in Go

Unlike normal function declarations, a method declaration is slightly different syntactically. A method name is always prefixed by its variant name. In the case of a normal function, what we do is write the func keyword, then follow the function name, then its parameters and return types, and so on. In the case of a method, since it is always associated with an object, we must provide its variant name immediately after the func keyword declaration. Other aspects are the same as traditional functions. Here is an example:

package main

import (

type Employee struct {
id int
name string
dob time.Time
salary float64

//this is normal function
func AddCommission(emp Employee, amount float64) Employee {
emp.salary += amount
return emp

//this is a method
func (e Employee) AddCommission(amount float64) Employee {
e.salary = e.salary + amount
return e

func (e Employee) PrintEmployee() {
fmt.Println(“ID: “,
fmt.Println(“Name: “,
fmt.Println(“Date of Birth: “, e.dob.Day(),
e.dob.Month(), “,”, e.dob.Year())
fmt.Println(“Salary: “, e.salary)

func main() {

emp := Employee{101, “Donald Duck”, time.Date(1990,
12, 20, 0, 0, 0, 0, time.UTC), 7000.00}
emp = emp.AddCommission(1200.76)

var emp2 Employee
emp2 = AddCommission(emp, 23000)


Note that the extra parameter before the method name is called the receiver of the method. You may recall that in C++ or Java, the receiver of a method has a special name such as this. In Go, the receiver is given a name by the programmer, and it’s a convention to keep the name as short as possible due to its frequent use.

Also, note that there is no ambiguity during the function call. The call to AddCommission(…) is a function call while when the call is made as emp.AddCommission(…) it refers to the method associated with the struct type Employee. This is called the selector of the method, which appropriately selects the method for the receiver emp of type Employee.

At this point, a question may arise – can we write methods or functions with the same name but with different parameters? This is a common idea known as function or method overloading. Go does not support function or method overloading in any form, but the idea can be implemented in other ways. For example, multiple versions of fmt.Println methods. We’ll cover that in later writeups.

Go: Using Pointer Receiver

An interesting aspect of the code example above is that the parameters we send to the method are always passed by value; otherwise, why do we need to receive a returned value with the statement?

emp = emp.AddCommission(1200.76)

Understand that a method or a function always makes a copy of each parameter sent to it. As a result, any update made within the scope of the method is absolutely local to it and will not reflect any changes on the fields of the object. Now, suppose we wish to avoid making copies of arguments sent or make changes on the original value of the fields of the invoking object, then we must pass the address of the variable using pointer. We may rewrite the AddCommission(…) method as follows:

func (e *Employee) AddCommission(amount float64) {
e.salary = e.salary + amount

Observe the changes we have made. The receiver now is a pointer and refers to the selector. The signature of the method now does not require to return anything. Any update made on the receiver fields in the method is reflected outside the method scope as well.

Method Accessibility in Composition

Composition is an object-oriented feature where a larger object is created by embedding one or more smaller objects. Each part of the object may have its own set of methods. This is kind of like inheritance, but the relationship between the objects are not parent/child type. The idea is to create a larger object comprising many smaller objects. Since methods are associated with structs, accessibility of methods, while simple, are an important aspect to understand in Go. Let us implement the concept with a simple example.

package main

import “fmt”

type Publisher struct {
pubName string
pubAddress string

func (p Publisher) getPublisher() string {
return p.pubName + “, ” + p.pubAddress

type Author struct {
fName string
mName string
lName string

func (a Author) getAuthor() string {
return a.fName + ” ” + a.mName + ” ” + a.lName

type Category struct {
genre string
desc string

func (c Category) getCategory() string {
return c.genre + “, ” + c.desc

type Title struct {
title string
subtitle string

func (t Title) getTitle() string {
return t.title + “, ” + t.subtitle

type Book struct {
title Title
author Author
publisher Publisher
category Category

func (b Book) print() {

func main() {
book := Book{Title{“ABC”, “subtitle of ABC”},
Author{“abc_name”, “abc_mnane”, “abc_lastname”},
Publisher{“PUB1”, “Somewhere”},
Category{“Fiction”, “Good book”}}

This is a composition example. Note how we have created a single large object Book which comprises other smaller objects such as Author, Publisher, Category, and Title. Accessing the methods declared in embedded objects is pretty straightforward using the dot (.) operator. Here we have created a single method called print() which accesses the methods of other composite objects and displays them onto the screen.

Encapsulation in Go

Encapsulation is an important principle of object-oriented programming where the fields inside an object remain inaccessible or hidden to the clients of the object. This is also called information hiding. Encapsulation primarily serves two purposes: the client cannot directly modify an object’s fields, and it hides the implementation details of the methods. The fields of the object can only be accessed through member functions or methods to which they are associated. Popular object-oriented programming languages like C++ or Java have extensive language support. Go, on the other hand, does not have the idea of classes and objects; therefore, the accessibility constraints are achieved through the use of packages.

Go provides two types of identifiers: exported and unexported. Exported identifiers such as variables, structures, functions, methods, and fields are used for implementing encapsulation. The package provides the limit of accessibility and binds the visibility of elements. This means that elements are visible within the package they are defined in.

Identifier names that we want to be exported outside the package must be declared in capital letters. Lower case names are only visible within the package. Here is an example:

package model

type MyStruct struct {
int rate

func NewStruct() *MyStruct {
return &MyStruct{rate: 0}

func (m *MyStruct) getRate() int {
return m.rate

Note that the rate field declared in MyStruct struct is directly accessible by other structs in the same package.

package model

import “fmt”

func MyFunc() {
m := NewStruct()
m.rate = 10

Now, if we simply change the package name as follows it is no longer accessible.

package othermodel

import “fmt”

func MyFunc() {
m := NewStruct()
m.rate = 10

Unlike other object-oriented languages, which restrict the scope of names on class level, Go does it through package level. Other object-oriented features like inheritance, association, and so forth can also be implemented in Go using struct and interfaces that we shall see in a later article. Here we have just provided a quick glimpse of the principle.

Final Thoughts

The language Go, interestingly, is a blend of many old and new ideas. It is not an object-oriented language per se, but many features of OOP can be implemented with absolute ease. The difference between method and function is actually minimal. The concept is that methods are associated with objects and defines their behavior, whereas functions are not. Go has put some syntactical flavor in defining a method that makes it look a bit different from function. But the idea at the core of elaborating our logic is pretty much the same.

The post Methods in Go Explained appeared first on

Read more:


SD Times news digest: Docker Desktop available for Apple Silicon, GitHub Actions with GitHub CLI, and new Harness integrations

Docker Desktop is now supported for all devices using the Apple Silicon.

Users can build and run images for both x86 and ARM architectures without having to set up a complex cross-compilation development environment.

Docker Hub also makes it easy to identify and share repositories that provide multi-platform images. 

Additional details are available here.

GitHub Actions with GitHub CLI 
GitHub Actions are now available in a developer’s terminal with GitHub CLI, giving users insight into their workflow runs and files from the comfort of their local terminal with two new top-level commands, ‘gh run’ and ‘gh workflow.’

With the new ‘gh run list,’ users also receive an overview of all types of workflow runs whether they were triggered via a push, pull request, webhook or manual event.

‘Gh run watch’ also helps users stay on top of in-progress workflow runs, which can be used to either follow along as a workflow run executes or combine it with other tools that send alerts when a run is finished. 

Harness announces new integrations 
Harness announced new integrations with AWS GovCloud, Azure and GCP that provide DevOps and financial management teams with a CI/CD platform for multi-cloud deployments and enhanced cost visibility.

“As more enterprises look to do more with their software and reduce infrastructure costs, they’re turning to multi-cloud architectures to improve uptime, avoid vendor lock-in and gain price leverage,” said Jyoti Bansal, CEO and co-founder, Harness. “With these integrations, Harness is answering that call, providing an abstraction layer between cloud deployment complexity and developers, so every company can deliver next-generation software faster than ever.”

Harness gives customers access to all major public clouds directly and provides the same  deployment and cost management experiences that users have come to expect from managing applications hosted on Kubernetes, according to the company in a post.

Windows Terminal Preview 1.8 
With the new preview version, the settings UI now ships inside the Windows Terminal Stable build. 

The settings UI also has a new font face dropdown option, new command line arguments and the base layer has been removed.

Developers now have the ability to name their terminal windows, which makes it easier to identify windows when using wt CLI arguments. 

Additional details on the updated version are available here.

The post SD Times news digest: Docker Desktop available for Apple Silicon, GitHub Actions with GitHub CLI, and new Harness integrations appeared first on SD Times.

Read more:

Technology Videos


For copyright matters please contact us at:


1. ARGO Cargo Kit

2. Foldylock Compact

3. Monkeycycle


5. Moto Parilla Carbon (Preview)

6. Retyre Modular Tyre System

7. DURO Rise


9. Stroke Cargo Trike

10. Bosch Kiox

00:00 – ARGO Cargo Kit
01:12 – Foldylock Compact
01:57 – Monkeycycle
02:51 – HEXAGON
03:53 – Moto Parilla Carbon (Preview)
05:06 – Retyre Modular Tyre System
06:16 – DURO Rise
07:25 – UNIT 1 FARO
08:12 – Stroke Cargo Trike
08:59 – Bosch Kiox

Read more:


Observability: A process change, not a set of tools

If you do a Google search for the phrase “observability tools,” it’ll return about 3.3 million results. As observability is the hot thing right now, every vendor is trying to get aboard the observability train. But observability is not as simple as buying a tool; it’s more of a process change — a way of collecting data and using that data to provide better customer experiences. 

“Right now there’s a lot of buzz around observability, observability tools, but it’s not just the tool,” said Mehdi Daoudi, CEO of digital experience monitoring platform Catchpoint. “That’s the key message. It’s really about how can we combine all of these data streams to try to paint a picture.”

Observability: It’s all about the data
A guide to observability

If you go back to where observability came from — like many other processes, it originated at Google — its original definition was about measuring “how well internal states of a system can be inferred from knowledge of its external outputs,” said Daoudi. 

Daoudi shared an example of observability in action where one of Catchpoint’s customers was seeing a trend where customers complained a lot on Mondays and Tuesdays, but not on Sundays. The server load was the same, but the services were slower. Through observability, the company was able to determine that backup processes that only run on weekdays were the culprit and were impacting performance. 

“Observability is about triangulation,” said Daoudi. “It’s about being able to answer a very, very complex question, very, very quickly. There is a problem – where is the problem? The reason why this is important is because things have gotten a lot more complex. You’re not dealing with one server anymore, you’re dealing with hundreds of thousands of servers, cloud, CDNs, a lot of moving parts where each one of them can break. And so not having observability into the state of those systems, that makes your triangulation efforts a lot harder, and therefore longer, and therefore has an impact on the end users and your brand and revenue, etc.”

This is why Daoudi firmly believes that observability isn’t just a set of tools. He sees it as a way of working as a company, being aligned, and being able to have a common way to collect data that is needed to answer questions. 

The industry has standardardized on OpenTelemetry as the common way of collecting telemetry data. OpenTelemetry is an open source tool used for gathering metrics, logs, and traces — often referred to as the three pillars of observability. 

The three pillars are often referenced in the industry when talking about observability, but Ben Sigelman, CEO and co-founder of monitoring company Lightstep, believes that observability needs to go beyond metrics, logs, and traces. He compared the three pillars to Steve Jobs announcing the first iPhone back in 2007. Jobs started off the presentation by announcing a widescreen iPod with touch controls, a “revolutionary” mobile phone, and a breakthrough internet communications device, making it seem as though they were three separate devices. 

“These are not three separate devices,” Jobs went on to clarify. “This is one device, and we are calling it iPhone.”  Sigelman said the same is true of telemetry. Metrics, logs, and traces shouldn’t be known as the three pillars because you get all three at once and it’s one thing: telemetry.

Michael Fisher, group product manager at AIOps company OpsRamp, broke observability data down further into two signals: symptomatic signals and causal signals. Symptomatic signals are what an end user is experiencing, such as page latency or a 500 Internal Server Error on a website. Causal signals are what cause those symptomatic signals. Examples include CPU, network, and storage metrics, and “things that may be an issue, but you’re not sure because they’re not being tied to any symptom that an end user might be facing.” 

Monitoring tools tend to focus mostly on the causal signals, Fisher explained, but he recommends starting with symptomatic signals and working towards causal signals, with the end state being a unit of the two. 

“When something is going wrong [the developer] can search that log, they can search that trace and they can tie it back to the piece of code that’s having an issue,” said Fisher. “The operations team, they may just see the causal symptoms, or maybe there is no causal symptom. Maybe the application is running fine but users are still complaining. Tying those two together is kind of a key part of this shift towards observability. And that’s why I talk about observability as a development principle because I think starting with the symptomatic signals with the people who actually know is a huge paradigm shift for me because I think some of the people you talk to or ITOps teams you talk to is that monitoring is their wheelhouse, whereas many modern shops, OpsRamp included, much more monitoring actually happens on the development team side now.”

Providing good end user experience is the ultimate goal of observability. With monitoring, you might only be focusing on those causal signals, which might mean you miss out on important symptomatic signals where the end user is experiencing some sort of service degradation or trouble accessing your application. 

“When I talk about using observability to drive end-user outcomes, I’m really talking about focusing on observing the things that would impact end users and taking action on them before they do because traditionally this focus on monitoring has been at a much lower level, layer 3, I care about my network, I care about my switches,” said Fisher. “I’ve talked to customers where that’s all they care about, which is fine but you start to realize those things really matter less once you move up the stack and you have a webpage or you have a SaaS application. The end user will never tell you that their CPU is high, but they will tell you that your webpage is taking 10 seconds to load and they couldn’t use your tool. If an end user can’t use your tool who gives a damn about anything else?”

It’s important that observability not just stay in the hands of developers. In fact, Bernd Greifeneder, CTO of monitoring company Dynatrace, believes that if developers just do observability on their own, then it’s nothing more than a debugging tool. “The reason then for DevOps and SREs needs to come into play is to help with a more consistent approach because these days multiple teams create different microservices that are interconnected and have to interplay. This is sort of a complexity challenge and also a scale challenge that needs to be solved. This is where an SRE and Ops team have to help with standing up proper observability tooling or monitoring if you will, but making sure that all the observability data comes together in a holistic view,” he said. 

SRE and Ops teams can help make sure that the observability data that the developers are collecting has the proper analytics on top of it. This will enable them to gain insights from observability data and use those insights to drive automation and further investments into observability. “IT automation means higher availability, it means automatic remediation when services fail, and ultimately means better experiences for customers,” Greifeneder said. 

When looking into the tools to put on top of your observability data to do those analytics, Tyler McMullen, CTO of edge cloud platform Fastly recommends constantly experimenting to see what works for your team. He explained that often these observability vendors charge a lot of money, and teams might fall into the trap of buying a solution, putting too much observability data into it, and being shocked when they’re charged a lot of money to do so. 

“Are the pieces of information that we’re plugging into our observability, are they actually working for us? If they’re not working for us, we definitely shouldn’t have them in there,” said McMullen. “On the other hand, you only really find out whether or not something is useful after it becomes useful. Figuring out what you need in advance is I think, one of the biggest problems with this thing. You don’t want to put too much in. On the other hand, if you put too little in you don’t know whether or not it is useful.” As a result, your team will need to do lots of experimenting to discover the right process and the right balance. 

Daoudi added that it’s also important to answer the question of why you’re doing observability before looking into products. “Like every new thing that when a company goes and decides to implement something, you start with why? Why do you need to implement observability? Why do you need to implement SREs? Why do you need to implement an HR system? If you don’t define the ‘why’ then what typically happens is first it’s a huge distraction to your company and also a lot of resources being wasted and then the end result might not be what you’re looking for,” he said.  

And of course, it’s important to remember that observability is more of a process, so looking for a tool that will do observability for you won’t work. The tooling is really about analytics on the observability data you’ve gathered. 

“I really don’t think observability is a tool,” said Daoudi. “If there was such a thing as go to Best Buy, aisle 5, or Target, or Walmart and buy an observability tool for like $5 million, it ain’t going to work because if your company is not functioning and aligned, and your processes and everything isn’t aligned around what observability is supposed to do, then you’re just going to have shelfware in your company.”

The post Observability: A process change, not a set of tools appeared first on SD Times.

Read more:


Python Uses for Web Development

Python is the most widely used computer programming language in the world today – and with good reason. It is easy to learn, use, and, thanks to its vast array of built-in libraries, can be used for just about every application imaginable. Today we are going to look at one area in particular that Python excels in: web development.

Python Web Development Benefits: Prototyping

Python, as a whole, is a wonderful technology for prototyping, but when it comes to Web Development, there may not be a better solution for a quick and dirty proof of concept. When ideas are flying inside of a product development meeting, or even amongst a group of students or individuals, Python offers a quicker solution to get to functional capacity than development solutions like Java and Spring or possibly even JavaScript and Node. It also provides a plentiful palette of optional libraries to tap into for get programs up and running quickly.

If that wasn’t enough, Python not only shows it’s worth in the Research and Development stages of a new product – or a newly redeveloped project – but also in evaluating engineers during hiring processes. With the highly readable syntax of Python, whiteboard becomes as easily evaluated as Pseudo code in comparison to programming languages like C++, Java or even C.

Python Web Dev Benefits: Microservices

Microservices offer a smaller set of application functions and externally reachable routes to an overarching app when compared to the development of monolithic applications, which can contain all code in one source location. Although Python is not the only language to make good use of microservices, Python certainly benefits greatly from such an architecture. Some of the benefits of microservices in Python Include smaller chunks of code to develop and learn, easier troubleshooting upon breaks, errors, and unexpected behavior, and greater overall execution.

But what makes Python particularly unique with regards to microservices is the idea of code optimization. Within larger software projects there is a fairly constant need to review and optimize code for the sake of space, error elimination, and execution time (Big O, for you CS purists) and Python has not always been the friendliest purveyor of that. However, with microservices, the need for such optimization is potentially levied a bit more, as the uses of other tools like message queues and data streams pairs well with micro applications. This, makes the execution of functions and corresponding services negligible in comparison to other, similarly developed services in other programming languages and web development frameworks.

Microservices in Python are not limited in the use of popular frameworks for web development. Flask, Django, CherryPy, FastAPI and others can all be used to develop microservices. Commonly these services will also be developed and deployed to clouds like AWS, Azure, or GCP, but they can also be deployed to internal infrastructures and utilized quite similarly with the correct infrastructure in place. With the major clouds, however, there are also ways to deploy microservices to “serverless” compute resources which save the developers time (and money, potentially) in provisioning and configuring resources to host their applications on.

Benefits of Python Web Dev: Monolith Applications

On the opposite side of microservices, there is also room to develop monolithic applications using Python code. In recent years, monoliths have received the brute of criticism from professional tech bloggers and critics, but monoliths are not, yet, part of the technological world’s bygone era. Monoliths are a reputable architecture pattern, even today, and especially with Python. Although microservices allow development teams to hide some issues in development experience and competence between the services, monoliths require more expertise and more so with Python. Code will need to be optimized and integrations will need to be highly optimized to accommodate the increased overhead that a monolith can add with more source for compute resources to manage at one time.

Benefits of Web Development in Python: Testing

When it comes to web development and Python, one of the more common use cases is testing. Smoke testing, UI testing, integration testing, you name it: Python will make it happen for your application. Of course, you will tend to write certain tests – namely unit and cross-service integration tests – with the language of the application, but for scores of other testing methods, Python can be implemented alongside other programming languages for more thorough coverage and tracking down of errors.

Of course, for applications already utilizing Python, packages like unittest and pytest are wonderful options that will make a developer’s life much easier. When testing across the UI and functional smoke tests, tools like selenium are widely used. Something you will find iterated again in this ongoing blog series is the use case of Python in testing across a system that has been abstracted to use Python exclusively for the purpose of testing. In web based systems that may be composed of several languages and frameworks (across teams), an entire QA team could conceivably be using Python to test the system within specifications of coverage, per service.

Here are some other industries where Python developers can excel.

The post Python Uses for Web Development appeared first on

Read more:


Accel’s Dan Levine and Scale’s Alexandr Wang will chat about how to create a category on Extra Crunch Live

Alexandr Wang has spent the last five years looking to accelerate the development of AI and machine learning algorithms with Scale AI. The company has raised upward of $270 million since inception and doesn’t show any signs of slowing.

That’s why we’re thrilled to hang out with Wang and Scale AI investor Dan Levine (Accel) on Wednesday, April 7 on Extra Crunch Live.

Extra Crunch Live is free to everyone and focuses on the relationships between founders and investors that have led to successful business building. We talk about what made them choose each other, hear about the initial pitch meetings and learn about how they make decisions about the future together.

ECL also features the Pitch Deck Teardown, wherein our esteemed guests give their live feedback on decks submitted by the audience. If you’d like to send us your deck to be featured on a future episode of Extra Crunch Live, hit up this link.

Dan Levine worked on the platform team at Dropbox before getting into venture, and before that was an entrepreneur himself, founding YC-backed Chartio. His current portfolio includes Gem, Mux, Numeracy (acquired by Snowflake), ReadMe, Scale, Searchlight, Sentry and Vercel.

Wang, for his part, was a technical lead at Quora before founding Scale. He also worked as an algorithm developer at Hudson River Trading and as a software engineer at Addepar after attending, and ultimately dropping out from, MIT, where he studied artificial intelligence.

Between the two of them, these speakers have plenty of wisdom to impart about how to ideate, fund and scale (ha!) businesses.

The episode goes down on April 7 at 12 p.m. PDT/3 p.m. EDT and is free to attend live. Only Extra Crunch members will have access to the episode on demand so be sure to register now and hang out with us.

Early Stage is the premier “how-to” event for startup entrepreneurs and investors. You’ll hear firsthand how some of the most successful founders and VCs build their businesses, raise money and manage their portfolios. We’ll cover every aspect of company building: Fundraising, recruiting, sales, product-market fit, PR, marketing and brand building. Each session also has audience participation built in — there’s ample time included for audience questions and discussion. Use code “TCARTICLE” at checkout to get 20% off tickets right here.

Read more:


Fired GitHub employee reaches ‘amicable resolution’ with company

GitHub has reached an “amicable resolution” with the person the company fired in the aftermath of the attack on the U.S. Capitol in January, the former employee told TechCrunch.

On the day a violent mob of Trump supporters stormed the U.S. Capitol, a worried GitHub employee warned his co-workers in the D.C. area to be safe. After making a comment in Slack saying, “stay safe homies, Nazis are about,” a fellow employee took offense, saying that type of rhetoric wasn’t good for work, the former employee previously told me. Two days later, he was fired, with a human relations representative citing a “pattern of behavior that is not conducive to company policy” as the rationale for his termination, he previously told me.

Later that month, GitHub COO Erica Brescia said the company’s head of HR took full responsibility for what happened and resigned from the company. GitHub did not disclose the name of the person who resigned, but it’s widely known that Carrie Olesen was the chief human resources officer at GitHub. At that time, GitHub said it also “reversed the decision to separate with the employee” and was talking to his representative.

The fired employee, however, did not take his job back.

“We offered the employee his job back immediately after reviewing the investigation findings, and he declined,” a GitHub spokesperson told TechCrunch.

Instead, he told me, “Me and the company reached an amicable resolution. I appreciate that they have denounced white supremacy and the dangers it poses to everybody.”

He did not specify the terms of the resolution, but he previously told me he was seeking damages or some other form of reconciliation.

Below is his full statement, which he requested we publish in full:

Me and the company reached an amicable resolution. I appreciate that they have denounced white supremacy and the dangers it poses to everybody.

We all saw on January 6 that the greatest threat to the USA is not Islam, Black Lives, or defunding police.

White supremacy has us all held hostage using feigned civility, bad-faith arguments/negotiations, and amtssprache*, and it does not stop until we are all dead or subjugated. I am glad that the nazi coup was a failure, and we avoided a successful Reichstag fire. That said, nazis do not give up easily.

Keep your families and communities safe. Connect with your neighbors and local stores. Fascism and nazism succeed when we are divided. They demand that you abandon reason, that you acquiesce to power and hierarchy, and that you shun altruism. Love yourself. Support, join or create local unions. Build community. Don’t entertain nazis.

I appreciate those who have supported me and my family. I wish you safety and wellness.

Black Lives Matter & Black Power ✊


Enjoyment & learning for these times

Graphic novels:
Y the Last Man
Sweet Tooth

“Algorhythm” by Childish Gambino
“Plegaria a un Labrador” by Victor Jara
“Tweakin” by Vince Staples
“Operation: Mindcrime” by Queensrÿche

Avatar Last Airbender & Legend of Korra
Attack on Titan
The Wire

Gang Leader for a Day by Sudhir Venkatesh
People & Permaculture by Looby Macnamara
The Ways of White Folks by Langston Hughes
Post Traumatic Slave Syndrome by Dr. Joy DeGruy

Inglorious Basterds
Attack the Block
Shawshank Redemption

Black gig workers speak out, Uber’s commitment to being anti-racist and Facebook’s diversity report

Read more:


Mobile security lessons learned from mobile game cheats

Mobile games are often broken into so users can access premium content, paid features and obtain in-game currency. This is done by tampering with memory, bypassing payments and touchID screens, and downloading paid apps for free — and can be done on both jailbroken or non-jailbroken devices. 

In a recent webinar on SD Times, Jan Seredynski, mobile security researcher and pentester at the mobile application protection company Guardsquare, walked attendees through these game cheats and provided four simple tips on how to prevent them. According to Seredynski, these lessons learned from mobile game cheats can be applied to all aspects of mobile application security from healthcare, e-commerce, banking and more.

Seredynski’s four simple tips are: 


Environment integrity: Detecting a compromised environment for example a jailbroken/rooted device, emulated app or system or the presence of a debugger.
Application integrity: Verifying that the user is running the current version of the application, that application resources haven’t been changed, and that the application has been installed from a legitimate source
Code integrity: Verifying if execution code is identical to the developer code. For instance, ensuring that machine code or Java instructions haven’t been changed. 
Obfuscation: Making it harder for attackers to understand your code by renaming variables, methods or classes; encrypting sensitive strings; complication control-flow; and encryption assets. 




Each of these protection components matter, Seredynski explained. If you don’t have environment integrity, a hacker can bypass the application integrity; if you don’t have application integrity, a hacker can imitate the compromised environment; without code integrity, a hacker can overwrite protection code; and without obfuscation, a hacker can easily find relevant functions.  

Some other tips Seredynski suggested are to regularly update your protection code so that hackers don’t have enough time to understand those protections, make sure protections work on all operating systems and versions, and check for false positives. 

To learn more and see Seredynski’s do-it-yourself steps on how you can protect your application through each of the four components, watch the full webinar here

The post Mobile security lessons learned from mobile game cheats appeared first on SD Times.

Read more:


Python: 5 Tech Industries Where Developers Can Excel

Python is one of the most popular programming languages in the world today. With use cases in  virtually every  avenue of technology, it is easy to understand the reasoning. Offering simple, readable code, it is often implemented by – and for – many non-technical and technical people alike. From web development to banking to everything in-between, Python has grown exponentially since its appearance on the development scene in the late 1980s.

Here are some tech industries where Python is heavily relied upon and areas of potential growth for Python developers in the coming years.

Python for Web Development

Web Development and Python are fairly synonymous today, with frameworks (such as Django and Flask) and well maintained libraries supporting the language and web development; it’s easy to see why. Python is heavily used in comparison to similar languages and  frameworks like Javascript and Node.Js, Ruby on Rails, C# and .NET, and even Java and Spring.

Today, probably most commonly, Python is used on the web in conjunction with frameworks like Flask and Django. Of course, there are far more frameworks available, including  CherryPy, FastAPI, and even web2py, but Flask and Django dominate the market – and for good reason. Contrary to the domination of Express in Javascript development, Flask and Django offer two different use cases within Pythonic Web Development. Django offers a more opinionated boilerplate of code out of the box, including an ORM for interactions with datastores. On the other hand, Flask is more minimally opinionated, relying on the developer to make more decisions on their preferred ORM, amongst other ‘no-batteries’ feature sets. For a more full bodied list of differences, consider this post discussing “Flask vs Django”.

Python for Data Science

The field of Data Science in 2021 is composed of developers, statisticians, and the like, traditionally specializing in Python and R. With R being used for more deep-rooted mathematical problem solving and numerical analysis, Python pairs quite well to access datasets and perform minimally invasive operations on that data before transitioning to R workloads. With popular libraries that are actively supported, like Pandas, SciKit-Learn, Tensorflow, and Numpy, Python certainly has its place in the Data Science community.

Currently, with sub-fields such as machine learning and Artificial Intelligence (AI) relying upon much of what Python and so many libraries offer, the language is much of a defacto-standard for anyone in the ‘Data’ field today. Check out a more comprehensive review of each of Python’s Data Science libraries.

Python and Systems Development/Testing

Systems development can be an incredibly varied field, covering everything  from defense systems to logistics systems, the spread of use cases can span vastly. Python supplies a great paradigm to not only build those systems but also to use for testing of those systems and any integrations that might come alongside it. Commonly organizations of larger size will even abstract their systems down from those built on programming languages like  C or C++ using Python for testing to achieve cheaper labor/development costs and easier recruiting.

With implementations like CPython and Jython, the integrations with larger  systems and modules become even easier to conform to, thanks to Python’s extensibility. In addition, Python is commonly used in place of the earlier Bash scripting in terms of developing utilities, jobs for Cron scheduling, and similar system built-ins. With infrastructure varying greatly today and becoming increasingly skewed across hybridized hosting, it is highly sought after to be nimble in cross-platform development. With Python being used for local scripting, the skillset is already in place for cloud hosted problems of similar source, making it a breeze for the developer to adapt to those situations.

Python for IT Operations

Similar to Systems Development and Testing, IT Operations benefit greatly from using Python in normal, everyday practices. With a large number of IT offerings, services, and so on either having Python SDKs or agnostic APIs, IT teams can wield Python to test and determine uptimes, status’, or even reachability. All of this is highly utilized in terms of IT monitoring and visibility. With system utilities such as Cron and Task Scheduler, Python can be implemented on a schedule occurring once a minute, once a month, or once a year. Combined with an easily readable design by nature, IT Admins typically select Python over other programming languages to develop their utilities when functionality greater than Bash is necessary.

Python for Infrastructure

Infrastructure is one area where Python particularly shines. With implementations like boto3 and SDKs for Azure and GCP, Python offers a swift implementation of cloud resources for organizations to utilize with great speed. Today, there are even products like Pulumi, which makes it even easier to work with cloud resources with more  structure than ad-hoc or regimented script libraries. With tools like Terraform and other IaC libraries for each cloud available, Python is still heavily sought after for the durability of its scripting, which offers more use than just cloud provisioning.

Leveraging cloud monitoring tools can be dynamically configured to accommodate new resources upon deployment jobs or infrastructure versioning with Python as well. This proves highly valuable in organizations that greatly value constant monitoring and reliability. For further reading on Pulumi, visit:

For further reading on boto3, see:

Other Python Uses

Python is no not merely limited to the uses described above. Python is heavily used today in businesses of all shapes and sizes. It is used to automate rudimentary tasks, to test and correct data ingestion, to make systematic phone calls, and even grade schoolwork. With so many use cases in Python’s arsenal  today, it is increasingly difficult to argue the viability of learning how to use it as a common trade; it is certainly a great addition to any developers resume and programming toolkit.

Python is used in schools, professional organizations, enterprise grade businesses, and non-profit projects. With such a heavy adoption and such easily readable code, it can also be argued that Python is one of the easiest prototyping languages. Developing new tools and applications can greatly be hastened by Python’s simplistic development approach. In addition, it offers an easy to remember and recall ecosystem in whiteboard activities (a common interviewing technique for programmers).

So what are you waiting for? Go out and write your own Python “Hello World” program and get started!

The post Python: 5 Tech Industries Where Developers Can Excel appeared first on

Read more: