Tail recursion in Python
- Some programming languages are tail-recursive, essentially this means is that they're able to make optimizations to functions that return the result of calling themselves.
- It turns out that most recursive functions can be reworked into the tail-call form.
- Then our decorator simply unpacks the variables from the exception and tries calling the function again.
- Eventually we'll reach our exit condition (we hope) and the function will return instead of raising an exception.
- The reason for this limit is (among other things) doing recursive calls takes a lot of memory and resources because each frame in the call stack must be persisted until the call is complete.
- Our decorator gets around that problem by continually entering and exiting a single call, so technically our function isn't actually recursive anymore and we avoid the limits.
Repl.It 1.0: IDE that Grows from Playgrounds to Fullstack Apps
- If you want to use files, write to files, split your code into modules, etc., you just do that and behinds the scenes the environment will switch to one where you're interacting with the filesystem.
- You use it to listen on a port, any port you'd like; we'll detect that, host your server/repl on your Repl.it subdomain (forever!) and that's it you're developing/deploying an application.
- We also know that not all applications will grow incrementally so in typical Repl.it one-click-start fashion we've pre-setup a Django, Rails, Express, and Sinatra apps.
- Repl.it serverless apps are unique in that they're stateful and that the same repl, same protocol, same everything, that you use in development is deployed and running in production.
- After getting user-interest @pyelias is starting to explore building a full stack application using Django.
Lenovo’s Data Center Solutions Exec Says IT Should Help Business Drive Innovation
- As we continue our transformation, we’ve announced an expansion plan in our data center business segments to include telecom and Internet of Things.
- KS: Edge computing means performing processing and storage close to the endpoints of things, outside of the core IT data center and cloud.
- In Lenovo’s newly created IoT division, we will help customers turn traditional endpoints into smart and connected devices for improved productivity and efficiency.
- As the Business Transformation part of the organization’s name implies, they also partner with the business teams to drive innovation and identify new ways that technology can improve Lenovo’s competitive abilities.
- The Annual Performance Report highlights how BT/IT is leveraging emerging technology, including big data and AI, to advance current technology solutions, optimize business processes, deliver new solutions, and reduce Lenovo’s operational costs, and ultimately, improve our customers’ experience.
Hackers exploiting rTorrent to install Unix coin miner have netted $4k so far
- Attackers have generated $3,900 so far in an ongoing campaign that's exploiting the popular rTorrent application to install currency-mining software on computers running Unix-like operating systems, researchers said Thursday.
- Further ReadingBitTorrent users beware: Flaw lets hackers control your computerThe misconfiguration vulnerabilities are similar in some respects to ones Google Project Zero researcher Tavis Ormandy reported recently in the uTorrent and Transmission BitTorrent apps.
- Proof-of-concept attacks Ormandy developed exploited weaknesses in the programs' JSON-RPC interface, which allows websites a user is visiting to initiate downloads and control other key functions.
- Further ReadingCryptocurrency-mining criminals that netted $3 million gear up for moreAttackers are scanning the Internet for computers that are running RPC-enabled rTorrent apps and then exploiting them to install software that mines the digital coin known as Monero, researchers from Seattle-based security firm F5 said in a blog post.
Computing with Random Pulses Promises to Simplify Circuitry and Save Power
- An interesting and unconventional compromise is a method called stochastic computing, which processes analog probabilities by means of digital circuits.
- Stochastic computing begins with a counterintuitive premise—that you should first convert the numbers you need to process into long streams of random binary digits where the probability of finding a 1 in any given position equals the value you’re encoding.
- What if, instead, the output of your two controllers was transformed electronically into a random series of 0 or 1 values, where the probability of a 1 appearing at any given position in this stream of bits encodes the value at hand?
- The circuits that are used to process stochastic bitstreams act as though they are computing with the most significant digits of the number first.
- That’s because to represent an n-bit binary number, stochastic computing requires the length of the bitstream to be at least 2n.