Understand your Mac and iPhone more deeply by tracing the evolution of Mac OS X from prelease to Swift. John Siracusa delivers the details.
You've got two main options:
These work in Firefox and Chrome, where %s
is replaced with the search query. For Raycast and Alfred, the %s
should be replaced with {query}
. For more details also see my blogpost.
I recommend picking keywords that are easy to memorize, like am=Amazon, an=Anaconda, gi=Github,... and switching to three letters when the two letter abbreviation appears to commonly in a sentence (eg goi=Google images, gom=Google Maps).
What if... Virtual DOM... but by hand?
aha ha, just kidding...
unless.. ?
Microview is a tiny library for writing efficient data-driven DOM rendering logic by hand. DOM writes are driven by a pure data model. Using Microview, you can freely "bash the dom". Writes will be batched — they'll only happen once per animationframe, and only if the data model changes.
""" "Writing SQL is just as fast as using an ORM" proof of concept | |
Below is a simple Python object model, where we represent a database that | |
stores the names of employees at a company, some of whom are "engineers", | |
and a list of the jobs they do and the programming languages they use. | |
We'd like to persist the state represented by this Python object model | |
in a relational database, using our Python objects as a start. Then we'd | |
like to write SQL queries for rows in this database, and we get back instances | |
of Python objects exactly as they were created. |
#This was done by some tool, don't know which one, and our custom built app captured theese URL's, after filtering | |
#for unique URL's, here is list of URL's in original form, I will later try to create some protection | |
/3B1728A10D221805D2CABE58B095D353.php | |
/manager/html | |
/wp-content/plugins/portable-phpmyadmin/wp-pma-mod/index.php | |
/mysql/mysqlmanager/index.php | |
/mysql/sqlmanager/index.php | |
/mysql/dbadmin/index.php | |
/mysql/admin/index.php | |
/phpmy/index.php |
@Override | |
public void onCreate() { | |
super.onCreate(); | |
///////// Add lines below this to capture times of the large sections | |
final String TAG = "RN_STARTUP"; // If you already have a TAG for the app, use that instead. | |
final TimingLogger timingLogger = new TimingLogger("AXE", "REACT_NATIVE_STARTUP"); | |
timingLogger.reset(); | |
ReactMarker.addListener(new ReactMarker.MarkerListener() { | |
@Override |
Libuv and libev, two I/O libraries with similar names, recently had the privilege to use both libraries to write something. Now let's talk about my own subjective expression of common and different points.
The topic of high-performance network programming has been discussed. Asynchronous, asynchronous, or asynchronous. Whether it is epoll or kqueue, it is always indispensable to the asynchronous topic.
Libuv is asynchronous, and libev is synchronous multiplexing IO multiplexing.
Libev is a simple encapsulation of system I/O reuse. Basically, it solves the problem of different APIs between epoll and kqueuq. Ensure that programs written using livev's API can run on most *nix platforms. However, the disadvantages of libev are also obvious. Because it basically just encapsulates the Event Library, it is inconvenient to use. For example, accept(3) requires manual setnonblocking after connection. EAGAIN, EWOULDBLOCK, and EINTER need to be detected when reading from a socket. This is a
libuv 和 libev ,两个名字相当相近的 I/O Library,最近有幸用两个 Library 都写了一些东西,下面就来说一说我本人对两者共同与不同点的主观表述。
高性能网络编程这个话题已经被讨论烂了。异步,异步,还是异步。不管是 epoll 也好,kqueue 也罢,总是免不了异步这个话题。
libuv是异步的,libev是同步的多路IO复用。
libev 是系统I/O复用的简单封装,基本上来说,它解决了 epoll ,kqueuq 与 select 之间 API 不同的问题。保证使用 livev 的 API 编写出的程序可以在大多数 *nix 平台上运行。但是 libev 的缺点也是显而易见,由于基本只是封装了 Event Library,用起来有诸多不便。比如 accept(3) 连接以后需要手动 setnonblocking。从 socket 读写时需要检测 EAGAIN 、EWOULDBLOCK 和 EINTER 。这也是大多数人认为异步程序难写的根本原因。
libuv 则显得更为高层。libuv 是 joyent 给 Node 做的一套 I/O Library 。而这也导致了 libuv 最大的特点就是处处回调。基本上只要有可能阻塞的地方,libuv 都使用回调处理。这样做实际上大大减轻了程序员的工作量。因为当回调被 call 的时候,libuv 保证你有事可做,这样 EAGAIN 和 EWOULDBLOCK 之类的 handle 就不是程序员的工作了,libuv 会默默的帮你搞定。
FFMPEG filters provide a powerful way to programmatically enhance or alter videos, and it’s fairly simple to add a watermark to a video using the overlay filter. The easiest way to install ffmpeg is to download a pre-built binary for your specific platform. Then you don’t have to worry about including and installing all the right dependencies and codecs you will be using.
Once you have ffmpeg installed, adding a watermark is as easy as passing your existing source through an overlay filter like so:
ffmpeg -i test.mp4 -i watermark.png -filter_complex "overlay=10:10" test1.mp4
Basically, we’re passing in the original video, and an overlay image as inputs, then passing it through the filter, and saving the output as test1.mp4.