In former (?) actor Shia LaBeouf's latest performance art stunt, he will be taking calls at a mini call center:
The Hollywood star has set up his own call centre in the city's Fact gallery, where he and his two artistic collaborators will field calls.
They will be at their desks between 11:00 and 18:00 GMT from Thursday to Sunday.
Those wishing to touch LaBeouf's soul can call the trio on 0151 808 0771.
Others can visit the gallery to see the event unfold in person, or can watch a live stream and see notes the trio are making on Touchmysoul.net.
Get in touch.
http://www.bbc.com/cymrufyw/34985536
https://www.flickr.com/photos/126915334@N03/ (higher resolution, watermarked)
From Obama's prime time speech:
This is our strategy to destroy ISIL. It is designed and supported by our military commanders and counterterrorism experts, together with 65 countries that have joined an American-led coalition. And we constantly examine our strategy to determine when additional steps are needed to get the job done.
That's why I've ordered the Departments of State and Homeland Security to review the visa waiver program under which the female terrorist in San Bernardino originally came to this country. And that's why I will urge high-tech and law enforcement leaders to make it harder for terrorists to use technology to escape from justice.
It sounds like Obama may be taking a U-turn. The Second Crypto War isn't over yet.
Canadian Liquor Stores Want You to Be Able to Buy Weed with Your Six Pack
Liquor stores in British Columbia and Ontario want to start selling weed once it becomes legal in Canada.
The two unions representing BC's public and private liquor stores announced a partnership this week—the Responsible Marijuana Retail Alliance of BC—through which they're advocating to sell recreational pot at retail locations by next Christmas.
Their logic seems to be that liquor stores already sell a controlled substance that gets people fucked up, so adding weed to their mix just makes sense.
"Just as with alcohol, there are legitimate concerns about access to marijuana by youths. Our stores are an over-19, age-controlled environment and our industry has demonstrated the strongest compliance with identification checks," said Stephanie Smith, president of the BC Government and Service Employees' Union, which represents the province's 200 public liquor stores.
It would also be cost effective. Because liquor stores already have a warehousing and retail system in place "there is no need to reinvent the wheel," she said.
Last month, Warren "Smokey" Thomas, head of the Ontario Public Service Employees Union, which represents LCBO employees, said LCBO outlets would be ideal weed retailers because they already have "social responsibility" covered.
"They do age checks, they do refusals if somebody's intoxicated."
[...]
Lobbyists, in Strategy Session, Conclude That Refugee Crisis “Helps Us” Defeat Regulations
In an audio recording of a strategy session obtained by The Intercept, major trade association lobbyists discussed how the refugee crisis has changed the political dynamics in Washington to their advantage.
In the conference call held last week, lobbyists representing a number of high-polluting industries agreed that the battle between Congress and President Obama on refugee policy will give them the cover they need to attach a legislative rider to the omnibus budget bill that rolls back newly expanded clean water regulation.
“I think that probably helps us,” one participant said, referring to the coming confrontation over refugee policy.
[...] “We’re suddenly not the big issue,” said one call participant. “I mean, this is all going to turn on refugees.”
“I think that helps us,” said another call participant. “I think it helps us with the White House being on defense,” another legislative strategist on the call said.
The remarks were made during a political strategy call hosted last week by energy utility industry lobbyists. A recording was sent to The Intercept by someone on the call.
Coal CEO Thanks Lamar Smith, Asks Him to Expand Probe of Climate Scientists
Koch "Alliance" on Criminal Justice Reform Exposed as Trojan Horse
How the Gates Foundation Reflects the Good and the Bad of "Hacker Philanthropy"
I've been planning the architecture and design goals of the first to-be-public release of SubLinux for about half a year.
SubLinux is the personal XFCE i586+ distro I built from source, and from which I am writing this. Generally, only me, family and friends are ever given copies of SubLinux. Source for SubLinux 1 has been lost.
Some background
SubLinux 1 was released in mid-2012, and was also an i586 distro. However, it had many severe flaws, and while functional, bugs were often encountered. It had a busybox/GNU hybrid userland, and while efficient, this frequently caused problems with software compilation. It was a small system, less than 2GB big once installed. It came with the Midori browser.
It was mostly used as a Fedora substitute on machines with no i686/CMOV support, and on thumbdrives as a portable system.
It used the syslinux bootloader instead of GRUB, which is used by most distributions. It did not support UEFI.
SubLinux 2 was released in early 2014, and has replaced Fedora on all of my desktops, excluding my server.
It's also i586-based, but has a true GNU userland. It shipped with XFCE 4.10, but has since been upgraded to 4.12, and has had numerous kernel upgrades. It has no package manager, was built from source, and provides both a PAE and non-PAE kernel. Unlike SubLinux 1, it has debugging symbols stripped from all binaries, yet provides both static and shared libraries of all system libraries, and all headers are present at installation, and thanks to the stability of the GNU userland, SubLinux 2 has proven to be an outstanding system for software development. It has a GCC 4.8.2 based toolchain. Like SubLinux 1, it also uses the syslinux bootloader. SubLinux 2 does not support UEFI. Systems wishing to use it must boot in "legacy" mode.
Moving forward
There are a handful of reasons I want to make SubLinux 3 a public, supported distribution.
* I am spoiled now that I've had a distribution that suits my tastes precisely, and I'd like to share it with the like-minded.
* It will showcase my Epoch Init System, my anti-systemd vaccine.
* There is a lack of distributions with the desired "vibe" of freedom, catering to power users, and enabling development.
Major design goals:
* Support for both i586 and x86_64, possibly in one single build, with the userland being primarily i586, but containing all libraries necessary to execute x86_64 code, and providing an optional x86_64 kernel. This would guarantee that no matter which system you boot it on, it will indeed boot. And, if the system supports x86_64, such applications will be able to run.
The compiler toolchain should also support both i586 and x86_64.
* Great for development, making it easy to deal with a large variety of programming languages.
* Vanilla software, only adding patches to software that are required to compile it. This includes the kernel.
* A complete graphical desktop, probably XFCE.
* Includes other power user tools, like terminator, isomaster, etc.
* No unnecessary duplicate applications in the default installation. One that runs in the CLI, one that runs in GUI. For example, mousepad will be installed, but leafpad will not.
* Efficient, with a focus on keeping system resource usage down to a minimum while still providing the aforementioned complete GUI and desktop.
* Annual release, with updates provided over the internet periodically.
SubLinux 3 will be a desktop-oriented distribution, with a full GUI. It will, again, include all development related files (excluding complete source) in each default package, so you'll never need to install some "-devel" package. And like SubLinux 2, it will include both static and shared libraries for every package. It will likely ship with XFCE as the default desktop, and will rely on (me-endorsed) community builds for other desktops. And that's where our next piece of the puzzle comes in.
packrat, a new package manager
I've been writing a package manager called packrat. It has one major design goal: Make it really easy to create packages.
As a consequence of this, it does not include dependency resolution support, making it similar to Slackware's package management scheme. You can, at present, in the unstable builds of packrat, create a package with one command. It uses tarballs for storage, and has metadata and sha1 checksum file verification. Packages will likely not support signing.
It will support downloading "action lists" from the internet for updates and deprecations, and will include a *built in* GTK frontend, eliminating the need for 3rd party tools for graphical package management.
That's about it for now guys. I'll let you know if I come up with any other brilliant ideas. :^)
-Subsentient
Laptops
Storage
Consoles
Categories
Articles
I've recently done some touchups to my SubStrings library, and have reminded myself of my own undying glory, er, I mean, come to the conclusion that it's useful enough to warrant me advertising it a little bit. I use it in a large percentage of my projects nowadays. I thought I'd showcase part of what makes it awesome to me.
Before we begin, there is one thing I must mention: SubStrings is only designed to work well with null terminated strings only. It's almost certainly unsafe to use it for anything else.
And, one last thing: This is indeed a C library, written in C89 and works in C. The OOP appearance, such as SubStrings.Length(), is function pointer trickery for cleanliness' sake. SubStrings is also a non-hosted library, meaning it has no dependencies, and can thus even be used in your bootloader's source code.
String copy and concatenation, truly safe
SubStrings copy and concatenation functions have precise bounds checking, and always result in a null terminated string, and, if the size parameter is given accurately, SubStrings never has buffer overflows. Let's illustrate.
#include "substrings/substrings.h"
void MyFunc(void)
{
char Array[1024];//So, the maximum string data copied will be sizeof Array - 1, so there is room for the '\0'.
SubStrings.Copy(Array, "My string is awesome!", sizeof Array);/*SubStrings.Cat's size parameter needs to be the *maximum capacity* of the destination. You don't need to subtract from
the max size each iteration of a loop. SubStrings knows how to do it.*/
SubStrings.Cat(Array, " And it merges really nice too!", sizeof Array);
}
strcpy and strcat() are in general, unsafe, and strncat and strncpy have differing and confusing behavior. SubStrings eliminates these problems with one consistent approach for concatenation and copy operations.
All the necessities provided
SubStrings also provides all the other functions you might want for basic string operations, including Length(), Compare(), NCompare() [analogous to strncmp()], Find(), and CFind() [Find a single character], and FindAnyOf() [Analogous to strchr()].
Find() and CFind() accept another, new argument, allowing you to directly request the N-th occurrence of the matching string/characters. There is also IsLowerS, IsLowerC, IsUpperC, and conversion functions like LowerS, LowerC, UpperS, and UpperC.
In general, functions ending in S deal with strings, and functions ending in C deal with single characters.
High level stuff is here too
Some of the cooler stuff is stuff you might expect to find in Python.
Stuff like StartsWith, EndsWith, Replace, Strip, Reverse, and StripLeadingChars and StripTrailingChars.
And some original ideas too
There are other functions, like Extract(), which pulls the string content that's in between two sequences.
Let's have an example.
#include "substrings/substrings.h"
int main(int argc, char **argv)
{
int Inc = 1;
char Buf[256];for (; Inc < argc; ++Inc)
{
if (SubStrings.StartsWith("--config=", argv[Inc]))
{
SubStrings.Extract(Buf, sizeof Buf, "=", NULL, argv[Inc]);
DoSomething(Buf);
}
}
}
What's happening here is that Extract is pulling the data that starts after the =, and since the next parameter is NULL, it reads on until the end of the string. This makes handling command line arguments marginally simpler.
There's other goodies, like SubStrings.CopyUntil(). Let's take a look.
#include "substrings/substrings.h"
void MyFunc(void)
{
const char *const String = "Wibble[END]Nurble[END]Aburble[END]Farts";
const char *Iter = String;
char Buf[256];
while (SubStrings.CopyUntil(Buf, sizeof Buf, &Iter, "[END]", true))
{
puts(Buf);
}
}
This produces the output:
Wibble
Nurble
Aburble
Farts
I actually find myself using CopyUntil and its sister function CopyUntilC quite often. Then there's SubStrings.Line.GetLine(), which is a specialized CopyUntil that helps with processing multi-line C strings.
Lastly, there's another useful function, Split().
#include "substrings/substrings.h"
void MyFunc(void)
{
const char *String = "Gerbil|Wibble";
char One[256], Two[256];SubStrings.Split(One, Two, "|", String, SPLIT_HALFONE);
}
Now, One[] contains "Gerbil|" and Two[] contains "Wibble". You can specify to discard the split tokens, or put them in half one or two. The options are SPLIT_NOKEEP, SPLIT_HALFONE, and SPLIT_HALFTWO. Because Split() doesn't ask for buffer sizes for the sake of convenience, the way to do it safely is to make sure that both One and Two will be able to hold the entire length of String, if needed.
This library is getting more touchups. You can find the github here, and the SubStrings homepage here.
Thoughts, ideas or suggestions? Let me know.
Didn't watch this time. Ben Carson sure is popular isn't he?
Wikipedia
Fireworks Fly In Unruly Third GOP Presidential Debate
Four Republicans Battle For Attention At Undercard Debate
PolitiFact
Bizarre, campy song explains China's 13th 5-year plan
Song (low information content)