Dear friend. Good Day, I am Mr NIABBA IBRAHIM, Senior Credit Officer of AFRICAN DEVELOPMENT BANK ANNEX BURKINA FASO.Here is a 100% concealed and mutually profitable business proposal for you. After the United States and Iraqi war, our client Hatem Kamil Abdul Fatah who was the deputy governor of Baghdad in Iraq and also business man made a numbered fixed deposit for 12 calendar months, with a value of ten million five hundred thausand usd only in my branch.Upon maturity several notices were sent to him, even in the first quater of this year.Again another notification was sent and still no response came from him. We later found out that the Deputy Governor has been assasinated in Baghdad. The websites below is a proof and verification of the news about his death: http://news.bbc.co.uk/go/pr/fr/-/1/hi/world/middle_east/3970619.stm http://www.uslaboragainstwar.org/article.php?id=6979 After further investigation it was also discovered that Hatem Kamil Abdul Fatah did not declare any next of kin in his official papers including the paper work of his bank deposit. And he also confided in me the last time he was at my office that no one except me knew of his deposit in my bank. So, ten million five hundred usd$ is still lying in my bank and no one will ever come forward to claim it. Against this backdrop, my suggestion to you is that I will like you as a neutral person to stand in as the next of kin to Hatem Kamil Abdul Fatah so that you will be able to receive his funds with my aid as the insider. THE PREREQUISITE OF THIS PROJECT:I want you to know that I have had everything planned out so that we come out successful.all that is required from you NOW is for you to provide me with your Full Names and Address so that i can prepare the documents with your name. After you have been made the next of kin,you will also file in for claims on your and secure the necessary approvals and letter of probate to enable the bank move the funds to an account that will be provided by you. There are no risks involved in the matter as we are going to adopt a legalized method and all necessary documents will be prepared by the bank for easy movement iof the fund into your account.Please endeavour to observe utmost discretion in all matters concerning this issue.Once the funds have been transferred to your nominated bank account we shall share in the ratio of 60% for me, 30% for you and 10% for any expenses incurred during the course of this peration.Should you be interested, please send me your full particulars including your private phone and/or fax numbers for easy communication,and i will provide you with more details of this operation as well as my particulars. I wait your respond Kind Regards, Mr. NIABBA IBRAHIM private email<EMAIL_ADDRESS>_________________________________________________________________ FREE pop-up blocking with the new MSN Toolbar - get it now! http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/


#include "legato.h"
Go to the source code of this file.
Functions | |
| void | le_riPin_ConnectService (void) |
| void | le_riPin_DisconnectService (void) |
| le_result_t | le_riPin_AmIOwnerOfRingSignal (bool *amIOwnerPtr) |
| le_result_t | le_riPin_TakeRingSignal (void) |
| le_result_t | le_riPin_ReleaseRingSignal (void) |
| void | le_riPin_PulseRingSignal (uint32_t duration) |
Legato Ring Indicator Signal include file.
Copyright (C) Sierra Wireless Inc. Use of this work is subject to license.
| le_result_t le_riPin_AmIOwnerOfRingSignal | ( | bool * | amIOwnerPtr | ) |
Check whether the application core is the current owner of the Ring Indicator signal.
| [out] | amIOwnerPtr | true when application core is the owner of the Ring Indicator signal, |
| void le_riPin_ConnectService | ( | void | ) |
Connect the current client thread to the service providing this API.
This function must be called before any other functions in this API. Normally, it's automatically called for the main thread, but must be explicitly called for other threads. For details, see Client-specific Functions.
This function is created automatically.
| void le_riPin_DisconnectService | ( | void | ) |
Disconnect the current client thread from the service providing this API.
Normally, this function doesn't need to be called. After this function is called, there's no longer a connection to the service, and the functions in this API can't be used. For details, see Client-specific Functions.
This function is created automatically.
| void le_riPin_PulseRingSignal | ( | uint32_t | duration | ) |
Set the Ring Indicator signal to high for configurable duration of time before lowering it.
| [in] | duration | [IN] Duration in ms |
| le_result_t le_riPin_ReleaseRingSignal | ( | void | ) |
Release control of the Ring Indicator signal.
| le_result_t le_riPin_TakeRingSignal | ( | void | ) |
Take control of the Ring Indicator signal.


{% extends '../../layouts/page.html' %} {% import '../../macros/shop.html' as m_shop %} {% block page_content %}


- Engaged in the development of current HR students by being an available educational resource.
- Took advantage of time, diving into several technologies that extend the possibilities of programming.
- Honoblue to be a Hacker in Residence under three month contract with HR.


{% extends "rt_dashboard/base.html" %} {% block content %}
This list below contains all the registered queues with the number of tasks currently in the queue. Select a queue from above to view all tasks currently pending on the queue.
| Queue | Tasks |
|---|---|
| Loading... |
No workers registered!
| State | Worker | Queues |
|---|---|---|
| Loading... |
{% if queue.count() %} Empty {% elif not queue.name.startswith('[') %} Delete {% endif %} This list below contains all the registered tasks on queue {{ queue.name }}, sorted by age {% if queue.name.startswith('[') %} (newest on top). {% else %} (oldest on top). {% endif %}
| Name | Age | Actions |
|---|---|---|
| Loading... |


--- layout: page title: About header-img: "img/about-bg.png" ---
Stephanie is a full time employee and part time software engineering student with a passion for code.


How can we help you...
Tutorial Top TipsRegion (map pin) or standard marks. Helps identify the origin.
Period (calender) Identify's the assay office which determines a location & time period.
Year (abc) Letters show the year of manufacture
Additional (star) Will not be present on all marks. Usually recognised as a sovereigns head
Does your image contain similar marks to either of these three sections?
If Yes, choosing a matching section narrows your search and provides more accurate results
If No, see more information
Region
Period
Year
Other
Symbol Smith provides marks for are 3 Locations:
Guild Mark: Leopard's head or Lion's Passant
Both vary in aspects, the leopards head was surmounted with a crown between 1478-1820. Sometimes on small pieces it was omitted altogether especially between 1790-1820.
London had a very high standard of design and workmanship over the centuries. The work showed a lot of individuality in conception and execution of pieces. They have recieved world admiration.
Guild Mark: Anchor accompanied by Lion Passant
Established by the Act of Parliament in 1773.
During the 20th Century an anchor placed on its side represented gold and an upright mark represented silver. From 1999 on it was placed on its side for all metals
Guild Mark: Harp Crowned. From 1731 figure of Hibernia was added
Hallmarking in Ireland began in middle of 17th century. A whole range of silver craft was found bearing the Dublin mark. Dublin was known for its excellent workmanship and designs of a decorative nature. From the 18th century, the influence of emigrant goldsmiths can be seen. Dublin was unaffected by 1973 British hallmarking Act.
Other locations include:
A hallmark is mark stamped on articles of gold, silver, or platinum by the British assay offices, certifying their standard of purity. Most articles of silver will bear marks these which are embedded by its manufacturer and enable the years and origin to be traced. Three key marks, the standard, the assay office & the date letter can determine its finness & value.
For centuries British silver is protected by the stamping of these symbols and letters. Thanks to the "date letter" any piece of British sterling silver can be exactly dated.
Hallmarks are applied with a hammer and punch, a process that leaves sharp edges and spurs of metal. Therefore, hallmarking is generally done before the piece goes for its final polishing. See More >>
No Marks??
If the piece has other marks it could be silver plated or silver from outside Britain. If it has no marks at all, The marks may have been rubbed off but it cannot be legally sold as silver. It is instead sold as white metal.
A hallmark is mark stamped on articles of gold, silver, or platinum by the British assay offices, certifying their standard of purity. Most articles of silver will bear marks these which are embedded by its manufacturer and enable the years and origin to be traced. Three key marks, the standard, the assay office & the date letter can determine its finness & value.
For centuries British silver is protected by the stamping of these symbols and letters. Thanks to the "date letter" any piece of British sterling silver can be exactly dated.
Hallmarks are applied with a hammer and punch, a process that leaves sharp edges and spurs of metal. Therefore, hallmarking is generally done before the piece goes for its final polishing. See More >>
No Marks
If the piece has other marks it could be silver plated or silver from outside Britain. If it has no marks at all, The marks may have been rubbed off but it cannot be legally sold as silver. It is instead sold as white metal.
Most items will contain marks from each of these categories, the first three are the most important. The other categories will help produce more accurate results
Also know as Standard Marks, Show the Fineness or Purity of the silver. In England there have been two standards to which silver was assayed, Sterling & Britannia. From 1720, Sterling became the legally required standard.
Also known as Assay Office or Town marks. They enable the location of the assay office that tested and hallmarked the article to be traced but it’s not necessarily where it was manufactured. Marks differed at each assay office.
Letters of the alphabet are used as marks to represent the date of manufacture. Only from 1975 did all date letters coincide with the calender year. The various cycles of date letters can be identified by their forms & shape of their shields.
These are not part of the marks that show fineness, but if absent when they should be present that should raise a question.
Duty Marks - A mark of the sovereigns head showed duty was paid. Variable tax was levied on all silver in Great Britain. However marks were slow to change of on death of the sovereigns, some offices took several years to change.
Other marks include the Draw-Back when duty was refunded 1784-85, the Kings Jubilee to commemorate 25th anniversary of his majesty, 1935-36 and the Cornation mark of Queen Elizabeth in 1953.
Although we don't provide access to makers marks, it is important to know they will also appear on most silver items. Makers Marks - Represent the craft persons responsible for design, manufacture, decorating, finishing and selling the article. From 1697-1720 by law the first two letters of your surname was used. From 1999 they became known as sponsor’s mark. There are large volumes of makers marks.


--- layout: archive title: Zulip Chat Archive permalink: /stream/179818-Lean-Together-2019/topic/Metaprogramming.20Tutorial.html ---
Here is the source file I built up during the tutorial yesterday:
metaprogramming.lean
Last updated: Apr 24 2020 at 19:02 UTC


Newton Docking Protocol.
Newton Docking Protocol
Newton Docking Protocol event commands for 2.0 Newton ROM
Extensions.
Newton communicates with the desktop by exchanging Newton event
commands.
In the commands below, all data is padded with nulls to 4 byte
boundaries. The length associated with each command is the length (in
bytes) of the data following the length field. All strings are C
strings unless otherwise specified.
All commands begin with the sequence -- '
newt
', '
dock
'.
Newton communicates with the desktop by exchanging Newton event
commands. The general command structure looks like this:
'newt'
'dock'
'aaaa' // the specific command
length // the length of the following command
data // data, if any
Compatibility
The protocol described above for 2.0 is a superset of the 1.0
protocol. However, the protocol version has been incremented so old
versions of Newton Connection will no longer work with this version.
The reason for this is that, although the protocol itself is upwardly
compatible, the data structures in other parts of the 2.0 Newton have
changed to such a degree that old versions of Newton Connection will no
longer work.
Desktop Initiated Functions while connected
With the advent of the new protocol, the Newton and the desktop
can be connected, but with no command specified. A command can be
requested by the user on either the Newton or the Desktop.


{% include 'header.html' %}
All About Me!
I love animals in general. I even went to an agricultral high school. I learned how to take care of small and large animals. I even learned how to drive a tractor and run a green house. Fostering cats was part of a three year long project for my school.
Am I a cat lady? Perhapse. Are my cat allergies worth it? Sometimes. But at the end of the day, I love having pets in my house.
If you want to know more about my fostering experience, visit the about page!


GRUB-BIN2H(1) User Commands GRUB-BIN2H(1) NAME grub-bin2h - convert a binary file to a C header SYNOPSIS grub-bin2h [OPTIONS] SYMBOL-NAME DESCRIPTION Convert a binary file to a C header. -h, --help display this message and exit -V, --version print version information and exit REPORTING BUGS Report bugs to<EMAIL_ADDRESS>SEE ALSO The full documentation for grub-bin2h is maintained as a Texinfo manual. If the info and grub-bin2h programs are properly installed at your site, the command info grub-bin2h should give you access to the complete manual. grub-bin2h (GRUB) 1.99-27.1crunchbanMay 2013 GRUB-BIN2H(1)


Wadup, {{current_user.username}}?
Click the link below, if you want to go to the upload page
Upload
{% else %}Wadup {{current_user.username}}?
You'll need to subscribe if you want to use our site
Subscribe
{% endif %} {% else %}Hey there
You'll need to register as a user and get a subscription if you want to use our site
Register
{% endif %}


Examplesedit
These examples should help illustrate how to build your own actions.
Starting in Curator 4.1, you can use environment variables in your configuration files.
These examples should help illustrate how to build your own actions.
Starting in Curator 4.1, you can use environment variables in your configuration files.


In order to understand what are considered best practices associated with classes and ID’s, it is important to first understand the primary differences between the two.
So what are the differences? ID’s are unique. Each page is only able to have one element with an ID. Classes are not unique, a web page can have a class used on multiple elements, you can also have multiple classes on the same element.
And how are they similar? They both serve as ‘hooks’ from which properties can be assigned to an element by giving the class or ID values in css.
Best practices regarding the two involve not indulging in superfluous classes or IDs. If an element does not require a class to serve it’s intended purpose, then there is no need to add on unnecessary classes or an ID. If you are writing a style that you want applied to a bunch of different elements across the page, then it is best to assign them to a class, so that any changes to the style will be automatically assigned to all relative elements on the website. Alternatively, if only one element is going to be effected by a particular style, then this would be a good time to assign it an ID.
Please note, most of my information came from here


--- layout: default title: Home --- Hello World!
Welcome to my blog. I'll mostly be documenting topics I've found interesting to learn. I also hope to provide a few concise but comprehensive guides on programming languages and other subjects.


type internal/reflectlite.chanType
4 uses
internal/reflectlite (current package)
type.go#L205: type chanType struct {
type.go#L494: chanType
type.go#L582: tt := (*chanType)(unsafe.Pointer(t))
type.go#L592: tt := (*chanType)(unsafe.Pointer(t))
The pages are generated with Golds v0.2.7-preview. (GOOS=darwin GOARCH=amd64)


{{ client.company_name }}
{{ client.name }}
{{ client.testimony }}
Crafter Digital
Creative agency that is based in Bandung, Indonesia. We have awesome designers and developers that have been working on various mobile and web application UI.
WHAT WE DO
Provide awesome service for you
These are the awesome services we provide to you
Why Choose Us?
Our people have helped these companies
We like to build close relationships with our clients. We believe dynamic collaboration is the only way to get the job done well.
{{ client.company_name }}
{{ client.name }}
{{ client.testimony }}


Styling
Substance over form right ? But for a UI/UX to be great, you need some
pazazz, and that comes from styling with
css (well, scss in our case). If you are not familiar with scss,
their documentation is not very long and a great place to start.
Structuring
As with the "angular part" of the app, we also want to have structure for our global styling. In a perfect world, your structure would
look like this so that it (kinda) follows
the 7-1 pattern , but with a few quirks to make it Angular-y :
-
abstracts: here are all the scss files that do not produce any css on their own. That means
that you could @import '...'; all the partials from this folder in another file and it will not
generate any css rules unless you declaratively use the mixins, placeholders, etc. that are inside those files.
-
base:
The base/ folder holds what we might call the boilerplate code for the project. In there, you might find the reset file, some
typographic rules, and probably a stylesheet defining some standard styles for commonly used HTML elements (that I like to call
_base.scss).
Note that you might have close to a 0% chance of having to create your own reset file (see below)
- layout: contains layout related styling, so mostly grid related rules.
-
themes: You should just know that all sub-folders are one theme and need to follow the same
structure as the "root" styles folder. See below if you have needs for theming (did I just hear someone yell "Swiss" in the back
?)
-
vendors: here you put scss code that imports styles from node_modules, one file per npm package
ideally. you can have a look at
_material.scss
for example.
-
main.scss: this is where the
magic happens, its the file
that will be imported in your angular.json file an so that will be used to generate the global
styling of your app.
Naming
-
Everything should be in kebab-case, except for constants that should be in
SCREAMING-KEBAB-CASE.
-
If you need modifier classes like the d-flex class from Bootstrap, you should prefix them with
is-, so you might have a class called is-flex for example.
Components
One of the purpose of the aforementioned structure is to enable you to easily and cleanly style your components. So, you might want to
use your variables and your mixins in your component stylesheet right ? You first reflex might be to do something like this:
This is not really great is it? We can do better ! First, you will have to adapt your
angular.json file. In particular, it's the
stylePreprocessorOptions we want to add.
With this, your component's stylesheet could be as elegant as
Theming (compile time)
If you followed the previous sections, you just need a few extra steps for each theme you will have. First you'll have to add a folder
for your new theme like shown in the structure section above for a sweet sweet dark theme. Ideally, you will not need much more then the
mains.scss and _variables.scss. You can see below a naive
implementation of a dark theme.
This might feel a bit convoluted but this structure gives you theming both for global styling and component styling. The last thing you
have to adapt is the infamous angular.json and add two new configurations for you theme next to the
production configuration.
You will notice that the "production-dark" is a merge between the "production" and the "dark" configurations. With all that, your
scripts for developing and building the app could be:
Note on angular 9+
Coming in angular 9, we will be able to use multiple configurations in one command line, so the "production-dark" could be removed and
the scripts would look like
Css reset
The thing is, all browsers are not born equal and in regard to this topic, default css rules for buttons, list and others might not be
consistent depending on which browser you are using (and in particular, which
browser your user is using). In this regard, it is always better to do a good cleanup at the start to standardize default styling.
There are a few options available depending on the strength of the visual identity your application need to have:
-
Reset CSS: this ancestral css reset is quite basic and kinda remove
everything, so it's a good base if you want to define everything on your own. It is also available as an
unofficial npm package.
-
Normalize.css is a more lenient reset that keeps a few basics (like lists
keeping their bullets). It's a good start to have consistency but also usability for the base html elements.
-
Reboot is the css reset of bootstrap and it you should be your choice,
well, if you use bootstrap in your app. It might be a good choice even if it's the only part of bootstrap you will use (and it is
based on Normalize.css!). Beware that it comes with a great design idea which is
*{{ '{' }}box-sizing: border-box;} which might be problematic for some situations, like when using
mat-form-field from angular material.
Css frameworks/libraries
So, chances are, you don't want to start from scratch for your styles right? There are a
lots of solutions available to us today.
Angular material
Ok ok, this is more of an angular/javascript library than a css one, but hear me out. So, material is a set of extensive
styling guidelines that aims to provide a highly consistent and qualitative UX. Because of
this, material has a really strong visual identity so it might be hard to tweak it to your needs, but if your needs are close enough to
the material design specs, this should be your go-to solution. In deed, the angular material library comes with a lot of qualitative
components and services that are easy(-ish) to use and requires from you very few (styling) customization.
And what about css? The thing is, angular material is more about providing styled components then a css framework. You do have a few
classes to be used anywhere in your app like the ones for elevation or for
typography, but that is it. So, if you need need more, please look at the
rest of this list.
Bootstrap
Bootstrap is the current ruler of the css frameworks
empire and it has been wearing the crown for several years now. It really is a good place to start, and even without the "component"
part of the framework, all the different helpers classes are quite useful, like their
grid system or the different
utility classes. If you already are using a more component oriented
framework like angular material, it might be a good idea that, instead of directly importing
bootstrap.scss, you put a dedicated file in your vendors folder and import only the needed scss files
from bootstrap. Based on the source-code of bootstrap.scss, you could have something like this:
But we are in angular, so what do we want? Styled components! And when do we want them? Right now! So the previous example is not good
enough, we need to split things up a bit:
With this in place, you can use bootstrap at both:
-
the global level: you just need to add @import 'vendors/bootstrap.scss'; to your
main.scss file
-
the component level: depending on what you need, you might just want to add
@import 'vendors/bootstrap/abstract'; to your file to start using bootstrap stuff in your
component, like here below.
Others
Here is a short list of qualitative libraries that you might want to at least read about:
-
Bourbon is a pure scss library that comes only with abstract entities (mixin, etc.). So this is
just like lodash but for scss. A good example of its usefulness is its
ellipsis mixin or the more trivial but expressive
border-left-radius mixin.
-
Tailwind is, as its developers say, a utility based css library, and the thing is, it's how we
mostly use Bootstrap anyway. So, to its core, this library is really "styled components" friendly. The downfall is that it is quite
hard to use with "vanilla" angular for the moment
since it uses PostCSS, but with the cli's future developments, this might be easier to integrate at some point.
-
Last but definitely not least, Bulma is really worth checking out. It's pure (s)css, so no javascript
involved and its api is quite straightforward. This might be the most serious competitor of Bootstrap at the moment.


Handcrafted, Home-made Masterpieces
Features
Premium Materials
Our trombones use the shiniest brass which is sourced locally. This will increase the longevity of your purchase.
Fast Shipping
We make sure you recieve your trombone as soon as we have finished making it. We also provide free returns if you are not satisfied.
Quality Assurance
For every purchase you make, we will ensure there are no damages or faults and we will check and test the pitch of your instrument.
How It's Works
Pricings
TENOR TROMBONE
$300
Lorem ipsum dolor sit amet consectetur adipisicing elit.


{% extends "base.html" %} {% block content %} {%for row in rows%}
this will delete your account permanently


--- layout: post esbma_id: unknown title: Billions without Buzz date: 2014-06-27 12:00:00 ---
I've been thinking a lot lately about the distorted perspective I get when I extrapolate from my daily sources of content.
I currently follow 304 people on Twitter. These people are a primary means for me to hear about stuff that is (1) happening, and (2) important to me.
I rely more on echoes than voices. For example, I don't follow Satya Nadella (@satyanadella). But whenever he tweets something I would find important, I hear about it anyway, because a dozen people I do follow are talking about it.
Twitter for me is all about conversations. It's about buzz. I'm interested in what people are talking about. And I like having the option of participating in the chatter.
And the people I choose to follow pretty much cover everything important. I don't miss anything that I need to know.
Or do I?
Obviously, my method is designed to exclude information. Sometimes my buzz filter works exactly as I want. I rarely see any tweets about Miley Cyrus. That is "by design".
I also like the fact that buzz is naturally slanted toward things that are new even though lots of very important things are old. (As long as I don't get confused. If I extrapolate from buzz with a black-and-white mentality, I might believe that COBOL, SQL, and Subversion are dead because everybody has switched to Java, Mongo, and Git. Older technologies have little or no buzz, but tons of people are still using them everyday.)
The problem is the stuff that is new and important (to me) but has very little buzz.
I am absolutely convinced that the B2B wave of mobile apps has barely started.
As Benedict Evans (@BenedictEvans) says, mobile is eating the world. But so far, most of the action is with consumers, not businesses.
And this whole wave has been very high-buzz, mostly because everything had to get bigger, and the stuff that could not was, er, "disrupted".
Add two billion mobile devices to the world and lots of people are forced to think about scale in a whole new way:
Manufacturing. Foxconn is enormous. What was the biggest manufacturing facility on earth before the iPhone?
Venture Capital. I remember when $100M was an exit. Now it's a series A.
Servers. Mobile is accelerating the growth of the cloud, served by data centers that make Soldier Field look small.
Databases. When you have 500 million users, you can't afford unique constraints and foreign keys in the db layer anymore.
All this big-ness is causing a lot of disruption. And buzz.
Meanwhile, the majority of the corporate world is still trying to figure out what to do about mobile.
Consider this in terms of the classic marketing bell curve:
In the consumer world, mobile is in the conservatives, and starting to sell to the laggards.
In the corporate world, mobile is in the early adopters. It's pre-chasm.
Companies who still need high growth to justify their stock price (read: Apple) are distressed about the notion that everybody on the planet who can afford a smart phone already has one. Marketing reseach firms are still doing surveys asking corporate IT about when they are going to dive into mobile even as my Mom has two tablets.
Has there ever been a technology wave where the consumers got so far ahead of business?
I was one of those people in the early 80s who had a computer before they were prevalent in the business world. But I was a hobbyist and a nerd. In terms of volume and sheer revenue, adoption of PCs was driven by companies, not consumers. They wanted to run Lotus 1-2-3, so they led the way. It was a long time before computers solved real problems for consumers in the way that they solved real problems for business. In fact, I'd argue this didn't happen until around 1995 when the Web came along.
In mobile devices, consumers have gotten so far ahead that they have provided the client side of the infrastructure that Corporate IT will use. Going forward, it's going to be BYOD (Bring Your Own Device). Big companies are not going to buy 10,000 BlackBerries for their workforce when everybody already has a smart phone. Instead, they have to figure out how they're going to securely integrate all these different devices into their corporate systems (which is why cross-platform is getting even more important in the mobile space, which is contributing to Xamarin's pursuit of world domination). This is not the kind of policy to which Corporate IT is accustomed, and that is slowing them down even more.
But this is going to happen. A lot of enterprise apps are going to get written.
And this wave will be very low-buzz compared to the "Angry Birds and Candy Crush" wave. People won't be talking about it (and even when they do, the sound will get drowned out by the buzz over the Internet of Things wave).
Quite simply, the B2B apps wave is not interesting enough to get serious buzz:
It won't be as disruptive.
It won't re-challenge our notions of scale. (Walmart's 2.2 million employees would be a small user base by today's standards.)
It's going to be built on, and integrated with, technologies that are old. (Corporate IT will prefer to add mobile incrementally, with as little change to existing systems as possible.)
Compared to my first computer(s), an iPhone is a supercomputer. We are moving into a wave where companies like Procter & Gamble are going to gain operational efficiency because all their employees carry supercomputers in their pocket. And this will be considered boring.
But despite all the yawns, this wave is going to involve a lot of money. Many billions of dollars are going to move around as all these enterprise apps get written.
In other words, this is going to be boring in the same way that IBM has been boring for the last decade. This week, my Twitter feed is dominated by people talking about the Google I/O conference. Nobody is talking about IBM, even though they have almost twice as much revenue as Google. That's how buzz works.
If I want to closely follow something that doesn't have much buzz, I'm gonna have to work harder.
I am currently reading a book called Billion Dollar Apps, by Alex Bratton (@alexbratton), CEO of Lextech, a custom mobile app dev shop in Chicago.
My buzz filter certainly didn't find this book for me:
@alexbratton has even fewer Twitter followers than I do.
@LextechApps has fewer followers than some high school students I know.
Almost all of Bratton's followers are people I don't know.
Google searches reveal no apparent connection between Lextech and Xamarin.
Twitter searches suggest that Bratton and Lextech have seldom or never been mentioned by Scott Hansleman (@shanselman).
There just aren't many connections between Lextech's world and mine. In fact, it looks like maybe I am the only occupant of the overlapping portion of the Venn diagram.
Maybe Lextech just doesn't have much buzz. Or maybe Lextech has the kind of buzz that happens mostly off Twitter. Maybe the CIOs of Fortune 500 companies share rides on their private jets where they sip Macallan 25 and talk about how great Lextech is.
Whatever. I've been following Alex Bratton on Twitter largely because he and I were students at UIUC around the same time, and I sort-of vaguely remember him. Were it not for this very thin college connection, I might never have heard of him or his company or his book.
And that would be sad, because Lextech's activities land squarely in an area of interest for me. Bratton's company may be low-buzz, but they're building B2B mobile apps for banner-name companies including GE, Fidelity, John Deere, Blue Cross, and H&R Block. They're riding the front of the wave. I think that's pretty darn cool.
So I am halfway through the book, and two things are already quite clear:
The book is really good.
I find it boring.
Basically, I'm not enjoying this book because it was clearly not written for people like me. I enjoy fiction books about crime investigation and books with lots of curly braces and semicolons. Billion Dollar Apps is neither of these. It's written for CxOs at big companies who have to make big decisions about mobile technology.
But I'm forcing myself to read this book for the same reason I force myself to eat certain unappealing vegetables. I don't like the taste, but I think it's good for me.
Thinking about Lextech and its customers is forcing me to widen my perspective. It is reminding me that the boredom goes both ways:
Most developers don't care about the details of how John Deere is using mobile to make its business run better. They tend to focus more on the technology than on solutions to problems.
Probably nobody at John Deere is spending their time critiquing the design of Xamarin.Forms or figuring out best practices for PCLs. They see mobile technology as a solution to their problems.
This book is good because it speaks to its intended audience, and that group of people doesn't care about the details of why certain .NET things are incompatible with the AOT compiler in Xamarin.iOS. Billion Dollar Apps is a book that talks about sensibly applying mobile technology to make regular non-geek businesses work better.
Like most other geeks, I am prone to getting lost in technology for its own sake. But I'm not just a developer. I'm an entrepreneur. I need to keep a sense of balance.
So, I don't particularly want to read this book, but I need to read it.
Bratton's book is about the beginning of a big boring bazaar where beaucoup billions bounce bereft of buzz.
(Sorry, the forced alliteration was shameful, but I couldn't resist.)
I've wandered around a bit, so let me close with a summary of key points you might take away from this blog entry:
Consider reading Alex Bratton's book. If you are a CxO of a Fortune 500 company (and you probably are not, because you're reading my blog), you'll probably like it.  Eat your brussel sprouts.
Widening your perspective is always good advice. If you're like me, there's a really good chance that your daily information flow has boundaries. Those boundaries make you efficient, but they also constantly protect you from seeing the perspective of people who are not like you. Look outside your boundaries.
If you are interested in the boring B2B wave of mobile apps, so am I. Maybe we should talk. Maybe I should be following you on Twitter. Maybe we should see if we can create a little buzz.


Hi! I'm Vivian Gomez, an student of System and Computing Engineering at Universidad de los Andes. Additionally, I study an specialization in Visual Computing, which is one of my favorites fields in my major.
I am a creative person, leader, well work in teams and I ever want to learn all that I can. Currently, I'm very interested in web development, data visualization, video games development and the creation of software to solution problems and help the people.
EXPERIENCE
ALGORITHMS AND OBJECT ORIENTED PROGRAMMING
Undergraduate Teaching Assistant
My job consist in help the students with their doubts and questions about the programming activities, during the laboratories.
Additionally, I have to grade the exams and projects, and I indicates them their errors and the correct solutions.
SOFTWARE DEVELOPMENT IN TEAMS
Leader of team, and leader of design
My job was organize a weekly chronogram of tasks, distribute responsibilities, and help to my colleagues in their leaderships. Also, I was leading the activities of engineering design and visual design of our project.
For that purpose, we use tools like Github, Teamwork and Slack.
As a result, our project was the best of the semester and an example to the next semester teams.
SKILLS
PROJECTS
During my major I have worked in many projects to apply my knowledge and skills, my favorites projects are:
Note: Click in the picture to see more information.
Foohealli (Food, Health, Life)
Is a mobile application that helps people with chronic kidney disease. How? Foohealli makes dietary recommendations using medical exams of the users.
La Union
La Union was a web application, which helped couples to planning their marriage and make it a unforgettable experience.
AppDogTame
AppDogTame was an mobile application, which helped people that want adopt a dog.
It was an intermediary between adoption centers and these people..


Save your progress - soft intro to git
This is an introduction on saving your code the way a developer does – through source control management. git is what is used for these tutorials.
What is git?
git is software. You use git to help manage your source code. While you still “Save” your code files the traditional way through your text editor, it is good practice (and used by professional engineers and hobbyists alike) to “save” your code with a source code management tool.
Instead of “Save” and “Save As”, you “commit” your code to your local repository. A repository (a.k.a. repo) can be thought of as the main, root directory for a project or a package.
A bit of context, git was initially designed and developed by Linus Torvalds for the development of Linux.
Git and GitHub
Do not confuse git and GitHub!* git is software, GitHub is a company that offers remote hosting for your git repositories (rather than just having a local copy on your machine). BitBucket is also a company that offers remote hosting for your git repositories (as well as Mercurial repositories). Simply put, they offer a social aspect to coding – allowing you to connect to other developers.
To setup git locally on your machine, GitHub has a few great resources:
Resources for using git:
Your workflow with git
With git, users can do what’s called branching and merging. With a repo, you have a main, original branch called master. Off of master, you can make branches. Consider this to give you the ability to play around with code, break things, etc, while keeping the original/master safe. If you’re happy with what has been completed within a branch, you merge the branch into the master branch, and it becomes your new original.
It’s good to start off using git with good habits. Whenever you start something new, like as soon as you clone a repository, one good habit is to make a branch to merge in later when you’re satisfied with your progress.
When you are intermittently saving your progress on a branch, make a commit to your branch. Commit your code regularly, whether when you’re done for the day, when you‘ve finished coding out one of the parts of the tutorial, before you answer the phone when someone calls you, etc. Rather than making one big “atomic” commit at big milestones (e.g. after the completion of one tutorial, an implementation of a feature), doing this makes it very easy to undo changes that you’ve made without losing big progress.
One awesome feature about git is that once you are ready to merge the branch into master, you can do what’s called squashing your commits into one big one. So, sure, you’ve made many commits - perhaps they’re many commits with one line of code or typos.
Here is a sample workflow of making a respository, branching, committing, squashing, then merging into master.
Within your terminal, we will initialize our repository and get the newcoder code base:
1 2 3 4 5 6 7 8 9 10 11 12 13 | ## make a Projects folder and move into that folder (change directories)
$ mkdir Projects && cd Projects
## initialize/create a new git repository
$ git init
## add a reference (a link) to my repository, naming it "upstream"
$ git remote add upstream https://github.com/econchick/new-coder.git
## pull in my repo (the master branch) from the above GitHub link into your
## repository
$ git pull upstream master
## check the status of your repository
$ git status
# On branch master
nothing to commit (working directory clean)
|
Now, let’s create a branch for our development:
1 2 3 4 5 | ## create a branch to start doing your work for the first tutorial, dataviz
$ git branch dataviz
## switch to the dataviz branch
$ git checkout dataviz
## go ahead and start coding and working.
|
When you are done for the day, interrupted, or want to save whatever small progress you’ve made, then commit it (save) your progress to your repo. We first have to add the file(s) that you’ve changed so that git knows to track them, then commit with a message for your reference:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | ## when you need to stop, or when you’ve made some changes you want
## to keep, you first add the files for git to track & commit:
$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 4 commits.
#
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: dataviz/tutorial_source/parse.py
#
no changes added to commit (use "git add" and/or "git commit -a")
$ git add dataviz/tutorial_source/parse.py
## then commit with a message:
$ git commit -m "part 1 of dataviz tutorial"
[master aa2a2e3] part 1 of dataviz tutorial
1 file changed, 1 insertion(+)
|
To check your commits, you can see git’s logs:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | $ git log
commit aa2a2e301ef11ce27a799988354ea30b7aacb1c9
Author: Lynn Root<EMAIL_ADDRESS>Date: Thu Mar 14 10:48:25 2013 -0700
part 1 of dataviz tutorial
commit f7629fe807a270f4bb67375cf7d3f93b0aab4381
Author: Lynn Root<EMAIL_ADDRESS>Date: Mon Mar 11 14:58:00 2013 -0700
figured out the graph function
commit 77578d675dbf0d9f360dc1d3af399538715491c2
Author: Lynn Root<EMAIL_ADDRESS>Date: Mon Mar 11 14:48:53 2013 -0700
fixing typo in my code
|
When you are ready to merge your progress into master (e.g. you’ve finished the whole tutorial), then squash commits via git rebase
with the -i
flag for interactive, and HEAD~3
refers to the last three commits:
You first run this command:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | $ git rebase -i HEAD~3
pick 77578d6 fixing typo in my code
pick f7629fe figured out the graph functions
pick aa2a2e3 part 1 of dataviz tutorial
# Rebase c59a19b..aa2a2e3 onto c59a19b
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
# However, if you remove everything, the rebase will be aborted.
|
This is a vi screen (a text editor within the terminal). To use vi, there are special keys to edit and move around. Press i
to start editing, and move up and down with your keyboard’s arrow keys.
Notice the pick
by each of the three commits that you’ve recently done. We will edit the latest two commits to say squash
. When done, press the following keys to save: ESC
+ :
+ w
+ q
+ Enter
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | pick 77578d6 fixing typo in my code
squash f7629fe figured out the graph functions
squash aa2a2e3 part 1 of dataviz tutorial
# Rebase c59a19b..aa2a2e3 onto c59a19b
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
# However, if you remove everything, the rebase will be aborted.
|
Now you will see a new vi screen to edit:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | # This is a combination of 3 commits.
# The first commit's message is:
typo in my code
# This is the 2nd commit message:
figured out the graph functions
# This is the 3rd commit message:
part 1 of dataviz tutorial
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# Not currently on any branch.
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: dataviz/tutorial_source/parse.py
#
|
You can now edit these messages to have one single message. This is essentially rewriting history, so let’s write a meaningful commit message. The lines starting with #
will be ignored. When done editing, press ESC
+ :
+ w
+ q
+ Enter
.
1 2 3 4 5 6 7 8 9 10 11 12 | # This is a combination of 3 commits.
# The first commit's message is:
Completed the dataviz tutorial
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# Not currently on any branch.
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: dataviz/tutorial_source/parse.py
#
|
Now you should see a message to the following;
1 2 3 | Created commit 0fc4eea: Completed the dataviz tutorial
1 files changed, 14 insertions(+), 13 deletions(-)
Successfully rebased and updated refs/heads/dataviz.
|
Ok now that we’ve squashed & rebased our many commits into one, we should merge our progress onto master:
1 2 | $ git checkout master
$ git merge dataviz
|
You should now see the one squashed commit in the commit log:
1 2 3 4 5 6 | $ git log
commit 90b4bdb388480529b1524b6afedbb0fab0fc4eea
Author: Lynn Root<EMAIL_ADDRESS>Date: Thu Mar 14 10:48:25 2013 -0700
Completed the dataviz tutorial
|
However, you have not lost the commits you’ve squashed. To see all commits:
1 2 3 4 5 6 | $ git reflog
0fc4eea HEAD@{0}: rebase -i (finish): returning to refs/heads/master
0fc4eea HEAD@{1}: rebase -i (squash): Completed the dataviz tutorial
aa2a2e3 HEAD@{2}: commit: part 1 of dataviz tutorial
f7629fe HEAD@{3}: commit: figured out the graph functions
77578d6 HEAD@{4}: commit: typo in my code
|
That’s it! You can find another quick tutorial on squashing git commits here.
Benefit to using GitHub or BitBucket
When you have code up on GitHub and/or BitBucket, not only do they implicitly provide backup to your code in case anything happens to your local machine, but it also is a resume for you as a developer.
As you work through these tutorials, I encourage you to use GitHub or BitBucket (or any other service that allows you to publicly share repositories) to “push” your code so others can see your progress. While I suggest you locally commit often and commit happily, only push code to GitHub/BitBucket when there is a good completion point (e.g. when you've finished a tutorial).


|
RAMADDA User Guide
|
| 12.0 |
Installing RAMADDA
|
| 12.1 |
Configuring the RAMADDA Database
|
| 12.2 |
Quick Installation
|
| 12.3 |
Read Only Mode
|
| 12.4 |
Plugins
|
| 12.5 |
HTML Page Templates
|
| 12.6 |
Admin Settings
|
| 12.7 |
User Administration
|
| 12.8 |
Miscellaneous Admin Settings
|
| 12.9 |
Backups
|
| 12.10 |
Harvesters
|
| 12.11 |
Registry Services
|


Implementations of the Crypto JavaScript host objects - users of HtmlUnit shouldn't need anything in this package.


In this article, I propose a way of thinking about how much design up front is necessary in large system implementations.
It is common cause in the agile community to talk about the need to avoid anticipating a final solution in all its detail. Instead, we are advised, we need to balance delivery with discovery — incrementally delivering features, making them available for feedback and being open to discovering what we were not expecting both in terms of the customer experience and the technical implementation.
However, many large systems — particularly those that require a large set of standard features in order to deliver a minimum viable product — need some non-trivial amount of design to occur before delivery to customers. How much is enough? I introduce a simple model called the Lazy J Curve to explain the behaviours behind traditional large project planning and then use this model to derive the dynamics behind ‘just enough’ planning and design for large projects.
Large Projects and the Unknown
If I look back on large projects that I have been associated with and consider how much time is spent defining what is known versus what is anticipated I find an interesting pattern. When implementing a large banking program, such as a core bank replacement, much is known of what constitutes the minimum required for a bank to function. For instance, we need current accounts, savings accounts, perhaps some kind of lending both secured and unsecured. In mature industries, projects of this kind rely a great deal on the experience of practitioners to define the ‘current’ state.
But I have also seen a great deal effort spent on anticipating the implications of those new ideas or technologies, now grafted onto the present model. To use a banking example once again, we obsess over how to adjust customer onboarding processes to take advantage of new channels, and we try to learn from disruptive payments methods to reduce the cost and increase the penetration of our payments products.
For ease of exposition, let’s call the first group of known requirements, the Hump and the second group of anticipated requirements, the Tail.
When we look back on a project that has these attributes it is often difficult to separate out the (elapsed) time spent on either the hump or the tail. But in talking to team members, their stories will inevitably be about the effort spent on the tail. We find that the work of documenting the hump proceeds in a (mostly) orderly manner and with a fairly well understood schedule. The best example of this is to be found in consulting companies that do this sort of thing for a living. Any senior consultant will likely have done half a dozen of these projects, efficiently documenting the basic processes required for (for instance) customer onboarding.
The work in the tail is largely unknown before the project begins and as such the team discovers new and unexpected complexities that then require effort to sort through. Sometimes this might result in the idea being shelved and a less complex idea implemented. The process of deciding to abandon work in a large project has a high overhead in itself. In some cases, the complexities might be thought central to what is new and competitive about the product or proposition and thus is pursued doggedly.
In both these cases, a great deal of time is spent in understanding what could go wrong or put the project deadline / cost etc. at risk. This entails efforts spent in further anticipating a range of options that have little basis in the experience of the project participants. Effort expended, I find, is far greater in the tail than in the hump. This may be diagrammed as shown below where the total area under the curve is effort:
The tail and the hump
As the diagram shows, we expend a great deal of effort on what we know to be important (to our customer) and what we know will result in failure (of the system). What the diagram only hints at though is the extent of the effort spent on anticipating what might be valuable to a customer and those areas of system function that might fail under certain circumstances. This case is represented by the tail, running off the page for as long as we let it. In my experience the tail is far longer than this scale shows. The unknown and Priority In an ‘ideal’ case, what should we focus on? The graph below shows a hypothetical (and largely arbitrary) line that may be used to separate the important OR likely to fail from the unimportant or not known to fail. Wherever this line lies in reality is a job for the economists. For our purposes, it is sufficient to posit that there is some partition of the total effort spent that adds more value than the other.
Investment Priority
We can think of effort spent above the line as being of higher priority than that below the line. The location of the line gives us a useful definition. The functionality entailed by the effort above the line may be thought of as a minimum viable product. In my experience, an MVP needs to capture enough of the basic requirements in the application’s domain to attract new users, but so much as to delay release while we tail-gaze.
We still have a problem though. How do we know that what we work on after delivering the MVP is worth the effort? Is it possible to avoid tail-gazing? Many projects seem to avoid this trap. How do they do it?
The Lazy J Curve
I propose that we can focus on priority and function such that we stay above our hypothetical line of value throughout a project, but it needs some outside guidance.
Lazy J Curve
The graph above is achieved by transforming the initial curve by placing it along a new x axis — the investment priority line. It shows some interesting properties.
- The hump is defined as being before a point specified as the feedback inflection point. This is the point at which we begin to actively acquire feedback from running an MVP.
- Before feedback, not all of the work we do is of uniform importance. I don’t want to pretend pseudo-science so the shape is illustrative only. However, it is clear that as we proceed towards what we think is good enough to release not all features are of equal importance.
- Why does the curve trend upwards after the feedback point? The only input, after we have dealt with the known features, that will ensure we do not dip down below the investment line must be something that ensures we are expending effort on what is valuable. This is feedback. Feedback will be from customers on which features resonate and from operations on how the platform as a whole is performing.
- What is intuitively attractive about this curve is that the long tail is consistent with agile experience. Your ability to stay profitable as you move into less familiar technical territory, driven by scale concerns, compliance and security etc., is balanced by your increased refinement on a product level of what your customer wants and needs.
I call the result, the ‘Lazy J curve’. Use it.


8 Keys to Recovery from an Eating Disorder by Carolyn Costin and Gwen Grabb is a detailed guide for people considering recovery from an ED. This book covers various topics, from overcoming guilt to entering therapy.
Body Image: Understanding Body Dissatisfaction in Men, Women, and Children by Sarah Grogan takes a scientific perspective on body image issues.
Love Yourself is a beautiful video that points out the unnatural beauty standards in the media
The Messy Heads is, in addition to it being a published magazine, a blog with daily updates run by social media personality, Emma Mercury. The premise of this magazine/blog is to promote the idea that you shouldn’t seek perfection in life because it is unattainable.
Kati Morton's Eating Disorder workbooks are a great resource for recovery. Check our her website for more workbooks, worksheets, and a supportve community.
The National Institutes for Mental Health provides information about eating disorders, such as what an eating disorder is and risk factors.
About Face is a website that educates individuals about body image and its portrayal in the media. It provides resources for taking action against advertisement-makers that set unrealistic body standards in their advertisements.
National Eating Disorders Association is a group that provides resources, such as programs and services for families, to those struggling with eating disorders. It also educates the public about eating disorders.
The Messy Heads is, in addition to it being a published magazine, a blog with daily updates that is run by Emma Mercury. The premise of this magazine/blog is to promote the idea that you shouldn’t see perfection in life because it is unattainable. It also includes art and literature submissions from people across the world.
Do Something is an organization that helps to provide solutions to a number of issues, such as bullying, violence, homelessness and body image.
This is a Tedx Talk by performer Lillian Bustle. She discusses body image and her own experiences with body shaming. She hopes to help others embrace their bodies as well. Watch it here:


PyConSK 2022
This is the first time I have been to PyCon SK and I am impressed.
PyCon SK 2022 - Day 1
I arrived in the city late due to the delayed flights, just in time to catch Miro’s talk about encoding in Python (and how it messes up his name all the time)
Also, I am lucky enough to sign up and gave a lightning talk.
Great lightning talk by @cheukting_ho at @pyconsk !#pyconsk2022 #pyscript pic.twitter.com/WdfX4KVoxd
— Denny Biasiolli (@DennyBiasiolli) September 9, 2022
In the evening we went out for food and drinks. Here is where all the ideas between various communities around the world started. I pitched the idea of PyScript Dojo to the organisers in Berlin and hopefully, we will have an event soon.
PyCon SK 2022 - Day 2
In the morning I had a walk around town then I head to the venue. The venue is in the university but there are a few theatre rooms and a good hallway so perfect for a medium size conference. It is hall track for me in the morning and I slowly get back into the conference again.
The hall track of @pyconsk is amazing! pic.twitter.com/Y9nLEMiX9y
— Cheuk Ting Ho 💙💛 (@cheukting_ho) September 10, 2022
After lunch, I went to Tom Dyson’s talk about how Python can help us in a world full of depressing stuff.
Tom Dyson talks about how to find happiness in Python… even though we have too many scary stuff in the world. @pyconsk pic.twitter.com/afdjcO9ibF
— Cheuk Ting Ho 💙💛 (@cheukting_ho) September 10, 2022
Then I do some final preparation for my talk.
My talk is about PyScript and I am glad that there are so many good questions asked after the talk and people are interested to try it out themselves.
Thank you @cheukting_ho for great presentation on PyScript. "import d3" seems like dream came true for many people. #pyconsk pic.twitter.com/FHermQSduO
— Jarmil M. Beruska (@jarmil_berushka) September 10, 2022
There is a Python quiz which is very exciting and fun. I did not get into the podium but still got the 9th which wins me a gadget that is useful for my future travel.
Thank you @pyconsk for the fun quiz and now I have something that doesn’t hurt my ears during long flights pic.twitter.com/HEMVMjfecu
— Cheuk Ting Ho 💙💛 (@cheukting_ho) September 10, 2022
In the evening there is the conference dinner. We talk about all sorts of things including the plans for future events in the community.
Conference dinner @pyconsk pic.twitter.com/KdTuMjXxoi
— Cheuk Ting Ho 💙💛 (@cheukting_ho) September 10, 2022
PyCon SK 2022 - Day 3
Today is also the day I will go back home, I had a walk in the morning in the botanical garden next to the conference.
I manage to join the conference for half a day. I spent most of the time talking to people before I head to the airport. It is good to be able to talk to someone who may find Python in the browser useful in their educational tool. I think this will be a good connection for the PyScript team.
So many people here @pyconsk pic.twitter.com/TbsMUCmfNw
— Cheuk Ting Ho 💙💛 (@cheukting_ho) September 10, 2022
Conclusions
I am quite impressed by PyCon SK, the local Python community here is bigger than I thought. Many sponsors are startups in this part of the world that treasure the Python community and see the opportunities in PyCon here.
Swag swap with @gingy_love thank you for the @codekiwicom socks @pyconsk pic.twitter.com/vJrqt1s5Y7
— Cheuk Ting Ho 💙💛 (@cheukting_ho) September 10, 2022
There is also an education focus in this PyCon. There is an educational track and there are workshops that some teenagers attend. Some of them are so talented that they have won a coding competition using micro:bit.
Kids are so smart here @pyconsk Coding in #Python and creat something with @microbit_edu pic.twitter.com/nUHoOxFeO0
— Cheuk Ting Ho 💙💛 (@cheukting_ho) September 10, 2022
I got good opportunities to talk to a few people who have their work related to Education, and both of them show interest in PyScript. I think it will be useful for my work in the future.


CSS Boxes
Block tags like div ,p,
and h1 live in a "box".
Working from the inside out, you have.
- The text or image content wrapped
as appropriate taking up horizontal and
vertical space.
- The padding is the
space between the content and the border
and is colored the same as the text.
-
The border has its own
color and width.
-
The margin is the space
between the border and
the rest of the elements in the document.
- Also note that while the ul
and li items are
children of the p
tag, they have their own
background-color.
But you can have a paragraph inside of
a list.
-
And a list item can have its own background color.


Amid row over Gandhis' security, SPG amendment bill to be tabled next week
Lok Sabha will take up the proposed amendment to the Special Protection Group Act next week, Union Minister Arjun Ram Meghwal said on Friday.
Elite SPG commandos protect the prime minister and his/her immediate family, former prime ministers and their immediate family for a certain period depending on the threat perception.
While listing out the government's business for next week in Lok Sabha, Meghwal said besides other bills, the SPG (Amendment) Bill will also be introduced.
According to official sources, family members of former prime ministers will not be guarded by the elite SPG commandos, as per the amendments approved by the Union cabinet.
This comes days after the government withdrew the SPG protection given to Congress president Sonia Gandhi and her children, Rahul Gandhi and Priyanka Gandhi Vadra, after almost three decades.


|
OR-Tools
7.1
Google Optimization software suite
|
KnapsackSearchNode is a class used to describe a decision in the decision search tree. More...
#include <knapsack_solver.h>
Public Member Functions | |
| KnapsackSearchNode (const KnapsackSearchNode *const parent, const KnapsackAssignment &assignment) | |
| int | depth () const |
| const KnapsackSearchNode *const | parent () const |
| const KnapsackAssignment & | assignment () const |
| int64 | current_profit () const |
| void | set_current_profit (int64 profit) |
| int64 | profit_upper_bound () const |
| void | set_profit_upper_bound (int64 profit) |
| int | next_item_id () const |
| void | set_next_item_id (int id) |
KnapsackSearchNode is a class used to describe a decision in the decision search tree.
The node is defined by a pointer to the parent search node and an assignment (see KnapsackAssignement). As the current state is not explicitly stored in a search node, one should go through the search tree to incrementally build a partial solution from a previous search node.
Definition at line 257 of file knapsack_solver.h.
| operations_research::KnapsackSearchNode::KnapsackSearchNode | ( | const KnapsackSearchNode *const | parent, |
| const KnapsackAssignment & | assignment | ||
| ) |
|
inline |
Definition at line 261 of file knapsack_solver.h.
|
inline |
Definition at line 262 of file knapsack_solver.h.
|
inline |
Definition at line 263 of file knapsack_solver.h.
|
inline |
Definition at line 265 of file knapsack_solver.h.
|
inline |
Definition at line 266 of file knapsack_solver.h.
|
inline |
Definition at line 268 of file knapsack_solver.h.
|
inline |
Definition at line 269 of file knapsack_solver.h.
|
inline |
Definition at line 271 of file knapsack_solver.h.
|
inline |
Definition at line 272 of file knapsack_solver.h.


|
mlpack
1.0.12
|
Statistic for multi-resolution kd-trees. More...
Public Member Functions | |
| MRKDStatistic () | |
| Initialize an empty statistic. More... | |
| template<typename TreeType > | |
| MRKDStatistic (const TreeType &) | |
| This constructor is called when a node is finished initializing. More... | |
| size_t | Begin () const |
| Get the index of the initial item in the dataset. More... | |
| size_t & | Begin () |
| Modify the index of the initial item in the dataset. More... | |
| const arma::colvec & | CenterOfMass () const |
| Get the center of mass. More... | |
| arma::colvec & | CenterOfMass () |
| Modify the center of mass. More... | |
| size_t | Count () const |
| Get the number of items in the dataset. More... | |
| size_t & | Count () |
| Modify the number of items in the dataset. More... | |
| size_t | DominatingCentroid () const |
| Get the index of the dominating centroid. More... | |
| size_t & | DominatingCentroid () |
| Modify the index of the dominating centroid. More... | |
| std::string | ToString () const |
| Returns a string representation of this object. More... | |
| const std::vector< size_t > & | Whitelist () const |
| Access the whitelist. More... | |
| std::vector< size_t > & | Whitelist () |
| Modify the whitelist. More... | |
Private Attributes | |
| size_t | begin |
| The initial item in the dataset, so we don't have to make a copy. More... | |
| arma::colvec | centerOfMass |
| The center of mass for this dataset. More... | |
| size_t | count |
| The number of items in the dataset. More... | |
| const arma::mat * | dataset |
| The data points this object contains. More... | |
| size_t | dominatingCentroid |
| The index of the dominating centroid of the associated hyperrectangle. More... | |
| bool | isWhitelistValid |
| Whether or not the whitelist is valid. More... | |
| const MRKDStatistic * | leftStat |
| The left child. More... | |
| const MRKDStatistic * | parentStat |
| A link to the parent node; NULL if this is the root. More... | |
| const MRKDStatistic * | rightStat |
| The right child. More... | |
| double | sumOfSquaredNorms |
| The sum of the squared Euclidean norms for this dataset. More... | |
| std::vector< size_t > | whitelist |
| The list of centroids that cannot own this hyperrectangle. More... | |
Statistic for multi-resolution kd-trees.
Definition at line 25 of file mrkd_statistic.hpp.
| mlpack::tree::MRKDStatistic::MRKDStatistic | ( | ) |
Initialize an empty statistic.
| mlpack::tree::MRKDStatistic::MRKDStatistic | ( | const TreeType & | ) |
This constructor is called when a node is finished initializing.
| node | The node that has been finished. |
|
inline |
Get the index of the initial item in the dataset.
Definition at line 45 of file mrkd_statistic.hpp.
References begin.
|
inline |
Modify the index of the initial item in the dataset.
Definition at line 47 of file mrkd_statistic.hpp.
References begin.
|
inline |
|
inline |
Modify the center of mass.
Definition at line 57 of file mrkd_statistic.hpp.
References centerOfMass.
|
inline |
Get the number of items in the dataset.
Definition at line 50 of file mrkd_statistic.hpp.
References count.
|
inline |
Modify the number of items in the dataset.
Definition at line 52 of file mrkd_statistic.hpp.
References count.
|
inline |
Get the index of the dominating centroid.
Definition at line 60 of file mrkd_statistic.hpp.
References dominatingCentroid.
|
inline |
Modify the index of the dominating centroid.
Definition at line 62 of file mrkd_statistic.hpp.
References dominatingCentroid.
| std::string mlpack::tree::MRKDStatistic::ToString | ( | ) | const |
Returns a string representation of this object.
|
inline |
|
inline |
|
private |
The initial item in the dataset, so we don't have to make a copy.
Definition at line 73 of file mrkd_statistic.hpp.
Referenced by Begin().
|
private |
The center of mass for this dataset.
Definition at line 85 of file mrkd_statistic.hpp.
Referenced by CenterOfMass().
|
private |
The number of items in the dataset.
Definition at line 75 of file mrkd_statistic.hpp.
Referenced by Count().
|
private |
The data points this object contains.
Definition at line 71 of file mrkd_statistic.hpp.
|
private |
The index of the dominating centroid of the associated hyperrectangle.
Definition at line 91 of file mrkd_statistic.hpp.
Referenced by DominatingCentroid().
|
private |
Whether or not the whitelist is valid.
Definition at line 96 of file mrkd_statistic.hpp.
|
private |
The left child.
Definition at line 77 of file mrkd_statistic.hpp.
|
private |
A link to the parent node; NULL if this is the root.
Definition at line 81 of file mrkd_statistic.hpp.
|
private |
The right child.
Definition at line 79 of file mrkd_statistic.hpp.
|
private |
The sum of the squared Euclidean norms for this dataset.
Definition at line 87 of file mrkd_statistic.hpp.
|
private |
The list of centroids that cannot own this hyperrectangle.
Definition at line 94 of file mrkd_statistic.hpp.
Referenced by Whitelist().


NSArray(MASAdditions) Category Reference
| Declared in | NSArray+MASAdditions.h NSArray+MASAdditions.m |
|---|
– mas_makeConstraints:
Creates a MASConstraintMaker with each view in the callee. Any constraints defined are added to the view or the appropriate superview once the block has finished executing on each view
- (NSArray *)mas_makeConstraints:(void ( ^ ) ( MASConstraintMaker *make ))block
Parameters
block |
scope within which you can build up the constraints which you wish to apply to each view. |
|---|
Return Value
Array of created MASConstraints
Discussion
Creates a MASConstraintMaker with each view in the callee. Any constraints defined are added to the view or the appropriate superview once the block has finished executing on each view
Declared In
NSArray+MASAdditions.h
– mas_updateConstraints:
Creates a MASConstraintMaker with each view in the callee. Any constraints defined are added to each view or the appropriate superview once the block has finished executing on each view. If an existing constraint exists then it will be updated instead.
- (NSArray *)mas_updateConstraints:(void ( ^ ) ( MASConstraintMaker *make ))block
Parameters
block |
scope within which you can build up the constraints which you wish to apply to each view. |
|---|
Return Value
Array of created/updated MASConstraints
Discussion
Creates a MASConstraintMaker with each view in the callee. Any constraints defined are added to each view or the appropriate superview once the block has finished executing on each view. If an existing constraint exists then it will be updated instead.
Declared In
NSArray+MASAdditions.h
– mas_remakeConstraints:
Creates a MASConstraintMaker with each view in the callee. Any constraints defined are added to each view or the appropriate superview once the block has finished executing on each view. All constraints previously installed for the views will be removed.
- (NSArray *)mas_remakeConstraints:(void ( ^ ) ( MASConstraintMaker *make ))block
Parameters
block |
scope within which you can build up the constraints which you wish to apply to each view. |
|---|
Return Value
Array of created/updated MASConstraints
Discussion
Creates a MASConstraintMaker with each view in the callee. Any constraints defined are added to each view or the appropriate superview once the block has finished executing on each view. All constraints previously installed for the views will be removed.
Declared In
NSArray+MASAdditions.h
– mas_distributeViewsAlongAxis:withFixedSpacing:leadSpacing:tailSpacing:
distribute with fixed spacing
- (void)mas_distributeViewsAlongAxis:(MASAxisType)axisType withFixedSpacing:(CGFloat)fixedSpacing leadSpacing:(CGFloat)leadSpacing tailSpacing:(CGFloat)tailSpacing
Parameters
axisType |
which axis to distribute items along |
|---|---|
fixedSpacing |
the spacing between each item |
leadSpacing |
the spacing before the first item and the container |
tailSpacing |
the spacing after the last item and the container |
Discussion
distribute with fixed spacing
Declared In
NSArray+MASAdditions.h
– mas_distributeViewsAlongAxis:withFixedItemLength:leadSpacing:tailSpacing:
distribute with fixed item size
- (void)mas_distributeViewsAlongAxis:(MASAxisType)axisType withFixedItemLength:(CGFloat)fixedItemLength leadSpacing:(CGFloat)leadSpacing tailSpacing:(CGFloat)tailSpacing
Parameters
axisType |
which axis to distribute items along |
|---|---|
fixedItemLength |
the fixed length of each item |
leadSpacing |
the spacing before the first item and the container |
tailSpacing |
the spacing after the last item and the container |
Discussion
distribute with fixed item size
Declared In
NSArray+MASAdditions.h


| CS 374 Compilers Homework #1 |
Note: This work is to be done in groups of 2. Each group will submit one assignment. Although you may divide the work, both team members should be able to present/describe their partner's work upon request.
0. HW1 Preparation: Download the given starter code and read Chapter 1 thoroughly. The test statements of SLPTest are difficult to read in their abstract syntax construction form, so consider initially compiling and running SLPTest to see (through use of recursive toString methods) these statements in their original source code form.
1. Maximum Print Arguments: Read Programming Problem 1 on p.12. This method in SLPTest initiates a recursion over an abstract syntax tree to evaluate maxargs. However, most maxargs methods have been trivially (and incorrectly) implemented as "return 0;". Your challenge is to implement the maxargs methods of the abstract syntax classes correctly. Note: If there are no print statements, the result should be 0. Also note that print statements can occur within print statement arguments through expression sequences (EseqExp).
2. Interpreting Straight-Line Programs: Read Programming Problem 2 on pp. 12-14. This method in SLPTest initiates a recursion over an abstract syntax tree to evaluate interp, that is, to execute the straight-line program. However, most interp methods have been trivially (and incorrectly) implemented as "return null;". Your challenge is to implement the interp methods of the abstract syntax classes correctly.
3. Extended Testing (due Thursday 1/26): Add at least five useful test statements to the statements array of SLPTest. The correct output for the test statements supplied are as follows:
$ java SLPTest Program: a := 5 + 3; b := (print(a, a - 1), 10 * a); print(b) Max Arguments: 2 Execution Output: 8 7 80 Program: print(2, 3, 4) Max Arguments: 3 Execution Output: 2 3 4 Program: print((print(2, 3, 4), 1)) Max Arguments: 3 Execution Output: 2 3 4 1 Program: print((print(1), 2), 3, 4) Max Arguments: 3 Execution Output: 1 2 3 4 Program: a := 1; print(a); a := 2; print(a) Max Arguments: 1 Execution Output: 1 2 Program: a := 1; print(a); print((a := 2, a)); print(a) Max Arguments: 1 Execution Output: 1 2 2 Program: print((a := 1, a), (a := a + 1, a), (a := a + 1, a)) Max Arguments: 3 Execution Output: 1 2 3
(These comments are to supplement your reading. Question(s) asked are for you to think about on your own and need not be turned in with the homework.)
Early on, skim Appendix A in anticipation of our implementation of a MiniJava compiler. In what ways do you observe that MiniJava has been simplified from Java? What is most surprising? Are there alternative ways that MiniJava can accomplish the same computation as some familiar forms that are missing?
1.1: Don't be concerned if the jargon in Figure 1.1 doesn't mean much to you at this stage. Think of it as being an approximate syllabus for the course. You'll understand Figure 1.1 very well by the end of the course. The same goes for Table 1.2, but do read it as best you can at this stage. Come back to this section regularly for a bird's eye view of what we're accomplishing.
1.2: There is considerable overlap in the topics of Chapters 2 and 3
and our theoretical computer science coverage of CS 201/301. We'll avoid
repetition of such material. If you'll be taking the Computer Science GRE
subject test before completing CS301, be sure to dig into the material we'll
skim now. I'll be glad to help you one-on-one.
We'll be using the tool JavaCC for this course.
1.3: We'll be covering the semantics (meaning) of straight-line programs
in class. Read the style and modularity conventions thoroughly. The
classes of Program 1.5 (along with toString methods) are supplied
here.


Inserting a Document
How to insert a document using the TelerikEditorProvider for the RTE.
- Click the Document Manager button. This opens the Document Manager.
- Navigate to and select the required document. See "Using the Resource Manager"
- Optional. In the Link Text text box, modify the text associated with this document. The filename is used by default.
- Optional. At Target select the target window for this link.
- Optional. In the Tooltip text box, enter a tool tip to be displayed when a user places their mouse over this link.
- Optional. At CSS Class, select a class for the document link.
- Click the Insert button.
Tip: Additional document properties are available. See "Setting Document Properties"
Inserting a Document


001 /* 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017 package org.apache.commons.configuration.resolver; 018 019 import java.net.URL; 020 import java.util.Map; 021 022 /** 023 * Interface used for registering and retrieving PUBLICID to URL mappings. 024 * @author <a 025 * href="http://commons.apache.org/configuration/team-list.html">Commons 026 * Configuration team</a> 027 * @since 1.7 028 * @version $Id: EntityRegistry.java 1206577 2011-11-26 20:25:52Z oheger $ 029 */ 030 public interface EntityRegistry 031 { 032 /** 033 * <p> 034 * Registers the specified URL for the specified public identifier. 035 * </p> 036 * <p> 037 * This implementation maps {@code PUBLICID}'s to URLs (from which 038 * the resource will be loaded). A common use case for this method is to 039 * register local URLs (possibly computed at runtime by a class loader) for 040 * DTDs and Schemas. This allows the performance advantage of using a local 041 * version without having to ensure every {@code SYSTEM} URI on every 042 * processed XML document is local. This implementation provides only basic 043 * functionality. If more sophisticated features are required, either calling 044 * {@code XMLConfiguration.setDocumentBuilder(DocumentBuilder)} to set a custom 045 * {@code DocumentBuilder} (which also can be initialized with a 046 * custom {@code EntityResolver}) or creating a custom entity resolver 047 * and registering it with the XMLConfiguration is recommended. 048 * </p> 049 * 050 * @param publicId Public identifier of the Entity to be resolved 051 * @param entityURL The URL to use for reading this Entity 052 * @throws IllegalArgumentException if the public ID is undefined 053 */ 054 void registerEntityId(String publicId, URL entityURL); 055 056 /** 057 * Returns a map with the entity IDs that have been registered using the 058 * {@code registerEntityId()} method. 059 * 060 * @return a map with the registered entity IDs 061 */ 062 Map<String, URL> getRegisteredEntities(); 063 }


Preparation time
less than 30 mins
Cooking time
1 to 2 hours
Serves
Serves 2-3
This is one of the easiest and nicest rice dishes, and its origins are in the traditional Cajun cooking of America. It's very easy to adapt it to whatever you have handy - fish, chicken or even pork.
Equipment and preparation: You will need a 10 inch (25.5 cm) frying pan with a lid.
Begin by bringing a pan with 1 pint (570 ml) of water to simmering point. If using raw prawns, drop them into the water for 3 minutes. After that, remove them with a draining spoon, reserving the cooking liquid. (Cooked prawns will not need this pre-cooking.) Now set aside two whole prawns and shell the rest. To do this, just remove the heads by giving them a sharp tug, then simply peel off the rest - which comes away very easily - but leave the tails intact as this makes them look nicer. Now remove the black vein from the back of each prawn, which will come away easily using the point of a sharp knife. Next place the shells in the pan of water and simmer for 30 minutes, without a lid, to make a nice prawn-flavoured stock, then drain and discard the shells. Pour the hot stock into a jug and cover with a plate to keep warm.
Now heat the frying pan over a high heat and brown the pieces of chorizo sausage, without adding any fat, then remove them from the pan to a plate and set aside. Then add a tablespoon of the oil and, when it's hot, fry the onions for 2-3 minutes to brown them a little at the edges, then return the chorizo to the pan and add the garlic, celery, chilli and sliced pepper. Continue to fry for 4-5 minutes, till the celery and pepper are also softened and lightly tinged brown at the edges, adding a little more oil if you need to.
Now stir in the rice to get a good coating of oil, then measure out 12 fl oz (340 ml) of the reserved stock and add the Tabasco to it. Next add the chopped tomatoes and bay leaf to the pan, then pour in the stock. Season with salt and freshly milled black pepper, give it all one stir and push the rice down into the liquid. Now turn the heat to low, put a lid on and let it barely simmer for 20 minutes.
Then, check the rice is cooked and return the shelled and the two reserved shell-on prawns to the pan, adding a little more stock if necessary. Cover with a lid for 5 more minutes, then serve garnished with the chopped parsley and spring onions.


MAN FROM PLANET X, THE (director: Edgar G. Ulmer; screenwriters: Aubrey Wisberg/Jack Pollexfen; cinematographer: John Russell; editor: Fred R. Feitshans, Jr.; cast: Robert Clarke (John Lawrence), Margaret Field (Enid Elliot), Raymond Bond (Professor Elliot), William Schallert (Dr. Mears), Roy Engel (Tommy the Constable), David Ormont (Inspector Porter); Runtime: 70; United Artists; 1951)
Reviewed by Dennis Schwartz
One of those innovative shoestring budget sci-fier films that Edgar G. Ulmer made a career out of. This one is overall a competent work with some uniquely atmospheric scenes. The film took six days to shoot in the old Pathe Hollywood studio, though the film is set in the Scottish moors. It used the same set designs as Ingrid Bergman did in the 1948 "Joan of Arc."
After scientists observe in an LA observatory the strange configurations of the planets, a British astronomer, Professor Elliot (Bond), discovers an unknown planet he calls Planet X. He figures it will come closest to the Earth in a certain isolated and marshy island on the Scottish moors.  One of his former students, Dr. Mears (Schallert), who is brilliant but is also unstable and evil, unexpectedly shows up at his doorsteps and the kindhearted professor lets him stay on to help.
The film's hero, John Lawrence (Clarke), is an American newspaper reporter who knew the professor from the war. The professor promised him a chance to get a big story if he was ever onto something, so he asks John to join him in his Scottish moor retreat.
John when he's not making eyes at Enid and staring down the sleazy Mears, is discovering strange things in the dark and rainy setting he's thrust into; such as, a magnetic range finder that the unknown planet astronauts used to navigate its spacecraft to Earth. Soon Enid is frightened when she sees an alien (it's actually an uncredited vaudeville actor stuffed into a diver's mask, who is sweating like crazy because he's having trouble turning the knob to adjust his air intake).
The film's dilemma is about whether this alien is a friend or foe, as the observers can't communicate with him. When the professor comes down with the flu and is forced to his bed, Mears takes over trying to communicate with him and decides that the alien has valuable info that could make him a very wealthy man. So he decides to beat it out of him, which makes the alien a bit miffed at all the Earthlings. One of the powers the alien has is mind control, and soon the locals disappear and come back as enslaved zombies. When the local constable teams up with the journalist, they discover the alien is picking them off one by one and decide to get outside help from the army. To John's dismay he finds that besides the locals-- Enid, the professor, and Mears have been taken.
To make a ridiculous story short, we learn that the alien comes from a dying planet and they need to conquer the Earth in order to survive. Help will arrive when the constable figures out a way to contact Scotland Yard and John heroically confronts the alien and turns off his air pressure. The alien invaders didn't put up much of a fight, but I bet if Ulmer had a few more days of shooting time we would have seen a lot more action.
REVIEWED ON 9/21/2001 GRADE: B-
Dennis Schwartz: "Ozus' World Movie Reviews"
http://www.sover.net/~ozus
<EMAIL_ADDRESS>© ALL RIGHTS RESERVED DENNIS SCHWARTZ
========== X-RAMR-ID: 29569 X-Language: en X-RT-ReviewID: 251153 X-RT-TitleID: 1095792 X-RT-SourceID: 873 X-RT-AuthorID: 1315 X-RT-RatingText: B-
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Invokes a script block, script, command, or encoded command under a new powershell.exe
process.
Invoke-PowerShell -ScriptBlock <ScriptBlock> [-ArgumentList <Object[]>] [-OutputFormat <String>] [-ExecutionPolicy {Unrestricted | RemoteSigned | AllSigned | Restricted | Default | Bypass | Undefined}] [-NonInteractive] [-x86] [-Runtime <String>] [<CommonParameters>]
Invoke-PowerShell -Command <Object> [-ArgumentList <Object[]>] [-Encode] [-OutputFormat <String>] [-ExecutionPolicy {Unrestricted | RemoteSigned | AllSigned | Restricted | Default | Bypass | Undefined}] [-NonInteractive] [-x86] [-Runtime <String>] [-Credential <PSCredential>] [<CommonParameters>]
Invoke-PowerShell -FilePath <String> [-ArgumentList <Object[]>] [-OutputFormat <String>] [-ExecutionPolicy {Unrestricted | RemoteSigned | AllSigned | Restricted | Default | Bypass | Undefined}] [-NonInteractive] [-x86] [-Runtime <String>] [-Credential <PSCredential>] [<CommonParameters>]
The Invoke-PowerShell
scripts executes powershell.exe
. All processes are started with powershell.exe's -NoProfile
paramter. You can specify values for powershell.exe's OutputFormat
, ExecutionPolicy
, and NonInteractive
paramters via parameters of the same name on the Invoke-PowerShell
function. Use the Runtime
parameter to run powershell.exe
version 2.
To run a script, pass the path to the script with the -FilePath
paramter. Pass any script arguments with the ArgumentList
parameter. You must escape any parameters. They are passed to powershell.exe
as-is.
To run a script block, pass the script block with the -ScriptBlock
parameter. Pass any script block arguments with the ArgumentList
parameter. You must escape any parameters. They are passed to powershell.exe
as-is.
To run a command (Carbon 2.3.0 and later only), pass the command (i.e. string of PowerShell code) with the Command
parameter. Any arguments to your command must be in the command itself. You must do any escaping.
To run an encoded command (Carbon 2.3.0 and later only), pass the command (i.e. string of PowerShell code) with the Command
parameter and the -Encode
switch. Invoke-PowerShell
will base-64 encode your command for you and pass it to powershell.exe
with its -EncodedCommand
parameter.
Beginning in Carbon 2.3.0, you can run scripts, commands, and encoded commands as another user. Pass that user's credentials with the Credential
parameter.
On 64-bit operating systems, use the -x86
switch to run the new powershell.exe
process under 32-bit PowerShell. If this switch is ommitted, powershell.exe
will be run under a 64-bit PowerShell process (even if called from a 32-bit process). On 32-bit operating systems, this switch is ignored.
The Runtime
paramter controls what version of the .NET framework powershell.exe
should use. Pass v2.0
and v4.0
to run under .NET versions 2.0 or 4.0, respectivey. Those frameworks must be installed. When running under PowerShell 2, Invoke-PowerShell
uses a temporary activation configuration file to force PowerShell 2 to use .NET 4. When run under PowerShell 3 and later, powershell.exe
is run with the -Version
switch set to 2.0
to run powershell.exe
under .NET 2.
If using PowerShell v3.0 or later with a version of Carbon before 2.0, you can only run script blocks under a v4.0
CLR. PowerShell converts script blocks to an encoded command, and when running encoded commands, PowerShell doesn't allow the -Version
parameter for running PowerShell under a different version. To run code under a .NET 2.0 CLR from PowerShell 3, use the FilePath
parameter to run a specfic script.
| Name | Type | Description | Required? | Pipeline Input | Default Value |
|---|---|---|---|---|---|
| ScriptBlock | ScriptBlock | The script block to pass to |
true | false | |
| Command | Object | The command to run, as a string. Passed to PowerShell.exe as the value to the Use the This parameter was introduced in Carbon 2.3.0. In previous versions, this parameter was an alias to the |
true | false | |
| FilePath | String | The script to run. |
true | false | |
| ArgumentList | Object[] | Any arguments to pass to the script or command. These are not powershell.exe arguments. They are passed to powershell.exe as-is, so you'll need to escape them. |
false | false | |
| Encode | SwitchParameter | Base-64 encode the command in This parameter was added in Carbon 2.3.0. |
false | false | False |
| OutputFormat | String | Determines how output from the PowerShel command is formatted. The value of this parameter is passed as-is to |
false | false | |
| ExecutionPolicy | ExecutionPolicy | The execution policy to use when running |
false | false | |
| NonInteractive | SwitchParameter | Run |
false | false | False |
| x86 | SwitchParameter | Run the x86 (32-bit) version of PowerShell. if not provided, the version which matches the OS architecture is used, regardless of the architecture of the currently running process. I.e. this command is run under a 32-bit PowerShell on a 64-bit operating system, without this switch, |
false | false | False |
| Runtime | String | The CLR to use. Must be one of Beginning with Carbon 2.3.0, this parameter is ignored, since Carbon 2.0 and later only supports PowerShell 4 and you can't run PowerShell 4 under .NET 2.0. This parameter is OBSOLETE and will be removed in a future major version of Carbon. |
false | false | |
| Credential | PSCredential | Run This parameter is new in Carbon 2.3.0. |
false | false |
Invoke-PowerShell -ScriptBlock { $PSVersionTable }
Runs a separate PowerShell process which matches the architecture of the operating system, returning the $PSVersionTable from that process. This will fail under 32-bit PowerShell on a 64-bit operating system.
Invoke-PowerShell -ScriptBlock { $PSVersionTable } -x86
Runs a 32-bit PowerShell process, return the $PSVersionTable from that process.
Invoke-PowerShell -ScriptBlock { $PSVersionTable } -Runtime v4.0
Runs a separate PowerShell process under the v4.0 .NET CLR, returning the $PSVersionTable from that process. Should return a CLRVersion of 4.0
.
Invoke-PowerShell -FilePath C:\Projects\Carbon\bin\Set-DotNetConnectionString.ps1 -ArgumentList '-Name','myConn','-Value',"'data source=.\DevDB;Integrated Security=SSPI;'"
Runs the Set-DotNetConnectionString.ps1
script with ArgumentList
as arguments/parameters.
Note that you have to double-quote any arguments with spaces. Otherwise, the argument gets interpreted as multiple arguments.
Invoke-PowerShell -FilePath Get-PsVersionTable.ps1 -x86 -ExecutionPolicy RemoteSigned
Shows how to run powershell.exe with a custom executin policy, in case the running of scripts is disabled.
Invoke-PowerShell -FilePath Get-PsVersionTable.ps1 -Credential $cred
Demonstrates that you can run PowerShell scripts as a specific user with the Credential
parameter.
Invoke-PowerShell -FilePath Get-PsVersionTable.ps1 -Credential $cred
Demonstrates that you can run PowerShell scripts as a specific user with the Credential
parameter.
Invoke-PowerShell -Command '$PSVersionTable'
Demonstrates how to run a PowerShell command contained in a string. You are responsible for quoting things correctly.
Invoke-PowerShell -Command '$PSVersionTable' -Encode
Demonstrates how to run a base-64 encode then run PowerShell command contained in a string. This runs the command using PowerShell's -EncodedCommand
parameter. Invoke-PowerShell
does the base-64 encoding for you.
Invoke-PowerShell -Command '$env:USERNAME' -Credential $credential
Demonstrates how to run a PowerShell command as another user. Uses Start-Process
to launch powershell.exe
as the user.