A Rust object that survives program restart thanks to Rust allocators, systemd’s file descriptor store, and syscall memfd_create.
When is the linear scan Two Sum solution faster than a map? What if we use AVX-512 instructions?
In Rust, how does using a different primitive type (u8, i32, u64, etc) change the generated assembly?
Thanks to Address Space Layout Randomization you can use the address of a stack variable as a zero-cost random number.
Linux’s epoll API solved the C10K problem, enabling fast and afforable Internet services.
Rust’s traits are a single concept that unifies interfaces, abstract classes, mix-ins, operator overloading, contraints on generics, and more.
It will take longer to learn than most languages, the standard library is small so you’ll need dependencies, and a lot of behavior is in traits.
… because, at every new incident, your fortitude was to be called forth, and your courage exhibited; because danger and death surrounded it, and these you were to brave and overcome. For this was it a glorious, for this was it an honourable undertaking.
In Go, how do you run several operations that might return an error, and return those errors at the end? Here’s how I do it.
Two days at PDX DevOpsDays, a gathering of system administrators who use version control, and write a lot of YAML.
Javascript can now record, manipulate and play sound thanks to a whole range of audio-related API’s. One of the simpler and more useful parts of that is MediaRecorder which can record sound, typically from the user’s microphone.
``` const stream = await navigator.mediaDevices .getUserMedia({audio: true, video: false}); // Media Capture and Streams API const mediaRecorder = new MediaRecorder(stream); // MediaStream Recording API mediaRecorder.ondataavailable = (ev) => { // ev is a BlobEvent // ev.data is a Blob. Send it to the server. }; mediaRecorder.start(50); // call ondataavailable every 50ms
```
MediaRecorder on Chrome produces output with mime type audio/webm;codecs=opus.
Let me guide you through the WebM / Matroska / EBML maze.
The WebM format is a container, which can contain many things. In our case it contains audio encoded with the Opus codec. We are only going to look at the container, not the encoded audio.
Gardening is my preferred metaphor for software. When I grow a new piece of software, there is a very predictable path I go through as I attempt to manage it’s complexity. It is, in fast-forward, the history of programming language design. That process is short enough to capture in about 400 characters, as two tweets.
Growing software, in two tweets:
1. Writemain. Put your program in there.
2.maintoo big? Extract functions. Use global vars.
3. Too many functions? Group functions and their data (replacing global vars) into objects.— grahamking (@grahamking) March 12, 2018
- Too many objects? Group objects into packages. Make some methods private.
- Too many packages? Split out a new project, either library or network service.
- Iterate from 2 when other functions grow too big.
— grahamking (@grahamking) March 12, 2018
What Made Maddy Run by Kate Fagan, is a book about the importance of doing what you love, of really listening to the people close to you.
Three years ago when I wrote The Joy of Upstart, that was the easiest way to turn your scripts into daemons.
Over 170 years ago, on Friday 21st July 1843, at 4 o’clock, Ada Lovelace was working on a mathematics problem, possibly on the first known computer program (it was written that summer).
tl;dr: It looks like Facebook is getting the textbook results of ignoring code quality.
Update: More examples, and insights from ex-employees in the reddit discussion
Facebook has a software quality problem. I’m going to try to convince you with three examples. This is important because it demonstrates the time-honored principle that quality matters. In demonstrates it, as Facebook engineers like to say, at scale. I don’t work at Facebook or any competitor, I’m just an observer.
Exhibit A: “iOS can’t handle our scale” About a month ago a Facebook engineer gave this presentation: iOS at Facebook, which was followed by a discussion on reddit.
The Facebook iOS app has over 18,000 Objective-C classes, and in a single week 429 people contributing to it. That’s 429 people working, in some way, on the Facebook iOS app. Rather than take the obvious lesson that there are too many people working on this application, the presentation goes on to blame everything from git to Xcode for those 18,000 classes.
GopherCon was in Denver again this year, and a lot of fun it was, mostly the meeting of wonderful people.
When the President of the United States of America wants to send an email, we don’t close email-space, and delay your email so his very important one can go through.
A selection of software engineering practices, from notes I took at an XTC meetup many years ago.
In the interests of illustrating the complicated programmer psyche for the benefit of anyone involved in recruitment, here’s the two things I look at in a job advert:
Continuing our dive into the Internet Protocol Suite from Go (See part 1 Raw sockets in Go: IP layer), we are going to the link layer, so we can see the IP headers.
Continuous Delivery, by Jez Humble and David Farley is about three big ideas to get your code into production more reliably: Make a deployment pipeline: commit -> unit test -> acceptance test -> … -> deploy -> release Automate everything.
Ever since Dropbox, I’ve been searching for a self-hosted, secure (and now Condi-free) way of keeping my machines synchronised and backed up.
My favorite talks at GopherCon 2014:
nil channels always block, so you can ‘disable’ a select clause by setting a channel to nil. Closed channels never block. Heartbeat is just time.Tick, timeout is time.After. Go programs are small sequential pieces joined by channels.Those are the three talks I enjoyed most. Here are my general notes on the conference and a few of the other talks.
In the Internet protocol suite we usually work at the transport layer, with TCP or UDP.
Here are my three favorite programming books, the ones I consider most important and would most recommend.
Update Nov 2021: It’s been eight years, I’m typing this on that original keyboard, it’s still my primary keyboard.
Last weekend a friend asked me why there were pharma links hidden in her GoDaddy hosted WordPress site, and that led me into the WordPress black hat SEO rabbit hole.
Here’s what happens when you encrypt a message with GPG / GnuPG (and probably other OpenPGP implementations):
The lesson here is that it is insufficient to protect ourselves with laws; we need to protect ourselves with mathematics
I used to know two programming languages at any one time; what I called a serious language and a what I called a scripting language.
Update 2021: DO NOT USE THIS BLOG POST TO LEARN RUST The language has changed tremendously.
Starting in summer 2012, when my son was 3.5, I started reading chapter books to him, a chapter or two a night. Before we started chapter books, it was always easy to find good books to read to them (from board books upwards). Now though, I struggled finding good chapter books for this age group.
I’ve collected a list of the ones we tried, in order, with notes if appropriate. I’m linking all the books to Amazon to be clear which book it was, but we got most from our local library.
Jason’s Quest – A lovely book to start with. A wonderful adventure, which never gets too frightening, or too hard to follow, and the good folks win in a good way.
Fantastic Mr. Fox – Might have been a little too frightening at the beginning, with the mean farmers trying to kill the fox. In retrospect I would have saved it till he was a few months older.
Mr. Popper’s Penguins
First thing in the morning, I check my gmail on my Google Nexus 7 tablet, or my Nexus 4 phone, whichever is nearest.
Our house has two iOS devices (an iPad and and iPod Touch), and two Android devices (Nexus 7 tablet, Samsung Galaxy phone).
In these months of American politicians trying to influence you, I thought it interesting to look at ways of using the same tools for positive change.
Excited to have my first post on Lincoln Loop’s blog, about intrinsic motivation, flow, and why you don’t find cats in offices:
Unicode maps 32-bit (4 byte) integers, also called code points or runes, to characters.
I attended Vancouver’s Polyglot Unconference, met some wonderful people, and got to present a session on Go (#golang).
On paternity leave for my second child, I found myself writing an in-memory hashmap (a poor-man’s memcached), in Go, Python and C.
My current project has a realtime part, using socket.io on nodejs, and a web part using django on nginx / gunicorn. Here’s a setup to put them both on the same port, and make them both go over SSL. I’m assuming you’re on Ubuntu.
Disclaimer: I got this working last night, so no promises. You’ll certainly want to tweak haproxy’s config for performance. I also only tested it with socket.io’s web socket transport.
Overview
Currently nginx doesn’t
There are lots of easy ways to improve the output of your command line scripts, without going full curses, such as single-line output, using bold text and colors, and even measuring the screen width and height.
We’ve know for over 35 years that “adding manpower to a late software project makes it later”.
After a frustrating time trying to find a memory leak in my Python code with guppy / heappy hpy, I tried objgraph and, wow, it makes it so easy!
I recently finished Gary Noesner’s Stalling for Time: My Life as an FBI Hostage Negotiator, by the F.
After a while working with git, you end up with lots of branches, especially if you use git-flow inspired feature branches.
For most Django apps, indeed most webapps, the bottleneck is the database. The biggest gains usually come from reducing the number of queries used, and adding database indexes. django-debug-toolbar helps a lot here. After that, caching and de-normalization also help reduce database queries.
But what if your app is CPU bound? How do you find out where it’s spending it’s time? It’s easy with the runprofileserver from django-extensions – here’s how:
The News International phone hacking scandal is the case of a British tabloid’s staff hacking into several thousand people’s voicemail, over a period of at least six years.
They listened to voicemail of the 7/7 terrorist attack victims, politicians, a murdered schoolgirl (including erasing some messages, leading the family to think she lived), the British Royal Family, various celebrities, and other journalists.
Instructions on how to setup a development environment to work on Django core, for example to review proposed patches, and prepare your own.
Ten days ago, I received a Kobo eReader Touch for father’s day. It’s a lovely device. Here’s my impressions.
It’s a USB device. 1. Plug it in to your Ubuntu machine (or probably any modern Linux distro). It shows up as a USB storage device. 2. Drag and drop books in any supported format onto it. 3. Unplug, switch on, read books.
It’s that simple. If you had a solid-state MP3 player (before your phone played them), this will feel familiar.
In the past few months, I’ve inherited two projects which used django-mptt, a toolkit for adding trees to Django models.
If you are an active user of Ubuntu’s notifications, for example via lintswitch you may of noticed that they have two key problems, which are easily solved:
These days, for most internet businesses, the number one challenge is customer acquisition and marketing — not building a website.
Jason Fried at a TEDx event, 17minute video
The key concepts:
Ask people where they go to “get work done”, where they are at their most productive: They almost never say ‘the office’. Or if they do, it’s before or after hours.
Work is like sleep, it proceeds in cycles. You have to go through the light-sleep / light-work cycles to get to the meaty stuff. Every time you get woken up / interrupted, you start from scratch.
It’s too bad that companies are still hiding behind glitzy buildings with on-site amenities, flexibility programs and knitting clubs when what people really want are their lives back.
Materialism and the behaviors that go with it – desiring and buying brand-name clothes and luxury items – are symptoms of insecurity and a coping strategy used to alleviate feelings of self-doubt or bolster a poor self-image.
As part of my work with Good Energy I have been learning why people behave the way they do, and what tools we have to help them change behavior.
I have done most of my work while anxious about whether I could do the job, and unsure that it would be enough to achieve the goal if I did.
Two observations found in the literature on social psychology, which explain succinctly why, whatever you personally think about it, you would be mentally much better off without your TV.
The Brain That Changes Itself, by Norman Doidge is a fascinating book about brain plasticity, the ability of our brain to re-wire itself to cope with changing conditions.
Update: You need to know how to ban MAC addresses on your router, as you will eventually have a neighbor swamp your network with bittorrent.
As an Amazon reviews says, “arguably the best book ever on what is increasingly becoming the science of persuasion.
By Thomas Gilovich, social psychologist and CSI Fellow, this well written book explains some of the reasoning and deduction errors we make when trying to understand the world, and ways to avoid making those errors.
In the general case, there is no way to list all the keys that a memcached instance is storing.
I recently received an advert for an investment fund in which, as the amateur social psychologist that I am, I noticed illustrated a couple of psychological principles.
In response to monkeys stealing his coffee beans, an Indian farmer observes: If you start shooting monkeys, you’ll spend the rest of your life shooting monkeys.
A very interesting article in the New-York Times on the research behind the risks of being distracted by a cellphone whilst driving:
http://www.nytimes.com/2009/07/19/technology/19distracted.html
Here’s some excerpts:
in a survey of 1,506 people last year by Nationwide Mutual Insurance, 81 percent of cellphone owners acknowledged that they talk on phones while driving, and 98 percent considered themselves safe drivers. But 45 percent said they had been hit or nearly hit by a driver talking on a phone. That’s the Lake Wobegon effect, the tendency for overestimate their capabilities in relation to others.
A couple of great posts which explain Django dynamic forms and advanced formset usage very clearly:
I setup my Mercurial repository in the same way we used to do CVS, then SVN: A directory owned by a group, with the GUID bit, and all users who need to commit are in that group.
I have been playing Open Transport Tycoon Deluxe, or OpenTTD on and off for a while, but I confess I only understood train signals very recently.
Charlie Brooker on a television advert by the British National Party, England’s (very small) right-wing political party:
I will be speaking at Open Web Vancouver on Thursday, June 11, 2009 and Friday, June 12, 2009.
Update April 2012 Google has discontinued Picasa for Linux, so I’m going to try to do all my photo editing in GIMP. Here’s what I use most often:
Basic:
Warmify:
Sharpen:
Original post follows
I’ve been using Picasa to edit my pictures for a long time, and it’s an excellent program. Recently however I’ve started shooting RAW, and I’d like control, so I’ve started using GIMP. It’s more powerful and more complicated than Picasa, so to start myself off I went through all the features of Picasa and made notes on how to duplicate that operation in GIMP. Here are those notes.
Most of what Picasa does can be replicated with the Colors / Levels or Colors / Curves tool. It’s well worth spending a little time experimenting with both of those (the documentation is very good too).
Crop In the Toolbox, click the Rectangle select tool In its options (beneath the tools), tick ‘Fixed: Aspect Ratio’ Enter 6:4 ratio (for 1.6 sensor, most DSLRs) Tick Highlight. Draw a rectangle on the image that you want to crop to. Image menu / Crop to Selection
Update 23 Aug 2011: Finally closed my LinkedIn account. To their credit the ‘Close Account’ feature is straightforward.
Update 4 Feb 2011: Steve Pavlina, in his article about leaving Facebook writes:
I nuked my Linkedin account at the same time I left Facebook. Linkedin is supposed to be a business networking service, and I had about 350 contacts there, but I always found that service utterly useless, so it was a no-brainer to dump it. End update
I’m on LinkedIn, I’m connected to 48 people. I go there, I declare to the world that I know these people. And then what?
If that sounds familiar, you’re not alone. There’s:
If it takes a blog post, a book, and a community project, to find a point to your web application, I think there may not be one.
Eddit is a bookmarklet for Reddit, which gives you more signal and less of the noise that makes you go Rrrr! Here’s how it improves reddit:
Most ActionScript / Flash applications have a main event loop, triggered by Event.ENTER_FRAME. This is where the animation moves along to the next frame, or the sprites of the game are re-drawn in their new places.
In the Flex framework, you are expected to call invalidateDisplayList on the framework to say you need an update, and actually do the update when the framework calls your updateDisplayList method. This is the invalidation / validation pattern.
I went searching in the Flex code to understand how this invalidation / validation step ties in with Flash’s event model. I ignored properties and sizing, and edited the code down to the bare essentials.
Here is what happens when you change the label of a button:
Los Angeles is under attack, by trigonometric functions! OMG! Trigo-what? If I wanted to do maths, I’d go to San Francisco!! You, like, totally gotta save L.A man. Enter your name, then move your tank.
Use the left and right arrow keys to rotate, the forward and back arrow keys to move.
The barrel of the tank is the little black line. That’s the front.
No, your tank can’t fire. Avoid the mathematical blobs. YEAH!
The longer you live, the more points you get. A score above 100 is, like, totally AWESOME! Good luck Bro.
Let me know in the comments how much you score.
When writing object-oriented Javascript, there are two occasions when you need to be careful that this is set correctly: In inner functions and in callbacks.
Joshua-Michéle Ross at O’Reilly Radar writes about the money the American taxpayer (government) is giving Genera Motors, Chrysler and Ford to save them from bankruptcy:
In the prologue to The Science of Fear, by Daniel Gardner (published as ‘Risk: The Science and Politics of Fear’ in the United Kingdom, Australia and Canada), which I have just started reading, as he talks about the aftermath of the 9/11 terrorist attacks in the United States:
At work we setup a Twiki, and Internet Explorer refused to send the NTLM authentication, instead it showed a login popup.
Keithnote is a presentation generator. You provide information such as the title of your presentation, and it downloads relevant images from Flickr. These are stored locally so you can run your presentation whilst offline.
Keithnote is hosted at Google Code, here: Keithnote
For many months now I have been making and receiving telephone calls from my computer. There are two advantages:
I am running Ubuntu Linux on a Thinkpad, but most of this should apply to Ekiga on all platforms, and the principles apply to all Softphones.
Update: Five years after I wrote this, it is actually happening. Samoa Air boss defends charging passengers by weight on BBC News 2nd Apr 2013.
Update: Eight years after I wrote this, The Economist remarks In fact, on a purely economic basis, it makes sense to charge passengers by weight, since that is directly correlated with fuel usage, which goes a long way in determining flight costs in article 21st Oct 2016
When you send a parcel by air, the price depends on the volume and weight of that parcel. Volume, because you are buying a certain amount of space in the plane. Weight, because the heavier the plane’s cargo, the more fuel it takes to get it off the ground. You pay for the fuel to fly your parcel.
The pricing structure for air mail / air freight is closely linked to the costs faced by the airline.
When you travel with your parcels, a disconnect appears. You buy a certain amount of space – typically a seat for yourself, a small bag and one or two big bags. A bigger seat (‘business’, ‘premium’, etc) is more money. Extra bags is more money. But you’re not paying by weight – and I think that will have to change.
It’s hard for me to see why you’d bother having someone come all the way to an office just to sit in a cube and type.
When I first got my own server (a virtual private server with Linode which I highly recommend), I ran every Internet service I needed on it, and several for my friends.
If you really don’t want to watch it, read the transcript of Clay Shirky’s talk at Web2.
If you use Django with Apache, no doubt you have noticed lots of these lines in your log file:
As you probably know, the U.S.A. is electing itself a new president. The process is that each of the two parties elects their candidate, then they compete against each other. The four remaining Republicans vying for their parties nomination recently participated in a debate here in California. Here is the transcript of the Republican debate of January 30th 2008. It’s mostly standard political fare, until you get to the topic of immigration. Then, well, see for yourself:
Gamay, pinot noir, sangiovese, tempranillo, zinfandel, syrah, merlot, cabernet sauvignon, nebbiolo.
I have just spent a while wrestling with this problem, so in case anyone else comes across it.
The difference between a web site and an application is that an application is more dynamic, more responsive, to the user.
I have recently moved all my photos from a Gallery 2 instance I ran myself, to Flickr. This means I don’t need to keep my Gallery2 install up to date, it frees up lots of disk space on my server, and allows me to more easily share pictures with friends and family. Here’s how I did it:
Oscar Huseyin, via JavaLobby, has an interesting post on how much unit testing is good:
Over the years, l’ve read lots of commentary, white papers, best practice papers, books on the topic of TDD. I’ve heard the rant of many TDD evangelists who preach about how total code coverage brings you closer to code quality perfection and how you’ve failed when you’ve not been able to achieve these goals. Sure, this is an extreme example of evangelical preaching, where in actual fact, most of these individuals commonly drum down their hard line views of testing by using words like “pragmatism” and statements like “do what works best”. But, why do l feel as if I’ve failed if l have not got 100% code coverage? It’s because l, to some degree, shared some of the religious views about testing.
Update Sep 2011: If you’re using Google’s Go Lang see Non blocking console read in Go. Thanks Ostsol
Heavily updated 9th January 2008: This post was originally entitled Non blocking console IO is not possible. Two helpful comments helped me see the error of my ways. Many thanks to ‘schlenk’ and ‘Bob’ for the help. Non blocking console IO is possible, it just isn’t (easily) portable. Read on to find out how.
I have been doing some programming exercises in Python, Java and ActionScript (Flex), using this list from Prashant N Mhatre. The first exercise sounds simple on the surface:
Display series of numbers (1,2,3,4, 5….etc) in an infinite loop. The program should quit if someone hits a specific key (Say ESCAPE key)
Displaying a list of numbers in an infinite loop is trivial, and stopping on Ctrl-C is trivial, but stopping on a key of your choice (let’s use ESC), makes the problem much more interesting.
By default the console on Linux and Windows is buffered. It does not send you character data until the Enter key is pressed. In Python the raw_input method will block until it gets input. In Java you can test the characters available, non blocking, using System.in.available(), but this still doesn’t fill up until Enter is pressed. There are two ways to solve this:
An entry about using the XIFF API to get your Flex application talking XMPP. If you don’t know what I’m talking about no need to read on really.
Some definitions * XMPP is an open protocol for instant messaging, that runs the Jabber network and Google talk. * Flex 2 is a programmer-friendly way of developing Flash applications, using ActionScript 3, which looks a lot like Java. * XIFF is an ActionScript 3 API for XMPP.
If you put those three items together you get, yes, a paradigm shift in web based application development. But let’s not get fancy just yet (a later blog post might wax lyrical about the future of web apps), for now here are some recipes for doing just about anything with XMPP, ActionScript 3, and XIFF.
Update 2018: The excellent Our World In Data has a Causes Of Death section.
Do you remember how we were all going to die of Ebola, then S.A.R.S., and more recently Avian flu ?
Have you got the memo that the job creation program at airports is because Terrorism is such a big threat to your life ? In England at the moment you are, according to the media, at great threat from drug dealing teenagers, and anyone younger than you in general.
And yet, here you are, reading safely. So instead of tolerating idiots pretending to be journalists, I went looking for what we should really be wary of – what really does kill people.
Webapps are often built and managed by single person or small teams. For example, I run 11 sites and web apps, just in my spare time, on one virtual server. I need to know if that server is up. We need a lightweight, low/zero maintenance way to monitor applications and servers. Mainly we are concerned about presence of our application. Is it there ?
Where else does presence matter ? Why, in Instant Messaging applications of course. Currently we record presence of our friends in our messenger clients. Well, servers can be our friends too !
From the 9th to the 15th May 2004, I went on the Fundamental Bushcraft course with the Ray Mears School of Bushcraft, in the Kent countryside. Here’s what happened:
Most journalists, I assume, aspire to delivering the truth on what is really going on to the reading public.
Recently I had to automate printing a whole bunch of CVs on Windows. Having successfully avoided VBA my whole programming life, it was time to think fast. Thankfully Python has some win32com bindings, which allows you to talk COM to various Windows applications, and get them to print the documents.
First you need the Python win32com bindings.
The reason new world wines use the grapes they do, is because those are the grapes from the big French wines. But which grapes from which wines ? To find out, you could go to the Institut National des Appellations d’Origine and read the text of each appelation. There are over 300. Or there’s the Wikipedia list of French wine Appelations. Or there’s the handy guide below on which grapes are in which French wines. Happy sipping !
Some notes from a talk / taster I went to on food and wine pairing. It was led by Tom Forrest – and a very interesting and knowledgeable chap he is.
carriagereturn.org provides a daily dose of software engineering wisdom to your feed reader or e-mail client – it’s inspiring, thought provoking, and sometimes just plain dangerous.
I got the strangest email today, which I originally took to be spam. Read for yourself:
May 9, 2006 FOR IMMEDIATE RELEASE
Contact: mailto:EPDU@halliburtoncontracts.com Photos: http://www.halliburtoncontracts.com/EPDU/
HALLIBURTON SOLVES GLOBAL WARMING SurvivaBalls save managers from abrupt climate change
A web feed is, to quote Wikipedia:
… a document (often XML-based) which contains content items, often summaries of stories or weblog posts with web links to longer versions. Weblogs and news websites are common sources for web feeds, but feeds are also used to deliver structured information ranging from weather data to “top ten” lists of hit tunes. The two main web feed formats are RSS (which is older and far more widely used) and Atom (a newer format that has just completed the IETF standardization process.) Feeds are subscribed to directly by users with aggregators or feed readers, which combine the contents of multiple web feeds for display on a single screen or series of screens
Aggregators and feed readers are widely used, but mainly by tech-savvy individuals. It’s time your company rolled out a feed reader on every desktop PC it owns. Here’s why:
This is a write-up of my notes from Tom Coates’ presentation at the Future Of Web Apps (futureofwebapps) conference, held in London on Wednesday 8th February.
There was a mistake in the Javascript credit card generator, meaning it would not work on MS Internet Explorer or Opera.
These are the notes I took during Cal Henderson’s talk on Building Flickr at the Future of Web Applications conference in London on Wednesday 8th February.
These are the notes I took at Joshua Schachter’s talk at the Future Of Web Applications (futureofwebapps) conference, in London on Wednesday 8th February 2006.
If your live web application has more than a couple of users, and they don’t both sit right next to you, you need to cluster it.
I’ve written a small Python program I’m calling jUse which I’m placing here in the hope that someone might find it useful.
As you can probably tell from some of the comments in the credit card section, some people don’t seem to understand that the generator just makes numbers that look like credit cards, but are IN NO WAY actual credit card numbers.
by Jeff Elkins Interesting details are emerging regarding a wartime tiff between General Wesley Clark, former NATO Supreme Allied Commander and General Sir Michael Jackson of Britain, former commander of NATO “peacekeeping” forces in Kosovo.
CVVs, CVV2s, CVCs, and Indent CVCs are 3-digit Card Verification Values or Card Verification Codes that are all calculated using the same CVV algorithm.
Political violence, terrorism, military operations other than war (MOOTW), low-intensity conflict, people’s war, revolutionary warfare, war of national liberation, guerrilla war, partisan war, warfare in the enemy’s rear, imperial policing or small wars.
The term sea power covers the control of international trade and commerce, the operation of navies in war, and the use of navies as instruments of diplomacy, deterrence, and political influence in peacetime.
A maritime blockade, strategic bombing or guerilla warfare are coercive techniques to achieve a particular objective.
Although there is no judiciary or policing capability at the international level (aside from the limited actions and powers of the United Nations), there is a still an influential body of international law, respected almost all the time by almost all nations.
Strategy is the art of distributing and applying military means to fulfill the ends of policy – Lidell Hart
Commodities Commodities are anything that you can take physical delivery of, such as sugar, coffee, wheat, etc.
A derivative is a financial contract that is based on (derived from) something else, either another financial instrument (a bond, shares, currency, etc) or a commodity (sugar, coffee, energy, etc).
User interface design principles This is the basics to think about when designing a GUI, a website, any software with a user interface.
The best advice I have every been given was to take the highest paying job you can get until you figure out what you want to do.
??The term ‘Christian’ was first used in Antioch in Syria around 35-40 AD to designate a new religious community there which included both Jewish and non-Jewish adherents and was marked out by it attachment to ‘Christos’, a Greek translation of the Hebrew title ‘Messiah’, used by Jews to designate their expected national savior.
In England in 1388 Richard III made a law stating that all men (or only ages 10-18, versions differ) must own bows and practice archery on Sunday’s and holidays.
People grow vegetables or fruit in their gardens, and may keep chickens or other animals.
In many countries, pedestrian crossings have a button you press to signal your desire to cross.
Mum’s, over the course of being Mums, develop an extraordinary ability to manage a house, put up with squealing brats, multitask, remember a range of important unconnected information, and generally get things done under duress.
Everyone that runs a website probably gets some amusing e-mails, and because of the credit card numbers I probably get more than my fair share.