Shared posts

18 Jul 05:22

Big Bag in the French Concession

by stylites_admin
Mahmoud

power moves

Big Bag in the French Concession WechatIMG1763 1

Here is one of Pawnstar‘s regular clients outside of our shop with a rather massive, custom-made, bag.

 

14 Jul 04:10

More millennials are moving to San Jose than SF

by Joshua Santos
Based on 2016 immigration and emigration data, it looks like more San Jose is getting more traction among millennials. This generation is currently defined as those aged 22 to 37. In 2016, San Jose gained 5,496 millennials (this is net, immigration - emigration). On top of the list for net migration was Seattle, followed by Columbia and the only other Northern California city in the top ten, Sacramento.

Source: SVBJ


14 Jul 02:59

Today in Landfill Capitalism: Realistic Marketing, Inc.

by jwz
09 Jul 18:39

Wikimedia is against European Parliament's Copyright Directive

by slaporte
Mahmoud

Wikimedia puts the EU in their place. Also love the phrasing in this article "The new restrictions, if passed, would possibly lead to a loss of revenue for the giant as well..." like they can't get away from corporate/market rhetoric.

09 Jul 18:38

Current state of webdesign

by slaporte
Mahmoud

to get riled up before the big meeting.

08 Jul 22:37

MELLOW OUT

by CDTcrew
Mahmoud

doesn't end strong, but 0:55 is a good fever pitch.

07 Jul 22:24

2001 | Joe Veazey's Elongated Coins | adult swim

by Adult Swim

Welcome to America's #1 elongated coin show. Adult Swim’s Joe Veazey shares his collection of elongated coins. One at a time.
Watch Adult Swim livestreams: http://asw.im/8A2SoE

SUBSCRIBE: http://bit.ly/AdultSwimSubscribe

About Adult Swim:
Adult Swim is your late-night home for animation and live-action comedy. Enjoy some of your favorite shows, including Robot Chicken, Venture Bros., Tim and Eric, Aqua Teen, Childrens Hospital, Delocated, Metalocalypse, Squidbillies, and more. Watch some playlists. Fast forward, rewind, pause. It's all here. And remember to visit http://AdultSwim.com for all your full episode needs. We know you wouldn't forget, but it never hurts to make sure.

Connect with Adult Swim Online:
Visit Adult Swim WEBSITE: http://bit.ly/ASWebsite
Like Adult Swim on FACEBOOK: http://bit.ly/ASFacebook
Follow Adult Swim on TWITTER: http://bit.ly/ASTweet
http://instagram.com/adultswim

2001 | Joe Veazey's Elongated Coins | adult swim
http://www.youtube.com/user/adultswim
07 Jul 17:34

How not to structure your database-backed web applications: a study of performance bugs in the wild

by adriancolyer

How not to structure your database-backed web applications: a study of performance bugs in the wild Yang et al., ICSE’18

This is a fascinating study of the problems people get into when using ORMs to handle persistence concerns in their web applications. The authors study real-world applications and distil a catalogue of common performance anti-patterns. There are a bunch of familiar things in the list, and a few that surprised me with the amount of difference they can make. By fixing many of the issues that they find, Yang et al., are able to quantify how many lines of code it takes to address the issue, and what performance improvement the fix delivers.

To prove our point, we manually fix 64 performance issues in [the latest versions of the applications under study] and obtain a median speed-up of 2x (and up to 39x max) with fewer than 5 lines of code change in most cases.

The Hyperloop website provides access to a tool you can use to identify and solve some of the common performance issues in your own (Rails) apps.

I’m going to skip the intro parts about what ORMs do and how a typical web app is structured, on the assumption that you probably have a good handle on that already. Note that fundamentally a lot of the issues stem from the fact that the ‘O’ in ORM could just as easily stand for ‘Opaque.’

On one hand, it is difficult for application compilers or developers to optimize the interaction between the application and the underlying DBMS, as they are unaware of how their code would translate to queries by the ORM. On the other hand, ORM framework and the underlying DBMS are unaware of the high-level application semantics and hence cannot generate efficient plans to execute queries.

I remember in the early days of Spring (when Hibernate was young too, and JPA didn’t exist) a framework called iBATIS was quite popular amongst people I considered to be good developers. It turns out iBATIS is still going strong, though now it’s called MyBatis. The key selling point is that you retain control over the SQL, without the overheads of directly using an API like JDBC.

Finding and profiling real-world applications

The study focuses on Ruby on Rails applications, for which many large open source applications: “compared to other popular ORM frameworks such as Django and Hibernate, Rails has 2x more applications on GitHub with 400 or more stars than Django and Hibernate combined.” Six popular application categories (covering 90% of all Rails apps with more than 100 stars on GitHub) are further selected, and then the two most popular applications in each category. Resulting in the following twelve apps:

They have been developed for 5-12 years, are all in active use, and range from 7Kloc to 145Kloc (Gitlab). To generate realistic data for these apps, the team collected real-world statistics based on either the app in question where available, or similar apps otherwise, and implemented a crawler that fills out forms on the application’s websites following the real-world stats. For each application, three sets of data were created: with 200, 2000, and 20,000 records in the main database table.

When we discuss an application’s scalability we compare its performance among the three above settings. When we discuss an application’s performance we focus on the 20,000-record setting, which is a realistic setting for all the applications under study. In fact, based on the statistics we collect, the number of main table records of every application under study is usually larger than 20,000 in public deployments…

(E.g., more than 1 million records).

With databases in hand, the applications are then profiled by visiting links randomly for two hours and the resulting logs produced by Chrome and the Rails Active Support Instrumentation API are processed to obtain average end-to-end loading time for every page, the detailed performance breakdown, and the issued database queries. For each app, the 10 pages with the worst loading time are plotted in the figure below.

11 out of 12 applications have pages whose average end-to-end loading time (i.e. from browser sending the URL request to page finishing loading) exceeds 2 seconds; 6 out of 12 applications have pages that take more than 3 seconds to load…. Note that our workload is smaller, or for some applications, much smaller, than today’s real-world workload.

Looking at where the time goes for these queries, server time (app server + DBMS) contributes at least 40% of this latency in at least 5 out of the top 10 pages for 11 of the 12 apps.

In total, 40 problematic actions are identified from among the top 10 most time-consuming actions of every application. 34 of these have scalability problems, and 28 take more than 1 second of server time. 64 performance issues were found in these 40 actions, as summarised in the table below.

In addition to studying these actions, the authors also look at performance issues reported in the application’s bug trackers.

The causes of inefficiency are categorised into three main areas: ORM API misuse, database design, and application design.

ORM API Misuse

Inefficient computation (IC) occurs when the same operation on persistent data can be implemented via different ORM calls. These often look similar on the surface, but can have very different performance implications. For example the difference between any? (scans all records in the absence of an index) and exists? as shown here. Another example is use of Object.where(c).first instead of Object.find_by(c).

There all also opportunities to move computation to the DBMS, for example, replacing pluck(:total).sum with sum(:total). Sometimes we can also take advantage of data already in memory (e.g. replace Object.count— a db query— with Object.size which will count in-memory objects if they have already been loaded).

Unnecessary Computation (UC) occurs when redundant or useless queries are issued. A classic example is a query inside a loop body, that could be computed once outside the loop body.

Inefficient data accessing (ID) results in slow data transfers by either not getting enough data (resulting in the familiar N+1 selects problem), or getting too much data. This can be due to inefficient lazy loading (still prevalent in this study), or too-eager eager loading. Here’s an example of a patch in Lobsters that replaces 51 database queries with one:

A similar inefficient updating issue occurs when N queries are issued to update N records separately, instead of using update_all.

Unnecessary data retrieval (UD) occurs when an application retrieves persistent data that it doesn’t then use.

Inefficient Rendering (IR). This one was a surprise to me in the measured impact. It’s very common in Rails to do something like this, which calls link_to within a loop to generate an anchor:

Replacing it with one call to link_to outside of the loop, and the use of gsub within the loop is faster.

There’s a readability trade-off here, but with complex rendering functions it is clearly worth it. 5 problematic actions in the study dropped their time by over half as a result.

Database design issues

Missing Fields (MF) occurs when an application repeatedly computes a value that it could just store.

Missing Database Indexes (MI). Need I say more?

… missing index is the most common performance problem reported in ORM application’s bug tracking systems. However, it only appears in three out of the 40 problematic actions in latest versions.

Application design issues

Content Display Trade-offs (DT). Typically returning all records instead of using pagination. This becomes a problem as the number of records in the database grows.

Application Functionality Trade-offs (FT). Sometimes an application has a side information on a page that is actually quite expensive to compute. Removing this when it is not essential to the user’s task in-hand can make things go faster.

Fixing inefficiencies

The authors study all 40 of the problematic actions and manually fix 39 of the (the other one spends its time on file-system actions). This leads to 64 fixes being applied.

Many fixes are very effective. About a quarter of them achieve more than 5x speedup, and more than 60% of them achieve more than 2x speedup. Every type of fix has at least one case where it achieves more than 2x speedup.

40 of the 64 fixes alter neither the display nor the functionality of the original application, achieving an average speed-up of 2.2x (maximum 9.2x).

Per a recent comment from Steve Powell, it’s actually quite confusing to talk about a ‘2x speed-up’ when you’re talking about the time something takes! I guess we could interpret this as either 2x requests-per-second (that’s a speed metric) , or that an action takes on average half the time it used to (a ‘/2’ latency reduction?). With a single thread of execution, they both amount to the same thing.

The average server time is reduced form 3.57 seconds to 0.49 seconds, and the end-to-end page load times from 4.17 seconds to 0.69 seconds. More than 78% of fixes require fewer than 5 lines of code.

In other words, by writing code that contains the anti-patterns discussed earlier, developers degrade the performance of their applications by about 6x.

The authors wrote a static analyser (you can find it here) that looks for some of the simple API misuse patterns and ran it on the latest versions of the 12 ORM applications. There are still plenty of incidences! (Some of these in actions that weren’t identified as worse performing actions during profiling of course).

By profiling the latest versions of 12 representative ORM applications and studying their bug-tracking systems, we find 9 types of ORM performance anti-patterns and many performance problems in the latest versions of these applications. Our findings open up new research opportunities to develop techniques that can help developers solve performance issues in ORM applications.

Now if you’ll excuse me, I’ve got a Ruby codebase I just need to go and look at…

14 Jun 03:10

Devops

Mahmoud

???

07 Jun 09:39

Downtown San Jose BART Station renders

by Joshua Santos
Mahmoud

aw man just give us the trains. no need to heighten the contrast with sf/oakland stations.

Now that the construction methodology has been finalized for the BART subway in San Jose (single bore), let's have a quick look at the stunning station that is being planned for Downtown San Jose. To call the current design "open" would be a serious understatement. From the lowest point you can look up to the ceiling 145 feet or so above. The layout is modern and welcoming with high tech flourishes throughout. Check out the renders below of what will become one of the most iconic stations in the BART network.

Source: Robertee from the San Jose Development Forum








07 Jun 09:37

More info on the new San Jose Light Tower

by Joshua Santos
Mahmoud

lol inspired the eiffel tower, really?

The campaign to build a new iconic Light Tower in San Jose is still going strong. This would be a re-imagining of the innovative 237 foot-tall Light Tower that was built Downtown in 1881 and some believe inspired the Eiffel Tower in Paris. The team behind the tower is now raising $1.25 million to fund site selection and host a design competition later this year.

The location was original targeted for Plaza de Cesar Chavez, but there are now several other possible locations including:

  • St. James Park
  • Guadalupe River Park - Discovery Meadow
  • Guadalupe River Park - Arena Green
  • Diridon Station

Plaza de Cesar Chavez actually offers the least amount of space for the tower, which could include all sorts of tourist amenities ranging from cafes and gift shops to an observation deck. If everything goes according to plan, it could open as soon as 2022.

The best part is that the tower will not burden San Jose tax payers--it would be the single largest gift the city of San Jose has ever received.


Source: SVBJ


31 May 04:58

Google's Diridon plan is starting to come together

by Joshua Santos
If Google ends up building their 8 million SQFT campus in Downtown San Jose, it will be one of the most transformative events even in San Jose history. They have already spent over $250 million assembling various parcels of land in anticipation for the urban campus. Eventually 15,000-20,000 Google employees could be working in San Jose.

Google has started laying out a vision for the 240-acre land surrounding Diridon where they would local the majority of their offices. The improvements would be accessible to the public and benefit the whole community. Google wants to develop four corridors that each have their own theme: Los Gatos Linear Park, Paseo San Fernando, Cultural & Innovation Walk, and the Social & Commercial Loop.

The Los Gatos Linear Park would connect the Guadalupe River to the Los Gatos Creek via a green "eco-walk" and Santa Clara Steet outside SAP would be turned into a commercial district with retail and restaurants. Paseo San Fernando would feature retail, art, and event space.

This sounds very interesting and exciting. The more developed the plan becomes, the more likely this project will come to fruition.

Source: SVBJ


27 May 21:21

hugo-cumboss: EXTREME POWER

Mahmoud

can't wait to cyberbully my kids





hugo-cumboss:

EXTREME POWER

26 May 22:51

antoine-roquentin: you know this sort of round-table format...

Mahmoud

click through for why this is tagged #sena



antoine-roquentin:

you know this sort of round-table format (which wasn’t invented by bill maher, there were a number of shows based on it like meet the press and mcloughlin group) has so much potential as long as the guests aren’t in complete agreement with each other. and bill maher’s show in the 90s was one of the few cases i’ve seen where that happened from time to time, because something like meet the press has only the insider washington set on, making it so staid that there’s rarely been an episode worth watching over 50 years on air, while there’s episodes of politically incorrect that are still worth watching today. but then maher got 9/11 derangement syndrome like every other new atheist and decided that supporting wars in the middle east was a great thing, in part because of the access it provided them to rich and powerful washingtonians. and from then on, his stupid show has a lineup like it did on friday. dan savage, bari weiss, evan mcmullin. what a great lineup of islamophobes. please, tell me more about the barbaric brown-skinned palestinian hordes coming for the peace-loving israeli people. completely fucking worthless to watch now, despite its incredible potential, because he refuses to have a real debate on his debate show. they need to revive after dark but go harder. is there no network willing to pay a small fee for a show to air at the wee hours of the morning and then weather the potential controversy, in this era of massive programming spending?

26 May 22:49

Photo

Mahmoud

i made this and it got no respect



21 May 08:29

An alternate ending to the tragedy of the commons

by slaporte
Mahmoud

yada yada collective action

16 May 00:33

good ol’ dilby

by kris

he’s a very strong and persuasive alpha male

16 May 00:30

Today in Dunning-Krugerrand News

by jwz
Blockchain's Two-Flavored Appeal

A recent story in Medium describes yet again quite well why blockchains don't solve any real problems: Blockchain is not only crappy technology but a bad vision for the future.

So what is their irresistible appeal?

Bitcoins remind me of a story from the late chair of the Princeton University astronomy department. In 1950 Immanuel Velikovsky published Worlds in Collision, a controversial best-selling book that claimed that 3500 years ago Venus and Mars swooped near the earth, causing catastrophes that were passed down in religions and mythologies.

The astronomer was talking to an anthropologist at a party, and the book came up.

"The astronomy is nonsense," said the astronomer, "but the anthropology is really interesting."

"Funny," replied the anthropologist, "I was going to say almost the same thing."

Bitcoin and blockchains lash together an unusual distributed database with a libertarian economic model.

People who understand databases realize that blockchains only work as long as there are incentives to keep a sufficient number of non-colluding miners active, preventing collusion is probably impossible, and that scaling blockchains up to handle an interesting transaction rate is very hard, but that no-government money is really interesting.

People who understand economics and particularly economic history understand why central banks manage their currencies, thin markets like the ones for cryptocurrencies are easy to corrupt, and a payment system needs a way to undo bogus payments, but that free permanent database ledger is really interesting.

Not surprisingly, the most enthusiastic bitcoin and blockchain proponents are the ones who understand neither databases nor economics.

Previously, previously, previously, previously, previously, previously.

10 May 01:17

Announcing glom: Restructured Data for Python

by Mahmoud Hashemi
Mahmoud

lol these illustrations look greaaaaaat in RSS (@ben I def need a mobile theme :/ )

This post introduces glom, Python's missing operator for nested objects and data.

If you're an easy sell, full API docs and tutorial are already available at glom.readthedocs.io.
Harder sells, this 5-minute post is for you.
Really hard sells met me at PyCon,
where I gave this 5-minute talk.

The Spectre of Structure

In the Python world, there's a saying: "Flat is better than nested."

Maybe times have changed or maybe that adage just applies more to code than data. In spite of the warning, nested data continues to grow, from document stores to RPC systems to structured logs to plain ol' JSON web services.

After all, if "flat" was the be-all-end-all, why would namespaces be one honking great idea? Nobody likes artificial flatness, nobody wants to call a function with 40 arguments.

Nested data is tricky though. Reaching into deeply structured data can get you some ugly errors. Consider this simple line:

value = target.a['b']['c']

That single line can result in at least four different exceptions, each less helpful than the last:

AttributeError: 'TargetType' object has no attribute 'a'
KeyError: 'b'
TypeError: 'NoneType' object has no attribute '__getitem__'
TypeError: list indices must be integers, not str

Clearly, we need our tools to catch up to our nested data.

Enter glom.

Restructuring Data

glom is a new approach to working with data in Python, featuring:

A tool as simple and powerful as glom attracts many comparisons.

While similarities exist, and are often intentional, glom differs from other offerings in a few ways:

Going Beyond Access

Many nested data tools simply perform deep gets and searches, stopping short after solving the problem posed above. Realizing that access almost always precedes assignment, glom takes the paradigm further, enabling total declarative transformation of the data.

By way of introduction, let's start off with space-age access, the classic "deep-get":

from glom import glom

target = {'galaxy': {'system': {'planet': 'jupiter'}}}
spec = 'galaxy.system.planet'

output = glom(target, spec)
# output = 'jupiter'

Some quick terminology:

  • target is our data, be it dict, list, or any other object
  • spec is what we want output to be

With output = glom(target, spec) committed to memory, we're ready for some new requirements.

Our astronomers want to focus in on the Solar system, and represent planets as a list. Let's restructure the data to make a list of names:

target = {'system': {'planets': [{'name': 'earth'}, {'name': 'jupiter'}]}}

glom(target, ('system.planets', ['name']))
# ['earth', 'jupiter']

And let's say we want to capture a parallel list of moon counts with the names as well:

target = {'system': {'planets': [{'name': 'earth', 'moons': 1},
                                 {'name': 'jupiter', 'moons': 69}]}}

spec = {'names': ('system.planets', ['name']),
        'moons': ('system.planets', ['moons'])}

glom(target, spec)
# {'names': ['earth', 'jupiter'], 'moons': [1, 69]}

We can react to changing data requirements as fast as the data itself can change, naturally restructuring our results, despite the input's nested nature. Like a list comprehension, but for nested data, our code mirrors our output.

And we're just getting started.

True Python-Native

Most other implementations are limited to a particular data format or pure model, be it jmespath or XPath/XSLT. glom makes no such sacrifices of practicality, harnessing the full power of Python itself.

Going back to our example, let's say we wanted to get an aggregate moon count:

target = {'system': {'planets': [{'name': 'earth', 'moons': 1},
                                 {'name': 'jupiter', 'moons': 69}]}}


glom(target, {'moon_count': ('system.planets', ['moons'], sum)})
# {'moon_count': 70}

With glom, you have full access to Python at any given moment. Pass values to functions, whether built-in, imported, or defined inline with lambda. But glom doesn't stop there.

Now we get to one of my favorite features by far. Leaning into Python's power, we unlock the following syntax:

from glom import T

spec = T['system']['planets'][-1].values()

glom(target, spec)
# ['jupiter', 69]

What just happened?

T stands for target, and it acts as your data's stunt double. T records every key you get, every attribute you access, every index you index, and every method you call. And out comes a spec that's usable like any other.

No more worrying if an attribute is None or a key isn't set. Take that leap with T. T never raises an exception, so worst case you get a meaningful error message when you run glom() on it.

And if you're ok with the data not being there, just set a default:

glom(target, T['system']['comets'][-1], default=None)
# None

Finally, null-coalescing operators for Python!

But so much more. This kind of dynamism is what made me fall in love with Python. No other language could do it quite like this.

That's why glom will always be a Python library first and a CLI second. Oh, didn't I mention there was a CLI?

Library first, then CLI

Tools like jq provide a lot of value on the console, but leave a dubious path forward for further integration. glom's full-featured command-line interface is only a stepping stone to using it more extensively inside application logic.

$ pip install glom
$ curl -s https://api.github.com/repos/mahmoud/glom/events \
  | glom '[{"type": "type", "date": "created_at", "user": "actor.login"}]'

Which gets us:

[
  {
    "date": "2018-05-09T03:39:44Z",
    "type": "WatchEvent",
    "user": "asapzacy"
  },
  {
    "date": "2018-05-08T22:51:46Z",
    "type": "WatchEvent",
    "user": "CameronCairns"
  },
  {
    "date": "2018-05-08T03:27:27Z",
    "type": "PushEvent",
    "user": "mahmoud"
  },
  {
    "date": "2018-05-08T03:27:27Z",
    "type": "PullRequestEvent",
    "user": "mahmoud"
  }
...
]

Piping hot JSON into glom with a cool Python literal spec, with pretty-printed JSON out. A great way to process and filter API calls, and explore some data. Something genuinely enjoyable, because you know you won't be stuck in this pipe dream.

Everything on the command line ports directly into production-grade Python, complete with better error handling and limitless integration possibilities.

Next steps

Never before glom have I put a piece of code into production so quickly.

Within two weeks of the first commit, glom has paid its weight in gold, with glom specs replacing Django Rest Framework code 2x to 5x their size, making the codebase faster and more readable. Meanwhile, glom's core is so tight that we're on pace to have more docs and tests than code very soon.

The glom() function is stable, along with the rest of the API, unless otherwise specified.

A lot of other features are baking or in the works. For now, we'll be focusing on the following growth areas:

We'll be talking about all of this and more at PyCon, so swing by if you can. In either case, I hope you'll try glom out and let us know how it goes!


06 May 17:16

The Historic Background of China's Perception of the West - by Carl Zha

by b
Mahmoud

nice and short, to the point, wish my UNL modern history of china class had been like this

Carl Zha publishes the Clash of civiliza...
05 May 03:55

Driven to Greatness

by nedroid_wp

Driven to Greatness

03 May 06:01

Faux leases, faux tenants hid couple's $700,000 profit on illegal hotels across 14 residential properties

by jwz
Mahmoud

nuckin fut

Reminder: the term-of-art for AirBnB's business model is "Tax Fraud".

San Francisco City Attorney Dennis Herrera today threw the book at pair of city landlords who, having already settled a suit charging they were operating more than a dozen illegal Airbnb hotels across the city, allegedly spent the last two years fabricating an elaborate scheme to continue cashing in hundreds of thousands of dollars running unlawful short-term rentals. [...]

"Each of the 8 properties inspected had been staged to appear as if a tenant lived there, but it was obvious that it was a ruse. Every apartment had the same staging: the same Costco food items scattered about, the same arrangement of dirty breakfast dishes in every kitchen sink, same personal products in each bathroom, same damp towels artfully draped over doors as though someone had recently showered, the same collection of shoes and clothes in closets, and same houseplants in each apartment."

"Defendants also submitted six faux leases to create the appearance that certain apartments were rented to genuine tenants, then positing that the tenants were conducting unsanctioned illegal short-term rentals. However, the purported tenants were in fact Defendants' friends, family, employees and/or associates merely posing as tenants." [..] Tellingly, all but one of their Airbnb host accounts was created using the same IP address. [...]

"While teachers, families and long-time residents are struggling to stay in their homes, the Lees were taking precious housing and turning it into an illegal hotel chain," summed up Herrera. [...]

At a max of $6,000 per violation and more than 5,000 violations, the ceiling for this litigation exceeds $30 million. But the city instead requested the "more modest civil penalty" of $5.5 million, plus fees for "well over 400 attorney hours, 250 paralegal hours, and 80 investigator hours unraveling Defendants' scheme and bringing this Motion to Enforce."

Previously, previously, previously, previously, previously, previously.

01 May 03:19

Shocked

by Nicholas Gurewitch
Mahmoud

i'm all for new pbf, but this is nowhere near as good as http://pbfcomics.com/comics/mrs-hammer/

The post Shocked appeared first on The Perry Bible Fellowship.

30 Apr 04:57

Amazon Key

by drew
30 Apr 04:08

Travel Monday: A Photo Trip to Socotra (25 photos)

Off the coast of Yemen, in the Arabian Sea, lies isolated Socotra Island, where hundreds of plants and animals have developed into species unique to the island. Socotra is the largest island in an archipelago that includes three other islands. The Socotra Archipelago has been isolated from any large landmass for millions of years, and is now home to a surprising display of biodiversity. Probably the best-known of its endemic flora is the dragon blood tree, with red-colored sap and tightly-clustered branches that look like roots turned upside down. Below, a collection of images of the landscape of Socotra, and the plants and animals that call it home.

Two paragliders fly above the Arabian Sea off the coast of Socotra Island. (P. Medicus / Getty)
29 Apr 01:53

In case you've forgotten: Microsoft is still a vile garbage fire of a company.

by jwz
E-waste recycler Eric Lundgren loses appeal on computer restore disks, must serve 15-month prison term:

A California man who built a sizable business out of recycling electronic waste is headed to federal prison for 15 months after a federal appeals court in Miami rejected his claim that the "restore disks" he made to extend the lives of computers had no financial value, instead ruling that he had infringed Microsoft's products to the tune of $700,000.

The appeals court upheld a federal district judge's ruling that the disks made by Eric Lundgren to restore Microsoft operating systems had a value of $25 apiece, even though they could be downloaded free and could be used only on computers with a valid Microsoft license. [...]

But he said the court had set a precedent for Microsoft and other software-makers to pursue criminal cases against those seeking to extend the life span of computers. "I got in the way of their agenda," Lundgren said, "this profit model that's way more profitable than I could ever be."

Lundgren said he wasn't sure when he would be surrendering. He said prosecutors in Miami told him he could have a couple of weeks to put his financial affairs in order, including plans for his company of more than 100 employees. "But I was told if I got loud in the media, they'd come pick me up," Lundgren said. "If you want to take my liberty, I'm going to get loud."

"I am going to prison, and I've accepted it," Lundgren said Monday. "What I'm not okay with is people not understanding why I'm going to prison. Hopefully my story can shine some light on the e-waste epidemic we have in the United States, how wasteful we are. At what point do people stand up and say something? I didn't say something, I just did it."

Previously, previously, previously, previously.

25 Apr 05:46

Benjamin Grosvenor and Charlie Albright highlight Steinway Society Season 24

by Joshua Santos
Mahmoud

dang, a part of me really wants to get season tickets...


San Jose, CA – A line-up of international piano stars awaits classical music lovers in the 24th season of Steinway Society - The Bay Area. The season launches on September 15 and includes a concert each month through May 11, 2019.

“This season’s artists are all top international performers who are widely praised for their depth of artistry as well as their audience appeal,” said Lorrin Koran, MD, President of the Board for Steinway Society — The Bay Area. “They are artists that add greatly to the luster of the classical music coming to Silicon Valley next season."

THE CONCERT LINE-UP:
  • September 15 (Saturday) - Zlata Chochieva –Gramophone includes her in their Top Ten Chopin CDs; her Rachmaninoff is so masterful that at age 12 she gave a recital shown on Russian TV.
  • October 13 (Saturday) - Vladimir Ovhinnikov – The only pianist to win the top prize at both the Tchaikovsky and the Leeds Competitions. He is now a professor at the Moscow Conservatory.
  • November 11 (Sunday) - Henry Kramer - Laureate of the 2017 American Pianist Association Awards and lauded as “triumphant” and “thrilling” by The New York Times.  
  • December 8 (Saturday) – Sandra Wright Shen - A Bay Area treasure, international star, and Steinway Artist who is among Silicon Valley’s most treasured classical musicians.  
  • January 12, 2019 (Saturday) - Kate Liu -  First Prize winner at both at the New York and the Asia-Pacific International Chopin Competitions, she has appeared on PBS’s “From the Top at Carnegie Hall.”
  • February 10 (Sunday) – Vyacheslav Gryaznov – He thrilled our audience receiving three encores in 2016, has played Berlin Philharmonie and Carnegie Hall, and composes piano transcriptions that are popular world-wide. 
  • March 12 (Tuesday) – Benjamin Grosvenor – One of the world’s most sought-after pianists, he has been featured in two BBC documentaries and is the youngest British musician ever signed by Decca Classics.
  • April 6 (Saturday) –  Nikolay Khozyainov - The New York Times praised his “stunning virtuosity and prodigious technique.” His sold-out concerts bear witness to that.
  • May 11 (Saturday) – Charlie Albright – Praised by The New York Times for his “jaw-dropping technique and virtuosity meshed with a distinctive musicality” the super-star American pianist has performed with Bobby McFerrin, Joshua Bell, and Yo-Yo Ma.

PERFORMANCE LOCATIONS: All performances in the 2018-19 season will be held at the Trianon Theatre, 72 North 5th Street in downtown San Jose, with the exception of the October 13 and March 12 concerts which will be held at McAfee Performing Arts Center at 20300 Herriman Avenue (just off Saratoga Sunnyvale Road) in Saratoga.    

TICKETS/INFO: www.steinwaysociety.com or (408) 990-0872
Season Subscriptions (8 concerts) range from $225 to $360
Mini-Series Subscription (4 concerts) range from $125 to $200
Single Tickets: $40-$60. Senior/Student Discounts Available      

PHOTOS: International piano star Benjamin Grosvenor, in solo recital March 12, 2019, is among the celebrated pianists coming to Silicon Valley in the 24th season of Steinway Society - The Bay Area. The season kicks off on September 15, 2018 and includes notables such as Sandra Wright Shen who is bringing a holiday concert in December, and noted American pianist Charlie Albright, who has performed with Joshua Bell and Yo-Yo Ma.  Benjamin Grosvenor photos courtesy of Steinway Society – The Bay Area.

ABOUT US: Steinway Society - The Bay Area is a non-profit organization, based in Silicon Valley. Now entering its 24th year in San Jose, this dedicated group of musicians, pianists, teachers and arts lovers promotes excellence in piano performance and music education. Each season, Steinway Society presents a series of classical piano concerts featuring international award-winning pianists, and works with students and school leaders to bring musical performances to the schools.

For more information on Season Subscriptions, the artists and Steinway Society, visit www.SteinwaySociety.com 
24 Apr 03:52

Neoclassical macroeconomics

by Richard Stallman

Economists are waking up to the biases in neoclassical macroeconomics and how that provides an excuse for plutocratist cruelty.

There is no such thing as "the free market" — every market is regulated somehow, and a market without proper regulation is likely to have instabilities (such as crashes).

24 Apr 03:49

EU copyright proposal

by Richard Stallman

The EU's Latest Copyright Proposal Is So Bad, It Even Outlaws Creative Commons Licenses.

23 Apr 04:43

'Ready Player One' & 'Tyler Perry's Acrimony' | On Cinema Season X, Ep. 2 | adult swim

by Adult Swim
Mahmoud

tyler perry is becoming the woody allen of our generation

New Episodes every Thursday @ 7P ET: http://asw.im/7mvnpe
Replays weekdays @ 5P ET: http://asw.im/7mvnpe
Watch previous episodes: http://asw.im/6cYsCY
Tim and Gregg check out new joints from Spielberg and Perry. Also, Gregg gives an update of the Victorville Film Archive.

SUBSCRIBE: http://bit.ly/AdultSwimSubscribe

About On Cinema:
On Cinema is Adult Swim's finest authority on film, comparable to the great French film magazines in both content and depth. Host Tim Heidecker (of Tim and Eric Awesome Show, Great Job!) and recurring guest Gregg Turkington illuminate which of the latest films are must-see's, which are unofficial sequels to unrelated films, and which aren't worth your time on a scale of one-to-five bags of popcorn. The coveted five bags of popcorn might not be given out easily, but that's kind of the point. See every episode of this enriching talk show now at http://AdultSwim.com.

Watch More On Cinema: http://bit.ly/OnCinemaSite

About Adult Swim:
Adult Swim is your late-night home for animation and live-action comedy. Enjoy some of your favorite shows, including Robot Chicken, Venture Bros., Tim and Eric, Aqua Teen, Childrens Hospital, Delocated, Metalocalypse, Squidbillies, and more. Watch some playlists. Fast forward, rewind, pause. It's all here. And remember to visit http://AdultSwim.com for all your full episode needs. We know you wouldn't forget, but it never hurts to make sure.

Connect with Adult Swim Online:
Visit Adult Swim WEBSITE: http://bit.ly/ASWebsite
Like Adult Swim on FACEBOOK: http://bit.ly/ASFacebook
Follow Adult Swim on TWITTER: http://bit.ly/ASTweet
http://instagram.com/adultswim

'Ready Player One' & 'Tyler Perry's Acrimony' | On Cinema Season X, Ep. 2 | adult swim
http://www.youtube.com/user/adultswim