|
M480 BSP V3.05.005
The Board Support Package for M480 Series
|
Macros | |
| #define | GPIO_CLR_INT_FLAG(port, u32PinMask) |
| Clear GPIO Pin Interrupt Flag. More... | |
| #define | GPIO_DISABLE_DEBOUNCE(port, u32PinMask) |
| Disable Pin De-bounce Function. More... | |
| #define | GPIO_ENABLE_DEBOUNCE(port, u32PinMask) |
| Enable Pin De-bounce Function. More... | |
| #define | GPIO_DISABLE_DIGITAL_PATH(port, u32PinMask) |
| Disable I/O Digital Input Path. More... | |
| #define | GPIO_ENABLE_DIGITAL_PATH(port, u32PinMask) |
| Enable I/O Digital Input Path. More... | |
| #define | GPIO_DISABLE_DOUT_MASK(port, u32PinMask) |
| Disable I/O DOUT mask. More... | |
| #define | GPIO_ENABLE_DOUT_MASK(port, u32PinMask) |
| Enable I/O DOUT mask. More... | |
| #define | GPIO_GET_INT_FLAG(port, u32PinMask) |
| Get GPIO Pin Interrupt Flag. More... | |
| #define | GPIO_SET_DEBOUNCE_TIME(u32ClkSrc, u32ClkSel) |
| Set De-bounce Sampling Cycle Time. More... | |
| #define | GPIO_GET_IN_DATA(port) |
| Get GPIO Port IN Data. More... | |
| #define | GPIO_SET_OUT_DATA(port, u32Data) |
| Set GPIO Port OUT Data. More... | |
| #define | GPIO_TOGGLE(u32Pin) |
| Toggle Specified GPIO pin. More... | |
| #define | GPIO_EnableEINT |
| Enable External GPIO interrupt. More... | |
| #define | GPIO_DisableEINT |
| Disable External GPIO interrupt. More... | |
Functions | |
| void | GPIO_SetMode (GPIO_T *port, uint32_t u32PinMask, uint32_t u32Mode) |
| Set GPIO operation mode. More... | |
| void | GPIO_EnableInt (GPIO_T *port, uint32_t u32Pin, uint32_t u32IntAttribs) |
| Enable GPIO interrupt. More... | |
| void | GPIO_DisableInt (GPIO_T *port, uint32_t u32Pin) |
| Disable GPIO interrupt. More... | |
| void | GPIO_SetSlewCtl (GPIO_T *port, uint32_t u32PinMask, uint32_t u32Mode) |
| Set GPIO slew rate control. More... | |
| void | GPIO_SetPullCtl (GPIO_T *port, uint32_t u32PinMask, uint32_t u32Mode) |
| Set GPIO Pull-up and Pull-down control. More... | |
| #define GPIO_CLR_INT_FLAG | ( | port, | |
| u32PinMask | |||
| ) |
Clear GPIO Pin Interrupt Flag.
| [in] | port | GPIO port. It could be PA, PB, PC, PD, PE, PF, PG or PH. |
| [in] | u32PinMask | The single or multiple pins of specified GPIO port. It could be BIT0 ~ BIT15 for PA, PB, PC, PD, PF and PH GPIO port. It could be BIT0 ~ BIT13 for PE GPIO port. It could be BIT0 ~ BIT11 for PG GPIO port. |
Clear the interrupt status of specified GPIO pin.
| #define GPIO_DISABLE_DEBOUNCE | ( | port, | |
| u32PinMask | |||
| ) |
Disable Pin De-bounce Function.
| [in] | port | GPIO port. It could be PA, PB, PC, PD, PE, PF, PG or PH. |
| [in] | u32PinMask | The single or multiple pins of specified GPIO port. It could be BIT0 ~ BIT15 for PA, PB, PC, PD, PF and PH GPIO port. It could be BIT0 ~ BIT13 for PE GPIO port. It could be BIT0 ~ BIT11 for PG GPIO port. |
Disable the interrupt de-bounce function of specified GPIO pin.
| #define GPIO_DISABLE_DIGITAL_PATH | ( | port, | |
| u32PinMask | |||
| ) |
Disable I/O Digital Input Path.
| [in] | port | GPIO port. It could be PA, PB, PC, PD, PE, PF, PG or PH. |
| [in] | u32PinMask | The single or multiple pins of specified GPIO port. It could be BIT0 ~ BIT15 for PA, PB, PC, PD, PF and PH GPIO port. It could be BIT0 ~ BIT13 for PE GPIO port. It could be BIT0 ~ BIT11 for PG GPIO port. |
Disable I/O digital input path of specified GPIO pin.
| #define GPIO_DISABLE_DOUT_MASK | ( | port, | |
| u32PinMask | |||
| ) |
Disable I/O DOUT mask.
| [in] | port | GPIO port. It could be PA, PB, PC, PD, PE, PF, PG or PH. |
| [in] | u32PinMask | The single or multiple pins of specified GPIO port. It could be BIT0 ~ BIT15 for PA, PB, PC, PD, PF and PH GPIO port. It could be BIT0 ~ BIT13 for PE GPIO port. It could be BIT0 ~ BIT11 for PG GPIO port. |
Disable I/O DOUT mask of specified GPIO pin.
| #define GPIO_DisableEINT |
Disable External GPIO interrupt.
| [in] | port | GPIO port. It could be PA, PB, PC, PD, PE, PF, PG or PH. |
| [in] | u32Pin | The pin of specified GPIO port. It could be 0 ~ 15 for PA, PB, PC, PD, PF and PH GPIO port. It could be 0 ~ 13 for PE GPIO port. It could be 0 ~ 11 for PG GPIO port. |
This function is used to enable specified GPIO pin interrupt.
| #define GPIO_ENABLE_DEBOUNCE | ( | port, | |
| u32PinMask | |||
| ) |
Enable Pin De-bounce Function.
| [in] | port | GPIO port. It could be PA, PB, PC, PD, PE, PF, PG or PH. |
| [in] | u32PinMask | The single or multiple pins of specified GPIO port. It could be BIT0 ~ BIT15 for PA, PB, PC, PD, PF and PH GPIO port. It could be BIT0 ~ BIT13 for PE GPIO port. It could be BIT0 ~ BIT11 for PG GPIO port. |
Enable the interrupt de-bounce function of specified GPIO pin.
| #define GPIO_ENABLE_DIGITAL_PATH | ( | port, | |
| u32PinMask | |||
| ) |
Enable I/O Digital Input Path.
| [in] | port | GPIO port. It could be PA, PB, PC, PD, PE, PF, PG or PH. |
| [in] | u32PinMask | The single or multiple pins of specified GPIO port. It could be BIT0 ~ BIT15 for PA, PB, PC, PD, PF and PH GPIO port. It could be BIT0 ~ BIT13 for PE GPIO port. It could be BIT0 ~ BIT11 for PG GPIO port. |
Enable I/O digital input path of specified GPIO pin.
| #define GPIO_ENABLE_DOUT_MASK | ( | port, | |
| u32PinMask | |||
| ) |
Enable I/O DOUT mask.
| [in] | port | GPIO port. It could be PA, PB, PC, PD, PE, PF, PG or PH. |
| [in] | u32PinMask | The single or multiple pins of specified GPIO port. It could be BIT0 ~ BIT15 for PA, PB, PC, PD, PF and PH GPIO port. It could be BIT0 ~ BIT13 for PE GPIO port. It could be BIT0 ~ BIT11 for PG GPIO port. |
Enable I/O DOUT mask of specified GPIO pin.
| #define GPIO_EnableEINT |
Enable External GPIO interrupt.
| [in] | port | GPIO port. It could be PA, PB, PC, PD, PE, PF, PG or PH. |
| [in] | u32Pin | The pin of specified GPIO port. It could be 0 ~ 15 for PA, PB, PC, PD, PF and PH GPIO port. It could be 0 ~ 13 for PE GPIO port. It could be 0 ~ 11 for PG GPIO port. |
| [in] | u32IntAttribs | The interrupt attribute of specified GPIO pin. It could be GPIO_INT_RISING, GPIO_INT_FALLING, GPIO_INT_BOTH_EDGE, GPIO_INT_HIGH, GPIO_INT_LOW. |
This function is used to enable specified GPIO pin interrupt.
| #define GPIO_GET_IN_DATA | ( | port | ) |
| #define GPIO_GET_INT_FLAG | ( | port, | |
| u32PinMask | |||
| ) |
Get GPIO Pin Interrupt Flag.
| [in] | port | GPIO port. It could be PA, PB, PC, PD, PE, PF, PG or PH. |
| [in] | u32PinMask | The single or multiple pins of specified GPIO port. It could be BIT0 ~ BIT15 for PA, PB, PC, PD, PF and PH GPIO port. It could be BIT0 ~ BIT13 for PE GPIO port. It could be BIT0 ~ BIT11 for PG GPIO port. |
| 0 | No interrupt at specified GPIO pin |
| 1 | The specified GPIO pin generate an interrupt |
Get the interrupt status of specified GPIO pin.
| #define GPIO_SET_DEBOUNCE_TIME | ( | u32ClkSrc, | |
| u32ClkSel | |||
| ) |
Set De-bounce Sampling Cycle Time.
| [in] | u32ClkSrc | The de-bounce counter clock source. It could be GPIO_DBCTL_DBCLKSRC_HCLK or GPIO_DBCTL_DBCLKSRC_LIRC. |
| [in] | u32ClkSel | The de-bounce sampling cycle selection. It could be
|
Set the interrupt de-bounce sampling cycle time based on the debounce counter clock source.
Example: _GPIO_SET_DEBOUNCE_TIME(GPIO_DBCTL_DBCLKSRC_LIRC, GPIO_DBCTL_DBCLKSEL_4).
It's meaning the De-debounce counter clock source is internal 10 KHz and sampling cycle selection is 4.
Then the target de-bounce sampling cycle time is (4)*(1/(10*1000)) s = 4*0.0001 s = 400 us, and system will sampling interrupt input once per 00 us.
| #define GPIO_SET_OUT_DATA | ( | port, | |
| u32Data | |||
| ) |
| #define GPIO_TOGGLE | ( | u32Pin | ) |
| void GPIO_DisableInt | ( | GPIO_T * | port, |
| uint32_t | u32Pin | ||
| ) |
Disable GPIO interrupt.
| [in] | port | GPIO port. It could be PA, PB, PC, PD, PE, PF, PG or PH. |
| [in] | u32Pin | The pin of specified GPIO port. It could be 0 ~ 15 for PA, PB, PC, PD, PF and PH GPIO port. It could be 0 ~ 13 for PE GPIO port. It could be 0 ~ 11 for PG GPIO port. |
This function is used to disable specified GPIO pin interrupt.
| void GPIO_EnableInt | ( | GPIO_T * | port, |
| uint32_t | u32Pin, | ||
| uint32_t | u32IntAttribs | ||
| ) |
Enable GPIO interrupt.
| [in] | port | GPIO port. It could be PA, PB, PC, PD, PE, PF, PG or PH. |
| [in] | u32Pin | The pin of specified GPIO port. It could be 0 ~ 15 for PA, PB, PC, PD, PF and PH GPIO port. It could be 0 ~ 13 for PE GPIO port. It could be 0 ~ 11 for PG GPIO port. |
| [in] | u32IntAttribs | The interrupt attribute of specified GPIO pin. It could be GPIO_INT_RISING, GPIO_INT_FALLING, GPIO_INT_BOTH_EDGE, GPIO_INT_HIGH, GPIO_INT_LOW. |
This function is used to enable specified GPIO pin interrupt.
| void GPIO_SetMode | ( | GPIO_T * | port, |
| uint32_t | u32PinMask, | ||
| uint32_t | u32Mode | ||
| ) |
Set GPIO operation mode.
| [in] | port | GPIO port. It could be PA, PB, PC, PD, PE, PF, PG or PH. |
| [in] | u32PinMask | The single or multiple pins of specified GPIO port. It could be BIT0 ~ BIT15 for PA, PB, PC, PD, PF and PH GPIO port. It could be BIT0 ~ BIT13 for PE GPIO port. It could be BIT0 ~ BIT11 for PG GPIO port. |
| [in] | u32Mode | Operation mode. It could be GPIO_MODE_INPUT, GPIO_MODE_OUTPUT, GPIO_MODE_OPEN_DRAIN, GPIO_MODE_QUASI. |
This function is used to set specified GPIO operation mode.
| void GPIO_SetPullCtl | ( | GPIO_T * | port, |
| uint32_t | u32PinMask, | ||
| uint32_t | u32Mode | ||
| ) |
Set GPIO Pull-up and Pull-down control.
| [in] | port | GPIO port. It could be PA, PB, ... or GPH |
| [in] | u32PinMask | The pin of specified GPIO port. It could be 0 ~ 15. |
| [in] | u32Mode | The pin mode of specified GPIO pin. It could be GPIO_PUSEL_DISABLE GPIO_PUSEL_PULL_UP GPIO_PUSEL_PULL_DOWN |
Set the pin mode of specified GPIO pin.
| void GPIO_SetSlewCtl | ( | GPIO_T * | port, |
| uint32_t | u32PinMask, | ||
| uint32_t | u32Mode | ||
| ) |
Set GPIO slew rate control.
| [in] | port | GPIO port. It could be PA, PB, ... or GPH |
| [in] | u32PinMask | The single or multiple pins of specified GPIO port. |
| [in] | u32Mode | Slew rate mode. GPIO_SLEWCTL_NORMAL (maximum 40 MHz at 2.7V) GPIO_SLEWCTL_HIGH (maximum 80 MHz at 2.7V) GPIO_SLEWCTL_FAST (maximum 100 MHz at 2.7V) |
This function is used to set specified GPIO operation mode.


在工作中我们经常需要查看日志来迅速的定位问题,同时发生故障时我们要经常的统计日志中相关的内容，那么掌握一些常用的日志操作命令就非常必要了。
之前了解了常用的几个统计读取日志的命令以及正则表达式,这节了解一下非常强大的两个命令,一个是sed,一个是awk,这两个命令能够完成绝大部分的关键词的取用和统计。
http://coolshell.cn/articles/9104.html#more-9104
大量的例子都是从这里搬运的，推荐大家看酷壳，个人觉得帮助到我很多。
功能：管道流编辑器,它可以读指定的文件或者标准输入流,通过一系列的命名可以去修改读到的输入,然后再将修改后的输入进行输出。它可以对匹配的每行都进行处理，比如同时加上什么东西，替换什么东西，减少什么东西。
如下所示：
$ sed 's/my/[&]/g' my.txt
This is [my] cat, [my] cat's name is betty
This is [my] dog, [my] dog's name is frank
This is [my] fish, [my] fish's name is george
This is [my] goat, [my] goat's name is adam
使用圆括号匹配的示例：（圆括号括起来的正则表达式所匹配的字符串会可以当成变量来使用，sed中使用的是\1,\2…）
$ sed 's/This is my \([^,]*\),.*is \(.*\)/\1:\2/g' my.txt
cat:betty
dog:frank
fish:george
goat:adam
上面这个例子中的正则表达式有点复杂，解开如下（去掉转义字符）： 正则为：This is my ([^,]),.is (.*) 匹配为：This is my (cat),……….is (betty) 然后：\1就是cat，\2就是betty
a命令和i命令 a命令就是append， i命令就是insert，它们是用来添加行的。


Skills and Quests
Skills
With the introduction of Archeology, there are now 31 different skills.
Types of Skills
Gathering skills
One of the two types of skills are...
Combat skills
Of the two skills, combat skills are my favorite.
With the introduction of Archeology, there are now 31 different skills.
One of the two types of skills are...
Of the two skills, combat skills are my favorite.


Welcome to wittyPy’s documentation!¶
Warning
wittyPy is currently in version 0.1 and not fully tested. Before deploying your Raspberry Pi project, please run long-time tessts and report any here
WittyPy allows you to control your WittyPi Realtime Clock with Python. Read the guide to learn about the functionality. Read the API reference to dive in deeper or in case you want to fork the project.
Contents:


Toggle navigation
rxDataTable
Examples
Simple
Basic
Typical
Complex
Full-Featured
API Docs
Dev Guides
Simple
Basic
Typical
Complex
Full-Featured


|
Your Chicken/Tk application consists of following steps:
(load "chickenTk.scm") so that the extensions are present.
(start-tk) so that the Tk interpreter is ready to receive its definitions.
- Define your widgets and bindings. Scheme coding as needed.
(event-loop) invokes the connection previously established.
(end-tk) kills the Tk interpreter
(exit) if you think you're done.
© Author
| Home
| Sitemap
|


Jose's personal question
Jose's hair color is Brown
Jose has no pets
Jose is Right handed
Jose has brown eyes
Jose is of Latin descent
10 Countries Ive visited
Jordan
Spain
Morocco
Thailand
Philippines
Cambodia
Turkey
Netherlands
Chile
Brazil


isCompound();
$isRoot = $treeLevel == 0;
$collapsed = $this->getCollapseStatus($condition->id, false);
?>
children()->withDeferred($this->sessionKey.'_'.$condition->id)->get();
$lastIndex = $children->count() - 1;
?>
$childCondition): ?>
= $this->makePartial('condition', [
'condition' => $childCondition,
'treeLevel' => $treeLevel + 1,
'parentCondition' => $condition
]) ?>
-
= e($this->getCacheConditionJoinText($condition)) ?>
×


Recipe Buddy
Focus less on shopping, and more on cooking!
Recipes
Find Random Recipe
Saved Recipes
Breakfeast Burrito
Burger
Milk Steak
Garlic Chicken
Guacamole
Chicken Parm
Guacamole
This. Is. Guac.
Previous
Next
Current Recipe: Search for a new recipe, then click the picture to view it!
Milk
Steak
Bread
Crumbs
Eggs
Shopping List
Go Shopping
Saved Recipes for Shopping
Breakfeast Burrito
Burger
Milk Steak
Chicken Parm
Guacamole
Pad Thai
Grocery Store Search
Address
Street
City
State
Zip Code
Shopping List
Amount
Ingredient
Recipe
Close


Why Streaming?The traditional API, which is described in the User Guide, assumes that file items must be stored somewhere before they are actually accessable by the user. This approach is convenient, because it allows easy access to an items contents. On the other hand, it is memory and time consuming. The streaming API allows you to trade a little bit of convenience for optimal performance and a low memory profile. Additionally, the API is more lightweight, thus easier to understand. How it worksAgain, the FileUpload class is used for accessing the form fields and fields in the order in which they have been sent by the client. However, the FileItemFactory is completely ignored. Parsing the requestFirst of all, do not forget to ensure that a request actually is a a file upload request. This is typically done using the same static method, which you already know from the traditional API. // Check that we have a file upload request boolean isMultipart = ServletFileUpload.isMultipartContent(request); Now we are ready to parse the request into its constituent items. Here's how we do it: // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(); // Parse the request FileItemIterator iter = upload.getItemIterator(request); while (iter.hasNext()) { FileItemStream item = iter.next(); String name = item.getFieldName(); InputStream stream = item.getInputStream(); if (item.isFormField()) { System.out.println("Form field " + name + " with value " + Streams.asString(stream) + " detected."); } else { System.out.println("File field " + name + " with file name " + item.getName() + " detected."); // Process the input stream ... } } That's all that's needed. Really! |


About me
I'm a qualified practitioner with over 25 years of teaching experience in school, college and community settings
I believe that children with dyslexia deserve an education that helps them to be happy and fulfill their potential.
Pupils responded to her inclusive, creative and inspirational approach
Caroline Francis, former Deputy Head Teacher, Cotham School, Bristol
My story
I began teaching creative subjects in mainstream education 25 years ago, first as a class teacher then course leader, post-16 tutor and curriculum team leader. I worked with children and young adults in school, college and community settings, originally specialising in dance, which I taught across all key stages, including A-Level.
During this time I worked with thousands of young people and noticed two key things:
- Anxiety issues grew proportionally to league-table and exam-related pressure. This was particularly evident in older students and those who didn’t fit the cookie-cutter shapes mandated by a system with an increasingly narrow focus.
- Children with dyslexia seem attracted to creative subjects, where they can benefit from tailored, specialised support and learn techniques that help with their wider studies.
This made me reflect on my own experience as a student (I am dyslexic) and a parent (one of my daughters has both dyslexia and dyscalculia).
It inspired me to shift focus. I became a specialist teacher so that I can better support the increasing number of children who don’t quite fit our education system’s mould.


This portfolio incorporates four individual reflections based on the content discussed in SIT223 over the term. The reflections address the topics of inter-personal skills and team work, communication, self-management and global citizenship. The topics are introduced through the various assignments and exercises completed during the term including group work and seminars. The portfolio’s reflections follow the model found in the “Framework for reflective practice” (Williams, Woolliams & Spiro 2012, p. 79). As communication is a core subject of this unit, this portfolio is also available as a word document uploaded on SIT223 cloud Deakin.
GLO7 Teamwork describes a range of inter-personal skills, and knowledge about how a group interacts to reach a ‘common outcome’ (Deakin 2013). Team work is an essential learning in this unit and as we were placed into workgroup, I found that it was important to have a channel of communication. I set up a Microsoft office online group which enabled sharing files, group emails and conversation. The group also made frequent use of the BBCollaborate for voice meetings.
Three exercises required some amount of interaction with other students: the Media Watch assignment, the interview practice and the scenario analysis.
Unlike on campus students who are acquainted with each other and benefit of seminars to get together as groups, the group work for cloud students is self-organising and I found participation could be an issue.
The week 7 interview practice was organised using BB Collaborate. Only two of us out of a group of four turned up for the meeting. I had prepared some questions based on the position the other team member was applying for. At the meeting however, we felt that role playing ‘interview’ was not the right thing to do. In retrospect I feel the interview exercise could have benefited from a third party chairing the session. Nevertheless we went through the few questions I had and the exercise turned into an hour long interesting conversation about each other’s employment and aspirations. From the other team member I discovered a section of the IT industry about which I was ignorant.
In week 10,
the scenario analysis exercise particularly tested our teamwork skills as the assignment had to be completed within a week. A team member and myself organised an initial meeting. Prior to the meeting I worked through the analysis questions, outlining some answers and familiarising myself with the ACS code of ethics and privacy policies.
A few core questions required
the identification of an ethical dilemma, which I was unable to outline. I presented my notes at the meeting and for over one hour the group discussed and expanded on each questions. I found the discussion process worked well. Importantly
we formed a clear agreement that there was not ethical dilemma present in our scenario.
Teamwork during the scenario analysis went smoothly and work was completed on time, in contrast with our first assignment which took over two weeks to complete. From the experience I have realised that being proactive pays off when it comes to remote group work.
The exercises in this unit formed my first experience at group work in the context of university, and, importantly, as a cloud student. Team work in this environment is very different from team work I have experienced in the work place, for instance, where people know each other, some hierarchical structure is in place and expectations are known. I feel that I have now a better understanding of how to approach, and what to expect from virtual team work in this particular environment.
Among key aspects, I have observed that taking the initiative provides oneself with some sense of control over the direction of the project, although I was reluctant to do so, fearing to seem obtrusive. I also found that preparing for meetings, do background research, allows to ask more pointed questions and waste less time. On the other hand, not over planning but rather let the organisation and discussion of meetings free flow facilitates a more interactive environment. To a great degree I also found questioning and active listening could turn meetings into a learning platform.
Conversely, I also learned not to expect too much from others but rather focus on the end task. The disembodied nature of remote studying and group work, I feel, make for a lesser sense of commitment to a team, and therefore participation is not always at its best.
The virtual aspect and the small size of the team also make it hard to frame these group exercises within theories. Identifying the Belbin team types (Cottrell 2015, pp. 140-1) may offer some guidance, but I would be cautious at imposing or attempting to delineate formal roles for each team members. As one team member pointed out, some meeting where more a akin to a chat over a cup of coffee.
Team work skills fit within the broader context of interpersonal skills (Cottrell 2015, p. 129) and I recently had the opportunity to apply some of the point noted in the So What section albeit in a very different context.
As a member of a not for profit sport club, I was recently, and unexpectedly, called upon to teach classes of 20 or more young children. I found that preparation but not over planning, measured expectation, and importantly listen to what the children have to say make for a productive and fun class.
For the sake of learning about new technology, I intend to look into tools such as Slack the next time I am involved in a team situation.
These group exercises have been a new experience for me. They have provided me with a formal understanding of teamwork and also enabled me to build an approach to remote group work which I believe will serve me well in my studies.
GLO2 Communication encompasses a range of communication such as oral and written communication as well as interpersonal communication, digital literacy, body language and emotional intelligence (Nicole Koehler 2015, pp. 1-5). Communication is a core subject in this unit. Inter-personal communication was initially introduced in week two with assignment one Media Watch. The following weeks discussed communication in the form of self-promotion.
The second week seminar required us to develop a Me in a Minute (MIM) speech, a self-promotional piece to showcase a relevant set of skills to a potential employer. The MIM exercise was initiated by the elevator speech exercise of week one. During that online seminar I could not bring myself to come up with an elevator speech. I did not find the premise of the elevator speech scenario inspiring. Arguably, the exercise is important not the context, yet the situation is a trigger for inspiration, I find. The days following I thought about the employment I would like, the sort of person I would likely to enthuse to, and then wrote an elevator speech.
Although the thought process behind creating a MIM was very similar, there were some notable differences. The foremost is that unlike an elevator speech, a MIM is not based on role play. I was required to expand on a set of skills and other attributes pertaining to my field of study (a catch-22 (Nichols 1970)). While
I have acquired some IT skills from freelancing I have very little confidence in how these skills compare in an actual ICT workplace. Additionally, I am employed part time in the hospitality industry and I am a career changer.
I struggled to write my MIM, but after a while
I was able to extract transferable skills from my current and past employment as well, as expand on the small range of hard skills acquired from my current studies and working on websites.
Week 6 was about developing a resume and cover letter. Having worked on the MIM made the process much easier. However, I took advantage of the resources made available during the seminar and sent my resume to Deakin Talent many times in order to get feedback. I was very impressed with Deakin Talent and made full use of the feedback I received. Later on in the unit, the week nine seminar introduced the Skills Framework for the Information Age (SFIA 2017b), a resource I will exploit in order to improve my MIM, resume and other pieces of self-promotional communication.
I found that like the elevator speech, the making of a MIM or a resume need to be driven by the desire to achieve what one wants to achieve in terms of a career. For one thing, the drive is important in order to overcome the aversion I have for self-promotional communication. It is also important for building a piece of communication that speaks honestly to a prospective employer.
In themselves, these self-promotional pieces were, I feel, a good exercise in self-examination. It made me realise that it is necessary to feel comfortable with MyBrand™ in order to go ‘out there’ and look for employment as a mature age student.
Of course, the self-promotional communication skills acquired in this unit will come into full practice when seeking an internship. I also intent to use them to find part-time work as a trainee programmer, and as a consequence I have recently added my MIM to my LinkedIn profile. I also intend to look more into SFIA and see how I could integrate the framework into my resume.
I recognize these skills will need upkeep. I will update my resume and MIM, LinkedIn profile as I proceed in my studies, in accordance with the newly acquired knowledge and referring to this self-reflection to remind me of the intangible in the process.
GLO6 describes self-management as working and learning independently as well as taking responsibility for one’s actions (Deakin 2015b).
As a cloud student, I have to balance studies with part time employment, some freelancing, and a family life. I have found that procrastination and perfectionism to be the self-management issues I have to grapple with often. The week four seminar discussed some time management techniques and tools. I have been using the Pomodoro technique for a while. I also have been using Trello boards, discussed in week seven, although less often. I was pleased to find these classes confirmed I had taken the right steps to manage my time.
Studying part time makes for a very slow progress. Although I intend to finish my degree by term two 2019 and complete an internship in term three 2019, I frequently reflect about ways of speeding things up. Among the points made in the ‘4D approach to time management’ in week four, I found de-commitment to be a plausible solution to that problem.
Self-management also includes setting goals, short term and long term (UCD 2015). Many of the activities in this unit required me to analyse my current position and formalise my goals. While The Me in a Minute and resume building focused on ‘me now’, the skills audit assignment forced me to spell out my career aspirations in the short and long term identifying the gaps in my skillset and delineate a strategy to address these gaps.
I found this activity to be challenging. I had to propose valid solutions to address my skill gaps within realistic time frames. This meant thinking clearly about my aspirations and taking them apart into achievable targets.
Self-management is about learning independently. Part of the learning process, I feel, is recognizing what is to be learned or, in my case, addressing a chunk of faulty thinking and correcting it. I realise that relying on a vague and feel good notion such as ‘studying for a degree’ as a goal in itself is not enough to provide the drive behind the ambition, particularly over a long period of time.
The skills audit exercise offered a systematic approach to goal settings. It forced me to break down my goals into smaller manageable pieces. It also provided me with a mean to evaluate progress overtime. Importantly, the end result of the assignment provided not only a plan to achieve my career change goal, but a concrete motivational piece. I intend to keep, update, refer to and add to the skill audit plan as I progress.
The unit as a whole and the skill audit assignment specifically have helped me formulating my aspirations in concrete terms and provided me with some self-management tools to conduct, plan and monitor my progress. I think it is also important to recognise that this planning is limited in scope. It is restricted to the domain of university studies and addresses only my goals and my aspirations. But I am also a member of a family. As a group, we aspire to some perception of a fulfilling lifestyle.
The skills audit and the de-commitment strategy are references that I will include in my everyday life in order to
inform my decision making process pertaining to studies within the broader context of family life.
Global citizenship is about the skills required to engage with a social and cultural environment other than one’s own. Global citizenship incorporates the skills required to identify, from one’s own discipline-related cultural circle, with a group that does not share the same knowledge (Deakin 2015c) and behave ‘ethically and productively in the professional context’ (Deakin 2015a).
From week eight to week ten including assignment three, this unit introduced professionalism and ethics in the workplace. In week nine, I visited the website sfia-online.org to assess my current skills against the framework (SFIA 2017a, 2017b). The Skills Framework for the Information Age (SFIA), I find, is a good tool to communicate one’s own skills across various discipline, and one that I will make use of. One of the topic discussed in week ten was internship. SFIA, or the Australian Computer Society (ACS) equivalent, will help me to address the specific requirement of a future internship position and, if anything, appear more professional.
Another example on the topic of global citizenship was the work done in assignment three. The exercise required our group to identify a number of ethical issues in a workplace scenario. From this exercise I leaned that to refer to authorities such as the ACS Code of Conduct and others helped articulate an informed appraisal when faced with an ethical dilemma.
Global citizenship is about identifying my ICT-related cultural knowledge and expectation in order to understand other’s discipline-related culture.
Through freelancing I am currently involved in a job for a long standing client. They, my client, required a ‘visual’ update of their site. The site is built upon an old open source content management system. My client has a set of expectations regarding the visual look of their site. They envision a clean and simple layout, such as the flat designs currently trending in web design, in their eyes a simple visual update. My understanding of their request matches their design vision, but not simply as a pretty look, but rather as the design being the direct consequence of a mobile first and responsive approach. The core of their current site depends on a single outdated JavaScript framework and the poor separation of concern makes for a slow and error prone updating process. Although I have made the client aware of the situation, the fact remains that I feel the pressure is on me to update the site within a reasonable time frame.
In this scenario, I have clearly failed to reach out to my client appropriately. From an ethical point of view, on the one hand, I, arguably, have not advised my client firmly enough about the potential for problems ('ACS Code of Professional Conduct' 2014, p. 7e). On the other hand, my relationship with the client is such that, for instance, all jobs to date have been agreed upon verbally and casually.
As mentioned earlier, a requirement of assignment three was to identify an ethical dilemma. I recognise that in my current scenario, an awareness of the ACS Code of Conduct could have informed the delicate balancing between nurturing a long standing relationship with my client and acting in a more professional manner.
Through the ACS Code of Ethics, I can identified various path to follow in regards to the scenario above. It is very likely I will complete the job mentioned, present a prototype and reiterate the potential downfalls of upgrading. One thing is certain, however, I will incur a cost. For the sake of the exercise, simplicity and privacy, I have omitted many pertinent details.
Through this unit I have had the opportunity to explore ethical conduct. I intend to register for membership with the ACS as I believe it will be beneficial in the future.
'ACS Code of Professional Conduct', 2014, retrieved 19 September 2017, <https://www.acs.org.au/content/dam/acs/rules-and-regulations/Code-of-Professional-Conduct_v2.1.pdf>.
Cottrell, S 2015, Skills for success : personal development and employability, 3rd edn, Palgrave, London.
Deakin 2013, Team work, <http://teachassist.deakin.edu.au/wp-content/uploads/2015/06/GLO7-teamwork-quick-guide.pdf>.
—— 2015a, 'Global Citizenship', retrieved 22 September 2017, <http://teachassist.deakin.edu.au/wp-content/uploads/2015/06/GLO8-global-citizenship-quick-guide.pdf>.
—— 2015b, 'Topic 1: Deakin Graduate Learning Outcomes 6 Self-management. What is meant by ‘self-management’?', Teaching and learning at Deakin self-management series, retrieved 21 September 2017, <http://teachassist.deakin.edu.au/wp-content/uploads/2015/06/GLO6-topic1-what-is-meant-by-self-management.pdf>.
—— 2015c, Topic 1: What is Global Citizenship?, Deakin University, retrieved 21 September 2017, <http://teachassist.deakin.edu.au/wp-content/uploads/2015/06/GLO8-topic1-global-citizenship-what-is.pdf>.
Nichols, M 1970, Catch-22, YouTube LLC, retrieved 21 September 2017, <https://www.youtube.com/watch?v=Unn8fgs8fao>.
Nicole Koehler, RH-W 2015, 'Communication skills', retrieved 28 September 2017, <http://teachassist.deakin.edu.au/wp-content/uploads/2015/06/GLO2-communication-skills.pdf>.
SFIA 2017a, Programming/software development, SFIA Foundation, retrieved 28 September 2017, <https://www.sfia-online.org/en/sfia-6/skills/solution-development-and-implementation/systems-development/programming-software-development>.
—— 2017b, Why SFIA?, SFIA Foundation, retrieved 21 September 2017, <https://www.sfia-online.org/en>.
UCD 2015, Self-Management, Trinity College Dublin, retrieved 21 September 2017, <https://student-learning.tcd.ie/undergraduate/topics/self-management/>.
Williams, K, Woolliams, M & Spiro, J 2012, Reflective writing, Pocket study skills, Palgrave Macmillan, Houndmills, Basingstoke, Hampshire ; New York.


Uart
The Uart API allows you to communicate over serial UART interfaces.
Basics
Open and close a serial port using open and close:
uart := Uart.open("ttyS0", UartConfig {})
uart.close
Read and write data using the standard Fantom I/O streams with in and out:
uart.in.readLine
uart.out.printLine("foobar")
Enumerating Ports
Uart.list will enumerate the current serial ports as a Str:Obj
map, where the keys are the port names and the values are the available meta-data about each port:
Uart.list =>
[ "ttyS0": [:],
"ttyUSB1": ["desc":"USB Serial Port", "man":"FTDI", "pid":24577, "vid":1027]
]


All Berkeley DB access methods follow the same conventions for locking database objects. Applications that do their own locking and also do locking via the access methods must be careful to adhere to these conventions.
Whenever a Berkeley DB database is opened, the DB handle is assigned a unique locker ID. Unless transactions are specified, that ID is used as the locker for all calls that the Berkeley DB methods make to the lock subsystem. In order to lock a file, pages in the file, or records in the file, we must create a unique ID that can be used as the object to be locked in calls to the lock manager. Under normal operation, that object is a 28-byte value created by the concatenation of a unique file identifier, a page or record number, and an object type (page or record).
In a transaction-protected environment, database create and delete operations are recoverable and single-threaded. This single-threading is achieved using a single lock for the entire environment that must be acquired before beginning a create or delete operation. In this case, the object on which Berkeley DB will lock is a 4-byte unsigned integer with a value of 0.
If applications are using the lock subsystem directly while they are also using locking via the access methods, they must take care not to inadvertently lock objects that happen to be equal to the unique file IDs used to lock files. This is most easily accomplished by using a lock object with a length different from the values used by Berkeley DB.
All the access methods other than Queue use standard read/write locks in a simple multiple-reader/single writer page-locking scheme. An operation that returns data (for example, DB->get() or DBC->get()) obtains a read lock on all the pages accessed while locating the requested record. When an update operation is requested (for example, DB->put() or DBC->del()), the page containing the updated (or new) data is write-locked. As read-modify-write cycles are quite common and are deadlock-prone under normal circumstances, the Berkeley DB interfaces allow the application to specify the DB_RMW flag, which causes operations to immediately obtain a write lock, even though they are only reading the data. Although this may reduce concurrency somewhat, it reduces the probability of deadlock. In the presence of transactions, page locks are held until transaction commit.
The Queue access method does not hold long-term page locks. Instead, page locks are held only long enough to locate records or to change metadata on a page, and record locks are held for the appropriate duration. In the presence of transactions, record locks are held until transaction commit. For DB operations, record locks are held until operation completion; for DBC operations, record locks are held until subsequent records are returned or the cursor is closed.
Under non-transaction operations, the access methods do not normally hold locks across calls to the Berkeley DB interfaces. The one exception to this rule is when cursors are used. Because cursors maintain a position in a file, they must hold locks across calls; in fact, they will hold a lock until the cursor is closed.
In this mode, the assignment of locker IDs to DB and cursor handles is complicated. If the DB_THREAD option was specified when the DB handle was opened, each use of DB has its own unique locker ID, and each cursor is assigned its own unique locker ID when it is created, so DB handle and cursor operations can all conflict with one another. (This is because when Berkeley DB handles may be shared by multiple threads of control the Berkeley DB library cannot identify which operations are performed by which threads of control, and it must ensure that two different threads of control are not simultaneously modifying the same data structure. By assigning each DB handle and cursor its own locker, two threads of control sharing a handle cannot inadvertently interfere with each other.)
This has important implications. If a single thread of control opens two cursors, uses a combination of cursor and non-cursor operations, or begins two separate transactions, the operations are performed on behalf of different lockers. Conflicts that arise between these different lockers may not cause actual deadlocks, but can, in fact, permanently block the thread of control. For example, assume that an application creates a cursor and uses it to read record A. Now, assume a second cursor is opened, and the application attempts to write record A using the second cursor. Unfortunately, the first cursor has a read lock, so the second cursor cannot obtain its write lock. However, that read lock is held by the same thread of control, so the read lock can never be released if we block waiting for the write lock. This might appear to be a deadlock from the application's perspective, but Berkeley DB cannot identify it as such because it has no knowledge of which lockers belong to which threads of control. For this reason, application designers are encouraged to close cursors as soon as they are done with them.
If the DB_THREAD option was not specified when the DB handle was opened, all uses of the DB handle and all cursors created using that handle will use the same locker ID for all operations. In this case, if a single thread of control opens two cursors or uses a combination of cursor and non-cursor operations, these operations are performed on behalf of the same locker, and so cannot deadlock or block the thread of control.
Complicated operations that require multiple cursors (or combinations of cursor and non-cursor operations) can be performed in two ways. First, they may be performed within a transaction, in which case all operations lock on behalf of the designated transaction. Second, they may be performed using a local DB handle, although, as DB->open() operations are relatively slow, this may not be a good idea. Finally, the DBC->dup() function duplicates a cursor, using the same locker ID as the originating cursor. There is no way to achieve this duplication functionality through the DB handle calls, but any DB call can be implemented by one or more calls through a cursor.
When the access methods use transactions, many of these problems disappear. The transaction ID is used as the locker ID for all operations performed on behalf of the transaction. This means that the application may open multiple cursors on behalf of the same transaction and these cursors will all share a common locker ID. This is safe because transactions cannot span threads of control, so the library knows that two cursors in the same transaction cannot modify the database concurrently.


Form Input Types
Select Boxes
Coffee
Tea
Wine
Beer
Select Boxes with Values
Johnny Walker
Remy Martin
4 Cousins
4th Street
Radio Buttons
Chocolate
Vanilla
StrawBerry
Dates
Date of birth:
Color Selector
Select your favourite color:


Preparation time
less than 30 mins
Cooking time
30 mins to 1 hour
Serves
Serves 4
If you like kedgeree, you'll love this one-pot pilaf recipe - perfect for an informal supper or brunch.
Preheat the oven to 180C/350F/Gas 4.
Melt the butter in a large, heavy-based lidded casserole dish. Add the garam masala and allow to sizzle gently for a moment or two. Tip in the rice and stir around until the grains are well coated with this spicy butter.
Add the bay leaf, lemon zest, green chilli, ginger and a touch of salt and freshly ground black pepper. Pour over the stock, bring up to a simmer, then lay the fish on top, gently submerging it under the surface. Put on the lid and cook in the oven for 15-20 minutes.
Remove from the oven, then leave to stand for 5-7 minutes without removing the lid; this is important - it allows the rice to finish cooking.
Take off the lid, remove the skin from the fish and immediately add the chopped egg, onions and coriander and, using two forks, gently mix the rice, while also breaking the fish into flakes and mixing everything else in as you go. Remove the bay leaf and cover with a tea towel, clamp on the lid, and leave for a further five minutes to remove any excess steam. Mix again lightly.
Serve directly from the dish onto hot plates and squeeze over a little lemon juice.


Content-type: text/html; charset=UTF-8
Man page of emit-ida-script
emit-ida-script
Section: Emit-ida-script Manual (1)
Updated:
Index
Return to Main Contents
NAME
emit-ida-script - extract a IDA python script from bap
SYNOPSIS
emit-ida-script [OPTION]...
DESCRIPTION
Iterates through memory for tagged BIR attributes, and dumps them into a python script, that can be later loaded into IDA. The special `color' tag causes the respective address to be colored.
OPTIONS
- --attr=VAL
-
Emit specified BIR attribute. Can be specified multiple times.
- --file=NAME
-
Dump annotations to the specified file NAME. If not specified, then the script will dumped into the standard output
- --help[=FMT] (default=auto)
-
Show this help in format FMT. The value FMT must be one of `auto', `pager', `groff' or `plain'. With `auto', the format is `pager` or `plain' whenever the TERM env var is `dumb' or undefined.
SEE ALSO
bap-ida(3), bap-plugin-ida(1)
tags: ida, python
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- OPTIONS
-
- SEE ALSO
-
This document was created by
man2html,
using the manual pages.
Time: 19:19:38 GMT, April 10, 2019


you would be good at css, bro.
Pronounced "C Sharp," this language is popular with big businesses, often for building internal software.
The most boring job ever.
, wether you work at Intel or your own startup that you literally just made up five minutes ago, Ruby is poppin' right now when it comes to building interactive web applications.
, you could be a person that makes web apps!
Java is favored by enterprise companies but is also one the most popular of all programming languages in any environment. If you want to be an Android developer, Java is for you.
At the risk of sounding redundant, an Android developer.
PHP is great for building content-heavy websites.
Working for a creative ad agency building websites for brands.


WHAT'S THE CORRECT SHADING?
Task: From the given six random shades of color, choose the correct shade which matches the generated RGB value.
Guess Again!


Just as hideous as biblical literalism, Modernity amusingly misconstrues Plato at his core.
"It's propaganda!"
"You have to see what's behind it".
"This is alienation!"
"Seek the truth!"
These are so pitiful, deplorable.
But, let'em escape the cave - all the blind, weak, hasty, scared, desperate chicken.
Let'em gloat their delusion of aviation, elevation, breeze, vision.
Let'em satisfy their paltry, meager stomach.
Let their piteous, amenable, haughty eyes delude themselves.
Shall one contemplate the commical asinity of such frail spleens.
Shall one exploit and degrade such feebleminded flock.
Shall one not be afraid of the calamitous, grating, reticent, vacuum of caves.
Shall one ponder the reality of the fiction.
Shall one behold, envisage, explore, touch, undergo the shadows.
Shall one see the truth as a child of itself.
Shall one not hunt the real, but the realest.
Shall one use the realest to govern the real.
Shall shadows themselves howl more than the object, the truth.
Shall the realest create the real.


The CPB section annually awards the George Holeton prize to the most outstanding student Poster presentation in our section.


[name]
Projects points between spaces.
Constructor
[name]()
Methods
.projectVector( [page:Vector3 vector], [page:Camera camera] ) [page:Vector3]
[page:Vector3 vector] — vector to project.
[page:Camera camera] — camera to use in the projection.
Projects a vector with the camera. Caution, this method changes 'vector'.
.unprojectVector( [page:Vector3 vector], [page:Camera camera] ) [page:Vector3]
[page:Vector3 vector] — vector to unproject.
[page:Camera camera] — camera to use in the projection.
Unprojects a vector with the camera. Caution, this method changes 'vector'.
.pickingRay( [page:Vector3 vector], [page:Camera camera] ) [page:Raycaster]
Translates a 2D point from NDC (Normalized Device Coordinates) to a [page:Raycaster] that can be used for picking. NDC range from [-1..1] in x (left to right) and [1.0 .. -1.0] in y (top to bottom).
.projectScene( [page:Scene scene], [page:Camera camera], [page:Boolean sort] ) [page:Object]
[page:Scene scene] — scene to project.
[page:Camera camera] — camera to use in the projection.
[page:Boolean sort] — select whether to sort elements using the
Painter's algorithm.
Transforms a 3D [page:Scene scene] object into 2D render data that can be rendered in a screen with your renderer of choice, projecting and clipping things out according to the used camera.
If the scene were a real scene, this method would be the equivalent of taking a picture with the camera (and developing the film would be the next step, using a Renderer).
Source
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]


{% extends "!layout.html" %} {% set css_files = css_files + ["_static/overrules.css"] %} {% block rootrellink %}
Under Construction
This documentation is under development. Please refer to the official documentation if you don't find what you are looking for here.


--- layout: archive title: Zulip Chat Archive permalink: /stream/113489-new-members/topic/leanpkg.20build.20.2E.2E.2E.20too.20fast.3F.html ---
I've followed the instructions for installing mathlib, and just followed the "Working on an existing package" instructions from Creating a Lean project. The 7th step is "Type leanpkg build to compile everything, this will take some time.". When I executed leanpkg build
it did not take much time (it took almost no time) and the output was
configuring tuto 0.1 mathlib: trying to update _target/deps/mathlib to revision 27515619bcd834006f2936b292021135496b4efb > git checkout --detach 27515619bcd834006f2936b292021135496b4efb # in directory _target/deps/mathlib HEAD is now at 27515619 minor updates to the installation instructions (#1538) > lean --make src upper_bounds : set ?M_1 → set ?M_1 exact le_max_left (u N - x) (-(u N - x)) exact one_div_pos_of_pos this
Is everything ok? FWIW, first_proofs.lean
seems to work fine in VSCode. Wasn't building mathlib supposed to take quite some time?
Did you install and call the update-mathlib
script?
I did. It took about 30sec to run, and did so silently.
Then you're probably all good; you acquired a precompiled copy of mathlib, so lean --make
had nothing to do.
(I'm a little surprised that update-mathlib
was silent. Are you on windows?)
Yes (Win10).
Ooops -- it was almost silent. Output:
Info: No github section found in 'git config', we will use GitHub with no authentication Querying GitHub... Downloading nightly... Extracting nightly...
Perfect!
Thanks!
By the way, is the output after lean --make src
due to some stray #check
s in the code?
Yep, you'll see them when you browse the source of first_proofs.lean
in VS Code.
I think that some of these docs (where it warns you about a long wait) were written before the update-mathlib revolution
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


Shared-memory APIs.
[your header file] struct SharedData { (... structrue definitions ...) } [shared memory creater] // create shared memory int shmid = qshm_init("/some/file/for/generating/unique/key", 's', sizeof(struct SharedData), true); if(shmid < 0) { printf("ERROR: Can't initialize shared memory.\n"); return -1; } // get shared memory pointer struct SharedData *sdata = (SharedData *)qshm_get(shmid); if(sdata == NULL) { printf("ERROR: Can't get shared memory.\n"); return -1; } [shared memory user] // get shared memory id int shmid = qshm_getid("/some/file/for/generating/unique/key", 's'); if(shmid < 0) { printf("ERROR: Can't get shared memory id.\n"); return -1; } // get shared memory pointer struct SharedData *sdata = (SharedData *)qshm_get(shmid); if(sdata == NULL) { printf("ERROR: Can't get shared memory.\n"); return -1; }
Functions | |
| int | qshm_init (const char *keyfile, int keyid, size_t size, bool recreate) |
| Initialize shared-memory. | |
| int | qshm_getid (const char *keyfile, int keyid) |
| Get shared memory identifier by keyfile and keyid for existing shared memory. | |
| void * | qshm_get (int shmid) |
| Get a pointer of shared memory. | |
| bool | qshm_free (int shmid) |
| De-allocate shared memory. |
| int qshm_init | ( | const char * | keyfile, | |
| int | keyid, | |||
| size_t | size, | |||
| bool | recreate | |||
| ) |
Initialize shared-memory.
| keyfile | seed for generating unique IPC key | |
| keyid | seed for generating unique IPC key | |
| size | size of shared memory | |
| recreate | set to true to re-create shared-memory if already exists |
| int qshm_getid | ( | const char * | keyfile, | |
| int | keyid | |||
| ) |
Get shared memory identifier by keyfile and keyid for existing shared memory.
| keyfile | seed for generating unique IPC key | |
| keyid | seed for generating unique IPC key |
| void* qshm_get | ( | int | shmid | ) |
Get a pointer of shared memory.
| shmid | shared memory identifier |
| bool qshm_free | ( | int | shmid | ) |
De-allocate shared memory.
| shmid | shared memory identifier |


Hi, My name is Luis Carlos Garcia Barajas, Luis Garcia in short. I'm aspiring for Web Developer Position. I am a self-taught Javascript Developer with background in CS.
I'm passionate about technology, I like all levels of programming, but my goals are focus in web development.
I know about all C family, a bit of java, currently tuning up my skill in javascript with HTML and CSS. I also have worked with almost all SQL database except for Oracle


This class is a custom image encoder using .Net framework, EmguCV library and libjpeg-turbo (one of the fastest JPEG image codec available).
More...
|
| | CustomEncoder (int width_, int height_, int quality_, int format_) |
| | Constructor. More...
|
| |
| string | encodeFrame (Image< Rgb, Byte > img) |
| | It encodes an image to specific format which has been configured on constructor and return image data as string using a base64 conversion. More...
|
| |
| void | setQuality (int newquality) |
| | Set the quality of the image encoding, only valid for jpg format. More...
|
| |
|
void | setImageFormat (int newformat) |
| |
|
| enum | ImageFormat { jpg = 0,
png = 1,
raw = 2
} |
| |
|
| ImageCodecInfo | GetEncoder (System.Drawing.Imaging.ImageFormat format) |
| | Gets an encoder for a specific format. More...
|
| |
|
byte [] | encodeImage (Image< Rgb, Byte > img, ImageFormat imageFormat) |
| |
|
string | encodeDataToBase64 (byte[] data) |
| |
|
|
int | width =0 |
| |
|
int | height =0 |
| |
|
int | quality = 0 |
| |
|
ImageFormat | format =0 |
| |
|
Encoder | myEncoder |
| |
|
ImageCodecInfo | jpgEncoder |
| |
|
ImageCodecInfo | pngEncoder |
| |
|
EncoderParameters | encoderParameters |
| |
|
EncoderParameter | myEncoderParameter |
| |
This class is a custom image encoder using .Net framework, EmguCV library and libjpeg-turbo (one of the fastest JPEG image codec available).
- Author
- Mgj
- Date
- 08/11/2016
§ CustomEncoder()
| public CustomEncoder.CustomEncoder |
( |
int |
width_, |
|
|
int |
height_, |
|
|
int |
quality_, |
|
|
int |
format_ |
|
) |
| |
Constructor.
- Author
- Mgj
- Date
- 08/11/2016
- Parameters
-
| width_ | The width. |
| height_ | The height. |
| quality_ | The quality. |
| format_ | Describes the format to use. |
§ encodeFrame()
| public string CustomEncoder.encodeFrame |
( |
Image< Rgb, Byte > |
img | ) |
|
It encodes an image to specific format which has been configured on constructor and return image data as string using a base64 conversion.
- Parameters
-
| img | Image we want to encode |
- Returns
- image data as string
§ GetEncoder()
| private ImageCodecInfo CustomEncoder.GetEncoder |
( |
System.Drawing.Imaging.ImageFormat |
format | ) |
|
|
private |
Gets an encoder for a specific format.
- Parameters
-
- Returns
- The codec that it will be used for encoding.
§ setQuality()
| public void CustomEncoder.setQuality |
( |
int |
newquality | ) |
|
Set the quality of the image encoding, only valid for jpg format.
Set the image format.
- Parameters
-
| newquality | Value between 1 and 99 |
| newformat | 0 = JPG, 1=PNG, other= RAW (original) |


{% extends "admin_layout.html" %} {% block page_header %} {{section}}
Google Analytics provides extensive statistical reporting for digital services.
You'll need a Google Account based on your Commission email address.
Access Google Analytics


You might be asking youself: 'What exactly is the PAC Config Tool?'
Basically the PAC Config Tool uses a standard Web Browser to provide easy access, configuration, and maintenance of the runtime version of the PAM application running on a Windows Compact Edition computer which in turn is used to control a PLC. This 'access' is of particular importance since most PLCs are 'headless', that is, there is no keyboard and/or monitor normally connected.
Click on the individual tabs below to display an image representing an example of the actual page content*.
* NOTE: Since this demo is NOT physically connected to an actual back-end PAC Web Server, each of the tab pages displayed is being represented by an image of the true PAC Configuration Tool page.
Normally, clicking the small HELP (?) button located at the upper right opens a context-sensitive "Help" page associated with the current tab page. For the purpose of this demonstration, clicking anywhere on the tab page (other than the tab itself) opens the associated "Help" page.


Performs: examples
Contents:
simple case
|
dependencies
Simple case
This
Go to top
With dependencies
Go to top


Possible sources of bias/error:
- Humans need to breath, so we might have taken extra time to take a breath
- People were running a ways a way from the test, so they would have to come back.
Cellular resperation is important to our bodies because it generates energy we need to move and do.
If our bodies were not getting enough oxygen during this process, we would feel sick and pass out.
The products of Cellular resperation are:
6CO
2 + 6 H
2O + 36 or 38 ATP
A potential reason that the time taken from person to person might differ is that some people might be
more fit than others, meaning that their body is more efficent in cellular resperation.


ganglia - distributed monitoring system
ganglia 3.1.2
The latest version of this software and document will always be found at http://ganglia.sourceforge.net/. You are currently reading $Revision: 1705 $ of this document.
______ ___ / ____/___ _____ ____ _/ (_)___ _ / / __/ __ `/ __ \/ __ `/ / / __ `/ / /_/ / /_/ / / / / /_/ / / / /_/ / \____/\__,_/_/ /_/\__, /_/_/\__,_/ /____/ Distributed Monitoring System
Ganglia is a scalable distributed monitoring system for high-performance computing systems such as clusters and Grids. It is based on a hierarchical design targeted at federations of clusters. It relies on a multicast-based listen/announce protocol to monitor state within clusters and uses a tree of point-to-point connections amongst representative cluster nodes to federate clusters and aggregate their state. It leverages widely used technologies such as XML for data representation, XDR for compact, portable data transport, and RRDtool for data storage and visualization. It uses carefully engineered data structures and algorithms to achieve very low per-node overheads and high concurrency. The implementation is robust, has been ported to an extensive set of operating systems and processor architectures, and is currently in use on over 500 clusters around the world. It has been used to link clusters across university campuses and around the world and can scale to handle clusters with 2000 nodes.
The ganglia system is comprised of two unique daemons, a PHP-based web frontend and a few other small utility programs.
Gmond is a multi-threaded daemon which runs on each cluster node you want to monitor. Installation is easy. You don't have to have a common NFS filesystem or a database backend, install special accounts, maintain configuration files or other annoying hassles.
Gmond has four main responsibilities: monitor changes in host state, announce relevant changes, listen to the state of all other ganglia nodes via a unicast or multicast channel and answer requests for an XML description of the cluster state.
Each gmond transmits in information in two different ways: unicasting/multicasting host state in external data representation (XDR) format using UDP messages or sending XML over a TCP connection.
Federation in Ganglia is achieved using a tree of point-to-point
connections amongst representative cluster nodes to aggregate the
state of multiple clusters. At each node in the tree, a Ganglia Meta
Daemon (gmetad
) periodically polls a collection of child data
sources, parses the collected XML, saves all numeric, volatile metrics
to round-robin databases and exports
the aggregated XML over a TCP sockets to clients. Data sources may be either
gmond
daemons, representing specific clusters, or other
gmetad
daemons, representing sets of clusters. Data sources
use source IP addresses for access control and can be specified using
multiple IP addresses for failover. The latter capability is natural
for aggregating data from clusters since each gmond
daemon
contains the entire state of its cluster.
The Ganglia web frontend provides a view of the gathered information via real-time dynamic web pages. Most importantly, it displays Ganglia data in a meaningful way for system administrators and computer users. Although the web frontend to ganglia started as a simple HTML view of the XML tree, it has evolved into a system that keeps a colorful history of all collected data.
The Ganglia web frontend caters to system administrators and users. For example, one can view the CPU utilization over the past hour, day, week, month, or year. The web frontend shows similar graphs for Memory usage, disk usage, network statistics, number of running processes, and all other Ganglia metrics.
The web frontend depends on the existence of the gmetad
which provides it
with data from several Ganglia sources. Specifically, the web frontend will
open the local port 8651 (by default) and expects to receive a Ganglia XML tree.
The web pages themselves are highly dynamic; any change to the Ganglia data appears
immediately on the site. This behavior leads to a very responsive site, but requires
that the full XML tree be parsed on every page access. Therefore, the Ganglia web
frontend should run on a fairly powerful, dedicated machine if it presents a large
amount of data.
The Ganglia web frontend is written in the PHP scripting language, and uses graphs
generated by gmetad
to display history information. It has been tested on many
flavours of Unix (primarily Linux) with the Apache webserver and the PHP module (4.1 or later).
The latest version of all ganglia software can always be downloaded from http://ganglia.info/
Ganglia runs on Linux (i386, ia64, sparc, alpha, powerpc, m68k, mips, arm, hppa, s390), FreeBSD, NetBSD, OpenBSD, DragonflyBSD, MacOS X, Solaris, AIX, IRIX, Tru64, HPUX and Windows NT/XP/2000/2003/2008 making it as portable as it is scalable.
If you use the Linux RPMs provided on the ganglia web site, you can skip to the end of this section.
Ganglia uses the GNU autoconf so compilation and installation of the monitoring core is basically
% ./configure % make % make install
but there are some issues that you need to take a look at first.
If you use the ganglia multicast support, you must have a kernel that supports multicast. The vast majority of machines have multicast support by default. If you have problems with ganglia this is a core issue.
Since gmetad
relies on the Round-Robin Database Tool ( see http://www.rrdtool.org/ )
it will not be compiled unless you explicit request it by using a --with-gmetad flag.
% ./configure --with-gmetad
The configure script will fail if it cannot find the rrdtool library and header files. By default, it expects to find them at /usr/include/rrd.h and /usr/lib/librrd.so. If you installed them in different locations then you need to instruct configure where to find them using:
% ./configure --with-librrd=/rrd/path --with-gmetad
Of course, you need to substitute /rrd/path
with the real location of the
rrd tool directory where the header file can be located inside an include
subdirectory and the library can be located inside a lib subdirectory.
As an alternative you could set ``-L'' in LDFLAGS, and ``-I'' in CFLAGS and
CPPFLAGS for the library path and the header path respectively.
You must add the --disable-shared
configure flags if you are running on AIX.
For more details refer to the README.AIX file
% ./configure --disable-shared
Not really a Solaris specific problem, but since Solaris has several different package repositories, all of them unofficial, it is difficult to be sure that all possible permutations have been confirmed to work reliably.
Be sure to have all dependencies covered, as explained in the INSTALL file and to use GNU make and a gcc compiler that builds 32bit binaries with all other libraries matching that ISA.
When in doubt, build the problematic dependency from source and remember to distribute it together with your ganglia build as everything is dynamically linked by default.
Be particularly careful with libConfuse, especially if using the old 2.5 version. LibConfuse 2.5 is known to be incorrectly packaged and to compile by default as a static library which will fail to link with ganglia.
The good news is that the libmetrics code that used to work before 3.1 is still most likely working fine and so there is nothing fundamentally broken about it.
But the bad news is that in order to add the dynamic metric functionality, the build system and the way gmond used to locate its metrics had to be changed significantly. Therefore getting gmond to build and work again required fixes to be implemented for all platforms.
Since none of the developers had access to HPUX, IRIX, Tru64 (OSF/1), or Darwin (MacOS X) those platforms might not be able to build or run a 3.1 gmond yet. If you have access to any of these platforms and want to run ganglia 3.1, feel free to drop by the ganglia-developers list with suggestions, or even better patches.
GEXEC is a scalable cluster remote execution system which provides fast, RSA authenticated remote execution of parallel and distributed jobs. It provides transparent forwarding of stdin, stdout, stderr, and signals to and from remote processes, provides local environment propagation, and is designed to be robust and to scale to systems over 1000 nodes. Internally, GEXEC operates by building an n-ary tree of TCP sockets and threads between gexec daemons and propagating control information up and down the tree. By using hierarchical control, GEXEC distributes both the work and resource usage associated with massive amounts of parallelism across multiple nodes, thereby eliminating problems associated with single node resource limits (e.g., limits on the number of file descriptors on front-end nodes). (from http://www.theether.org/gexec )
gexec
is a great cluster execution tool but integrating it with ganglia is a bit clumsy.
GEXEC can run standalone without access to a ganglia gmond
. In standalone
mode gexec will use the hosts listed in your GEXEC_SVRS variable to run on. For example,
say I want to run hostname
on three machines in my cluster: host1
, host2
and host3
.
I use the following command line.
% GEXEC_SVRS="host1 host2 host3" gexec -n 3 hostname
and gexec would build an n-ary tree (binary tree by default) of TCP sockets to those machines
and run the command hostname
As an added feature, you can have gexec
pull a host list from a locally running gmond and
use that as the host list instead of GEXEC_SVRS. The list is load balanced and gexec
will
start the job on the n least-loaded machines.
For example..
% gexec -n 5 hostname
will run the command hostname
on the five least-loaded machines in a cluster.
To turn on the gexec
feature in ganglia you must configure ganglia with the --enable-gexec
flag
% ./configure --enable-gexec
Enabling gexec
means that by default any host running gmond will send a special
message announcing that gexec is installed on it and open for requests.
Now the question is, what if I don't want gexec to run on every host in my cluster? For
example, you may not want to have gexec
run jobs on your cluster frontend nodes.
You simply add the following line to your gmond
configuration file (/etc/ganglia/gmond.conf
by
default)
no_gexec on
Simple huh? I know the configuration file option, no_gexec
, seems crazy (and it is). Why
have an option that says ``yes to no gexec''? The early versions of gmond didn't use a configuration
file but instead commandline options. One of the commandline options was simply --no-gexec
and the default was to announce gexec as on.
Once you have successfully run
% ./configure <options> % make % make install
you should find the following files installed in /usr
(by default).
/usr/bin/gstat /usr/bin/gmetric /usr/sbin/gmond /usr/sbin/gmetad
If you installed ganglia using RPMs then these files will be installed when you install the RPM. The RPM is installed simply by running
% rpm -Uvh ganglia-gmond-3.1.2.i386.rpm % rpm -Uvh ganglia-gmetad-3.1.2.i386.rpm
Once you have the necessary binaries installed, you can test your installation by running
% ./gmond
This will start the ganglia monitoring daemon. You should then be able to run
% telnet localhost 8649
And get an XML description of the state of your machine (and any other hosts running gmond at the time).
If you are installing by source on Linux, scripts are provided to start gmetad
and gmond
at system startup. They are easy to install from the source root.
% cp ./gmond/gmond.init /etc/rc.d/init.d/gmond % chkconfig --add gmond % chkconfig --list gmond gmond 0:off 1:off 2:on 3:on 4:on 5:on 6:off % /etc/rc.d/init.d/gmond start Starting GANGLIA gmond: [ OK ]
Repeat this step with gmetad.
The ./web directory of the ganglia distribution contains all the necessary PHP files for
running your web frontend. Copy those files to /var/www/html
, however look for the variable
DocumentRoot
in your Apache configuration
files to be sure. All the PHP script files use relative URLs in their links, so you may
place the ganglia/
directory anywhere convenient.
Ensure your webserver understands how to process PHP script files. Currently, the
web frontend contains certain php language that requires PHP version 4 or greater.
Processing PHP script files usually requires a webserver module, such as the
mod_php
for the popular Apache webserver. In RedHat Linux, the RPM package that
provides this module is called simply ``php''.
For Apache, mod_php
module must be enabled. The following lines should appear
somewhere in Apache's *conf files. This example applies to RedHat and Mandrake
Linux. The actual filenames may vary on your system. If you installed the php
module using an RPM package, this work will have been done automatically.
<IfDefine HAVE_PHP4> LoadModule php4_module extramodules/libphp4.so AddModule mod_php4.c </IfDefine>
AddType application/x-httpd-php .php .php4 .php3 .phtml AddType application/x-httpd-php-source .phps
The webfrontend requires the existance of the gmetad package on the webserver.
Follow the installation instructions on the gmetad page. Specifically, the webfrontend
requires the rrdtool and the rrds/
directory from gmetad. If you are a power user,
you may use NFS to simulate the local existance of the rrds.
Test your installation. Visit the URL:
http://localhost/ganglia/
With a web-browser, where localhost is the address of your webserver.
Installation of the web frontend is simplified on Linux by using rpm.
% rpm -Uvh ganglia-web-3.1.2-1.i386.rpm Preparing... ########################################### [100%] 1:ganglia-web ########################################### [100%]
The configuration file format has changed between gmond version 2.5.x and version 3.x. The change was necessary in order to allow more complex configuration options.
Gmond has a default configuration it will use if it does not find the default configuration file /etc/ganglia/gmond.conf. To see the default configuration simply run the command:
% gmond --default_config
and gmond will output its default configuration to stdout. This default configuration can serve as a good starting place for building a more custom configuration.
% gmond --default_config > gmond.conf
would create a file gmond.conf which you can then edit to taste and copy to /etc/ganglia/gmond.conf or elsewhere.
To start gmond with a configuration file other then /etc/ganglia/gmond.conf, simply specify the configuration file location by running
% gmond --config /my/ganglia/configs/custom.conf
If you want to convert a 2.5.x configuration file to 3.x file format, run the following command
% gmond --convert ./old_25_config.conf
and gmond with output the equivalent 3.x configuration file to stdout. You can then redirect that output to a new configuration file which can serve as a starting point for your configuration.
% gmond --convert ./old_25_config.conf > ./new_26_config.conf
For details about gmond configuration options, simply run
% man gmond.conf
for a complete listing of options with detailed explanations.
The behavior of the Ganglia Meta Daemon is completely controlled by a single configuration
file which is by default /etc/ganglia/gmetad.conf
. For gmetad to do anything useful you much
specify at least one data_source
in the configuration. The format of the data_source
line is as follows
data_source "Cluster A" <IP_ADDRESS> <IP_ADDRESS>:8655 <IP_ADDRESS>:8625 data_source "Cluster B" <IP_ADDRESS>:8655
In this example, there are two unique data sources: ``Cluster A'' and ``Cluster B''. The Cluster A data source has three redundant sources. If gmetad cannot pull the data from the first source, it will continue trying the other sources in order.
If you do not specify a port number, gmetad will assume the default ganglia port which is 8649 (U*N*I*X on a phone key pad)
For a sample gmetad configuration file with comments, look at the gmetad.conf file provided as part of the distribution package in the gmetad directory
gmetad
has a --conf
option to allow you to specify alternate configuration files
% ./gmetad -conf=/tmp/my_custom_config.conf
Most configuration parameters reside in the ganglia/conf.php
file. Here you
may alter the template, gmetad location, RRDtool location, and set the default time range
and metrics for graphs.
The static portions of the Ganglia website are themable. This means you can alter elements
such as section lables, some links, and images to suit your individual tastes and environment.
The template_name
variable names a directory containing the current theme. Ganglia uses
TemplatePower to implement themes. A user-defined skin must conform to the template interface
as defined by the default theme. Essentially, the variable names and START/END blocks in a
custom theme must remain the same as the default, but all other HTML elements may be changed.
Other configuration variables in conf.php
specify the location of gmetad's files, and where
to find the rrdtool program. These locations need only be changed if you do not run gmetad on
the webserver. Otherwise the default locations should work fine. The default_range
variable
specifies what range of time to show on the graphs by default, with possible values of hour,
day, week, month, year. The default_metric
parameter specifies which metric to show on
the cluster view page by default.
There are two commandline tools that work with gmond
to add custom metrics and
query the current state of a cluster: gmetric
and gstat
respectively.
The Ganglia Metric Tool (gmetric) allows you to easily monitor any arbitrary host metrics that you like expanding on the core metrics that gmond measures by default.
If you want help with the gmetric sytax, simply use the ``help'' commandline option
% gmetric --help gmetric 3.1.2
Purpose: The Ganglia Metric Client (gmetric) announces a metric on the list of defined send channels defined in a configuration file
Usage: gmetric [OPTIONS]...
-h, --help Print help and exit -V, --version Print version and exit -c, --conf=STRING The configuration file to use for finding send channels (default=`/etc/ganglia/gmond.conf') -n, --name=STRING Name of the metric -v, --value=STRING Value of the metric -t, --type=STRING Either string|int8|uint8|int16|uint16|int32|uint32|float|double -u, --units=STRING Unit of measure for the value e.g. Kilobytes, Celcius (default=`') -s, --slope=STRING Either zero|positive|negative|both (default=`both') -x, --tmax=INT The maximum time in seconds between gmetric calls (default=`60') -d, --dmax=INT The lifetime in seconds of this metric (default=`0') -S, --spoof=STRING IP address and name of host/device (colon separated) we are spoofing (default='') -H, --heartbeat spoof a heartbeat message (use with spoof option)
Gmetric sends the metric specified on the commandline to all udp_send_channels specified in the configuration file /etc/ganglia/gmond.conf by default. If you want to send metric to alternate udp_send_channels, you can specify a different configuration file as such:
% gmetric --conf=./custom.conf -n "wow" -v "it works" -t "string"
All metrics in ganglia have a name, value, type and optionally units. For example, say I wanted to measure the temperature of my CPU (something gmond doesn't do by default) then I could send this metric with name=``temperature'', value=``63'', type=``int16'' and units=``Celcius''.
Assume I have a program called cputemp
which outputs in text the temperature of the CPU
% cputemp 63
I could easily send this data to all listening gmonds by running
% gmetric --name temperature --value `cputemp` --type int16 --units Celcius
Check the exit value of gmetric to see if it successfully sent the data: 0 on success and -1 on failure.
To constantly sample this temperature metric, you just need too add this command to your cron table.
The Ganglia Cluster Status Tool (gstat) is a commandline utility that allows you to get status report for your cluster.
To get help with the commandline options, simply pass gstat
the --help
option
% gstat --help gstat 3.1.2
Purpose: The Ganglia Status Client (gstat) connects with a Ganglia Monitoring Daemon (gmond) and output a load-balanced list of cluster hosts
Usage: gstat [OPTIONS]... -h --help Print help and exit -V --version Print version and exit -a --all List all hosts. Not just hosts running gexec (default=off) -d --dead Print only the hosts which are dead (default=off) -m --mpifile Print a load-balanced mpifile (default=off) -1 --single_line Print host and information all on one line (default=off) -l --list Print ONLY the host list (default=off) -n --numeric Print numeric addresses instead of hostnames (default=off) -iSTRING --gmond_ip=STRING Specify the ip address of the gmond to query (default='<IP_ADDRESS>') -pINT --gmond_port=INT Specify the gmond port to query (default=8649)
Note: gstat with no option will only show gexec-enabled hosts. To see all hosts that are UP (regardless of their gexec state) you need to add the --all flag.
% gstat --all
There are currently two ways in which metric modules can be written and plugged into Gmond in order to extend the types of metrics that Ganglia is able to monitor. As of Ganglia 3.1, a pluggable interface has been added to allow the Gmond metric gathering agent to collect any type of metric that can be acquired through programatic means. The primary metric module interface is C with a secondary python interface. This means that pluggable modules can either be written and compiled into dynamically loadable C based language modules or written and deployed as python pluggable modules.
The basic steps when writting a pluggable module either in C or in python, is as follows:
There are simple metric module examples for both a C based and a python based module under the gmond/modules and gmond/python_modules source code sub-trees. Please see these module examples for more details.
To see a complete list of the metrics that a particular gmond supports, run the command:
% gmond -m
and gmond will output all the metrics that it is capable of collecting and sending.
This table describes all the metrics that ganglia collects and shows what platforms the metric are supported on. (The following table is only partially complete).
Metric Name Description Platforms ----------------------------------------------------------------------- boottime System boot timestamp l,f bread_sec bwrite_sec bytes_in Number of bytes in per second l,f bytes_out Number of bytes out per second l,f cpu_aidle Percent of time since boot idle CPU l cpu_arm cpu_avm cpu_idle Percent CPU idle l,f cpu_intr cpu_nice Percent CPU nice l,f cpu_num Number of CPUs l,f cpu_rm cpu_speed Speed in MHz of CPU l,f cpu_ssys cpu_system Percent CPU system l,f cpu_user Percent CPU user l,f cpu_vm cpu_wait cpu_wio disk_free Total free disk space l,f disk_total Total available disk space l,f load_fifteen Fifteen minute load average l,f load_five Five minute load average l,f load_one One minute load average l,f location GPS coordinates for host e lread_sec lwrite_sec machine_type mem_buffers Amount of buffered memory l,f mem_cached Amount of cached memory l,f mem_free Amount of available memory l,f mem_shared Amount of shared memory l,f mem_total Amount of available memory l,f mtu Network maximum transmission unit l,f os_name Operating system name l,f os_release Operating system release (version) l,f part_max_used Maximum percent used for all partitions l,f phread_sec phwrite_sec pkts_in Packets in per second l,f pkts_out Packets out per second l,f proc_run Total number of running processes l,f proc_total Total number of processes l,f rcache swap_free Amount of available swap memory l,f swap_total Total amount of swap memory l,f sys_clock Current time on host l,f wcache
Platform key: l = Linux, f = FreeBSD, a = AIX, c = Cygwin m = MacOS, i = IRIX, h = HPUX, t = Tru64 e = Every Platform
If you are interested in how the metrics are collected, just
take a look in directory ./libmetrics
in the source distribution.
There is a directory for each platform that is supported.
This is an error that occurs when a ganglia components reads data from another ganglia component and finds that the XML is not well-formed. The most common time this is a problem is when the PHP web frontend tries to read the XML stream from gmetad.
To troubleshoot this problem, capture an XML from the ganglia component in question (gmetad/gmond). This is easy to do if you have telnet installed. Simply login to the machine running the component and run.
% telnet localhost 8651
By default, gmetad exports its XML on port 8651 and gmond exports its XML on port 8649. Modify the port number above to suite your configuration.
When you connect to the port you should get an XML stream. If not, look in the process table on the machine to ensure that the component is actually running.
Once you are getting an XML stream, capture it to a file by running.
% telnet localhost 8651 > XML.txt Connection closed by foreign host.
If you open the file XML.txt
, you will see the captured XML stream. You will need to remove
the first three lines of the XML.txt
which will read...
Trying <IP_ADDRESS>... Connected to localhost. Escape character is '^]'.
Those lines are output from telnet
and not the ganglia component (I wish telnet would send
those messages to stderr
but they are send to stdout
).
There are many ways that XML can be misformed. The great tool for validating XML is xmllint
.
xmllint
will read the file and find the line containing the error.
% xmllint --valid --noout XML.txt
will read your captured XML stream, validate it against the ganglia DTD and check that it is
well-formed XML. xmllint
will quiet exit if there are no errors. If
there are errors they will be reported with line numbers. For example...
/tmp/XML.txt:3393: error: Opening and ending tag mismatch: HOST and CLUSTER </CLUSTER> ^ /tmp/XML.txt:3394: error: Opening and ending tag mismatch: CLUSTER and GANGLIA_XML </GANGLIA_XML> ^ /tmp/XML.txt:3395: error: Premature end of data in tag GANGLIA_XML
If you get errors, open XML.txt
and go to the line numbers in question. See if you can
understand based on your configuration how these errors could occur. If you cannot fix the
problem yourself, please email your XML.txt
and output from xmllint
to
<EMAIL_ADDRESS>. Please include information about the version
of each component in question along with the operating system they are running on. The
more details we have about your configuration the more likely it is we will be able to help
you. Also, all mailing to ganglia-developers
is archiving and available to read on the
web. You may want to modify XML.txt
to remove any sensitive information.
A common problem that people have is not being able to remove a host from the ganglia web frontend.
Here is a common scenario
Unfortunately there is currently no nice way to remove a single dead host from the list. All data in gmond is soft state so you will need to restart all gmond and gmetad processes. It is important to note that ALL dead hosts will be flushed from the record by restarting the processes (since they have to hear the host at least once to know it is expired).
If you add the line
globals { host_dmax = 3600 }
then hosts will be removed from host tables when they haven't been heard from in 3600 seconds.
See man gmond.conf
for details.
Here is an email from Steve Wagner about the state of the ganglia on Solaris, IRIX and Tru64. Steve is to thank for porting ganglia to Solaris and Tru64. He also helped with the IRIX port.
State of the IRIX port: * CPU percentage stuff hasn't improved despite my efforts. I fear there may be a flaw in the way I'm summing counters for all the CPUs. * Auto-detection of network interfaces apparently segfaults. * Memory and load reporting appear to be running properly. * CPU speed is not being reported properly on multi-proc machines. * Total/running processes are not reported. * gmetad untested. * Monitoring core apparently stable in foreground, background being tested (had a segfault earlier). State of the Tru64 port: * CPU percentage stuff here works perfectly. * Memory and swap usage stats are suspected to be inaccurate. * Total/running processes are not reported. * gmetad untested. * Monitoring core apparently stable in foreground and background. State of the Solaris port: * CPU percentages are slightly off, but correct enough for trending purposes. * Load, ncpus, CPU speed, breads/writes, lreads/writes, phreads/writes, and rcache/wcache are all accurate. * Memory/swap statistics are suspiciously flat, but local stats bear this out (and they *are* being updated) so I haven't investigated further. * Total processes are counted, but not running ones. * gmetad appears stable Anyway, all three ports I've been messing with are usable and fairly stable. Although there are areas for improvement I think we really can't keep hogging all this good stuff - what I'm looking at is ready for release.
Debian packages for 2.5 are available from the main Debian archive for all releases.
There was never an oficial Debian package for 3.0 but packages for 3.1 are available from Debian experimental and will be available in the Debian archive as soon as they are stabilized.
If you are interested on using them (and help them stabilize) you can get them from:
http://packages.debian.org/experimental/ganglia-monitor
Here is an email that Matt Massie sent to a user having problems with multihomed machines
i need to add a section in the documentation talking about this since it seems to be a common question. when you use... mcast_if eth1 .. in /etc/ganglia/gmond.conf that tells gmond to send its data out the "eth1" network interface but that doesn't necessarily mean that the source address of the packets will match the "eth1" interface. to make sure that data sent out eth1 has the correct source address run the following... % route add -host <IP_ADDRESS> dev eth1 ... before starting gmond. that should do the trick for you. -matt > I have seen some post related to some issues > with gmond + multicast running on a dual nic > frontend. > > Currently I am experiencing a weird behavior > > I have the following setup: > > ----------------------- > | web server + gmetad | > ----------------------- > | > | > | > ---------------------- > | eth0 A.B.C.112 | > | | > | Frontend + gmond | > | | > | eth1 <IP_ADDRESS> | > ---------------------- > | > | > > 26 nodes each > gmond > > In the frontend /etc/gmond.conf I have the > following statement: mcast_if eth1 > > The 26 nodes are correctly reported. > > However the Frontend is never reported. > > I am running iptables on the Frontend, and I am seing > things like: > > INPUT packet died: IN=eth1 OUT= MAC= SRC=A.B.C.112 DST=<IP_ADDRESS> > LEN=36 TOS=0x00 PREC=0x00 TTL=1 ID=53740 DF PROTO=UDP SPT=41608 DPT=8649 > LEN=16 > > I would have expected the source to be <IP_ADDRESS> with mcast_if eth1 > > Any idea ?
Perhaps information regarding gmond on networks set up through cisco catalyst switches should be mentioned in the ganglia documentation. I think by default multicast traffic on the catalyst will flood all devices unless configured properly. Here is a relavent snipet from a message forum, with a link to cisco document.
If what you are trying to do, is minimizing the impact on your network due to a multicast application, this link may describe what you want to do: http://www.cisco.com/warp/public/473/38.html
We set up our switches according to this after a consultant came in and installed an application multicasting several hundred packets per second. This made the network functional again.
The tired and thirsty prospector threw himself down at the edge of the watering hole and started to drink. But then he looked around and saw skulls and bones everywhere. "Uh-oh," he thought. "This watering hole is reserved for skeletons." --Jack Handey
There are three mailing lists available to you: ganglia-general
, ganglia-developers
and
ganglia-announce
. You can join these lists or read their archives by
visiting https://sourceforge.net/mail/?group_id=43021
All of the ganglia mailing lists are closed
. That means that in order to
post to the lists, you must be subscribed to the list. We're sorry for the
inconvenience however it is very easy to subscribe and unsubscribe from the
lists. We had to close the mailing lists because of SPAM problems.
When you need help please follow these steps until your problem is resolved.
completely read the documentation
check the ganglia-general
archive to see if other people have had the same problem
post your support request to the ganglia-general
mailing list
check the ganglia-developers
archive
post your question to the ganglia-developers
list
please send all bugs, patches, and feature requests to the ganglia-developers
list
after you have checked the ganglia-developers
archive to see if the question has
already been asked and answered.
Copyright (C) 2002,2003 University of California, Berkeley
The Ganglia Development Team...
Bas van der Vlies basv Developer basv at users.sourceforge.net Neil T. Spring bluehal Developer bluehal at users.sourceforge.net Brooks Davis brooks_en_davis Developer brooks_en_davis at users.sourceforge.net Eric Fraser fraze Developer fraze at users.sourceforge.net greg bruno gregbruno Developer gregbruno at users.sourceforge.net Jeff Layton laytonjb Developer laytonjb at users.sourceforge.net Doc Schneider maddocbuddha Developer maddocbuddha at users.sourceforge.net Mason Katz masonkatz Developer masonkatz at users.sourceforge.net Mike Howard mhoward Developer mhoward at users.sourceforge.net Matt Massie massie Project Admin massie at users.sourceforge.net Oliver Mössinger olivpass Developer olivpass at users.sourceforge.net Preston Smith pmsmith Developer pmsmith at users.sourceforge.net Federico David Sacerdoti sacerdoti Developer sacerdoti at users.sourceforge.net Tim Cera timcera Developer timcera at users.sourceforge.net Mathew Benson wintermute11 Developer wintermute11 at users.sourceforge.net Brad Nicholes bnicholes Developer bnicholes at users.sourceforge.net Carlo Arenas carenas Developer carenas at users.sourceforge.net
There have been dozens of contributors who have provided patches and helpful bug reports. We need to list them here later.


This is a visualization tool for vegetation structure/succession in space and/or time mainly for forest gap models. However, it could also be used to visualize observed forest stands. If used for models, they should contain either individual trees or cohorts (e.g. LPJ-GUESS by Smith et al. (2014) <doi:10.5194/bg-11-2027-2014>). For a list of required and additional data fields see the vignette.
| Version: | 1.0.0 |
| Depends: | R (≥ 2.10), rgl (≥ 0.96.0), methods, stats, grDevices |
| Suggests: | RColorBrewer, knitr, rmarkdown, data.table, ggplot2 |
| Published: | 2018-03-19 |
| Author: | Steinkamp Joerg [aut, cre] |
| Maintainer: | Steinkamp Joerg <steinkamp.joerg at gmail.com> |
| BugReports: | https://github.com/joergsteinkamp/DGVM3D/issues |
| License: | GPL-3 | file LICENSE |
| URL: | https://github.com/joergsteinkamp/DGVM3D |
| NeedsCompilation: | no |
| Materials: | README NEWS |
| CRAN checks: | DGVM3D results |
| Reference manual: | DGVM3D.pdf |
| Vignettes: |
Introduction to DGVM3D |
| Package source: | DGVM3D_1.0.0.tar.gz |
| Windows binaries: | r-devel: DGVM3D_1.0.0.zip, r-release: DGVM3D_1.0.0.zip, r-oldrel: DGVM3D_1.0.0.zip |
| OS X binaries: | r-release: DGVM3D_1.0.0.tgz, r-oldrel: DGVM3D_1.0.0.tgz |
Please use the canonical form https://CRAN.R-project.org/package=DGVM3D to link to this page.


TrackCalamitySpec
(1 example, 0 failure, 0 error)
The eCore should
- track a /calamity when someone asks for help using our services


JSF 2.3 - h:form demo showing how style and styleClass are rendered (or not)
JSF 2.3 - h:form demo showing how style and styleClass are rendered (or not)
MyFaces version
If this text is red on a black background, the attributes "style" and "styleClass" have been rendered. If it's black-on-white, Stephan is still chasing the bug (or you're using a BootsFaces version that doesn't contain the bug fix yet).
BootsFaces version
If this text is red on a black background, the attributes "style" and "styleClass" have been rendered. If it's black-on-white, Stephan is still chasing the bug (or you're using a BootsFaces version that doesn't contain the bug fix yet).


I have experience using HTML, Wordpress, CSS, jQuery, and Bootstrap to manipulate and create web pages and sites. One example is this portfolio site you are currently viewing. This site was created by downloading a bootstrap template then editing the code to the point where we are now. Here are a few other exmamples:
You can view the webpage here Store Front. Here I was tasked with using basic HTML and some CSS to create an older looking website.
The CSS creature is made up using CSS code and very little HTML. We used CodePen.io to help make the creature. Go ahead and drag my creature around, which was done by using javascript
See the Pen The Ugly Cycloptic Duck thing... by Brett Mullenix (@brmullenix15) on CodePen.
Guessing game created with CSS, HTML, and JavaScript. You get 10 tries to put a number (0-9) in its correct spot. Green means good, Yellow means wrong spot, and Red is wrong.
See the Pen Guessing Game by Brett Mullenix (@brmullenix15) on CodePen.
You can view and make your own list here Ajax List. Here we created an app were you can add in items to a list. The app is also ran through a Heroku online server, where we can connect with other people.
During my freshman year at Trine, while still an Electrical Engineer, I took an Object-Oriented Java class. There we made several programs. Examples include a trivia game, language identifier, perfect number calculator, etc. Below you will see the code and video for the coin flip program we made.
If you click on this link here, you can watch a video demonstration using Object-Oreinted Java to show how many times a coin was flipped heads and tails if you flipped 100,000 times.
I have worked with WordPress on the creation of two sites. The first being a resume site very similar to this one and the link can be found here: Resume Site
Most recently I have been working on a blog site called Gospel Beats News. Here I made a Christian Rap site where I keep up with the latest in the genre. I maintain the site's appearance and functionality. I have help from friends to write the articles and acquire content. You can find the link to the site in the Written Works Tab .
Started using Open Broadcaster Software about two years back, and have made videos for streaming on Twitch and YouTube. I have used it to also create videos for Fantasy Football, school projects, etc.
Every year Trine Communications department hosts a 24 game marathon to raise money for the local humane society. This past year I got to assit in maintaining the stream, and got a deeper look into streaming services other than OBS.
You can find my videos on YouTube.