Business Ownership is the most rewarding professional aspect of any woman's life. We are the best managers, administrators, teachers, students, presenters and we are packed with passion for the things we love. I have owned and operated Home Based Businesses since the age of 18. My children have helped me with packaging, marketing, presentations and of course cashing my checks! It inspired them to develop their own additional businesses even though they work or go to school full-time. If you've never considered Owning a Business as something that you could do then I'm here to show you that the world is your oyster.
10. It's a great example for your children that a woman can have her own business and take care of her family simultaneously.
There are typically 2 main methods of creating business ownership; the first is the traditional method in which YOU are the CEO/Founder and the second is that you partner with another company via a licensing fee to build a business under their umbrella (MLM, Network Marketing, Franchises etc.). I have done both and would encourage either based on your product/service, capital, target market and financial goals. Home Based businesses will always require less overhead than traditional brick and mortar establishments.
I've often been asked how I would qualify a company's potential for providing the maximum financial success. Here are my 5 qualifiers before I choose to partner with anyone.
1- Do they have a PRODUCT that meets a consumer need?
2- Do they have the PEOPLE in place to make the business function?
3- Do they have the LOGISTICS in order to meet all legal parameters?
4- Do they have a legitimate MERCHANT who can handle customer service, credit card purchases, returns etc.?
5- Do they have the IT INFRASTRUCTURE to support their websites, videos, marketing etc.?
So now that you have the basic understanding of the Value of a Home Based Business, why it is GREAT for Women (especially busy ones) and how to choose a partnering Company with a good foundation – WHAT IS HOLDING BACK? Feel free to contact me if you would like more support before making final decisions in beginning the Home Based Business process.
Watch this slide show of some of the most successful women in business.


text:
Home > OS News > Rust-based Redox OS 0.0.6 Released
Rust-based Redox OS 0.0.6 Released
Guest post by jokkel 2017-01-04 OS News 27 Comments
Redox OS, a microkernel OS written in Rust, hast just released version 0.0.6, which includes bug fixes and and update to Rust.
From the project's 2016 in review post:
Today, we have a pretty mature project. It contains many core, usable components. It is already usable, but it is still not mature yet to be used as a replacement for Linux (like BSD is), but we're slowly getting there.
The kernel was rewritten, a memory allocator was added, rendering libc out of the dependency chain, several applications were added, a file system were added, a window manager and display server was implemented, and so on.
drstorm
It's called Redox…
Alfman
There's an interesting side discussion in the redox forum about the license that the OS should take on, whether to go with MIT or GPL:
https://www.reddit.com/r/rust/comments/5klu34/funding_redox_os_devel…
I personally work on many commercial projects that reject GPL libraries, for better or worse. However that resistance is usually for userspace libraries. For operating system code, I don't see much resistance since it doesn't impose limits on userspace.
oheoh says:
I don't want to donate money to help make what ends up as proprietary software in a device made by the next apple or samsung.
I kind of agree with him, it seems unfortunate that apple has not given back as much as it took from the BSDs. Of course they're under no obligation to because of the license, but it does seem fair to say the license enriched apple more than the BSD project. There could be more companies that took BSD code and never contributed back because they're not obligated to.
While I understand why many people dislike the viral nature of copyleft, it still seems evident to me that the GPL has benefited linux greatly with all kinds of companies submitting code updates back to linux. The thing I think linux made a mistake with is in failing to be "GPL2+" instead of just "GPL2", since that limitation is having negative repercussions and makes it virtually impossible to upgrade to GPL3 at any point in the future.
Hopefully I'm not stirring the hive too much with a religious licensing debate But I think some people here on osnews might have some informed opinions.
teco.sb
But I think some people here on osnews might have some informed opinions.
I, personally, think it's a matter of opinion. I contribute to free software projects and prefer to contribute to GPL licensed software for a very simple reason: I put the work in, and these are my terms. I don't ask for money, or recognition, or any such thing, instead, I want my work to remain available to anyone that wishes to use it. However, I can totally understand why projects like libogg/libvorbis, libopus, etc choose a BSD/MIT style license. They are not writing code as a hobby, these are reference implementations.
As for what Redox should do, I think it's up to the developers. It's definitely one of those choices that will stay with you 'til the end (see your example about Linux).
teco.sb,
As for what Redox should do, I think it's up to the developers. It's definitely one of those choices that will stay with you 'til the end (see your example about Linux). [/q]
Of course… I did not make it clear that it is the lead developer himself who is actively soliciting input in the link earlier:
I have a few questions then, open to anybody:
How many people would only donate if the code were GPLv3?
How many people would only donate if the code remains MIT?
And, if willing to specify, how much would your donations be?
The questions imply that donations may play a role in deciding the operating system's license choices going forward.
Aside: I had no idea John Goodman was a fan of robust alternative operating systems!
http://www.redox-os.org/donate/
[q]The following patrons have donated $4 or more to Jackpot51 for use in developing Redox OS:
FlyingJester
I'm interested in what ways Apple hasn't given much back to the BSDs.
On the one hand, they use a totally different driver setup than any BSD, and a lot of their very low-level OS stuff is more Mach than BSD.
On the other hand, they do supply all the code you need to get a working XNU kernel (which can replace the one OS X ships with) including all BSD code needed, and all of the BSD-portions of their userland. Not to mention that the ZFS port in FreeBSD is in part Apple's handiwork.
FlyingJester,
I'm interested in what ways Apple hasn't given much back to the BSDs. [/q]
It just seems that apple is always absent from corporate sponsorship that open source projects depend on. I can't find any evidence that apple has ever helped provide financial support to the open source projects they incorporate into apple products, but do let me know if I'm wrong about this.
https://www.freebsdfoundation.org/donors/#inkind
Netapp, juniper, arm, facebook, netflix, google, vmware, microsoft, sandisk, cisco, (and many more)…I skimmed through the 3 years for which they publish data, but I never see apple. Did I just miss it?
http://www.itworld.com/article/2832144/it-management/citizen-apple-…
You bring up source code contributions, but even then I wouldn't give apple high marks as a team player. They take a lot of code to fulfill their immediate needs and then totally drop the ball. In the words of rleigh:
http://www.osnews.com/thread?638853
The base system, tools and libraries are often quite outdated. Much is years old; some tools are over a decade out of date. There are bugs and missing features which were fixed and added to FreeBSD in 2007 which they still haven't picked up! All the core FreeBSD stuff should be being synched, but it isn't. They could be doing this for every release, but they aren't. The base stuff is stagnating, as is a lot of the stuff layered on top. It's becoming increasingly incompatible with the rest of the world as a result. The wilful neglect here is appalling, particularly since it would not even take a single full-time developer to keep up to date–it's not like they are even writing code, it's simply pulling it from elsewhere and integrating it. Given the company's size and resources, this is quite pathetic.
I don't really know what went down with apple and ZFS, but they allowed it to fall apart, unfortunately.
Anyways, this topic should be about redox instead of apple, so with that in mind I'm going to abruptly segway to TFS, which is a redox file system based on ZFS
https://github.com/redox-os/tfs
[q]TFS (abbrv. Ticki's File System or The File System) is a file system loosly based on ZFS, but with improved features. TFS includes support for O(1) snapshotting, caching, error correction, compression, and more.
It was originally designed for Redox OS, but will work on Linux and BSD too.
In contrary to ZFS, which TFS takes a lot inspiration from, TFS fixes certain flaws ZFS had:
TFS is not monolithic: It is based on a stack of disk drivers, each making up disjoint components. This makes it easy to maintain and implement.
TFS is disk-centric: TFS puts a lot of effort into handling as much of the raw bytes without semantic information as possible. This gives great performance and simple code.
TFS puts greater emphasis on memory caching: This can improve performance significantly.
TFS has much improved file monitoring: inotify and friends are all hacks. TFS provides a integrated solution to file monitoring.
TFS puts even more emphasis on compression: TFS has built in random-access compression.
OSX (and NextStep before it) has always been severely misunderstood. It has always been a mach-like system, with BSD-elements borrowed mainly for the Unix personality part of the system, and plenty of GNU stuff laying around thrown in for good measure (although they've moved away from a lot of it in the past few years). Yet many people, especially in the FreeBSD camp from my experience, see it as a mutated FreeBSD.
Rugxulo
There are still developers who intentionally close sources or restrict freedoms of permissive software derivatives. Even if it gives them zero noticeable advantage, they can't be swayed. However, a GPL project that is non-portable, hard to build, and unmaintained isn't much better off either.
If someone wants to help a project, they'll find a way, regardless of license. And similarly if someone wants to remove functionality or kill a port to an unpopular platform, nobody can stop them. The ideal that GPL somehow makes us better, more cooperative people isn't justified.
Software licensing should be pragmatic and generous, hands off, trying to solve a concrete problem, not an excuse to annoy others.
So, long story short, I'm disinterested in licensing because it shouldn't matter (although I prefer free). If there's no obvious advantage to doing so, there's no reason to be restrictive. I'm not a lawyer, and I'm not interested in arguing. I want to solve actual problems, help actual people, not have a legal standoff.
Maybe I expressed myself badly, but my point is that licensing is usually the least of our worries. It's an uphill battle no matter what you choose.
Drumhellar
I kind of agree with him, it seems unfortunate that apple has not given back as much as it took from the BSDs.
What do you mean? All the BSD components that Apple used ended up in their open source projects, including the XNU kernel, which is still open. While it has been a while since they used a merged a recent version of the FreeBSD kernel in with XNU, the two have diverged enough that any changes Apple makes wouldn't necessarily be easy to port back to FreeBSD anyways.
There are a number of other pieces of software they created that are opensource under permissive licenses, too. LLVM/Clang is one (Not technically created by Apple, but they've been footing the bill for the creator and a whole team to work on it full time since 2005), mDNS, GCD, and others. A lot of OSX-specific tech is open source, too, such as launchd.
Writing kernels is WAY beyond my level of knowledge, however, I think microkernels are a much better choice than the monolithic/modular kernels we have to deal with today. I just don't understand why this design won out over something simpler and more manageable, like a microkernel. I sure hope this project moves forward.
I'm still hoping we will, one day, see a seL4-based general purpose OS.
Writing kernels is WAY beyond my level of knowledge, however, I think microkernels are a much better choice than the monolithic/modular kernels we have to deal with today. [/q]
A micro-kernel isn't simpler, it's more complex. Roughly, it's similar code doing similar things, but with the additional complexity of isolation between pieces and communication between isolated pieces.
The benefits of micro-kernels all come from that isolation – better security, better debugging, easier to implement fault tolerance, etc.
Note that this tends to also influence the OS developer's stance on proprietary drivers (untrusted proprietary drivers running in user-space is far less concerning than untrusted proprietary drivers running in kernel-space); and the OS developer's stance on proprietary drivers influences (some) hardware manufacturer's and (some) software developer's willingness to support the OS.
[q]I just don't understand why this design won out over something simpler and more manageable, like a microkernel. I sure hope this project moves forward.
The reason for this is that most micro-kernel developers are incredibly stupid and make decisions that guarantee failure before they even write a single line of code.
To understand this; first you have to understand (what I'll call) "The OS Developer's Dilemma".
An OS without applications is useless. If you port applications from some other OS then it's virtually impossible to show that your OS is better in any meaningful way – it ends up being the same applications with all the same (user-visible) features as a more mature OS (that is faster and more stable and has better hardware support because it is more mature). If you don't port applications from some other OS then you have to write a huge number of applications and that's going to take multiple decades. This is the "The OS Developer's Dilemma" – you have to choose between being screwed and being screwed, and it's extremely difficult to avoid the consequences regardless of your choice.
For micro-kernels this becomes worse. The isolation between pieces causes additional communication overhead. If you port software from some other OS, then that software (and the APIs and libraries, etc it uses) will not have been designed to mitigate the communication overhead. What you'll be left with is poor performance, plus a trivial way for people to do "apples vs. apples" benchmarks (e.g. same application on 2 different OSs) that "prove" that the micro-kernel sucks because performance is worse; combined with no sane way to show any advantages, partly because the advantages can't be benchmarked and compared easily (how can you benchmark security?), and partly because ported software won't take advantage of any of the OS's advantages itself.
Essentially; for micro-kernels "The OS Developer's Dilemma" becomes a choice between being extremely screwed and being screwed. That is where most micro-kernels fail – they choose to avoid being screwed (the need to write a lot of applications, etc) and instead choose to be extremely screwed (and port applications and support APIs designed for *nix that are inappropriate for a micro-kernel); and the end result is that they are doomed before they start.
– Brendan
Kebabbert
This was the weirdest thing Ive read today.
A micro-kernel has much fewer lines of code, so you can reason about it mathematically. You can not do that with a large kernel. That is the point of L4 kernel, you can not prove things unless it is a micro-kernel – because you want to reduce the complexity. So you are wrong. A micro-kernel is simpler, because it has fewer lines of code. The more code, the more complex.
A micro-kernel on it's own is far less code than a monolithic kernel; but a micro-kernel on it's own it's also completely useless.
A micro-kernel plus all the drivers, file systems, services, etc that are necessary to make it actually useful adds up to more code (and more complexity) than a monolithic kernel with equivalent functionality.
This is a very interesting discussion; I like the way you lay out "The OS Developer's Dilemma". I definitely agree: a new general purpose OS isn't going to be terribly useful if it doesn't support existing software APIs, but once it does those APIs will get used almost exclusively and all the other native features that make the OS unique will go largely unused regardless of merit.
Can I just ask why you assert that a microkernel involves more code/complexity? I'm not claiming it's right/wrong, I'm just having trouble seeing why it would be intrinsically true. Obviously microkernel calls will have to traverse the kernel barrier, but it doesn't seem self-evident to me that this in and of itself increases the programmer's code/complexity compared to macrokernel calls that don't traverse the barrier.
Clearly, for performance reasons, a micro-kernel favors message passing compared to numerous function calls, which has an impact on complexity, but that's not necessarily exclusive to the kernel type and conceivably one could develop kernel module APIs that work under both macro and micro-kernel with nothing more than a recompile, in which case they'd be equal complexity. So in this way complexity isn't dictated so much by macro/micro kernel but rather the design of the API.
What do you consider kernels where the isolation is enforced by managed programming language semantics rather than CPU memory barriers (such as singularity or JX)? Is that a micro-kernel, macro-kernel, or something completely different? It's an interesting question because it has all the isolation properties of a micro-kernel yet runs in a single address space with no CPU transitions.
Can I just ask why you assert that a microkernel involves more code/complexity? I'm not claiming it's right/wrong, I'm just having trouble seeing why it would be intrinsically true. Obviously microkernel calls will have to traverse the kernel barrier, but it doesn't seem self-evident to me that this in and of itself increases the programmer's code/complexity compared to macrokernel calls that don't traverse the barrier. [/q]
The first part is the actual mechanics of communication. For this, you can compare it to calling "foo()" where "foo()" is in a dynamically linked library and tools (e.g. the code that does the dynamic linking) ensures that the data types, etc match; and sending "FOO" using (e.g.) sockets where the receiver has to figure out what the request is and if it's well-formed before it can call its internal "foo()" function (and similar in the opposite direction for the reply). Typically you end up with some kind of "switch(message->type) { …." at every place that receives messages.
The second part is security (e.g. what prevents a malicious user-space program from pretending it's the kernel and sending a message to a driver?). There's multiple different approaches to this, but they all add some complexity.
The third part is tricks to mitigate the overhead. This includes things like bundling multiple requests into the same message (to amortise the "per message" cost), asynchronicity (to decouple task switching from send/receive), etc.
Then there's boot code. When there's no drivers in the kernel (to load drivers from disk or network) you have to figure out an alternative (some sort of "initial RAM disk") and your boot code has to provide that. When there's no video support built into the kernel (to display error messages that occur during kernel initialisation) you need to figure out an alternative (boot code displays error messages before and after kernel is started, and then some sort of "hand off" when a video driver takes over later during boot). For a monolithic kernel you can mostly just slap whatever you need into the kernel as you go and don't need to do much planning. For micro-kernel, you have to plan your boot code carefully because kernel can't/shouldn't do much itself.
[q]What do you consider kernels where the isolation is enforced by managed programming language semantics rather than CPU memory barriers (such as singularity or JX)? Is that a micro-kernel, macro-kernel, or something completely different? It's an interesting question because it has all the isolation properties of a micro-kernel yet runs in a single address space with no CPU transitions.
As far as I'm concerned, for most OSs there's some sort of isolation between "user-space things" and "kernel", and that could be hardware isolation (e.g. CPU's MMU) or software isolation (e.g. managed language) or some mixture of both. The difference between monolithic and micro-kernel is which pieces are isolated (e.g. if drivers are isolated from kernel or not) and has nothing to do with how they're isolated (MMU, managed language, …).
To follow up on Alfman's question and your responses, how is any of what you described different from the current crop of modular kernels? True monolithic kernels no longer exist, all the large projects have moved onto a modular design, where the kernel loads code at runtime.
The second problem you describe also exists when loading a modular kernel loads a module. Except that now, that code will be running in kernel-space, as opposed to user-space. How is the micro-kernel approach more complex than the modular-kernel approach?
The boot problem you describe also exists on modular-kernels. As a matter of fact, the Linux kernel has shipped with initramfs support for years exactly so they can work around this problem.
As for the other 2 problems you mention, I think you have valid points. However, I would argue these problems you are describe do not add complexity to the individual pieces.
Since micro-kernels are separated into smaller pieces and each one of those pieces are independently simpler. As an example, take a look at the DragonflyBSD kernel and what they've done in order to better support SMP (https://www.dragonflybsd.org/docs/developer/Locking_and_Synchronizat…). How is all that mess less complex? As another example, the Linux kernel, until recently, had that big kernel lock (https://kernelnewbies.org/BigKernelLock).
I just don't think the issues you listed are any better in modular-kernels. Maybe different, but not better.
acobar
What about context switch? From what I heard, it used to be the main thing hurting micro-kernels performance because of the high cost of message passing between kernel mode and things done on user mode. I know that a modern CPU does lots of tricks to mitigate the cost of context switch but most optimizations are done for things not crossing the address space in use, which is, unfortunately, constantly swapped on micro-kernels.
As far as I understand, the context switch overhead is only a real issue for the first generation micro-kernels, like Mach. New micro-kernels have negligible IPC costs.
Paragraph 3 of this section explains a little about what they do now:
https://en.wikipedia.org/wiki/Microkernel#Inter-process_communicatio…
To follow up on Alfman's question and your responses, how is any of what you described different from the current crop of modular kernels? True monolithic kernels no longer exist, all the large projects have moved onto a modular design, where the kernel loads code at runtime. [/q]
Modular kernels use dynamic linking, which is essentially a normal function call except that it's been patched when the module was loaded. You can't call a function that doesn't exist (you'd get linking errors). You don't need extra "switch(message->type)" code to determine which function you're calling. I explained this already.
No. Imagine you've got your bank account details stored in a file on a file system. Somewhere inside the monolithic kernel there's some file system code containing a function that can read that file. User-space can not call this function directly. It can only call kernel's API (which calls the VFS layer, which does permission checks, and then might call the file system code's function after the checks are done). The file system code knows that it can only be called by kernel and can't be called by user-space, so it needs no additional security checking.
Now imagine it's a micro-kernel and the file system code (and the VFS) are just normal processes. The file system code receives a "read file request" message. Did this request come from the VFS (after VFS did file permission checks), or did it come from a malicious application that's trying to bypass the VFS (and bypass the file permission checks)?
There are 2 basic ways to handle this sort of security problem. Either the receiving process is responsible for it and has to do its own additional security checks (e.g. was the message sent by someone I trust?), or you have additional stuff in the kernel to control who can/can't send which messages to what. That is the extra security stuff you need for micro-kernel that doesn't exist in monolithic.
No. For monolithic you can literally just slap crap anywhere you like whenever you like without thinking much about it (and that includes adding support for "initramfs" as an afterthought 10 years after you started writing the kernel). You don't have to (e.g.) plan for and support "initramfs" from day 1.
I think that's where you're going wrong. You're looking at the complexity of one little piece and comparing it to the complexity of a whole system; and you're not comparing the complexity of "all pieces plus the communication necessary to form a whole system" to a whole system.
[q]Since micro-kernels are separated into smaller pieces and each one of those pieces are independently simpler. As an example, take a look at the DragonflyBSD kernel and what they've done in order to better support SMP (https://www.dragonflybsd.org/docs/developer/Locking_and_Synchronizat…). How is all that mess less complex? As another example, the Linux kernel, until recently, had that big kernel lock (https://kernelnewbies.org/BigKernelLock).
How about if I chop your arms and legs off, then isolate them by mailing each one to a different country, then build an international system of pumps and control logic to keep them working while they're separated from your body, and then tell you it's simpler like this (because if I ignore everything except one leg, that leg seems simpler than an entire "monolithic human")?
For Linux SMP and locking, they added it to every piece – the memory management, the scheduler, the VFS, the file systems, the entire network stack, and about 500+ drivers. You're comparing this work to adding SMP and locking to a micro-kernel alone (and not the VFS, and not file systems, and not the entire network stack, and not 500+ drivers); and then saying "only doing tiny fraction of the work is easier".
As a quick example of why modular kernels are not the same at all as microkernels, in kernel-space something to the effect of this is possible:
for(unsigned long i = 0; i < 0xFFFFFFFFul; i++)
((unsigned char*)NULL)[i] = 0u;
You could load code that does something similar to this in any kernel module. If you don't know C, that simply sets all memory for the first four gigabytes to zero.
A microkernel would issue a segfault to the module, and then either the system would gracefully shutdown, or if the module was not essentially (say an FS driver, a networking or audio stack component, etc), it would be restarted.
Either way, there is no recovering from something equivalent to those two lines of code running in kernel space.
You've got an off by one bug there. The loop only sets four gigabytes minus a byte because it terminates before the byte at 0xffffffff is set.
Just being pedantic
(I often resent that C/C++ don't support numeric overflow flags.)
Yes; and a micro-kernel can be far easier to debug because of this.
More fun would be a dodgy/uninitialised pointer in code that is only executed occasionally. For monolithic it could take weeks just to figure out which module is actually causing the problem (while everyone is blaming other things – e.g. the things that get their data mangled by the bug). For micro-kernel, at a minimum you'd know exactly which module to blame, and there's a much higher chance that you'll get a nice page fault telling you which instruction is writing where it shouldn't.
I'm trilled we have a technical discussion going, you have no idea
The first part is the actual mechanics of communication. … Typically you end up with some kind of "switch(message->type) { …." at every place that receives messages. [/q]
It's a good observation, I guess this depends on the exact implementation of the syscalls. Linux obviously uses a case switch for userspace, but if you use a task-gate, you don't need to do that at all. On the other hand, task-gates are not the most efficient mechanisms for a microkernel to use.
I think we need to distinguish between inherent complexity versus complexity deriving from performance optimization. So, for the purposes of this discussion is it fair to narrow your assertion down to "optimized microkernels" being more complex?
I'm currently pondering whether a function lookup table is actually more complex or merely different, however I'll err in your favor and say it is more complex. Never the less, with proper support from macros and the language, I think it should be possible to hide the fact that a switch mechanism is being used at all, and just like most programmers don't really care about assembly language under the hood, they wouldn't need to care that the calls are being 'switched' rather than 'called'.
I'm pretty sure you will respond by saying that this is merely moving the complexity into the language/tooling, which is true. However this is a one time cost and the complexity can be hidden from future kernel developers, much like the macros used in linux kernel modules to hide complexity.
Yes, it needs to be solved, but I don't think it has to be more complex than the macrokernel case where insmod needs to be protected. For example "if (uid!=0) die('no soup for you…');" The implementation of this check might have to happen at different points, but IMHO it's not really more complex.
If you want finer grained security controls, obviously you can do that with a microkernel and that will definitely add complexity, however this is above and beyond what a macro kernel can do so it would no longer be an apples to apples comparison. In other words, this additional complexity is only needed to get additional security.
Yes absolutely, synchronous calls are definitely the weak point for microkernel performance. Batched asynchronous calls can eliminate all the microkernel overhead (and maybe even perform better than in-kernel synchronous calls), however there's no denying that asynchronous programming is very different. I wouldn't say it's more complex than multi-threaded programming, however as a substitute for synchronous calls it is undeniably more complex.
Vector operations can be done efficiently in a microkernel, but using them tends to makes everything more complex.
https://linux.die.net/man/3/readv
I would like to see research in this area, such that simple code could automatically be converted into vectored code. We have this to an extent with SSE compiler optimization, but I wonder if the same thing might be done with higher level operating system constructs. Obviously we're not there today.
I'll defer to teco.sb's response, since I agree with him that it's practically the same as the modular macrokernel case.
[q]The difference between monolithic and micro-kernel is which pieces are isolated (e.g. if drivers are isolated from kernel or not) and has nothing to do with how they're isolated (MMU, managed language, …).
The interesting thing is that with managed language solution, there's no overhead for the isolation. It's a free bi-product of how managed languages work.
I'm trilled we have a technical discussion going, you have no idea [/q]
The communication is in addition to the syscall stuff (and not instead of the syscall stuff). For example, your kernel API might have a "sendMessage()" function and a "switch(function_number) { case API_SENDMESSAGE: " to determine which syscall it is; and then the receiver of the message may have an additional "switch(message->type) { …." to figure out what the message it received is actually for.
Of course (hopefully) the kernel's "switch(function_number)" ends up being a jump table – e.g. determine if the function number is within a valid range, then "jmp [table+rax*8]".
Note that I think you meant "call gates" rather than "task gates" (although both are technically possible).
No. For equivalent kernels (same amount of optimisation, same features, etc); a monolithic kernel is simpler than "micro-kernel plus all the stuff monolithic kernel has that micro-kernel doesn't". In other words an OS that uses monolithic kernel is simpler than an OS that uses a micro-kernel.
People make the mistake of thinking that an OS that uses a micro-kernel is simpler because the micro-kernel all by itself is simpler; but that is an extremely broken and meaningless comparison. It would be more fair to compare "monolithic without any of the hundreds of device drivers, file system code, VFS, etc" to "micro-kernel".
For the "switch(message->type)" in every message receiver (and not for the "switch(function_number)" used for the kernel API that I think you were talking about here); with sufficiently complex tools and/or libraries you can bury it under callbacks; where you register your callback with some kind of "generic dispatcher", and where that "generic dispatcher" gets the message for you and figures out which function to call for you. With even more complex tools/programming languages it's possible to bury that "generic dispatcher" system under syntactical sugar (e.g. "futures").
Typically the message passing is used for everything (and not just for drivers, etc). For example, maybe you write a game client and a game server and they communicate with messaging. Maybe the game is multiplayer; and one player presses a key causing a message to be sent from keyboard driver to a GUI, causing a message to be sent to game client, causing message to be sent to game server, causing message to be sent to other player's game client, causing message to be sent to other player's GUI, causing message to be sent to video driver.
The "if (uid!=0) die('no soup for you…');" can't work.
For my systems the message receiver is responsible for doing security checks and the kernel guarantees that each message has an unforgeable "message sender ID". The end result is that (e.g.) maybe your game server receives a message requesting that an entity explodes, and the game server has a "switch(message->type) {" to determine what the message is for, and then the game server checks to see if the message came from one of the game clients that are playing the game, and if it came from something else (e.g. a player is trying to cheat) it ignores the message.
Of course other micro-kernels do it differently. Some try to do the checking in the kernel (e.g. using capability systems, etc). This tends to end up being inflexible (e.g. "all or nothing" systems where you can't tell kernel "process 123 can send FOO but can't send BAR") or very complex. It also tends to pushes the complexity into the kernel (which, in my opinion, is supposed to be "micro" and therefore not supposed to deal with complexity that could've been in user-space).
For a practical comparison; typically beginners writing monolithic kernels have some kind of "kprintf()" (that ends up writing directly to a video card's framebuffer) working within their first 2 weeks. For mine, micro-kernel shouldn't have code to touch video. Instead it maintains a "boot log" (which is mostly just a big zero terminated string) where you append to the end of the string, then notify something else (outside the kernel, in boot code) that the boot log changed, and that something else updates the video. This causes concurrency issues later in boot – e.g. one driver adds "Hello " and then adds " world!\n", but in between a different driver on a different CPU adds "BORK\n", so you end up with "Hello BORK\n world!\n". To fix that I have buffering, where a driver adds pieces to its buffer (e.g. "Hello " and then "world!\n") and then asks kernel to do "atomically add contents of buffer to boot log", and then kernel notifies something else (boot code) that the boot log changed, and then something else updates the video. This also causes problems when I start a video driver, because now I've got boot code and video driver both fighting for the frame-buffer. To fix that I end up with a kind of "hand-off sequence" where video driver tells kernel to tell boot code to stop updating the screen itself (and where boot code starts sending video updates to video driver so that video driver can update the frame buffer on its behalf).
[q]The interesting thing is that with managed language solution, there's no overhead for the isolation. It's a free bi-product of how managed languages work.
That's a myth.
What you actually end up with is "overhead of hardware checks" (e.g. TLB misses) vs. "overhead of managed language checks plus the overhead of hardware checks" (e.g. checks that couldn't be omitted by compiler, plus TLB misses caused by long mode requiring paging and the total working set not fitting in caches/TLBs and causing "least recently used TLB eviction").
The other thing you end up with is an extremely complicated optimising compiler (more complicated than a normal compiler that doesn't have the additional responsibility) that must be perfect to guarantee the system is secure but also must be expected to have several thousand bugs (e.g. 1 bug per 1000 lines of code for several million of lines of compiler code).
The other thing you end up with is hardware issues (temporary glitches, CPU errata, things like rowhammer attacks, etc) where even if your compiler is "impossibly perfect" you still have no guarantee of security because there's nothing to shield you from "modified after proven secure".
Mostly (at least in my opinion), "managed" is a researcher's fantasy (that just makes things worse practice).
No. For equivalent kernels (same amount of optimisation, same features, etc); a monolithic kernel is simpler than "micro-kernel plus all the stuff monolithic kernel has that micro-kernel doesn't". In other words an OS that uses monolithic kernel is simpler than an OS that uses a micro-kernel. [/q]
In theory a microkernel and macrokernel could use the exact same API and have the same code complexity, the issue with this is that synchronous calls are very inefficient in the microkernel. Consequently we optimize the API to make fewer CPU transitions, and that's the underlying source of complexity. This is what I mean by saying it's not intrinsically more complex until you start to try to optimize it.
To put this another way, take the API from a highly optimized message passing micro-kernel. Use that API to build a macro-kernel and now you have a micro-kernel with the exact same code complexity of the micro-kernel. It's not the fact that it's a micro-kernel or macro-kernel that makes it complex, but rather the complexity is clearly dependent upon the API.
So for this reason I still think it's fair to distinguish between intrinsic complexity and complexity stemming from an optimized API to minimize synchronous calls.
Ok, but for the record I do mean the kernels and drivers in their entirety and not just what remains after taking the drivers out.
Hmm, I don't think my point got through. That test or some variation of it is literally all that's needed by a microkernel to provide a similar level of security that a modular-kernel does. Any process with insmod capability (ie root) can ultimately call everything in the kernel without restriction and likewise processes without insmod capability can not. In a micro-kernel we can use this same permission model as well: upon receiving a privileged syscall, the micro-kernel applies the very same test as the modular-kernel without introducing new complexity.
Obviously the micro-kernel can apply further security measures between kernel processes, and those will introduce new complexity. But all of that is necessarily above and beyond the security capabilities of a modular-kernel, which is why I think it's unfair to insist it be included before comparing it to a modular-kernel that excludes it. Make sense?
For a practical comparison; typically beginners writing monolithic kernels have some kind of "kprintf()" (that ends up writing directly to a video card's framebuffer) working within their first 2 weeks. For mine, micro-kernel shouldn't have code to touch video. Instead it maintains a "boot log" (which is mostly just a big zero terminated string) where you append to the end of the string, then notify something else (outside the kernel, in boot code) that the boot log changed, and that something else updates the video.
Yes, I do understand the problem. But modular kernels are in the same boat, which is why teco.sb mentioned them. Filesystem/disk drivers too.
I admit it breaks the driver model (for both modular as well as micro-kernels), but many kernels are hard coded to display a kernel panic/BSOD when the drivers themselves fail to load or work so users aren't left in the dark. Systems that don't have a standard text console often hard code the equivalent functionality into a serial port.
Whether a developer accepts this compromise or not probably depends on whether they are more idealistic or pragmatic
[q]That's a myth.
Every single one of these criticisms can impact a regular kernel like linux in the same way. GCC's optimizing compiler is very complex and can have bugs, CPU errata can affect any kernel, TLB misses happen regardless of kernel. Temporary hardware glitches (injected deliberately or accidentally) can break any kernel.
So while I'll acknowledge all of these things can be potential buggy, I definitely don't think it's fair to portray them as exclusive to singularity. And if you acknowledge this, then I'm not sure what it is we're supposed to disagree on?
Even allowing for occasional bugs in the compiler toolchain, I think on the whole managed languages are much safer on average because they don't silently ignore problems like C does. Numeric & buffer overflow bugs should have been exterminated decades ago, yet they still exist because we keep using C.
http://techreport.com/news/29627/serious-bug-in-linux-kernel-allows…
First you said that a micro-kernel is more complex than a monolithic kernel, which is not really true. But what you actually meant, was the micro-kernel plus all it's subsystems are more complex than the monolithic dito?
Well, that is another discussion that I dont really know too much about. But OTOH, if you have a micro-kernel, you separate cleanly the kernel from the subsystems. That should mean that you can examine each system locally, without having to consider other subsystems. In other words, you reduce complexity. You look at one simple system at a time, instead of one large system where many subsystems interact.
For instance, you could mathematically reason about one subsystem at a time, because they are encapsulated. This is not possible with a monolithic kernel where there might be side effects in other subsystems.
So I really doubt that a micro-kernel with all it's subsystems is more complex than a monolithic dito. To me this is a weird statement. If you have independent encapsulated subsystems, then you reduce complexity because of divide-and-conquer. You need to provide some links or a better explanation why independent separated sub systems are more complex than a monolithic dito.
UPDATE: Now I see what you mean:
And this could be true. I see your point now. Ok.
Kebabbert,
Yea, it's the amount of aggregate work for all pieces when all work is said and done. The micro-kernel's pieces are clearly separate execution units which enforce a strict API to intercommunicate, and this API might add complexity for developers, but I'm still on the wall about that. The modular kernel will also require it's own API(s) (and in the case of linux an unstable one), so the question is whether the micro-kernel API has to be more complex than the modular kernel API, I haven't seen enough evidence to convince me that it is.
A pure monolithic kernel might theoretically be done without APIs at all, with zero encapsulation and every piece of code modifying shared state as it needs to, but this is the anti-thesis of object oriented programming principals designed to simplify software. This is why it can make sense to use an API with strong encapsulation even in a monolithic kernel in order to reduce complexity. A case could be made that well designed APIs actually reduce complexity even if they add code. And in a micro-kernel, if I add a bit of code to the kernel proper, and it ends up simplifying thousands of drivers outside the kernel, I would consider that a net reduction of complexity.
For me it's hard to come to a 100% solid general conclusion on this topic. Complexity is just one factor that has to be balanced with security, robustness, efficiency, etc. This debate is interesting because the usual criticism for microkernels is the low performance of synchronous calls, but I think it's the first time we discuss complexity on it's own. Good discussion
Early Digital Research CP/M source code released
First Version of Symobi Released
September 28, 2007	• 16 Comments
JNode 0.2.2 Released
January 2, 2006	• 6 Comments
MenuetOS, FreeDOS See New Releases
Qubes To Implement Disposable Virtual Machines

redpajama_set_name: RedPajamaCommonCrawl


text:
2020 Ford Mustang Xfinity NASCAR car unveiled
By Gary Gastelu | Fox News
Ford has Mustang restored for man who sold it to pay for wife's cancer treatment
When Ford Chairman Bill Ford heard about a family in San Antonio that bought back a car their dad sold 17 years earlier to pay for their mom's cancer treatment, he wanted to do something special for them.
There's a new Ford Mustang coming to NASCAR next year.
Ford has unveiled the new car that will be competing in the second-tier Xfinity Series, starting at February's Daytona race.
The automaker has been campaigning Mustang-branded cars in the series since 2011, when it was sponsored by Nationwide, and has made several cosmetic updates along the way, but this is the first full redesign since then.
Ford began racing Mustangs in NASCAR in 2011. (Jonathan Ferrey/Getty Images)
The car features front-end styling that's closer to the production car's than before, and was built to the same specifications as the Chevrolet Camaro SS and Toyota Supra that debuted in the series this season.
Mustangs won 19 races in the Xfinity Series last year (Meg Oliphant/Getty Images)
Ford switched its Monster Energy NASCAR Cup cars to a Mustang body in 2019 to better align its racing efforts with its showroom models as it begins to eliminate all the other cars from its lineup in favor of trucks and SUVs.
Gary Gastelu is FoxNews.com's Automotive Editor covering the car industry and racing. Follow @foxnewsautos


BGC awarded Melchor Commercial with the design and construct contract for PBSA Stirling Street, Perth's first Purpose Built Student Accommodation building. The project is valued at $70 million.
The building includes 189 apartments with 543 beds. Accommodation ranges from studio to six-bedroom apartments. Communal facilities, designed to encourage interaction and a positive learning environment, include the 15-metre lap pool, gym, library, and rooftop entertainment area and meeting spaces.


text:
The $8 Billion Bet
All of Softbank's Investments in India
Masayoshi San's SoftBank is on an unprecedented spending spree in India with investments being poured into a growing list of growth-stage companies every other month. So, right off the bat, I am going to inform you that the numbers here might be history by the time you read this.
To the scarce few in the business world, who have not heard of this Japanese conglomerate before, here's a quick introduction. The SoftBank Group is a multinational holding company with a number of subsidiaries including the name giver, SoftBank Corporation, which was found in 1981 by a young 24-year old Masa as a computer parts store. Among the other subsidiaries are stakes in some big names: Sprint Corporation, Yahoo Japan, Fortress Investment Group, Boston Dynamics, Alibaba Group and the one-of-a-kind Softbank Vision Fund. While SoftBank Group first set foot in the Indian market in late 2011 with some small investments, it was not until the introduction of the $100 billion SoftBank Vision Fund (SVF) in 2016 that the company stepped up their game in India.
Any words I use to describe the SVF would understate it. Here's an interesting graph that shows its might:
The SVF is primarily backed Saudi Arabia's Public Investment Fund which contributes to nearly half of the $100B. The next biggest backer is SoftBank itself, with a $30B commitment. The other big names backing this fund are Apple, Sharp, Foxconn, Qualcomm and Mubadala. The fund has so far invested in nearly 50 high-growth companies worldwide including ride-sharing app Uber, co-working space provider WeWork and chip-designer ARM.
The north star of SoftBank is a question often posed by Masa, "What if we went bigger, quicker and faster?" Answering this question, Softbank has made a slew of investments in India. Here is the ever-growing list of bets.
SoftBank Investments in India
Flipkart — $2.6B
SoftBank's biggest bet in India has already paid off. The $2.6B that the company invested in October 2017 in the e-commerce rival to Amazon India ballooned to an astonishing $4B in less than a year when they sold to Walmart who bought the Indian company for $16B. The rate of return proved too exciting for Masa — who has witnessed a fair share of exponential returns — that he inadvertently announced the deal before it was confirmed. Despite the notorious 40% short-term gains tax that SoftBank was subject to, the dream exit could not have happened at a better time. The deal came after a failed attempt to merge Flipkart and Snapdeal, another e-commerce company that SoftBank has the majority stake in, and before the tough, new e-commerce policy went to into effect this February.
Paytm — $1.4B
Paytm is currently India's largest digital payment solutions provider. The company was the first to bring the digital wallet to India and this bold move has given it a slight lead over competitors, including Google Pay and PhonePe, who entered this segment later. Today the company is more than just a digital wallet and offers services in travel bookings, store payments and ticketing. It is currently the second most valuable start-up in India and unsurprisingly SoftBank invested a whopping $1.4B in 2017, the largest funding round by a single investor in India's tech sector. With the future of digital payments looking bright and the government pushing hard to promote a digital India, Paytm has a promising future if they continue staying ahead of their competition.
Ola — over $1B
Homegrown Uber rival Ola was one of SoftBank's first investments. The investments began in late 2014 with SoftBank leading funding rounds every year since. SoftBank is estimated to have invested over $1B by the end of 2017 for a 26% stake in the company. SoftBank has in-fact attempted to invest substantially more, $1B each in 2016 and 2018, but has faced resistance from Ola co-founder and CEO Bhavish Aggarwal who is hesitant to cede further voting control of his company. Speculations that SoftBank might merge Ola and Uber were downplayed by Masa who has indicated that it would be up to the founders. Ride-hailing services have seen a dip in growth in the last two years forcing companies to cut driver incentives and explore other services. In 2017, Softbank wrote-off a portion of their investment as a result of Ola's lower valuation. Ola is directing focus to scooter rentals, outstation travel and Foodpanda, its food delivery service, to start making profits.
Oyo — over $1B
Want a quick break from SoftBank glory, here's a start-ups tongue-twister that you should try out loud: Ofo Ola Oyo.
Oyo is currently India's largest hotel network that offers standardised stay experiences at affordable rates. They recently moved from an aggregator model to franchising. The first impression does not suggest any outstanding feature to attract SoftBank's attention. Dig deeper and you will find their website proudly claim that "the most advanced hospitality tech takes shape here." Oyo is as much a data science company as a hotel network. They have digitised every process in the hotel booking experience to make it quick and efficient. The vast data collected is then analysed and used to improve services, giving them an edge over traditional competitors. When asked how does SoftBank spot opportunities, Rajeev Misra, CEO of the SoftBank Investment Advisers which oversees the SVF, replied, "The first part is simple. If we look at a business proposal that provides a better service at a cheaper cost — something that uses technology to deliver higher quality more efficiently — it will be successful." Oyo, like many others on this list, passes this criterion with flying colours and SoftBank has acknowledged that by investing over a $1B in the company since 2015. The company is now expanding rapidly in China, Malaysia and Nepal and testing the waters in the UK and USA.
Snapdeal — $900M
The company that entered the e-commerce space in 2011 to compete with Flipkart and Amazon, was one of Softbank's early investments in India. Softbank first invested $75M in 2013, then threw in $627M in 2014 before participating in a $500M funding round in 2015. This appears to be the worst performing bet yet, as Snapdeal could not keep up after Amazon began investing heavily in its Indian arm. In May 2017, Softbank wrote-off a significant portion of this investment following a markdown in Snapdeal's valuation. Another attempt to save the investment failed after talks to merge Flipkart and Snapdeal were unsuccessful. Snapdeal founders quickly announced a new strategy called Snapdeal 2.0 to revive the company by selling non-core assets and shifting focus to value-conscious customers. The strategy appears to have paid off as Snapdeal became cash flow positive in June 2018, but the lack of any funding by Softbank since 2015 is a negative sign.
Paytm Mall — $400M
After booking a hefty profit on the Flipkart sale and writing-off the investment in Snapdeal, one would assume Softbank is leaving the Indian e-commerce sector for good, but one would be wrong. In April 2018, Softbank bet around $400M on Paytm's e-commerce spin-off. Paytm Mall made a late entry to the ultra-competitive e-commerce sector in early 2017. Although the company only had a 6% market share at the end of 2017, Softbank's investment is a vote of confidence in the ability of the company to make gains in the Indian market. Paytm Mall plans to integrate with logistics company Xpressbees and grocery delivery company BigBasket to serve a wider range of customer needs more efficiently.
InMobi — $205M
InMobi, India's first unicorn, received $200M funding between 2011–2012 making it Softbank's earliest investment in India. At the time, InMobi was the largest independent mobile ad network in the world. But the inability of the company to return profits while competing with the two digital advertisement giants, Google and Facebook, forced SoftBank to write-off its investment in 2013. The company, however, after 10 years turned profitable in the year 2016.
Grofers — around $150M
Grofers, launched in 2013, is a low-price online supermarket present in 18 cities across India. Softbank led a $120M funding round in 2015 and later invested $60M in 2016. The second investment happened at a lower valuation raising questions on the company's performance. This led it to pivot from a marketplace model to an inventory-based model to get back on the growth track and compete with BigBasket and Amazon. The change in strategy appears to have worked as the company reported a fivefold growth from 2017 to 2018, leading to speculations of more investments by Softbank.
PolicyBazaar — $150M
In June 2018, SoftBank bet $150M on Policy Bazaar to transform the underdeveloped and broken insurance market in India. This one-stop online marketplace for insurance aims to make the process fair, transparent and sustainable. PolicyBazaar briefly made a profit in FY 2017 but could not repeat the feat the following year. The company estimates that over 20% of the life insurance and 7% of retail health coverage purchases are done on their platform.
FirstCry — $150M
In its first play of 2019, SoftBank invested $150M in the baby and mother care product retailer that has rapidly grown since its founding in 2010. SoftBank is expected to further invest $250M for a 40% stake in the company. In 2016, FirstCry acquired Mahindra's baby care business in a deal worth $50M making the joint entity one of the largest omnichannel retail player in this niche. "I believe that the future belongs to click and brick business," stated Anand Mahindra, chairman and managing director of Mahindra Group, in a statement following the consolidation. FirstCry has embraced this idea and is quickly expanding both its offline and online channels.
Housing.com — $90M
Housing.com is a real estate search portal that attracted SoftBank's attention in late 2014 by revolutionising the online real estate market through its tech-driven approach. This led to a $70M investment in December 2014, followed by a $15M investment in 2016. Competition from Commonfloor, 99acres, Makaan and MagicBricks, along with leadership trouble, strained the company's finances and led it to restructure in early 2016. Despite the efforts, the company was sold to its rival PropTigers for $70M, a lower value than the invested capital. SoftBank further pitched in $5M in the larger merged company.
Hike — around $30M
Hike is a messenger app that launched in 2012 to compete with WhatsApp. It first received investment through the Bharti SoftBank joint venture to the tune of $7M in 2013 and $14M in 2014. Two years later, SoftBank participated in a $175M funding round that was led by Tencent and Foxconn. Hike continues to innovate with features tailored to the Indian market but its active user base dwarfs in comparison to WhatsApp's. The financials are not rosy as well, but neither was WhatsApp's when Facebook paid a record-breaking $19B for it.
In 2014, Masa pledged to invest $10 billion over the next 10 years in India. In 2018, Masa updated, "We would definitely overachieve on our commitment much ahead of time and at a much bigger scale." And he was right. The company has invested close to $8 billion in half the time, leaving behind other major venture capitalists in the dust. They own large stakes in more than half the unicorns in India. These numbers are, needless to say, mind-boggling, but it remains to be seen if the returns will be as well. Most companies on this list are yet to turn profits. Fans of Masa's vision will point towards his $20 million investment in Alibaba in 2000 which is now worth a hefty $130 billion, but his investments in India have all been in late-stage companies. Of course, SoftBank does not share the same pessimism that I have. In November 2018, they announced plans to open their Indian office in Mumbai, signalling that they are just getting started. No matter the outcome, SoftBank would have lived by its core value, "Try hard, have fun."
More from Sarvesh Mathi
18 Sensible (Financial) Coronavirus Response Ideas for Your Small Business
Opher Ganel in The Startup
10 Tips For Negotiating That Women Need To Know
Billion-Dollar Burgers, Razors, Bags and Elephants
Kiva Dickinson in The Startup
Airbnb pushes IPO despite coronavirus uncertainty
The Millennial Source in The Innovation
Culture at Netflix
Beril Kocadereli in The Startup
Here are 7 Upcoming Tech IPOs to Watch Out for
Richard Liu in The Startup
What kind of business do you want to build?
Neville Chamberlain in Small Business Handbook
Are Vacation Rental Managers solving the wrong problems?
Wes Melton


Chairmen of All Progressives Congress (APC) in the 18 local government areas in Ondo State on Thursday warned that the party would be doomed if its leaders compromise or influence the August 27 gubernatorial primary.
The warning of the chairmen was expressed at a press conference they addressed at the Press Centre of the Nigeria Union of Journalists in Akure.
THISDAY gathered that the chairmen issued the warning sequel to the allegation that the National Leader of the party, Senator Bola Tinubu, had endorsed a particular aspirant ahead of the August 27 primary election.
The party chairmen said if the rumour going round was true, it would spell doom spell and electoral disaster on the party.
Addressing journalists, the Chairman of all the chairmen, Mr. Rasheed Badmos, affirmed that only free and credible primary can make the party win the November 26 poll.


text:
AstraZeneca's COVID-19 vaccine significantly boosted antibody levels against Omicron
Neutralization titres for Omicron were boosted following a third dose with AstraZeneca's COVID-19 vaccine compared to titres after a second dose. The levels seen after the third dose booster were higher than the neutralizing antibodies found in individuals who had been previously infected with and recovered naturally from COVID-19 (Alpha, Beta, Delta variants and original strain).
AstraZeneca's COVID-19 vaccine(ChAdOx1-S [Recombinant]) significantly boosted levels of antibodies against the Omicron SARS-CoV-2 variant (B.1.1.529) following a third dose booster, according to data from a new laboratory study.
Neutralization titres for Omicron were boosted following a third dose with AstraZeneca's COVID-19 vaccine compared to titres after a second dose. The levels seen after the third dose booster were higher than the neutralizing antibodies found in individuals who had been previously infected with and recovered naturally from COVID-19 (Alpha, Beta, Delta variants and original strain). Sera obtained from individuals one month after receiving the third dose booster vaccination neutralized the Omicron variant to levels that were broadly similar to those observed one month after the second dose against the Delta variant. Two doses of AstraZeneca's COVID-19 vaccine have been associated with protection against the Delta variant in real world studies.
The study analysed blood samples taken from individuals infected with COVID-19; those who had been vaccinated with a two-dose schedule and a third dose booster; and those who had reported previous infection from other COVID-19 variants of concern. The study included samples from 41 individuals who had received three doses of AstraZeneca's COVID-19 vaccine.
The study was performed independently by investigators at the University of Oxford and the findings were posted online on the bioRxiv pre print server.
Professor Sir John Bell, Regius Professor of Medicine, University of Oxford, UK and one of the study investigators, said: "It is very encouraging to see that current vaccines have the potential to protect against Omicron following a third dose booster. These results support the use of third dose boosters as part of national vaccine strategies, especially to limit the spread of variants of concern, including Omicron."
Sir Mene Pangalos, Executive Vice President, BioPharmaceuticals R&D, AstraZeneca said: "AstraZeneca's COVID-19 vaccine plays an important role in vaccination programmes around the world and these data give us confidence that the vaccine should be given as a third dose booster. It is also important to look beyond antibodies to better understand how vaccines offer protection against Omicron. As we better understand Omicron, we believe we will find that T-cell response provides durable protection against severe disease and hospitalizations."
Data from another laboratory study support AstraZeneca's COVID-19 vaccine effect against Omicron, with individuals vaccinated with two doses of AstraZeneca's COVID-19 vaccine retaining neutralizing activity against Omicron, although a decrease was seen compared to the original strain.4 In other studies, AstraZeneca's COVID-19 vaccine has been shown to generate a diverse and durable T-cell response to multiple variants resulting in a broader response than antibodies alone, which could contribute to protection against COVID-19.
AstraZeneca is collecting real world evidence evaluating the effectiveness against the Omicron variant with academic groups in the southern African region. AstraZeneca is also analysing blood samples from participants in the Company's Phase II/III trial to evaluate neutralising activity when given as a third dose booster against Omicron for both AstraZeneca's COVID-19 vaccine and its investigational next generation COVID-19 vaccine, AZD2816. Data from these studies are expected soon.
Currently available data against variants of concern, excluding Omicron, support the use of a third booster with AstraZeneca's COVID-19 vaccine as part of a homologous or heterologous schedule.
A sub analysis from the COV001 and COV002 trials demonstrated that a third dose of AstraZeneca's COVID-19 vaccine given at least six months after a second dose boosted antibody levels six-fold and maintained T cell response.6 A third dose also resulted in higher neutralizing activity against the Alpha, Beta, and Delta variants, compared with a two-dose regimen. In the trial, the third dose of AstraZeneca's COVID-19 vaccine was less reactogenic than the first dose.
In addition, the COV-BOOST trial showed that a third dose booster of AstraZeneca's COVID-19 vaccine induced significantly higher immune responses compared with controls against the Delta variant and original strain following a primary vaccine series of AstraZeneca's COVID-19 vaccineor Pfizer BioNtech (BNT162b2).
Related Topics:COVID-19medicineVaccinationvaccine
What's money got to do with mental health?
E-cigarettes may be independently linked to erectile dysfunction, new research finds
Pfizer had no idea if mRNA vaccine would prevent COVID-19 transmission
Antibiotics given in infancy may have adverse impact on adult gut health
Three COVID-19 vaccines may provide greater protection from COVID-19 infections than two
Fatigue, headache among top lingering symptoms months after COVID
Vaccine protection against COVID-19 short-lived, booster shots important – study
Medical Depot expands from north to south of the country
Consider these three tips to help children build a growth mindset.
A new year is a perfect time to consider the habits you want to keep and the ones you'd like to develop. One resolution to consider is helping your children develop a growth mindset this year.
"We know one of the greatest boosts to parents' confidence over the past year came from knowing their children's whole selves are being nurtured, and we want to see that trend continue," said Carter Peters from KinderCare Learning Center's education team. "A growth mindset helps children try new things despite fear of failure. It's the kind of thinking that allows inventors and creative thinkers to get excited about trying something new and ensures they have the cognitive flexibility and problem-solving skills to work through hurdles."
Adults can often easily spot when children are engaged in creative thinking and prideful of their work, but that confidence may be lost as failures turn into insecurities. By nurturing a growth mindset and showing children they can learn and develop new skills in any area, it better sets them up for long-term success.
Consider these three tips to help children build a growth mindset:
Photo by Markus Spiske from Unsplash.com
1. Praise effort
It's easy to fall into the habit of praising successes. However, praising effort encourages children to try new things without the fear of failing. It also teaches children personal growth and achievement are possible, even if their overall effort wasn't a success.
"Young children often get excited to try something new," Peters said. "By praising effort and showing children they'll still be loved and valued despite the outcome, you can reframe how they approach challenges and teach them that difficult doesn't mean impossible."
2. Encourage the process
People often withhold praise until there's a result, which leads children to hurriedly scribble a picture to hold up for a "good job" instead of taking time to focus on their efforts. When children know adults will encourage them during the process, instead of only upon the achievement, they're more likely to try new things or master a new skill. For example, try providing encouragement such as, "I can see you're focused on drawing that tree. It looks so lifelike because you're putting so much thought into what you're doing." Once their project is finished, continue the encouragement by hanging up their artwork or school projects in a prominent place.
3. Model a growth mindset
You can model a growth mindset for children by narrating your actions when you are facing a challenge: "I am having a difficult time putting this shelf together, but it's OK. I'll take a break then read the instructions again." Remove negative words from your vocabulary, such as "I can't" or "I'm stupid." Even when you are joking, children may not be able to tell the difference. You can also ask your children to join you in problem-solving. Take time to hear their ideas and try them even if you think they won't work. This not only supports the development of their growth mindset, but the quality time and encouragement reinforces their sense of self-worth and builds confidence.
For more tips to help children develop a growth mindset, visit kindercare.com.
Although there are many different ways to define a healthy marriage, these three qualities are essential for any lasting and fulfilling relationship.
Lily Asis
A healthy marriage is built on trust, respect, and communication. Couples with these qualities in their relationship tend to be more satisfied with their marriage and overall life. They also report feeling closer to their partner and having stronger well-being. With 2.3 out of every 1000 people in the US experiencing divorce in 2022, it is important to frequently check in on the health of your marriage.
A healthy marriage is built on trust, communication, and mutual respect. If you and your partner can effectively communicate and share a mutual level of respect, then your relationship is off to a good start. Trust is also important in a healthy marriage, as it allows you and your partner to feel secure in your relationship and rely on each other.
Many other signs can indicate whether or not a marriage is healthy. For example, couples who can spend quality time together and enjoy shared activities usually do well. Couples who can openly discuss their relationship with each other and work through difficulties together are also more likely to have a happy and healthy marriage. Finally, marriages, where both partners feel like they can be themselves without judgment from their spouse tend to be the strongest and most lasting.
Freedom to be yourself
In a healthy marriage, partners feel free to be themselves. They don't have to put on a facade or pretend to be someone they're not. They can be open and honest with each other and feel comfortable sharing their thoughts, feelings, and desires.
Both partners should pursue their interests and hobbies without compromising or sacrificing for the sake of the relationship. There's no need to agree on everything – in fact, it's healthy to have some separate interests – but overall, both partners should feel like they're able to be true to themselves within the relationship.
Lots of good communication
In a healthy marriage, partners can communicate effectively. It means expressing needs and wants and listening and responding to what the other person is saying. There are mutual respect's opinions, even if there are disagreements. Couples in a healthy marriage feel comfortable communicating with each other about both the good and the bad.
Good sex life
A good sex life can be a major sign of a healthy marriage. A lack of sexual activity can be an early warning sign that something is wrong in the relationship. Often, couples who have a good sex life are more connected emotionally and physically. They are also more likely to trust each other and communicate openly.
Trust in each other
In any relationship, trust is essential. Without trust, there is no foundation for the relationship to grow. In a marriage, trust is even more important. Trusting your spouse means you feel confident in their ability to support you emotionally and financially. It also means that you feel safe sharing your innermost thoughts and feelings with them.
When you trust your spouse, you know they have your best interests. You feel comfortable being yourselves around each other and sharing your hopes, dreams, and fears. Openness and honesty in your relationship allow you to be vulnerable with each other. This vulnerable honesty creates a deeper level of intimacy in your marriage.
When you trust each other, you can be more forgiving when mistakes are made. You know that everyone makes mistakes and that nobody is perfect. You also understand that your spouse is human and capable of making mistakes like anyone else. If they make a mistake, you are more likely to forgive them because you know they are sorry and will try not to make the same mistake again.
Trust is one of the most important foundations of a healthy marriage. If you want your marriage to thrive, build trust in each other.
A successful, strong marriage takes work, but with communication, trust, respect, vulnerability, and affection as its core components, you can together create a partnership that will be long-lasting.
Immune cells are also activated when the body is exposed to stressors such as excess fat in obesity, making being overweight the number one non-genetic risk factor for developing AMD, after smoking.
A Canadian study published in the prestigious journal Science elucidates a new molecular mechanism that may cause age-related macular degeneration (AMD).
The research at Hôpital Maisonneuve-Rosement, in Montreal, shows how life stressors such as obesity reprogram immune system cells and make them destructive to the eye as it ages.
"We wanted to know why some people with a genetic predisposition develop AMD while others are spared," said Université de Montréal ophtalmology professor Przemyslaw (Mike) Sapieha, who led the study by his postdoctoral fellow Dr. Masayuki Hata.
"Although considerable effort has been invested in understanding the genes responsible for AMD, variations and mutations in susceptibility genes only increase the risk of developing the disease, but do not cause it," Sapieha explained.
"This observation suggests that we must gain a better understanding of how other factors such as environment and lifestyle contribute to disease development."
AMD is a major cause of irreversible blindness worldwide and affected approximately 196 million people in 2020. It comes in two forms:
dry AMD, characterized by the accumulation of fatty deposits at the back of the eye and the death of nerve cells in the eye,
and wet AMD, which is characterized by diseased blood vessels that develop in the most sensitive part of the sight-generating tissue, called the macula.
Contact with pathogens
It is already known that the immune system in the eye of a person with AMD becomes dysregulated and aggressive. Normally, immune cells keep the eye healthy, but contact with pathogens such as bacteria and viruses can make them go awry.
At the same time, immune cells are also activated when the body is exposed to stressors such as excess fat in obesity, making being overweight the number one non-genetic risk factor for developing AMD, after smoking.
In their study, Sapieha and Hata used obesity as a model to accelerate and exaggerate the stressors experienced by the body throughout life.
They found that transient obesity or a history of obesity leads to persistent changes in the DNA architecture within immune cells, making them more susceptible to producing inflammatory molecules.
"Our findings provide important information about the biology of the immune cells that cause AMD and will allow for the development of more tailored treatments in the future," said Hata, now an ophthalmology professor at Kyoto University, in Japan.
The researchers hope their discovery will lead other scientists to broaden their interest beyond obesity-related diseases to other diseases characterized by increased neuroinflammation, including Alzheimer's disease and multiple sclerosis.
About this study
"Past history of obesity triggers persistent epigenetic changes in innate immunity and exacerbates neuroinflammation," by Mike Sapieha and Masayuki Hata, was published in Science.


Led by Iron Chef America judge, Simon Majumdar, this course provides both the necessary techniques and classic recipes of Indian cuisine.
Indian food is known for its complex flavors, fresh ingredients, and regional influences. With an emphasis on spices and hands-on cooking, this cuisine fills the kitchen with a heavenly aroma and wonderful memories.
While Indian food may seem intimidating, this course provides valuable instruction for chefs of every level. You'll learn the basic techniques of tempering oil and toasting spices, as well as the recipes for many beloved Indian classics.
This course is led by Simon Majumdar, a Judge on Iron Chef America, the Next Iron Chef, and Cutthroat Kitchen. Simon is also a celebrated writer and world traveler, using his relationship with food to tell inspirational stories of eating and adventure.
This homemade version is just as flaky, puffy, and pillowy as the naan prepared in the Tandoor oven at your favorite Indian restaurant.
"One of the most favorite things that I serve whenever I'm doing an Indian meal is this chutney."
This classic Indian sauce is rich and flavorful, and can be used on top of shrimp, fish, chicken, and vegetables.
Paneer is a fresh curd cheese that is light, flavorful, and easy to make.
"A favorite dish in any Indian restaurant, saag paneer is the Indian version of creamed spinach with lots of spices."


There are more than 4.7 million baby boomers in Australia and as a couple of them we often feel a little ignored by a lot of companies. Most of us are looking to keep our expenses down as often our incomes start to reduce.
We have decided that it is time to create a very large and powerful group. We have massive buying power and it is time for organisations to recognise this with geniune discounts and deals. We are on a mission to work with businesses, large and small to get some really great discounts and deals for a whole range of expenses.
Along with great deals we are creating a platform for Aussie Baby Boomers to connect with each other and share their great wealth of knowledge and skills. If you have a problem you need solving you will be able to post it in either our Facebook group or here on the website and I know that one of our members will have a solution. Also if you are looking for information or a recommendation before you make a decision, then you can ask Aussie Baby Boomers.


text:
Q: Suppress warning dialog when updating chart links in PowerPoint I'm working on a macro to automatically update all of the linked charts in a presentation from their source Excel workbooks. My problem is that when the linked workbook cannot be found, executing the LinkFormat.Update method produces the standard "The linked file is not available...." dialog. This could result in the user having to dismiss the dialog dozens or even hundreds of times when updating a presentation.
Is there any way to suppress this dialog when updating a linked chart, either directly or by verifying the link source before attempting an update? The operation does not produce an error, so it can't be trapped. I'm using Chart.ChartData.IsLinked to check for and filter out charts that aren't linked at all, but I can't find any similar property or method that would allow me to check the status of an existing link before executing LinkFormat.Update. I would expect that setting Application.DisplayAlerts to ppAlertsNone would work, but ppAlertsNone is already the default, and setting it manually has no effect.

A: Linked shapes will be of type msoLinkedOLEObject or msoLinkedPicture (which you probably aren't concerned with).  A linked shape's .LinkFormat.SourceFullname will give you the full path to the linked file, so something like this should get you going.  The test for existence of the file's simplistic but it's a starting point:
For Each oSh In ActivePresentation.Slides(1).Shapes
    If oSh.Type = msoLinkedOLEObject Then
        If Len(Dir$(oSh.LinkFormat.SourceFullName)) > 0 Then
            ' do your thing
        End If
    End If
Next

redpajama_set_name: RedPajamaStackExchange


Bocconi University (Università Bocconi) is a private university located near the city center of Milan. Founded in 1902, Bocconi was the first university in Italy to grant a degree in economics, and today is recognized as one of Europe's leading institutions in business and economics education. The university has a student body of approximately 9,000 undergraduate and 4,500 graduate students, of whom approximately 1,300 are exchange students studying at Bocconi for a semester or academic year from 230 partner institutions across the globe.
Check out more on Bocconi!
Located in the north of Italy, Milan (Milano) is the capital of the Lombardy (Lombardia) region, and the second largest city in the country. Known as the economic and production capital of Italy, Milan has a population of over 1.3 million people, with an additional 3 million making up the greater metropolitan area. This cosmopolitan, modern, and forward-looking city is world-renowned as a European capital of fashion, design, architecture, publishing, modern art, and music.
Check out more on Milan tourism!
Leonardo da Vinci's famous "The Last Supper" ("L'ultima cena") is housed in the refectory of Milan's Chiesa di Santa Maria delle Grazie.
La Galleria Vittorio Emanuele II, one of the world's oldest shopping malls, is a pleasant 30 minute walk from Bocconi's main academic buildings. A historical site in its own right, the Galleria connects two of Milan's most famous landmarks: la Basilica Cattedrale Metropolitana di Santa Maria Nascente and il Teatro Alla Scala, better known as il Duomo and La Scala, respectively.
The program at Bocconi University is for Wharton students and declared College Economics majors only.
There are a limited number of spots for Penn students at Bocconi. All candidates should identify a second choice program. Priority will be given to juniors and first semester seniors.
Previous Study: Successful completion of MATH 104 & 114, ECON 001, 002, & 101.
*The Wharton and College Economics Program: Taking ITAL110 at Penn before starting the program is a requirement. Students now have the option of taking ITAL 110 in the summer session here at Penn (if it is offered) if they are unable to take the course during the fall or spring semesters. It is recommended that students take the course during the fall or spring academic semesters due to the fact that ITAL110 is not guaranteed to be offered during summer sessions. If a student chooses to take the course during the summer, approval to participate in the program during the fall semester will be revoked in cases in which the course is canceled or students do not get the required passing grade.
Huntsman students must have at least 1 course taken in their target language.
A full course load at Bocconi consists of four (4) classes per semester. Penn students must maintain a full course load while abroad and may only enroll in courses at the undergraduate level.
All Penn students are required to attend the orientation activities organized by Bocconi's International Student Desk prior to the start of each semester. Check out more on Bocconi''s Orientation activities.
The International Student Desk at Bocconi organizes optional, non-credit bearing, Italian language courses for incoming exchange students. Check out more on Bocconi's language courses.
Penn students studying at Bocconi have access to a wide range of student activities and associations. More information on student engagement will be provided by the International Student Desk at orientation.
Incoming Exchange Students may apply to live in one of Bocconi's seven self-catered residence halls, which house international students as well as Italian students. Rooms in university housing are limited, therefore Bocconi is often unable to accommodate all applicants. Students must be willing to find their own accommodation in Milan, if necessary.
Students who do not wish to live in a residence hall, or are not assigned to Bocconi housing, may find an apartment on their own. It is recommended that students looking for their own accommodation arrive in Milan at least two weeks prior to the start of the program and book temporary accommodation during their search.
Check out more on the accommodations. Additional information is also helpful to be aware of.
Please review the Penn Abroad application process, policies, and procedures. To open an application or learn more about the program, please schedule an appointment with a Penn Abroad Global Programs Manager. For a student perspective on life and academics in Italy, contact a Penn Abroad Past Participant.


text:
L'État de Nayarit est divisé en 20 municipalités. La capitale est Tepic.

Liste des municipalités et des codes INEGI associés
Le code INEGI complet de la municipalité comprend le code de l'État - 18 - suivi du code de la municipalité. Exemple : Tepic = 18017. Chaque municipalité comprend plusieurs localités. Ainsi, pour le chef-lieu de la municipalité de Tepic, la ville de Tepic : 180170001.

Voir aussi

Article connexe
 Municipalités du Mexique

Liens externes
 Instituto Nacional de Estadística y Geografía INEGI
 INEGI : México en Cifras
 INAFED Enciclopedia de los Municipios y Delegaciones de México : Nayarit
 INEGI : Nayarit - División municipal
 SEDESOL - Catálogo de Localidades : Nayarit

Municipalité du Nayarit
Nayarit

redpajama_set_name: RedPajamaWikipedia


Guest blog by Lailan Huen-edits from the original are mine-for brevity only.
We represent eight community-based groups impacted by the Planning Department's decisions and policies in Oakland, and we demand inclusion of community stakeholders in the hiring of the new Director of Planning and Building.
Specifically, we write to reflect the concerns of those who have historically been marginalized and bear the burden of unjust planning decisions that have destroyed vibrant local economies and neighborhoods of working class communities of color for over a century in our town.
It is these Oakland neighborhoods that are now being most impacted by new development, and the current planning processes are insufficient for protecting these neighborhoods at risk of displacement. Additionally, we see that the lack of safe and affordable spaces for our arts and low-income communities, as exemplified by the GhostShip warehouse fire, is of life and death.
As residents and stakeholders who have been advocating for equity for decades, we have seen the disproportionate power held by developers looking to make more profit without much regard for the residents of Oakland in the political process.
We understand that many developers have been consulted in this process, but only a small handful of community-based stakeholders have been invited to participate. The City of Oakland must include the voices of those who are most impacted and at risk to achieve its equity goals.
A planner with a track record in community engagement and participatory processes for neighborhood planning that provides meaningful time for feedback beyond minimal-17 day-notices.
Prioritizes equity and understands how institutional racism and environmental injustice have caused harm to working class communities of color in Oakland, including tools to mitigate past harms and create targeted opportunities in these neighborhoods.
Has a balanced approach to considering residents and neighborhoods in decisions-in addition to developers.
Has a proven track record with preservation of vulnerable historic, cultural and arts districts in phases of gentrification and new development.
Recognizes that city staffers with traditional planning backgrounds are less likely to understand the impact of institutional racism, and will hire more representative staff.
Comprehends the challenges facing the arts community currently being displaced, and brings experience to support and create safe affordable spaces for Oakland's vital creative culture.
Knowledge of finance in regards to affordable housing programs and a willingness to look at innovative and non-traditional approaches to fund it.
Commits to planning tools such as specific plans, zoning changes, density bonuses, and incentives to leverage developer contributions for community benefits to include affordable housing, community retail space, local hire, and public open space.
And to using public land for affordable housing and community benefits and openness to working with Community Land Trusts to secure permanent affordable spaces.
Willingness to implement innovative models such as Planning Leader Institutes, Neighborhood Planning Liaisons, Registered Community Organizations, and an Equitable Development Scorecard to assess how projects will meet the city's equity goals.
At least 3-4 community seats on a candidate review and interview committee, including from these areas of expertise: 1) affordable housing, 2) historic preservation, 3) environmental justice, and 4) arts and cultural district anti-displacement.
Inclusion of sample work, design guidelines, as part of the application review process.
An opportunity for the public to be invited to hear from potential candidates.
Consider recruiting applicants from cities with equitable processes such as: Seattle, Portland, Twin Cities, Philadelphia or a planning applicant familiar to Oakland and has the requisite experience to advance equity as stated above.
Oakland is at a crossroads. Our community desperately needs a Planning and Building Department that is at the forefront of innovative, equitable, sustainable and participatory policies, such as the above listed cities already have.
We are tired of being left out of the process, disregarded when we do participate, and given lip-service without follow-through. We want real accountability from the next leader who will make bold decisions to protect what we love about Oakland: our cultural and economic diversity, our thriving creative arts life as a key to our local economy, and a democratic process that includes the voices of residents.
We support positive community development and truly smart growth for transit-oriented development which can provide needed housing that is equitable and involves long-time residents. In order to develop a planning regimen which can expedite the process, all stakeholders-including residents and workers- must be included in a meaningful way with public standards for equitable development.
Please share with us the timeline, process, and opportunities for input, and kindly provide a response to our requests within two weeks.
2 Comments on "Help Wanted: An Oakland Planning Director for Equitable Development"
Lots of parallel isues with Police Chief search including real philosophical change, the recruitment process and community input.
Like the Mayor's listening tour on OPD chief search, I fear another round of soliciing input, then putting the input into the Shaft File and doing it her way with her preferred stakeholders.
Pam i think you left out the homeowners who want to add one or two units to their existing property. NO one represents them. I am right now project managing a duplex for a minority homeowner and the process is very daunting. The plans were submitted July 22 to a lackadaisical case planner who is asking for unnecessary changes. Design review fees paid was over $6,500 and this minor design review project is stymied.
Point is Oakland needs all types of housing. Big developers are not the only solution to meet demand. Many homeowners can add a unit to their existing properties. But the building permitting process is too costly and too cumbersome.
I wrote a short paper about why such housing should be give some priority and sent it to Sarah Ting, legislative aid to Abel Guillen. One key selling point for granny or in-law units is how it helps close the income gap between minorities and Oakland's median (esp white) incomes. There are other obvious advantages to encourage this. There is much more I can share with you including how building cost CAN be reduce and how to better manage construction.
This project is a test case that offers part of the housing crisis in Oakland. So far this test case is failing.
I will email you that short report.
I am ready to work with you and your group to spearhead in-law or granny apt units.


text:
Sexual assault and indecent assault charges (case study)
Sexual assault and indecent assault…
The accused worked in a legitimate massage parlour and was trained in Chinese massage. Two females who were former lovers attended and one received a massage from our client and the other from another masseur. At the end of the massage, the complainant was slow to get dressed. Her friend asked if everything was alright, and she said words to the effect, "Not really. I think he may have touched me inappropriately."
According to her friend, the alleged victim specifically said that there had been no penetration.
Notwithstanding what she said, she paid for the massage and left, going outside to a car where the pair was joined by another person. The alleged victim was crying. The three of them discussed what had happened, and at the insistence of the third person, they went to the police station.
The three of them went to a room where the complainant detailed to police what had happened. Statements were then taken from all three persons. By the time police went to the parlour, our client had completed his shift. Police gathered evidence for DNA testing – including a towel and a sheet. They also took photos. The complainant told police she could feel the air-conditioning on her vagina and that the accused was pinching her perineum repeatedly before inserting a finger into her vagina.
The woman was taken to hospital for examination and the preparation of a Sexual Assault Investigation Kit (S.A.I.K.). Our client was arrested the next day. He took part in a record of interview (ERISP) and denied any wrongdoing. He described the alleged victim as being 'quite large' and told police that not only did he have no sexual interest in her at all, but also the woman's claim was physically impossible (the woman claimed that the accused was pinning her down by an elbow pressed down on her shoulder at the time she was violated). He gave a detailed description of the format of a Chinese massage.
He was charged with Sexual Assault [section 61I Crimes Act – carries 14 years imprisonment and a standard non parole period of 7 years section 54D Crimes (Sentencing Procedure) Act] and Indecent Assault [section 61L Crimes Act – carries 5 years imprisonment]
Application for committal hearing
It is increasingly difficult to get permission to cross examine an alleged victim of a sexual assault. All sorts of protections exist to reduce the frequency of a complainant having to give evidence at a committal and later at a trial. It is acknowledged that there are legitimate reasons for doing so – the law requires that special reasons exist in the interest of justice before an alleged victim can be cross examined at a committal hearing.
In this case, there was a significant inconsistency in the complaint. The complainant initially told her friend there had been no penetration – changing her version at the police station. The medical evidence found nothing that would corroborate the allegation. Despite the claim of the perineum being pinched repeatedly, there were no marks, redness, scratches, tearing of the skin tissue etc. DNA of the accused was found on the towel used by the alleged victim to wipe her down after the massage. Application was made pursuant to sections 91 and 93 Criminal Procedure Act 1986.
Committal hearing
The friend gave evidence that the complainant told her weeks later that the accused had penetrated her anus, not her vagina. She agreed that she had told police that the complainant originally told her there had been no penetration. Witnesses generally agreed that they had all been together at the police station when the complainant was telling police what happened – a tactical blunder by police who should have separated the witnesses to preserve the integrity of their evidence. The DNA expert conceded that the accused's DNA could have been on the towel for a number of reasons, including him handling the towel or the transference of DNA from the massage bed surface – it rendered such evidence neutral.
No bill application
The accused was committed for trial. Due to the unreliability of the evidence, an application was made to the Director of Public Prosecutions to discontinue the prosecution. This was rejected.
The jury came back with a not guilty verdict to both charges in quick time. It is hard to accept the evidence of a complainant when three significant inconsistencies are claimed – no penetration then became penetration of the vagina which then changed to penetration of the anus – the latter claim not recorded anywhere in the brief of evidence including in the doctor's report. We demonstrated through photographs that the air conditioner did not operate in the direction of the complainant lying on the table – there just happened to be a solid partition in the way!
With no other corroborative evidence at all, to find the accused guilty, the jury would had to have accepted the alleged victim's evidence – clearly they were unable to do so.
Why use an accredited specialist in criminal law?
Such allegations are sometimes easily made and willingly prosecuted. The potential penalties are severe including standard non-parole periods. By following expert advice, our client gave himself the best possible opportunity of defending these dubious allegations. (It is acknowledged that many sexual assault allegations are genuine).
Nyman Gibson Miralis provides expert advice and representation in all areas of criminal law. Contact us if you require assistance.