10 interesting stories served every morning and every evening.




1 542 shares, 25 trendiness, 0 words and 0 minutes reading time

This Website Will Self Destruct

...

Read the original on www.thiswebsitewillselfdestruct.com »

2 406 shares, 94 trendiness, 1186 words and 10 minutes reading time

Justin Amash announces introducing the "Ending Qualified Immunity Act"

In the early days of the Coronavirus epi­demic, there were hopes that the dis­ease could be treated with a com­pound called hy­drox­y­chloro­quine (HCQ). HCQ is a long-es­tab­lished in­ex­pen­sive med­i­cine that is widely used to treat malaria. It also has uses for treat­ing rheuma­toid arthri­tis and lu­pus. There had been some in­di­ca­tions that HCQ could treat SARS virus in­fec­tions by at­tack­ing the spike pro­teins that coro­n­aviruses use to latch onto cells and in­ject their ge­netic ma­te­r­ial. Initial small-scale stud­ies of the drug on COVID-19 pa­tients in­di­cated some pos­i­tive ef­fect (in com­bi­na­tion with the an­tibi­otic azithromycin). President Trump, in March, pro­moted HCQ as a game-changer and is ap­par­ently tak­ing it as a pro­phy­laxis af­ter po­ten­tially be­ing ex­posed by White House staff.

Initial claims of the ef­fi­cacy of this ther­apy were a per­fect il­lus­tra­tion of why we base de­ci­sions on sci­en­tific stud­ies and not anec­dotes. By late March, Twitter was filled with sto­ries of my cous­in’s moth­er’s for­mer room­mate was on death’s door and took this ther­apy and mirac­u­lously re­cov­ered”. But such sto­ries, even as­sum­ing they are true, mean noth­ing. With COVID-19, we know that se­ri­ously ill peo­ple reach an in­flec­tion point where they ei­ther re­cover or die. If they died while tak­ing the HCQ reg­i­men, we don’t hear from them be­cause…they died. And if they re­cover with­out tak­ing it, we don’t hear from them be­cause…they did­n’t take it. Our simian brains have evolved to think that cor­re­la­tion is cau­sa­tion. But it is­n’t. If I sac­ri­ficed a goat in every COVID-19 pa­tien­t’s room, some of them would re­cover just by chance. That does­n’t mean we should start a mas­sive holo­caust of caprines.

However, even putting aside anec­dotes, there were good rea­sons to be­lieve the HCQ reg­i­men might work. And given the se­ri­ous­ness of this dis­ease and the des­per­a­tion of those try­ing to save lives, it’s un­der­stand­able that doc­tors be­gan us­ing it for crit­i­cally ill pa­tients and sci­en­tists be­gan re­search­ing its ef­fi­cacy.

Why Trump be­came fix­ated on it is equally un­der­stand­able. Trump has been look­ing for a quick fix to this cri­sis since Day One. Denial failed. Closing off (some) travel to China failed. A vac­cine is months if not years away. So HCQ of­fered him what he wanted — a way to fix this prob­lem with­out the hard work, tough choices and sac­ri­fice of stay-at-home or­ders, masks, iso­la­tion and quar­an­tine. So ea­ger were they to adopt the quick fix, the Administration made plans to dis­trib­ute mil­lions of doses of this un­proven drug in lieu of tak­ing more con­crete steps to ad­dress the cri­sis.[efn_note]Al­though the claim that Trump stands to profit off HCQ sales does not ap­pear to hold much wa­ter.[/​efn_note]

This is also why cer­tain fringe cor­ners of the in­ter­net be­came fix­ated on it. There has arisen a sub­set of the COVID Truthers that I’m call­ing HCQ Truthers: peo­ple who be­lieve that HCQ is­n’t just some­thing that may save some lives but is, in fact, a mir­a­cle cure that it’s only be­ing held back so that…well, take your pick. So that Democrats can wreck the econ­omy. So that Bill Gates can in­ject us with track­ing de­vices. So that we can clear off the Social Security rolls. And this is­n’t just a US phe­nom­e­non nor is it all about Trump. Overseas friends tell me that COVID trutherism in gen­eral and HCQ trutherism in par­tic­u­lar have arisen all over the Western World.

It’s no ac­ci­dent that the HCQ Truthers seem to share a great deal of head­space with the anti-Vaxxers. It fills the same needs

* In both cases, the idea was started by flawed stud­ies. The ini­tial stud­ies out of China and France that in­di­cated HCQ worked were heav­ily crit­i­cized for method­olog­i­cal er­rors (although note that nei­ther claimed it was a mir­a­cle cure). Since then, larger stud­ies have shown no ef­fect.

* HCQ trutherism of­fers an ex­pla­na­tion for tragedy be­yond the ran­dom cru­elty of na­ture. Just as anti-vaxxers don’t want to be­lieve that some­times autism just hap­pens, HCQ Truthers don’t want to be­lieve that some­times na­ture just re­leases aw­ful epi­demics on us. It’s more com­fort­ing, in some ways, to think that bad hap­pen­ings are all part of a plan by shad­owy forces.

There is, how­ever, an­other crazy side that does­n’t get as much at­ten­tion be­cause their crazy is a bit more sub­tle. These are the peo­ple who have de­cided that, since Trump is tout­ing the HCQ treat­ment, it must not work. It can not work. It can not be al­lowed to work. There is an undis­guised glee when stud­ies show that HCQ does not work and a will­ing­ness to blame HCQ short­ages on Trump and only Trump.[efn_note]Not to men­tion the odd fish tank cleaner poi­son­ing that has noth­ing to do with him.[/​efn_note]

In be­tween the two camps are every­one else: sci­en­tists, doc­tors and or­di­nary folk who just want to know whether this thing works or not, pol­i­tics and con­spir­acy the­o­ries be damned. Well, last week, we got a big in­di­ca­tion that it does not. A mas­sive study out of the Lancet con­cluded that the HCQ reg­i­men has no mea­sur­able pos­i­tive ef­fect. In fact, death rates were higher for those who took the reg­i­men, likely due to heart ar­rhyth­mias in­duced by the drug.

So is the de­bate over? Can we move on from HCQ? Not quite.

First of all, the study is a ret­ro­spec­tive study, look­ing back­ward at nearly 100,000 cases over the last four months. That’s a mas­sive sam­ple that al­lows one to cor­rect for po­ten­tial con­found­ing fac­tors. But it’s not a dou­ble-blind trial, so there may be cer­tain bi­ases that can not be avoided. In re­sponse to the pub­li­ca­tion, a group do­ing a con­trolled study un­blinded some of their data (that is, they let an in­de­pen­dent group look up who was get­ting the ac­tual HCQ and who was get­ting a placebo). It did not show enough of a safety con­cern to war­rant end­ing the study.

It’s also worth not­ing that be­cause this is an un­proven ther­apy, it is usu­ally be­ing used on only the sick­est pa­tients (the odd President of the United States aside). It’s pos­si­ble ear­lier use of the drug, when the body is not al­ready at war with it­self, could help.

With those caveats in mind, how­ever, this study at least makes it clear that HCQ is not the mir­a­cle cure some fringe cor­ners of the in­ter­net are pre­tend­ing it is. And it should make doc­tors hes­i­tant in giv­ing to peo­ple who al­ready have heart is­sues.

As you can imag­ine, this has only fed the twin camps of de­range­ment. The truther ar­gu­ments tend to fall into the usual holes that truther the­o­ries do:

* How can this be a four-month study when we only learned about COVID in January!” The HCQ pro­to­col started be­ing used al­most im­me­di­ately be­cause of pre­vi­ous re­search on coro­n­aviruses.

* How come all of the sud­den this safe med­i­cine that peo­ple use all the time is dan­ger­ous?!” The side ef­fects of HCQ have been well known for years and have al­ways re­quired con­sid­er­a­tion and man­age­ment. They may be show­ing up more strongly here be­cause it is be­ing given to pa­tients whose bod­ies are al­ready un­der ex­treme stress. Also, azithromycin may am­plify some of those side ef­fects.

* They just hate Trump.” Not every­thing is about Donald Trump. If it turned out that kiss­ing Donald Trump’s gi­ant or­ange back­side cured COVID, sci­en­tists would be the first ones telling peo­ple to line up and use chap­stick.

The other cam­p’s re­sponse has ranged from undis­guised glee — that is, joy at the idea that we won’t be sav­ing lives cheaply — to bizarre claims that Trump should be charged with crimes for tout­ing this un­proven ther­apy.

In the end, the lu­natics do not mat­ter. Whether HCQ works or not, whether it is used or not, will be mostly de­ter­mined by doc­tors and will mostly be based on the ev­i­dence we have in front of us. If HCQ fails — and it’s not look­ing good — my only re­sponse will be mas­sive dis­ap­point­ment. Had HCQ worked, it would have been a gift from the heav­ens. It is a well-known, well-stud­ied drug that can be man­u­fac­tured cheaply in bulk. Had it worked, we could have saved thou­sands of lives, pre­vented hun­dreds of thou­sands of long-term in­juries and saved tril­lions of dol­lars. That it does­n’t ap­pear to work — cer­tainly not mirac­u­lously — is not en­tirely un­ex­pected but is also a tragedy.

...

Read the original on ordinary-times.com »

3 406 shares, 23 trendiness, 0 words and 0 minutes reading time

We’ve de­tected that JavaScript is dis­abled in your browser. Would you like to pro­ceed to legacy Twitter?

...

Read the original on twitter.com »

4 385 shares, 1 trendiness, 188 words and 2 minutes reading time

This has to stop now

This has to stop now

Collection of po­lice bru­tal­ity. This has gone on for too long and can not be al­lowed to carry on unchecked.

There are cur­rently 4 videos of po­lice bru­tal­ity on this site. That’s 4 too many.

WARNING: These videos are very dis­tress­ing but it is im­por­tant that they are seen.

Your browser does not sup­port the video tag

On May 25th George Floyd was mur­dered by a now ex po­lice of­fi­cer called Derek Chauvin. Four days af­ter this video was recorded Derek Chauvin was ar­rested and charged with third de­gree mur­der.

Your browser does not sup­port the video tag

A 14 year old boy is pinned to the ground and punched re­peat­edly by a po­lice of­fi­cer for not fol­low­ing his in­struc­tions. This whole in­ci­dent started be­cause the boy had to­bacco in his pos­ses­sion.

Your browser does not sup­port the video tag

Police of­fi­cer on horse­back tram­ples young woman who is hold­ing a sign in protest of re­cent po­lice bru­tal­ity

Your browser does not sup­port the video tag

Two po­lice SUVs drive into a crowd of pro­tes­tors that are throw­ing ob­jects at their cars.

...

Read the original on thishastostopnow.com »

5 374 shares, 36 trendiness, 3074 words and 28 minutes reading time

How To Become A Hacker

When I was thir­teen and start­ing high school I read ESRs blog post: How To Become A Hacker. I was ex­cited to learn about the com­mu­nity of pro­gram­mers work­ing to­gether to build things across the in­ter­net and it led me to try in­stalling Fedora Core 4 and even­tu­ally Ubuntu 6.06, through which I learned a lot about trou­bleshoot­ing on my own and try­ing to get things to ac­tu­ally work. This ended up be­ing crit­i­cal in de­vel­op­ing the skills that helped me get the job I have now. I read about Python and wrote triv­ial pro­grams, and de­cided I wanted to study com­puter sci­ence and un­der­stand how com­put­ers ac­tu­ally work. It was a pretty in­flu­en­tial post for me at a time when I was­n’t sure what I wanted to do.

Growing up in the sub­urbs of Buffalo, NY can be pretty iso­lat­ing - and while I was lucky that my dad pro­grammed an Apple II in col­lege for fun (so had some back­ground / hacker spirit), he did­n’t know a lot about more mod­ern soft­ware de­vel­op­ment. I liked com­put­ers and played with them, but I did­n’t know much about what was pos­si­ble or where to even look to un­der­stand more. When the search space is so large and there are a lot of un­known un­knowns it can be hard to even find good sources of in­for­ma­tion to learn from. Being able to se­lect good sources of in­for­ma­tion re­quires some ex­ist­ing knowl­edge and with­out the guid­ance of an ex­pe­ri­enced per­son it can be dif­fi­cult. I think things are prob­a­bly bet­ter now that the in­ter­net is more de­vel­oped, but in some ways there are even more op­tions to sift through now than there were then.

Sixteen years later, I thought it’d be fun to write my own ver­sion of How to Become a Hacker to sup­ple­ment ESRs orig­i­nal: some­thing I would have liked to have read my­self at thir­teen that fo­cuses on some other as­pects I would have found help­ful too. A lot of posts about pro­gram­ming and re­lated top­ics are ral­ly­ing cries, try­ing to per­suade you to adopt a spe­cific pro­gram­ming lan­guage, frame­work, op­er­at­ing sys­tem, or spe­cific way of do­ing things. This post does less of that and while I make some sug­ges­tions, it’s a more tem­pered view. Its goal is to fill the niche of what I think I would have liked to have read af­ter ESRs orig­i­nal post (so you should read that one first).

In the be­gin­ning I re­mem­ber read­ing ar­ti­cles and books, but not un­der­stand­ing a lot of the jar­gon - this is nor­mal. Things that at first seem in­com­pre­hen­si­ble slowly be­come un­der­stand­able as you’re ex­posed to more of it and dig into each thing you don’t un­der­stand. It’s good to just keep read­ing and pow­er­ing through, look­ing things up as you don’t un­der­stand them and ask­ing ques­tions when you can (ESR also has a good post about how to ask good ques­tions).

Everyone learns some­thing for the first time at some point and things will slowly build un­til you’re more com­fort­able with the ba­sics. I re­mem­ber not un­der­stand­ing lit­tle de­tails (like not know­ing to en­ter com­mands in the ter­mi­nal to run them, or that cd stood for change di­rec­to­ry’). You pick up on these things from ex­po­sure and the more you play with them, the more you’re ex­posed to and the more ex­pe­ri­ence you’ll ac­cu­mu­late. If you’re lucky enough to live in an area that has a com­mu­nity of peo­ple in­ter­ested in soft­ware you’ll be able to learn faster.

Learning some­thing new that’s com­pli­cated of­ten feels dif­fi­cult at first - if it feels easy it may be some­thing you al­ready know or you may not re­ally be test­ing your knowl­edge (it’s a lot eas­ier to read about how to solve a physics prob­lem and think this makes sense’ than it is to solve a prob­lem your­self with the tools you just read about). The strug­gle can be a good sign - it means you’re re­ally learn­ing and by fo­cus­ing on do­ing sim­i­lar types of things it’ll be­come eas­ier as you get bet­ter.

I think there’s even a bit of ad­van­tage that com­pletely new peo­ple can have with this: when I de­velop a lit­tle bit of ex­pe­ri­ence it be­comes easy and com­fort­able to just do the thing I al­ready know how to do rather than learn some­thing new. This can lead to get­ting stuck in a plateau where you just re­peat­edly do the thing you al­ready know how to do, like a per­son that can only play one song on gui­tar and al­ways just plays that one song. To a new per­son every­thing is hard so that’s not re­ally an op­tion.

Learning some­thing com­pli­cated for the first time should feel a lit­tle painful - you should get used to that feel­ing since it’s a good thing and means you’re grow­ing. Don’t let it scare you away be­cause you don’t think you’re smart enough. Since there’s so much to learn and a lot of dif­fer­ent av­enues to go down (just in com­put­ers there are things like com­puter graph­ics, se­cu­rity, ma­chine learn­ing, al­go­rithms, mo­bile, web, in­fra­struc­ture, etc.), hav­ing a mind­set where you al­low your­self to grow and get out of your com­fort zone to learn new things is crit­i­cal.

Learning to pro­gram by just read­ing a book about pro­gram­ming is like learn­ing to sky-dive by only read­ing a book about sky-div­ing. You prob­a­bly need to read the book (and in the be­gin­ning you’ll need it as a place to start) - but it won’t stick un­less you’re also writ­ing lit­tle pro­grams along­side it. A car­pen­ter gets bet­ter by build­ing things, a writer gets bet­ter by writ­ing things, and a pro­gram­mer gets bet­ter by pro­gram­ming things. This does­n’t mean you should­n’t read books or that good books aren’t ex­tremely valu­able (they are), but that it’s easy to fall into a trap where you read books about pro­gram­ming with­out ac­tu­ally do­ing any­thing your­self be­cause it’s eas­ier to read about it then it is to do it, and it can be dif­fi­cult to come up with some­thing to pro­gram in a vac­uum when you’re start­ing out.

I agree with ESR that Python is a good lan­guage to start with, and there’s a nice site on­line called learn Python the hard way that is fo­cused on be­gin­ners and uses ex­er­cises along the way to teach.

In the be­gin­ning the syn­tax is hard to un­der­stand and a lot of time is spent fo­cused on that when you’re learn­ing. Since every pro­gram­ming lan­guage has dif­fer­ent syn­tax, they seem very dif­fer­ent. Then you start to get a han­dle on syn­tax and it’s more about the gen­eral struc­ture of how prob­lems are be­ing solved and what data struc­tures are used. Eventually you get com­fort­able with com­mon data struc­tures and then the dis­cus­sion turns to higher lev­els of ab­strac­tion and more gen­eral de­signs or in­fra­struc­ture that make things eas­ier to man­age at scale or eas­ier to change in the fu­ture.

Learning about data struc­tures is the most im­por­tant next step af­ter get­ting a han­dle on a the syn­tax of a lan­guage and be­ing able to write sim­ple pro­grams. There are a few core data struc­tures that are pretty well de­tailed in the Cracking the Coding Interview book (along with ex­am­ple prob­lems). Confusingly, lan­guages tend to have dif­fer­ent names for their im­ple­men­ta­tion of the same data struc­tures (Python calls hash ta­bles dictionaries’ for ex­am­ple), but most lan­guages will have some im­ple­men­ta­tion of the core data struc­tures even if they have a unique name.

Troubleshooting or de­bug­ging is also a core pro­gram­ming skill - most of pro­gram­ming is ac­tu­ally de­bug­ging, so if you like de­bug­ging prob­lems this is a prob­a­bly a good sign. Don’t get dis­cour­aged when you have to search around a lot to try and un­der­stand some­thing or when the doc­u­men­ta­tion you’re read­ing does­n’t work, or when you’re hit­ting some un­ex­pected er­ror in your en­vi­ron­ment - this is nor­mal (it is­n’t a re­flec­tion of your abil­ity).

Most soft­ware does­n’t work and there are con­stantly un­doc­u­mented er­rors, bugs, and lit­tle de­tails that are hard to get right. For ex­am­ple, most open source pro­jects on Github will have some sort of build sys­tem which han­dles get­ting the soft­ware con­fig­ured to run. This will do things like pulling in de­pen­den­cies (other code it re­quires to work), along with ex­e­cut­ing any nec­es­sary com­mands to ac­tu­ally get the thing run­ning. If you were to down­load an in­ter­est­ing pro­ject on Github and try to run it you’d prob­a­bly hit un­ex­pected er­rors with this process that are of­ten not doc­u­mented.

Running these er­rors down and work­ing through prob­lems is nor­mal and some­thing ex­pe­ri­enced pro­gram­mers have to deal with too (if we’re lucky we’ve just seen that type of prob­lem be­fore). I’ve seen peo­ple hit er­rors like this and think they’re do­ing some­thing wrong, but it’s not you - it’s just how things are. There are a lot of com­pet­ing tools and even in­dus­tries around build sys­tems and try­ing to make them bet­ter (which can make things more con­fus­ing for be­gin­ners since there’s no real stan­dard­iza­tion, and the right way to con­fig­ure soft­ware to run varies de­pend­ing on pro­gram­ming en­vi­ron­ment and lan­guage).

I re­mem­ber be­ing frus­trated that it was hard to find in­for­ma­tion about how a com­puter ac­tu­ally worked. Everything I looked for just talked about com­put­ers in un­help­ful over­sim­pli­fied analo­gies (the disk be­ing the filing cab­i­net for files’), but noth­ing I could ac­tu­ally read to un­der­stand how things re­ally worked so if trans­ported into the past I would be able to ac­tu­ally ex­plain how to build one. This is more elec­tri­cal or com­puter en­gi­neer­ing than soft­ware specif­i­cally, but there’s still a lot of value in un­der­stand­ing the hard­ware as­pects (and it’s in­ter­est­ing!).

The best book I’d rec­om­mend for this is Code by Charles Petzold. It walks you through the ba­sics start­ing with elec­tri­cal bits all the way up through the his­tory of Boolean logic and cir­cuit de­sign - with ac­tual draw­ings of sim­ple cir­cuits and how you can store bits in mem­ory. This builds on it­self in the his­tor­i­cal con­text of the dis­cov­er­ies un­til you’ve built a small CPU. He also goes into some as­sem­bly and ba­sic com­puter graph­ics. The au­thor is a re­ally clear writer and teacher so the book is sur­pris­ingly read­able for the amount of de­tail.

For more his­tor­i­cal con­text I’d rec­om­mend The Dream Machine by M. Mitchell Waldrop and Hackers by Steven Levy. Narrative sto­ries make it eas­ier to learn and re­mem­ber things and I think the con­text of the dis­cov­er­ies helps in learn­ing how things ac­tu­ally work.

Tools are fun and it’s good to know your tools, but you can spend for­ever cus­tomiz­ing things and ar­gu­ing over lit­tle de­tails that don’t re­ally mat­ter that much. Customizing tools can be a fun way to learn when you’re start­ing out, but I’ve seen peo­ple spend enor­mous amounts of time on this when it gen­er­ates rel­a­tively lit­tle value com­pared to ac­tu­ally writ­ing pro­grams to solve prob­lems or just learn­ing more about the craft of pro­gram­ming in gen­eral (a good ex­am­ple book for this cur­rently is Designing Data Intensive Applications). I think fo­cus­ing on cus­tomiz­ing tools too much can hold you back.

Don’t worry too much about things like Vim or Emacs or which OS you’re us­ing - you can learn the core skills any­where (this is my biggest dis­agree­ment with ESRs post). That said, play­ing with Linux was a re­ally valu­able way for me to learn a lot about trou­bleshoot­ing - largely be­cause it did­n’t work very well and I had to spend hours on things like try­ing to get wire­less in­ter­net to func­tion, get­ting the lap­top to sus­pend suc­cess­fully, even get­ting the UI to show up at all (things are a lit­tle bet­ter now).

I started with try­ing to in­stall Gentoo (which never ac­tu­ally suc­ceeded). This trou­bleshoot­ing skill was re­ally in­stru­men­tal in al­low­ing me to get the job I have now, so if it’s fun for you to play with a dif­fer­ent OS I’d def­i­nitely en­cour­age it, I just don’t think it’s a re­quire­ment. It is prob­a­bly eas­ier to learn on ma­cOS or Linux though since most of the ex­ist­ing tool­ing tar­gets those en­vi­ron­ments and most pro­gram­mers are us­ing one of those two.

One spe­cific tool worth men­tion­ing is ver­sion con­trol, specif­i­cally git. It’s worth spend­ing some time get­ting com­fort­able with the ba­sics, but prob­a­bly is­n’t some­thing to fo­cus on un­til af­ter you’ve been pro­gram­ming for a bit.

It’s easy to pro­cras­ti­nate by researching’ op­tions for­ever be­fore start­ing a pro­ject - it can be fun to read about and ex­plore what’s avail­able and it’s good to do a lit­tle of this, but you can also get stuck do­ing this for­ever. When in doubt just pick the most pop­u­lar pro­ject that’s been around for a while and use that one. If it’s pop­u­lar it prob­a­bly has a de­cent com­mu­nity you can learn from and if it’s been around for a while it’ll prob­a­bly be more sta­ble (or at least it’ll be more sub­stan­tial and less likely to be aban­doned).

I re­ally en­joyed study­ing com­puter sci­ence and think it’s still prob­a­bly the best way to go for the most op­por­tu­nity (particularly if you live in a sub­ur­ban area like I did with­out a lot of soft­ware peo­ple around). If pos­si­ble I think it’s prob­a­bly good to try and get into the best CS pro­gram you can. There are also a lot of classes avail­able from good pro­grams on­line, but if your life was like mine was in high school it’ll be hard to ac­tu­ally take ad­van­tage of this at home.

If learn­ing is the naive so­lu­tion to get­ting good grades, then work­ing on cool pro­gram­ming pro­jects is the naive so­lu­tion to do­ing well in pro­gram­ming in­ter­views. To be in a good po­si­tion for pro­gram­ming in­ter­views at com­pet­i­tive com­pa­nies you need to get very com­fort­able with the prob­lems on leet­code and the Cracking the Coding Interview book. Programming in­ter­views re­quire a lot of prac­tice and are a dis­tinct skill to de­velop in and of them­selves.

You can go through an en­tire CS de­gree and still not know how to pro­gram - you can also get a CS de­gree and still not be able to do pro­gram­ming in­ter­views (both of these are prob­a­bly the de­fault case). Learning to pro­gram and learn­ing to do well in pro­gram­ming in­ter­views takes fo­cused time on your own. CS helps with some di­rec­tion and fo­cused pro­jects (Lambda School is prob­a­bly bet­ter at this on the pro­gram­ming side and maybe will end up bet­ter over­all), but you’ll have to own a lot of this learn­ing your­self.

There are lots of dif­fer­ent kinds of roles other than software en­gi­neer’. There’s SRE (Site Reliability Engineer) fo­cused more on in­fra­struc­ture the code is run­ning on and writ­ing soft­ware fo­cused for that. There’s in­ter­nal tools and de­vops - devs that fo­cus on all of the tool­ing re­quired to au­to­mate how the soft­ware is built and tested (read The Phoenix Project for a fun nar­ra­tive story il­lus­trat­ing this). There are roles that in­ter­act more with users like de­vel­oper sup­port en­gi­neer (helping users with APIs and run­ning down bugs or con­fig­u­ra­tion is­sues). There are peo­ple that fo­cus on game en­gines, peo­ple that fo­cus on VR or com­puter graph­ics. There are peo­ple that write new com­puter lan­guages and new com­pil­ers.

In each of these roles there is even more spe­cial­iza­tion de­pend­ing on what prod­ucts are be­ing used and new tools that are be­ing cre­ated to solve new prob­lems. Computer se­cu­rity is also an in­ter­est­ing area that I don’t know too much about that I think ESR is too dis­mis­sive of in his post, but it’s also a hard place to start be­cause it re­quires a lot of ex­ist­ing un­der­stand­ing of how things work to know how things can be bro­ken. I re­mem­ber pick­ing up this book early on, but I did­n’t know enough at the time to re­ally un­der­stand it: Hacking: The Art of Exploitation

Of course there’s also start­ing your own com­pany and build­ing your own role that way too as a founder.

A life­time is a long time and a spe­cial­iza­tion is­n’t for­ever, so dive into dif­fer­ent things - play with a lot of new things and have fun along the way.

ESR talks about join­ing a lo­cal Linux users group, but at least for me that was not re­al­is­tic when I read his post, both be­cause there aren’t re­ally that many of them and be­cause I could­n’t get any­where my­self that eas­ily since I was too young to drive. There are some on­line com­mu­ni­ties that I find in­ter­est­ing now that I think I would have found in­ter­est­ing then too.

Hacker News: Ycombinator’s news site (startup in­cu­ba­tor in the bay area). Comments can be hit or miss, but the good ones are re­ally good and a lot of peo­ple in the in­dus­try hang out there. Paul Graham and Jessica Livingston were the founders of Ycombinator and Paul writes a lot of in­ter­est­ing es­says.

Twitter: Largely de­pen­dent on who you’re fol­low­ing, but can be a great place if you want it to be. It can be hard to know who to fol­low start­ing out, but you can look at every­one I fol­low for a start.

Less Wrong: Not pro­gram­ming fo­cused, but there’s a de­cent amount of over­lap be­tween the ra­tio­nal­ity com­mu­nity and the pro­gram­ming com­mu­nity and I like a lot of the writ­ing there, it’s def­i­nitely some­thing I would have liked to have found around the same time I found How to Become a Hacker. Here’s an ex­am­ple post I like a lot: Disputing Definitions

I have more ar­ti­cles and books that I liked linked in my about page.

I re­mem­ber ESR re­spond­ing to some email I sent about get­ting an iPod to work in Fedora Core 4 around the time I read his post and I’m pretty sure Richard Stallman re­sponded to some email I sent around that time too. I thought that was nice. In the spirit of con­tin­u­ing that, feel free to reach out to me with spe­cific ques­tions if you like.

...

Read the original on zalberico.com »

6 330 shares, 20 trendiness, 736 words and 6 minutes reading time

ryansolid/solid

Solid is a de­clar­a­tive Javascript li­brary for cre­at­ing user in­ter­faces. It does not use a Virtual DOM. Instead it opts to com­pile its tem­plates down to real DOM nodes and wrap up­dates in fine grained re­ac­tions. This way when your state up­dates only the code that de­pends on it runs.

* Real DOM with fine-grained up­dates (No Virtual DOM! No Dirty Checking Digest Loop!).

* Declarative data

Function Components with no need for life­cy­cle meth­ods or spe­cial­ized con­fig­u­ra­tion ob­jects.

* Function Components with no need for life­cy­cle meth­ods or spe­cial­ized con­fig­u­ra­tion ob­jects.

* Fast! Almost in­dis­tin­guish­able per­for­mance vs op­ti­mized painfully im­per­a­tive vanilla DOM code. See Solid on JS Framework Benchmark.

* Small! Completely tree-shake­able Solid’s com­piler will only in­clude parts of the li­brary you use.

im­port { ren­der } from solid-js/dom”;

const HelloMessage = props => ;

ren­der(

A Simple Component is just a func­tion that ac­cepts prop­er­ties. Solid uses a ren­der func­tion to cre­ate the re­ac­tive mount point of your ap­pli­ca­tion.

The JSX is then com­piled down to ef­fi­cient real DOM ex­pres­sions:

im­port { ren­der, tem­plate, in­sert, cre­ate­Com­po­nent } from solid-js/dom”;

const _tmpl$ = tem­plate(``);

const HelloMessage = props => {

const _el$ = _tmpl$.cloneNode(true);

in­sert(_el$, () => props.name, null);

re­turn _el$;

ren­der(

() => cre­ate­Com­po­nent(Hel­loMes­sage, { name: Taylor” }),

doc­u­ment.getEle­ment­ById(“hello-ex­am­ple”)

That _el$ is a real div el­e­ment and props.name, Taylor in this case, is ap­pended to it’s child nodes. Notice that props.name is wrapped in a func­tion. That is be­cause that is the only part of this com­po­nent that will ever ex­e­cute again. Even if a name is up­dated from the out­side only that one ex­pres­sion will be re-eval­u­ated. The com­piler op­ti­mizes ini­tial ren­der and the run­time op­ti­mizes up­dates. It’s the best of both worlds.

You can get started with a sim­ple app with the CLI with by run­ning:

> npm init solid app my-app

npm init solid is avail­able with npm 6+.

Or you can in­stall the de­pen­den­cies in your own pro­ject. To use Solid with JSX (recommended) run:

> npm in­stall solid-js ba­bel-pre­set-solid

Solid’s ren­der­ing is done by the DOM Expressions li­brary. This li­brary pro­vides a generic op­ti­mized run­time for fine grained li­braries like Solid with the op­por­tu­nity to use a num­ber of dif­fer­ent Rendering APIs. The best op­tion is to use JSX pre-com­pi­la­tion with Babel Plugin JSX DOM Expressions to give the small­est code size, clean­est syn­tax, and most per­for­mant code. The com­piler con­verts JSX to na­tive DOM el­e­ment in­struc­tions and wraps dy­namic ex­pres­sions in re­ac­tive com­pu­ta­tions.

The eas­i­est way to get setup is add ba­bel-pre­set-solid to your .babelrc, or ba­bel con­fig for web­pack, or rollup:

presets”: [“solid”]

Remember even though the syn­tax is al­most iden­ti­cal, there are sig­nif­i­cant dif­fer­ences be­tween how Solid’s JSX works and a li­brary like React. Refer to JSX Rendering for more in­for­ma­tion.

Alternatively in non-com­piled en­vi­ron­ments you can use Tagged Template Literals Lit DOM Expressions or even HyperScript with Hyper DOM Expressions.

For con­ve­nience Solid ex­ports in­ter­faces to run­times for these as:

im­port h from solid-js/h”;

im­port html from solid-js/html”;

Remember you still need to in­stall the li­brary sep­a­rately for these to work.

Solid’s data man­age­ment is built off a set of flex­i­ble re­ac­tive prim­i­tives. Similar to React Hooks ex­cept in­stead of whitelist­ing change for an own­ing Component they in­de­pen­den­tally are so­ley re­spon­si­ble for all the up­dates.

Solid’s State prim­i­tive is ar­guably its most pow­er­ful and dis­tinc­tive one. Through the use of prox­ies and ex­plicit set­ters it gives the con­trol of an im­mutable in­ter­face and the per­for­mance of a mu­ta­ble one. The set­ters sup­port a va­ri­ety of forms, but to get started set and up­date state with an ob­ject.

im­port { cre­at­eS­tate, on­Cleanup } from solid-js”;

const CountingComponent = () => {

const [state, set­State] = cre­at­eS­tate({ counter: 0 });

const in­ter­val = set­Inter­val(

() => set­State({ counter: state.counter + 1 }),

1000

on­Cleanup(() => clear­In­ter­val(in­ter­val));

re­turn ;

Where the magic hap­pens is with com­pu­ta­tions(ef­fects and memos) which au­to­mat­i­cally track de­pen­den­cies.

const [state, set­State] = cre­at­eS­tate({ user: { first­Name: Jake”, last­Name: Smith” }})

cre­ate­Ef­fect(() =>

set­State({

dis­play­Name: `${state.user.firstName} ${state.user.lastName}`

con­sole.log(state.dis­play­Name); // Jake Smith

set­State(‘user’, {firstName: Jacob” });

con­sole.log(state.dis­play­Name); // Jacob Smith

Whenever any de­pen­dency changes the State value will up­date im­me­di­ately. Each set­State state­ment will no­tify sub­scribers syn­chro­nously with all changes ap­plied. This means you can de­pend on the value be­ing set on the next line.

Solid State also ex­poses a rec­on­cile method used with set­State that does deep diff­ing to al­low for au­to­matic ef­fi­cient in­teropt with im­mutable store tech­nolo­gies like Redux, Apollo(GraphQL), or RxJS.

const un­sub­scribe = store.sub­scribe(({ to­dos }) => (

set­State(‘to­dos’, rec­on­cile(to­dos)));

on­Cleanup(() => un­sub­scribe());

Read these two in­tro­duc­tory ar­ti­cles by @aftzl:

And check out the Documentation, Examples, and Articles be­low to get more fa­mil­iar with Solid.

Solid is mostly fea­ture com­plete for its v1.0.0 re­lease. The next re­leases will be mostly bug fixes API tweaks on the road to sta­bil­ity.

...

Read the original on github.com »

7 313 shares, 28 trendiness, 649 words and 8 minutes reading time

Twitter, Reddit File in Support of Lawsuit Challenging U.S. Government’s Social Media Registration Requirement for Visa Applicants

WASHINGTON — Twitter, Reddit, and Internet Association filed an am­i­cus brief late yes­ter­day in sup­port of a law­suit filed last year by the Knight First Amendment Institute at Columbia University, the Brennan Center for Justice, and Simpson Thacher & Bartlett LLP on be­half of plain­tiffs Doc Society and International Documentary Association, chal­leng­ing rules that re­quire nearly all visa ap­pli­cants to reg­is­ter their so­cial me­dia han­dles with the U. S. gov­ern­ment and con­nected poli­cies per­mit­ting the re­ten­tion and dis­sem­i­na­tion of that in­for­ma­tion.

The brief ar­gues that the so­cial me­dia reg­is­tra­tion re­quire­ment and con­nected poli­cies unquestionably chill a vast quan­tity of speech” and harm the First Amendment rights of their users, par­tic­u­larly those who use pseu­do­ny­mous han­dles to dis­cuss po­lit­i­cal, con­tro­ver­sial, or oth­er­wise sen­si­tive is­sues on the plat­forms.

[M]any speak­ers use Internet fo­rums like Reddit and Twitter to make state­ments that might pro­voke crit­i­cism or re­tal­i­a­tion from their com­mu­ni­ties. Some em­ploy anony­mous Twitter ac­counts to con­vey dis­fa­vored po­lit­i­cal views or other in­for­ma­tion that could ex­pose them to so­cial stigma or loss of em­ploy­ment,” the brief notes. On Twitter alone, at least a quar­ter of ac­counts do not dis­close a per­son’s full name, and many other ac­counts use pseu­do­nyms. Twitter and Reddit poli­cies clearly pro­tect speak­ers’ anonymity.

Concerns that some users may suf­fer re­tal­i­a­tion be­cause of the re­quire­ment are par­tic­u­larly acute now, as gov­ern­ments around the world have cracked down on on­line speak­ers who ques­tion au­thor­i­ties’ han­dling of the COVID-19 health cri­sis,” the brief states.

In a state­ment, Jessica Herrera-Flanigan, Twitter Vice President, Public Policy and Philanthropy, for the Americas, said: Defending and re­spect­ing the voices of the peo­ple who use our ser­vice is one of our core val­ues at Twitter. This value is a two-part com­mit­ment to free­dom of ex­pres­sion and pri­vacy. We be­lieve the gov­ern­men­t’s pol­icy re­quir­ing visa ap­pli­cants to dis­close their so­cial me­dia han­dles in­fringes both of those rights and we are proud to lend our sup­port on these crit­i­cal le­gal is­sues.”

Reddit’s VP & General Counsel Ben Lee said: Reddit, since its in­cep­tion, has held user pri­vacy as a foun­da­tional value. With this brief we in­tend to de­fend not just our users but all users who are de­ter­mined to main­tain their pri­vacy on the in­ter­net from in­tru­sive over­reach by the gov­ern­ment.”

Read the so­cial me­dia com­pa­nies’ brief here.

The Electronic Frontier Foundation and faith-based or­ga­ni­za­tions also filed am­i­cus briefs yes­ter­day sup­port­ing the law­suit, ad­dress­ing, re­spec­tively, how much in­for­ma­tion the gov­ern­ment can glean from so­cial me­dia and the im­pact of the reg­is­tra­tion re­quire­ment on re­li­gious mi­nori­ties around the world. Read the briefs here and here.

Doc Society and the International Documentary Association, U. S.-based doc­u­men­tary film or­ga­ni­za­tions, sued the State Department and the Department of Homeland Security last December. The State Department’s so­cial me­dia reg­is­tra­tion re­quire­ment, which took ef­fect a year ago, ap­plies to an es­ti­mated 14.7 mil­lion visa ap­pli­cants each year, com­pelling them to dis­close all so­cial me­dia han­dles that they’ve used on any of 20 plat­forms, in­clud­ing Twitter and Reddit, in the last five years. The State Department and the Department of Homeland Security can re­tain the col­lected in­for­ma­tion in­def­i­nitely, share it broadly among fed­eral agen­cies, and dis­close it, in some cir­cum­stances, to for­eign gov­ern­ments.

The suit ar­gues that the so­cial me­dia reg­is­tra­tion re­quire­ment forces plain­tiffs’ for­eign mem­bers and part­ners to choose be­tween en­gag­ing in con­sti­tu­tion­ally pro­tected speech and as­so­ci­a­tion and re­main­ing in or trav­el­ing to the United States, frus­trat­ing plain­tiffs’ abil­ity to fos­ter the cross-bor­der cul­tural ex­change at the core of their or­ga­ni­za­tion mis­sions and de­priv­ing their American mem­bers and part­ners of op­por­tu­ni­ties to en­gage with their for­eign coun­ter­parts. In April, the gov­ern­ment filed a mo­tion to dis­miss the law­suit. On Wednesday, the Knight Institute, the Brennan Center, and Simpson Thacher & Bartlett LLP filed a re­sponse. Read the brief here.

For more in­for­ma­tion, con­tact: Lorraine Kenny, Communications Director, Knight First Amendment Institute, lor­raine.kenny@knight­co­lum­bia.org.

...

Read the original on knightcolumbia.org »

8 286 shares, 52 trendiness, 172 words and 2 minutes reading time

Behind tech layoffs lay systemic cash flow negative companies

Since the pan­demic started, there’s been ap­prox­i­mately 61,260 tech lay­offs [1]. Close to 30% of the lay­offs came from pub­lic tech com­pa­nies, 85% of those com­pa­nies are un­prof­itable.

No deep in­sights here, just the sim­ple fact that the once growth hy­per fo­cused star­tups grew to be pub­licly traded com­pa­nies with­out ever sort­ing their unit eco­nom­ics, and now their medioc­racy has real con­se­quences on real peo­ple.

This in­cludes house­hold names such as Uber, Lyft, Casper, and Eventbrite which we’ve all used, and begs the ques­tion: why did we al­low so many un­prof­itable com­pa­nies IPO? When did los­ing money be­come ac­cept­able and the new nor­mal for pub­licly traded com­pa­nies?

Chamath Palihapitiya’s VC Ponzi Scheme” mono­logue comes to mind. It also makes me won­der why we made such a big deal about WeWork’s IPO fi­asco yet we don’t talk about the de­plorable shape of some of the ma­ture tech com­pa­nies and their con­se­quences on our com­mu­nity.

Here’s to a new gen­er­a­tion of en­tre­pre­neurs who pri­or­i­tize build­ing sus­tain­able busi­nesses.

...

Read the original on medium.com »

9 265 shares, 31 trendiness, 732 words and 8 minutes reading time

Windows 10: Microsoft now credits maker of package manager it 'copied' – but offers no apology

Microsoft has now ad­mit­ted it failed to give due credit to Canadian de­vel­oper Keivan Beigi for his role in the new WinGet Windows 10 pack­age man­ager.

Last week, Beigi, who built the open-source AppGet pack­age man­ager for Windows, ac­cused Microsoft of copy­ing his work for WinGet with­out ac­knowl­edg­ing his pro­duc­t’s in­flu­ence.

Beigi says Microsoft copied large parts of AppGet to de­liver WinGet, the Windows pack­age man­ager an­nounced at Microsoft Build 2020. Last week, he de­tailed his dis­cus­sions with a se­nior man­ager at Microsoft named Andrew who ap­proached him in July 2019 with an in­vi­ta­tion to meet and dis­cuss how we can make your life eas­ier build­ing AppGet”.

Andrew Clinick, a group pro­gram man­ager on the team re­spon­si­ble for how apps in­stall on Windows, has now ad­mit­ted Microsoft failed to give Beigi proper credit for AppGet’s in­flu­ence on WinGet.

Our goal is to pro­vide a great prod­uct to our cus­tomers and com­mu­nity where every­one can con­tribute and re­ceive recog­ni­tion,” wrote Clinick.

The last thing that we want to do is alien­ate any­one in the process. That is why we are build­ing it on GitHub in the open where every­one can con­tribute.

Over the past cou­ple of days we’ve lis­tened and learned from our com­mu­nity and clearly we did not live up to this goal. More specif­i­cally, we failed to live up to this with Keivan and AppGet. This was the last thing that we wanted.”

Beigi said he did­n’t mind that Microsoft copied his open-source Windows pack­age man­ager but ar­gued that Microsoft should have at least prop­erly at­trib­uted WinGet’s de­sign to AppGet, rather than de­scrib­ing it in Beigi’s words as only another pack­age man­ager that just hap­pened to ex­ist”.

AppGet got one pass­ing men­tion in Mi­crosoft’s WinGet an­nounce­ment af­ter Microsoft de­scribed ri­val Windows pack­age man­ager Chocolatey as hav­ing a vibrant com­mu­nity with a mas­sive col­lec­tion of ap­pli­ca­tions, and a rich his­tory sup­port­ing both open-source and en­ter­prise cus­tomers”.

There are many oth­ers like AppGet, Npackd and the PowerShell based OneGet pack­age man­ager-man­ager,” Microsoft added.

Despite the be­lated credit, Microsoft’s han­dling of AppGet and WinGet has been clumsy, in­sen­si­tive and spoiled by slow and dread­ful com­mu­ni­ca­tion speed”, per Beigi’s ac­count.

Some would ar­gue that Microsoft should have given Beigi proper credit with­out the de­vel­oper rais­ing the is­sue in the first place — es­pe­cially given Microsoft’s efforts to shed its im­age as an evil com­pany that waged war on open source and which once fol­lowed the mantra embrace, ex­tend, and ex­tin­guish”.

Sometimes Microsoft buys de­vel­op­ers’ side pro­jects, like the VisualZip util­ity, which was ac­quired from the same Microsoft en­gi­neer who also cre­ated Windows Task Manager in his den back in the 1990s.

The pass­ing men­tion of AppGet was an­other sore point for Beigi, who in 2018 wrote how prob­lems with Chocolatey in­spired him to re­vive the AppGet pro­ject that Microsoft would even­tu­ally be in­ter­ested in. AppGet cur­rently has over 800 pack­ages that it can in­stall on Windows.

The Canadian de­vel­oper says Andrew emailed him a week af­ter their first meet­ing and told Beigi he had an op­por­tu­nity to help de­fine the fu­ture of Windows and app dis­tri­b­u­tion through­out Azure/Microsoft 365”, po­ten­tially as an em­ployee where he would join Microsoft and it would get AppGet.

He went for an in­ter­view at Microsoft’s Redmond head­quar­ters in December, which ap­par­ently went well”,  but Andrew did­n’t in­form him he would not get the job at Microsoft un­til six months later —  on the day be­fore the WinGet pre­view would be un­veiled at Build 2020.

We give AppGet a call out in our blog post too since we be­lieve there will be space for dif­fer­ent pack­age man­agers on win­dows,” Andrew told Beigi.

You will see our pack­age man­ager is based on GitHub too but ob­vi­ously with our own im­ple­men­ta­tion etc. Our pack­age man­ager will be open source too so ob­vi­ously we would wel­come any con­tri­bu­tion from you.”

Fortunately for Beigi, he was­n’t sure he wanted to work for such a big com­pany and he was­n’t ex­cited about the prospect of mov­ing from Canada to the US. However, Beigi has de­cided the prod­uct and pro­ject will now be re­tired on August 1 be­cause of the ex­is­tence of Microsoft’s WinGet.

Clinick’s post, which is­n’t an apol­ogy, con­firms Beigi’s ac­count and de­tails how AppGet helped Microsoft achieve a better prod­uct di­rec­tion” for WinGet:

* No scripts dur­ing in­stall — some­thing that we com­pletely agreed with and don’t al­low with MSIX.

* Rich man­i­fest de­f­i­n­i­tion within GitHub — the power of be­ing open com­bined with rich de­clar­a­tive meta data about the app is so im­por­tant to meet goal #1.

* Seamless up­dates for ap­pli­ca­tions in the repos­i­tory.

...

Read the original on www.zdnet.com »

10 249 shares, 37 trendiness, 1002 words and 11 minutes reading time

How to Make this Moment the Turning Point for Real Change

As mil­lions of peo­ple across the coun­try take to the streets and raise their voices in re­sponse to the killing of George Floyd and the on­go­ing prob­lem of un­equal jus­tice, many peo­ple have reached out ask­ing how we can sus­tain mo­men­tum to bring about real change.

Ultimately, it’s go­ing to be up to a new gen­er­a­tion of ac­tivists to shape strate­gies that best fit the times. But I be­lieve there are some ba­sic lessons to draw from past ef­forts that are worth re­mem­ber­ing.

First, the waves of protests across the coun­try rep­re­sent a gen­uine and le­git­i­mate frus­tra­tion over a decades-long fail­ure to re­form po­lice prac­tices and the broader crim­i­nal jus­tice sys­tem in the United States. The over­whelm­ing ma­jor­ity of par­tic­i­pants have been peace­ful, coura­geous, re­spon­si­ble, and in­spir­ing. They de­serve our re­spect and sup­port, not con­dem­na­tion — some­thing that po­lice in cities like Camden and Flint have com­mend­ably un­der­stood.

On the other hand, the small mi­nor­ity of folks who’ve re­sorted to vi­o­lence in var­i­ous forms, whether out of gen­uine anger or mere op­por­tunism, are putting in­no­cent peo­ple at risk, com­pound­ing the de­struc­tion of neigh­bor­hoods that are of­ten al­ready short on ser­vices and in­vest­ment and de­tract­ing from the larger cause. I saw an el­derly black woman be­ing in­ter­viewed to­day in tears be­cause the only gro­cery store in her neigh­bor­hood had been trashed. If his­tory is any guide, that store may take years to come back. So let’s not ex­cuse vi­o­lence, or ra­tio­nal­ize it, or par­tic­i­pate in it. If we want our crim­i­nal jus­tice sys­tem, and American so­ci­ety at large, to op­er­ate on a higher eth­i­cal code, then we have to model that code our­selves.

Second, I’ve heard some sug­gest that the re­cur­rent prob­lem of racial bias in our crim­i­nal jus­tice sys­tem proves that only protests and di­rect ac­tion can bring about change, and that vot­ing and par­tic­i­pa­tion in elec­toral pol­i­tics is a waste of time. I could­n’t dis­agree more. The point of protest is to raise pub­lic aware­ness, to put a spot­light on in­jus­tice, and to make the pow­ers that be un­com­fort­able; in fact, through­out American his­tory, it’s of­ten only been in re­sponse to protests and civil dis­obe­di­ence that the po­lit­i­cal sys­tem has even paid at­ten­tion to mar­gin­al­ized com­mu­ni­ties. But even­tu­ally, as­pi­ra­tions have to be trans­lated into spe­cific laws and in­sti­tu­tional prac­tices — and in a democ­racy, that only hap­pens when we elect gov­ern­ment of­fi­cials who are re­spon­sive to our de­mands.

Moreover, it’s im­por­tant for us to un­der­stand which lev­els of gov­ern­ment have the biggest im­pact on our crim­i­nal jus­tice sys­tem and po­lice prac­tices. When we think about pol­i­tics, a lot of us fo­cus only on the pres­i­dency and the fed­eral gov­ern­ment. And yes, we should be fight­ing to make sure that we have a pres­i­dent, a Congress, a U. S. Justice Department, and a fed­eral ju­di­ciary that ac­tu­ally rec­og­nize the on­go­ing, cor­ro­sive role that racism plays in our so­ci­ety and want to do some­thing about it. But the elected of­fi­cials who mat­ter most in re­form­ing po­lice de­part­ments and the crim­i­nal jus­tice sys­tem work at the state and lo­cal lev­els.

It’s may­ors and county ex­ec­u­tives that ap­point most po­lice chiefs and ne­go­ti­ate col­lec­tive bar­gain­ing agree­ments with po­lice unions. It’s dis­trict at­tor­neys and state’s at­tor­neys that de­cide whether or not to in­ves­ti­gate and ul­ti­mately charge those in­volved in po­lice mis­con­duct. Those are all elected po­si­tions. In some places, po­lice re­view boards with the power to mon­i­tor po­lice con­duct are elected as well. Unfortunately, voter turnout in these lo­cal races is usu­ally piti­fully low, es­pe­cially among young peo­ple — which makes no sense given the di­rect im­pact these of­fices have on so­cial jus­tice is­sues, not to men­tion the fact that who wins and who loses those seats is of­ten de­ter­mined by just a few thou­sand, or even a few hun­dred, votes.

So the bot­tom line is this: if we want to bring about real change, then the choice is­n’t be­tween protest and pol­i­tics. We have to do both. We have to mo­bi­lize to raise aware­ness, and we have to or­ga­nize and cast our bal­lots to make sure that we elect can­di­dates who will act on re­form.

Finally, the more spe­cific we can make de­mands for crim­i­nal jus­tice and po­lice re­form, the harder it will be for elected of­fi­cials to just of­fer lip ser­vice to the cause and then fall back into busi­ness as usual once protests have gone away. The con­tent of that re­form agenda will be dif­fer­ent for var­i­ous com­mu­ni­ties. A big city may need one set of re­forms; a rural com­mu­nity may need an­other. Some agen­cies will re­quire whole­sale re­ha­bil­i­ta­tion; oth­ers should make mi­nor im­prove­ments. Every law en­force­ment agency should have clear poli­cies, in­clud­ing an in­de­pen­dent body that con­ducts in­ves­ti­ga­tions of al­leged mis­con­duct. Tailoring re­forms for each com­mu­nity will re­quire lo­cal ac­tivists and or­ga­ni­za­tions to do their re­search and ed­u­cate fel­low cit­i­zens in their com­mu­nity on what strate­gies work best.

But as a start­ing point, here’s a re­port and toolkit de­vel­oped by the Leadership Conference on Civil and Human Rights and based on the work of the Task Force on 21st Century Policing that I formed when I was in the White House. And if you’re in­ter­ested in tak­ing con­crete ac­tion, we’ve also cre­ated a ded­i­cated site at the Obama Foundation to ag­gre­gate and di­rect you to use­ful re­sources and or­ga­ni­za­tions who’ve been fight­ing the good fight at the lo­cal and na­tional lev­els for years.

I rec­og­nize that these past few months have been hard and dispir­it­ing — that the fear, sor­row, un­cer­tainty, and hard­ship of a pan­demic have been com­pounded by tragic re­minders that prej­u­dice and in­equal­ity still shape so much of American life. But watch­ing the height­ened ac­tivism of young peo­ple in re­cent weeks, of every race and every sta­tion, makes me hope­ful. If, go­ing for­ward, we can chan­nel our jus­ti­fi­able anger into peace­ful, sus­tained, and ef­fec­tive ac­tion, then this mo­ment can be a real turn­ing point in our na­tion’s long jour­ney to live up to our high­est ideals.

...

Read the original on medium.com »

To add this web app to your iOS home screen tap the share button and select "Add to the Home Screen".

10HN is also available as an iOS App

If you visit 10HN only rarely, check out the the best articles from the past week.

If you like 10HN please leave feedback and share

Visit pancik.com for more.