Ask Slashdot: Have You Migrated To Node.js?

A developer maintaining his company’s “half-assed LAMP / WordPress stack pipeline for web and web application development” is considering something more scalable that could eventually be migrated into the cloud. Qbertino asks Slashdot: Have you moved from LAMP (PHP) to Node.js for custom product development and if so, what’s your advice? What downsides of JS on the server and in Node.js have a real-world effect? Is callback hell really a thing? And what is the state of free and open-source Node products…? Is there any trend inside the Node.js camp on building a platform and CMS product that competes with the PHP camp whilst maintaining a sane architecture, or is it all just a ball of hype with a huge mess of its own growing in the background, Rails-style? Condensing Qbertino’s original submission: he wants to be able to quickly deliver “pretty, working, and half-way reliable products that make us money” — and to build a durable pipeline. So leave your educated opinions in the comments. What did you experience moving to Node.js?


Share on Google+

Read more of this story at Slashdot.


Original URL: http://rss.slashdot.org/~r/Slashdot/slashdot/~3/6ZRd1H6cRG0/ask-slashdot-have-you-migrated-to-nodejs

Original article

Show HN: IPsec VPN Server in Docker Container

README.md

Build Status
Docker Stars
Docker Pulls

Set up your own IPsec VPN server on Docker, with support for both IPsec/L2TP and IPsec/XAuth ("Cisco IPsec").

Based on Debian Jessie with Libreswan (IPsec VPN software) and xl2tpd (L2TP daemon).

Available on Docker Hub.

Download

docker pull hwdsl2/ipsec-vpn-server

How to use this image

Environment variables

This Docker image uses the following three environment variables, that can be declared in an env file:

VPN_IPSEC_PSK=
VPN_USER=
VPN_PASSWORD=

This will create a single user account for VPN login. The IPsec PSK (pre-shared key) is specified by the VPN_IPSEC_PSK environment variable. The VPN username is defined in VPN_USER, and VPN password is specified by VPN_PASSWORD.

Note: In your env file, DO NOT put single or double quotes around values, or add space around =.

All the variables to this image are optional, which means you don’t have to type in any environment variables, and you can have an IPsec VPN server out of the box! Read the sections below for details.

Start the IPsec VPN server

First, run sudo modprobe af_key on the host to load the IPsec NETKEY kernel module.

Start your Docker container with the following command (replace ./vpn.env with your own env file) :

docker run 
    --name docker-ipsec-vpn-server 
    --env-file ./vpn.env 
    -p 500:500/udp 
    -p 4500:4500/udp 
    -v /lib/modules:/lib/modules:ro 
    -d --privileged 
    hwdsl2/ipsec-vpn-server

Retrieve VPN login details

If you did not set environment variables via an env file, VPN_USER will default to vpnuser and both VPN_IPSEC_PSK and VPN_PASSWORD will be randomly generated. To retrieve them, show the logs of the running container:

docker logs docker-ipsec-vpn-server

Search for these lines in the output:

Connect to your new VPN with these details:

Server IP: 
IPsec PSK: 
Username: 
Password: 

Check server status

To check the status of your IPsec VPN server, you can pass ipsec status to your container like this :

docker exec -it docker-ipsec-vpn-server ipsec status

Next Steps

Get your computer or device to use the VPN. Please refer to:

Configure IPsec/L2TP VPN Clients
Configure IPsec/XAuth VPN Clients

Enjoy your very own VPN!


Original URL: http://feedproxy.google.com/~r/feedsapi/BwPx/~3/F3dPosmI7IU/docker-ipsec-vpn-server

Original article

Hundreds of Drupal Sites Targeted With Fake Ransomware

An anonymous reader writes: A group of hackers have created a ransomware strain that specifically targets Drupal sites. Infection occurs thanks to an automated bot which scans Drupal sites and then uses an SQL injection (CVE-2014-3704) to change the site admin’s password. The bot also dumps any emails it finds on the server, and then overwrites the site’s main page to show a typical ransomware note.
Over 400 sites have been infected until now, but nobody has paid the ransom yet. This case yet again proves why “Web ransomware” will never work because even the worst Web hosting service provides automatic backups from where they could retrieve a clean version of their site.


Share on Google+

Read more of this story at Slashdot.


Original URL: http://rss.slashdot.org/~r/Slashdot/slashdot/~3/-D9SAviTuiY/hundreds-of-drupal-sites-targeted-with-fake-ransomware

Original article

Show HN: Family.scss – a set of 20 smart SASS mixins

Family.scss is a set of smart Sass mixins which will help you to manage the style of :nth-child‘ified elements, in an easy and classy way.

Download ( 2kb )
Github

The goal of this project is to unleash the power of the nth-child property, in an easy way

The better way to understand each and every mixin, is to read it, literally.

for example : first(3) => first three

Each and every mixin is really easy to use, proceed like this :

ul li {
  background: blue;

  @include first(3) {
    background: red
  }
}
ul li {
  background: blue;
}

ul li:nth-child(1) {
  background: red
}

ul li:nth-child(2) {
  background: red
}

ul li:nth-child(3) {
  background: red
}

With Arguments

after-first

 @include after-first(5)

from-end

 @include from-end(3)

between

@include between(3, 6)

pair-between

@include pair-between(3, 12)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

impair-between

@include impair-between(3, 13)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

all-but

 @include all-but(3)

each

 @include each(3)


 @include every(3)

from-first-last

 @include from-first-last(2)

middle

 @include middle(11)

all-but-first-last

 @include all-but-first-last(2)

I/O Mixins

first-of

 @include first-of(10)

last-of

 @include last-of(10)

Without arguments

pair

 @include pair()


 @include even()

impair

 @include impair()


 @include odd()

first-last

 @include first-last()

not-unique

 @include not-unique()

Using functions

child-index()

Apply an ordered z-index over each child.


 @include child-index(10); 





 @include child-index(5, backward, 10);

Playground

@mixin active {
background: red;
color: #fff;
}
/*=====================
first(3)
=====================*/
ul li {
@include first(3){
@include active;
}
}

/*=====================
last(3)
=====================*/
ul li {
@include last(3){
@include active;
}
}

/*=====================
after-first(5)
=====================*/
ul li {
@include after-first(5){
@include active;
}
}

/*=====================
from-end(3)
=====================*/
ul li {
@include from-end(3){
@include active;
}
}

/*=====================
between(3, 6)
=====================*/
ul li {
@include between(3, 6){
@include active;
}
}

/*=====================
pair-between(3, 12)
=====================*/
ul li {
@include pair-between(3, 12){
@include active;
}
}

/*=====================
impair-between(3, 13)
=====================*/
ul li {
@include impair-between(3, 13){
@include active;
}
}

/*=====================
all-but(3)
=====================*/
ul li {
@include all-but(3){
@include active;
}
}

/*=====================
each(3)
=====================*/
ul li {
@include each(3){
@include active;
}
}

/*=====================
every(3)
=====================*/
ul li {
@include every(3){
@include active;
}
}

/*=====================
from-first-last(2)
=====================*/
ul li {
@include from-first-last(2){
@include active;
}
}

/*=====================
middle(11)
=====================*/
ul li {
@include middle(11){
@include active;
}
}

/*=====================
all-but-first-last(2)
=====================*/
ul li {
@include all-but-first-last(2){
@include active;
}
}

/*=====================
first-of(10)
=====================*/
ul li {
@include first-of(10){
@include active;
}
}

/*=====================
last-of(10)
=====================*/
ul li {
@include last-of(10){
@include active;
}
}

/*=====================
pair()
=====================*/
ul li {
@include pair(){
@include active;
}
}

/*=====================
even()
=====================*/
ul li {
@include even(){
@include active;
}
}

/*=====================
impair()
=====================*/
ul li {
@include impair(){
@include active;
}
}

/*=====================
odd()
=====================*/
ul li {
@include odd(){
@include active;
}
}

/*=====================
first-last()
=====================*/
ul li {
@include first-last(){
@include active;
}
}

/*=====================
unique()
=====================*/
ul li {
@include unique(){
@include active;
}
}

/*=====================
not-unique()
=====================*/
ul li {
@include not-unique(){
@include active;
}
}

/*=====================
child-index(10)
=====================*/
ul li {
@include child-index(10){
@include active;
}
}

/*=====================
child-index(5, backward, 10)
=====================*/
ul li {
@include child-index(5, backward, 10){
@include active;
}
}


About :

This project is a small library of Sass mixins, created by @LukyVj on his spare time.

Thanks to :

My colleagues from Algolia and my bros from bullgit for their feedback.

This page was made possible because of some awesome projects & scripts :


Original URL: http://feedproxy.google.com/~r/feedsapi/BwPx/~3/TOCE2wBJvm0/

Original article

GNU make 4.2 released




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



From: Paul Smith
Subject: GNU Make 4.2 released!
Date: Sun, 22 May 2016 09:58:52 -0400

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

    --------------------------------------------------------------------
    GNU make is a tool which controls the generation of executables and
    other non-source files of a program from the program's source files.

    You can learn more at: http://www.gnu.org/software/make/
    --------------------------------------------------------------------

The next stable release of GNU make, 4.2, is available now for download:

    85ad14d08766201ffe71efa866f4fb91  make-release/make-4.2.tar.bz2
    1141ca815c806a5bfedbbaa1551410f3  make-release/make-4.2.tar.gz

You can obtain a copy from:           http://ftp.gnu.org/gnu/make/
You can choose a nearby mirror:       http://ftpmirror.gnu.org/make/
A list of mirror sites is available:  http://www.gnu.org/order/ftp.html

- - NEWS ----------------------------------------------------------------

A complete list of bugs fixed in this version is available here:

http://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=106&set=custom

* New variable: $(.SHELLSTATUS) is set to the exit status of the last != or
  $(shell ...) function invoked in this instance of make.  This will be "0" if
  successful or not "0" if not successful.  The variable value is unset if no
  != or $(shell ...) function has been invoked.

* The $(file ...) function can now read from a file with $(file <FILE).
  The function is expanded to the contents of the file.  The contents are
  expanded verbatim except that the final newline, if any, is stripped.

* The makefile line numbers shown by GNU make now point directly to the
  specific line in the recipe where the failure or warning occurred.
  Sample changes suggested by Brian Vandenberg 
* The interface to GNU make's "jobserver" is stable as documented in the   manual, for tools which may want to access it.   WARNING: Backward-incompatibility! The internal-only command line option   --jobserver-fds has been renamed for publishing, to --jobserver-auth. * The amount of parallelism can be determined by querying MAKEFLAGS, even when   the job server is enabled (previously MAKEFLAGS would always contain only   "-j", with no number, when job server was enabled). * VMS-specific changes:   * Perl test harness now works.   * Full support for converting Unix exit status codes to VMS exit status     codes.  BACKWARD INCOMPATIBILITY Notice: On a child failure the VMS exit     code is now the encoded Unix exit status that Make usually generates, not     the VMS exit status of the child. - - Log ----------------------------------------------------------------- Benedikt Morbach (1):       * tests/scripts/features/archives: [SV 43405] override AR variable. Christian Boos (1):       Fix $(shell) on hosts with 64-bit pid_t. Duncan Moore (1):       * job.c [RISCOS]: Remove logic that is no longer required. Eli Zaretskii (7):       [SV 44348] Fix handling of shell widlcards on MS-Windows.       [SV 45515] Ignore Windows-specific build artifacts       [SV 45838] When invoking w32 programs, don't use free'd memory.       [SV 46304] Don't invoke C++ compiler on C sources on MS-Windows       Update README.W32.template       Fix the MS-Windows MinGW build       [SV 47942] Avoid random crashes in subordinate programs on MS-Windows Gisle Vanem (1):       Fix diagnostics on MS-Windows when environment is too large James Johnston (1):       [SVN 45515] Check exit status of sub-make in subproc.bat Joe Crayne (1):       [SV 44742] Fix double-colon rules plus parallel builds. John Malmberg (6):       Set up for running tests on VMS.       [SV 42447]: VMS simulate exporting symbols       [SV 41758]: Fix archive support for VMS.       Update README.VMS and move news to the NEWS file       Fix VMS implicit rules and UNIX paths.       Fix bs-nl handling, exit and Environment for VMS. Paul Eggert (1):       Fixes for enhanced GCC warnings. Paul Smith (55):       * configure.ac, NEWS, README.git: Set up for the next release.       * main.c (main): [SV 43434] Handle NULL returns from ttyname().       * remake.c (update_file): [SV 44742] Keep double-colon rule status.       * strcache.c: [SV 45275] Handle very long strings.       * read.c (unescape_char): [SV 45050] Handle final backslashes.       [SV 45049] Check for '$' being the last character in a string.       * job.c: [SV 43936] Check sigaction for error return.       * tests/scripts/misc/fopen-fail: [SV 42390] Increase test timeout.       [SV 28092] Preserve the exit status of the $(shell...) function.       * implicit.c (pattern_search): [SV 43677] Mark files secondary.       * doc/make.texi: [SV 35455] Add more uses for Empty Recipes.       * doc/make.texi: [SV 47163] Fix typo in 'ifdef' documentation.       Update Copyright statements for the new year.       * tests/scripts/features/archives: Handle deterministic archives.       * main.c (define_makeflags): Add parens to avoid GCC warning.       [SV 47151] Exit with 1 when checking recursive make -q       * strcache.c (add_string): [SV 47071] Handle huge initial string.       * strcache.c (add_hugestring): [SV 46832] Support huge strings.       [SV 46261] Add more EINTRLOOP wrappers.       Extract jobserver implementation into OS-specific files.       Clean up some compiler warnings.       [SV 46261] Use pselect() for jobserver where supported.       * job.c (exec_command): [SV 47365] Show error on exec failure.       [SV 44555] Use vfork() instead of fork() where available.       [SV 46581] Pre-define .LOADED to avoid warnings.       * main.c(main): Disable output sync without parallel builds.       [SV 45728] Detect changes in .VARIABLES more accurately.       * variable.c: Align type of variable_changenum.       * job.c (child_error): Combine file info with error message.       * doc/make.texi (Setting Variables): Fix typo (add comma).       * function.c (func_file): Support reading from files.       [SV 46995] Strip leading/trailing space from variable names       * variable.c: Clean up some memory leaks.       * tests/run_make_tests.pl: Preserve $make_command       Change --jobserver-fds to more generic --jobserver-auth.       * docs/make.texi: [SV 47392] Add "Integrating make" chapter.       * make.texi: Confirm that CURDIR contains an absolute path.       * Makefile.am, w32/Makefile.am: Fix *os.c for Windows builds.       * main.c (main): Restrict disabling debugging for MAKEFILES.       * job.c (child_execute_job): Fix $(shell...) under NO_OUTPUT_SYNC.       * maintMakefile: Fix logging of check-alt-config target.       * tests/run_make_tests.pl: Add file/lineno info to .run file.       Preserve the real value of -jN in MAKEFLAGS using jobserver.       * job.c (child_error): Add filename length to output length.       [SV 102] Don't show unnecessary include file errors.       * maintMakefile: Add a rule for storing preprocessor output.       [SV 46433] Show recipe line offsets in line number messages.       * dep.h, makeint.h (show_goal_error): Move to makeint.h.       * NEWS: Update for pre-release       * tests/scripts/features/output-sync: increase test timeout.       Allow compiling with an ISO C 1989/1990 compiler.       Fix compile issues with Windows and VMS.       Separate the GNU make load ABI from internal types.       * read.c (eval): [SV 47960] Skip record waiting files when ignoring.       GNU Make release 4.2. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iEYEARECAAYFAldBufoACgkQlrBHFWM4ttRu9wCeLDcU5kgyt5ZMAl95at+T9b0z TycAnA41c4uxDoQwIuReY/NFvI+w/EGK =rYhl -----END PGP SIGNATURE-----



[Prev in Thread] Current Thread [Next in Thread]
  • GNU Make 4.2 released!,
    Paul Smith
     <=


Original URL: http://feedproxy.google.com/~r/feedsapi/BwPx/~3/CVv7O47o9uA/msg00000.html

Original article

Real Lawyers v. Cyborgs (Part 2)

Continuing with my two-year-old son, Pickle. As I laid out last post, Pickle is a cyborg. A Type 1 diabetic, his life literally depends on computers that are attached to his body. Because of him, I find myself contemplating the fact that we are almost all professional cyborgs. Technology is now an inescapable element of delivering legal services. The objection that using technology somehow differs from ‘real’ lawyering is misguided. If it affects the outcome or the bill, it is real enough.

Still, just because technology is essential does not mean it is all that good. With respect to my diabetic Pickle, I have one question: where the @#%& is his artificial pancreas?

My wife is also an insulin-deficient cyborg, I have therefore been reading the same damn story about the same pending breakthrough for over a decade (e.g., 200620112016). We are eternally on the cusp of the machine finally replacing humans in the labor-intensive process that is monitoring blood sugar levels and delivering insulin when necessary.

Pickle has a continuous glucose monitor. But it needs to be calibrated multiple times a day. And it is not accurate enough to be relied on for dosing insulin. So the monitor does not obviate the need to regularly prick his fingers and draw blood to check sugar levels. Indeed, the best commercially available glucose monitor is actually a trained dog— the repurposing of 26,000-year-old technology and more evidence against functional fixedness. But a dog, like the monitor he actually has, cannot communicate with his insulin pump, which still needs to be run manually (i.e., we still have to direct the pump to dose insulin).

The cycles of hype and disappointment around an artificial pancreas gives me quite a bit of sympathy for older lawyers who have been through many such cycles of hype around artificial intelligence. As a stand-in for older, successful lawyers, I am going to assume a law school graduation year of 1977 since that is the median and modal graduation years of the chairs of the AmLaw 10. They have been hearing how machines were going to replace since long before they took the bar.
If you believed the hype on artificial intelligence, it was silly for our successful lawyer to even attend college, let alone law school. In 1970, they would have read the following in Life magazine:

In from three to eight years we will have a machine with the general intelligence of an average human being. I mean a machine that will be able to read Shakespeare, grease a car, play office politics, tell a joke, have a fight. At that point the machine will be able to educate itself with fantastic speed. In a few months it will be at genius level and a few months after that its powers will be incalculable.

Instead, their law school graduation in 1977 was at the tail end of the first AI winter–a period of reduced interest in AI due to its failure to live up to the hype. 
A far cry from human-level general intelligence, the technological marvel of 1977 would be the Apple II. Poor predictions, of course, run in both directions. In reacting to the Apple II, Ken Olson, founder of Digital Equipment Corp. stated, “There is no reason anyone would want a computer in their home.” 
But there is a legitimate question as to how long a prediction has to remain valid to be considered accurate. While Mr. Olson was dead wrong in the long run, a decade later, in 1987–when our successful lawyer had already made partner–only 10% of households had a personal computer. In the midst of that not-so-disruptive diffusion of computing power, important publications would continue to print pablum of the coming robot revolution. The New York Times would run stories with ledes like, “Before today’s teen-agers finish college, computers will interpret changes in tax law and plan tax strategies for business.”
Yet 1987 was also the year when economist Robert Solow observed his eponymous paradox, “You can see the computer age everywhere but in the productivity statistics.” In related news, another brutal AI winter was coming. After a resurgence in AI research and hype, the collapse of the Lisp machine market in 1987 presaged the imminent failures and fall from grace of the early expert systems, “fifth generation” computers, and the Strategic Computing Initiative leading to New York Times articles like “Computer Fails as Job-Killer.” 

In 1997, the machines finally won–at chess. IBM’s Deep Blue beat Gary Kasparov under tournament conditions. The press went nuts:


When Gary Kasparov beat IBM’s chess computer in 1989 he arrogantly told the programmers to “teach it to resign earlier”. Yesterday, though, the world champion found himself humbled by a 1.4-ton heap of silicone in a victory for IBM’s Deep Blue that marks a milestone in the progress of artificial intelligence. It is a depressing day for humankind in general. (here)

In brisk and brutal fashion, the I.B.M. computer Deep Blue unseated humanity (here)

Elsewhere, in 1997, our successful lawyer had been a partner for more than a decade and practicing for two decades. The home computer market had not yet broken 40%. The still nascent home internet market had not yet cracked 20% penetration. In developments that would actually make an impact, the domain and famous spelling error www.google.com would be registered, almost a year before the company would be incorporated.

In 2007, our successful lawyer had been a partner for more than 20 years and practicing for 30 years. The partner could read increasingly more about the coming singularity and updated iterations of the Life article from 1970:

Social security will have to be expanded, introduced at lower and lower ages, till essentially everyone lives on social security. The taxes will be paid by fully-automated businesses run by robots. And human beings have to deal with the problem of excess leisure…I am afraid that the long term future we are building will have no space left for human beings…a world where we have these robots and better and better artificial intelligence, where systematically those systems replace humans, human services, human work…Is it a good or bad thing if robots become our natural successors and we fade into extinction?

But actual evidence of true machine intelligence outside of very narrow domains like chess remained illusory. As a practical matter, the tangible breakthroughs were mostly about being able to take the office with you everywhere. In 2007, Blackberries were a thing, and Apple announced the iPhone.

We are a year away from 2017 when our successful lawyer will celebrate 40 years in practice with more than 30 of those years as a partner. Much closer to the end of their career than the beginning, they can still read the same damn story about their imminent obsolescence. Or they can read the counterprogramming. We can forgive them for being a bit skeptical.

Yet there is something disingenuous about my account. It is accurate, as far as it goes. But it is also needlessly reductive in a way that I think is best captured by the incomparable xkcd:

Returning to my understandable focus on the always promised artificial pancreas. In fixating on a closed system that eliminates the human element post installation, I  miss the genuine progress being made. What used to be a death sentence is now an inconvenience. And that inconvenience has gotten considerably easier to manage now that we can do things like monitor my son’s blood sugar remotely on a watch–continuous glucose monitor links to his iPhone; his iPhone transmits to my wife’s iPhone; her iPhone transmits to her Apple Watch. None of those devices were commercially available when my wife was diagnosed a decade ago. That is freakin amazing.

One way to react to hype cycles is to laugh at the peaks. Another is to pay attention to the progress that follows:

Because the story I told above focused on the more sensational claims of machines making humans obsolete, it treated the PC, the internet, and mobile as inconsequential asides that only served to demonstrate just how hyperbolic the coverage was. But like a good lawyer, I could use the same facts to tell a very different story in which technology crept into every aspect of our professional lives. There will be real similarities between the immediate lived experience of a lawyer who graduated in 1977 and the one who graduates in 2017. But there will also be real differences that would have seemed like bad science fiction to someone entering an analogue professional environment four decades ago.

I think there will be an artificial pancreas soon. Machines will be able to do that one sequence of things well enough. Likewise, I suspect that machines will continue to progress at doing other things well, including some things traditionally done by lawyers. But I am doubtful* that we are nearing artificial general intelligence meaning that our resources should remain directed towards the automation of tasks, rather than jobs. As Robin Hanson has observed, while technology gains are exponential, the impact may be linear because job power levels are distributed lognormally:

I often meet people who think that because computer tech is improving exponentially, its social impact must also be exponential. So as soon as we see any substantial social impact, watch out, because a tsunami is about to hit. But it is quite plausible to have exponential tech gains translate into only linear social impact. All we need is a lognormal distribution, as in this diagram:

Imagine that each kind of jobs that humans do requires a particular level of computing power in order for computers to replace humans on that job. And imagine that these job power levels are distributed lognormally.

In this case an exponential growth in computing power will translate into a linear rate at which computers displace humans on jobs. Of course jobs may clump along this log-computing-power axis, giving rise to bursts and lulls in the rate at which computers displace jobs. But over the long run we could see a relatively steady rate of job displacement even with exponential tech gains. Which I’d say is roughly what we do see.

For our successful lawyer, however, the felt impact of technology progress on their professional accomplishments may be less than linear, it may be negligible. This has consequences for how lawyers in position of power react to those of who emphasize that we are all cyborgs now. More on that in Part 3.

_______________________________________
D. Casey Flaherty is a consultant who worked as both outside and inside counsel. Find more of his writing here. Connect with Casey on Twitter and LinkedIn. Or email casey@procertas.com.

*I’m way too dumb to have a smart take on the timing of general artificial intelligence. But the implications are so profound that it almost makes them not worth talking about. It would be similar to debating how the legal profession might change if the Earth were again struck by a meteor like the one that wiped out the dinosaurs. Everything changes, and almost no one is going to care what impact it has on profits per partner. Until then, I am in Ryan’s camp. It is only AI/magic until we start to use it, then it is software. It is only a human-threatening robot until we start to rely on it, then it is a dishwasher.


Original URL: http://feedproxy.google.com/~r/geeklawblog/~3/wjX5UyrADmc/real-lawyers-v-cyborgs-part-2.html

Original article

All the cool kids are doing Ethereum now

heathers In the beginning the Prophet Satoshi brought us Bitcoin. And the cryptogeeks and libertarians looked upon it, and said lo, we smile upon this, for it is good, and decentralized, and solves the Byzantine Generals Problem. For a time all was well. But then came wailing and gnashing of teeth and wearing of sackcloth. And then came the Prophet Vitalik, bearing Ethereum; and lo, it was even… Read More


Original URL: http://feedproxy.google.com/~r/Techcrunch/~3/03GGh6tMulA/

Original article

Proudly powered by WordPress | Theme: Baskerville 2 by Anders Noren.

Up ↑

%d bloggers like this: