TRHK’s actress Njambi welcomes baby number 2, talks about miscarriage (Photos)
by Pauline KatethyaCongratulations!
Real Househelps of Kawangware actress Njeri gachomba, popularly known as Njambi has welcomed baby number two.
The news of Njambi’s safe delivery were made public by her fellow actress Awiti through her Instagram page.
“another kawangarian baby @njambitrhk congrats mum on baby number 2”. Read Awiti's post.
Earlier on, Njambi had opened up on the reason why she kept her pregnancy from the limelight, stating that she wanted to confirm the well being of the baby before announcing the news of the social media.
The actress also opened up on the tough times she went through last year after suffering a miscarriage.
Njambi disclosed that the unfortunate incident not only broke her and her boyfriend but also their relationship, which had a lot of unresolved issues and a lot of baggage.
"I previously had a miscarriage and that also gave me the anxiety of sharing this news of this pregnancy..... I remember after the miscarriage on April 2018 everyone told us that everything happened for a reason. We didn't quite understand that it wasn't the right time for us.... " Read part of Njambi's post.
She went ahead to add that the show, Real Househelps of Kawangware, was on a long break and it felt like when the baby died, she (the baby) had gone with all their blessings.
“And it felt like when our baby died, she went with all our blessings. That was the time TRHK went on a long break, and after that no doors were opening, no opportunity was coming our way. I felt like I was being punished, like God had forgotten about us. I was jobless, stressed, dying inside and lonely” Said Njambi.
Despite of the darkness she went through, the gorgeous actress came out of it strong and at the beginning of the year, she got pregnant.
“But look at God, the beginning of this year we were blessed and this time it was the right time. We were ready emotionally, physically mad even spiritually. We had lost our way.... But everyday I keep on saying this is our miracle. It came at the right time with it's own blessings. Am telling you this Lord is an amazing God. I keep telling people that am a living testimony of what the Lord can do". She said.
We wish the family the best of luck.


--- layout: post title: "Interception vis-à-vis Pure DI" description: "How do you do AOP with Pure DI?" date: 2017-09-25 7:27 UTC tags: [Dependency Injection, Software Design] --- {% include JB/setup %}
{{ page.description }}
One of my readers, Nick Ball, asks me this question:
"Just spent the last couple of hours reading chapter 9 of your book about Interceptors. The final few pages show how to use Castle Windsor to make the code DRYer. That's cool, but I'm quite a fan of Pure DI as I tend to think it keeps things simpler. Plus I'm working in a legacy C++ application which limits the tooling available to me.
"So, I was wondering if you had any suggestions on how to DRY up an interceptor in Pure DI? I know in your book you state that this is where DI containers come into their own, but I also know through reading your blog that you prefer going the Pure DI route too. Hence I wondered whether you'd had any further insight since the book publication?"
It's been more than 15 years since I last did C++, so I'm going to give an answer based on C#, and hope it translates.
I do, indeed, prefer Pure DI, but there may be cases where a DI Container is warranted. Interception, or Aspect-Oriented Programming (AOP), is one such case, but obviously that doesn't help if you can't use a DI Container.
Another option for AOP is some sort of post-processor of your code. As I briefly cover in chapter 9 of my book, in .NET this is typically done by a custom tool using 'IL-weaving'. As I also outline in the book, I'm not a big fan of this approach, but perhaps that could be an option in C++ as well. In any case, I'll proceed under the assumption that you want a strictly code-based solution, involving no custom tools or build steps.
All that said, I doubt that this is as much of a problem than one would think. AOP is typically used for cross-cutting concerns such as logging, caching, instrumentation, authorization, metering, or auditing. As an alternative, you can also use Decorators for such cross-cutting concerns. This seems daunting if you truly need to decorate hundreds, or even thousands, of classes. In such a case, convention-based interception seems like a DRYer option.
You'd think.
In my experience, however, this is rarely the case. Typically, even when applying caching, logging, or authorisation logic, I've only had to create a handful of Decorators. Perhaps it's because I tend to keep my code bases to a manageable size.
If you only need a dozen Decorators, I don't think that the loss of compile-time safety and the added dependency warrants the use of a DI Container. That doesn't mean, however, that I can't aim for as DRY code as possible.
If you don't have a DI Container or an AOP tool, I believe that a Decorator is the best way to address cross-cutting concerns, and I don't think there's any way around adding those Decorator classes. The aim, then, becomes to minimise the effort involved in creating and maintaining such classes.
As an example, I'll revisit an old blog post. In that post, the task was to instrument an OrderProcessor
class. The solution shown in that article was to use Castle Windsor to define an IInterceptor
.
To recapitulate, the code for the Interceptor looks like this:
public class InstrumentingInterceptor : IInterceptor { private readonly IRegistrar registrar; public InstrumentingInterceptor(IRegistrar registrar) { if (registrar == null) throw new ArgumentNullException(nameof(registrar)); this.registrar = registrar; } public void Intercept(IInvocation invocation) { var correlationId = Guid.NewGuid(); this.registrar.Register(correlationId, string.Format("{0} begins ({1})", invocation.Method.Name, invocation.TargetType.Name)); invocation.Proceed(); this.registrar.Register(correlationId, string.Format("{0} ends ({1})", invocation.Method.Name, invocation.TargetType.Name)); } }
While, in the new scenario, you can't use Castle Windsor, you can still take the code and make a similar class out of it. Call it Instrument
, because classes should have noun names, and instrument is a noun (right?).
public class Instrument { private readonly IRegistrar registrar; public Instrument(IRegistrar registrar) { if (registrar == null) throw new ArgumentNullException(nameof(registrar)); this.registrar = registrar; } public T Intercept<T>( string methodName, string typeName, Func<T> proceed) { var correlationId = Guid.NewGuid(); this.registrar.Register( correlationId, string.Format("{0} begins ({1})", methodName, typeName)); var result = proceed(); this.registrar.Register( correlationId, string.Format("{0} ends ({1})", methodName, typeName)); return result; } public void Intercept( string methodName, string typeName, Action proceed) { var correlationId = Guid.NewGuid(); this.registrar.Register( correlationId, string.Format("{0} begins ({1})", methodName, typeName)); proceed(); this.registrar.Register( correlationId, string.Format("{0} ends ({1})", methodName, typeName)); } }
Instead of a single Intercept
method, the Instrument
class exposes two Intercept
overloads; one for methods without a return value, and one for methods that return a value. Instead of an IInvocation
argument, the overload for methods without a return value takes an Action delegate, whereas the other overload takes a Func<T>.
Both overload also take methodName
and typeName
arguments.
Most of the code in the two methods is similar. While you could refactor to a Template Method, I invoke the Rule of three and let the duplication stay for now.
The Instrument
class isn't going to magically create Decorators for you, but it reduces the effort of creating one:
public class InstrumentedOrderProcessor2 : IOrderProcessor { private readonly IOrderProcessor orderProcessor; private readonly Instrument instrument; public InstrumentedOrderProcessor2( IOrderProcessor orderProcessor, Instrument instrument) { if (orderProcessor == null) throw new ArgumentNullException(nameof(orderProcessor)); if (instrument == null) throw new ArgumentNullException(nameof(instrument)); this.orderProcessor = orderProcessor; this.instrument = instrument; } public SuccessResult Process(Order order) { return this.instrument.Intercept( nameof(Process), this.orderProcessor.GetType().Name, () => this.orderProcessor.Process(order)); } }
I called this class InstrumentedOrderProcessor2
with the 2
postfix because the previous article already contains a InstrumentedOrderProcessor
class, and I wanted to make it clear that this is a new class.
Notice that InstrumentedOrderProcessor2
is a Decorator of IOrderProcessor
. It both implements the interface, and takes one as a dependency. It also takes an Instrument
object as a Concrete Dependency. This is mostly to enable reuse of a single Instrument
object; no polymorphism is implied.
The decorated Process
method simply delegates to the instrument
's Intercept
method, passing as parameters the name of the method, the name of the decorated class, and a lambda expression that closes over the outer order
method argument.
For simplicity's sake, the Process
method invokes this.orderProcessor.GetType().Name
every time it's called, which may not be efficient. Since the orderProcessor
class field is readonly
, though, you could optimise this by getting the name once and for all in the constructor, and assign the string to a third class field. I didn't want to complicate the example with irrelevant code, though.
Here's another Decorator:
public class InstrumentedOrderShipper : IOrderShipper { private readonly IOrderShipper orderShipper; private readonly Instrument instrument; public InstrumentedOrderShipper( IOrderShipper orderShipper, Instrument instrument) { if (orderShipper == null) throw new ArgumentNullException(nameof(orderShipper)); if (instrument == null) throw new ArgumentNullException(nameof(instrument)); this.orderShipper = orderShipper; this.instrument = instrument; } public void Ship(Order order) { this.instrument.Intercept( nameof(Ship), this.orderShipper.GetType().Name, () => this.orderShipper.Ship(order)); } }
As you can tell, it's similar to InstrumentedOrderProcessor2
, but instead of IOrderProcessor
it decorates IOrderShipper
. The most significant difference is that the Ship
method doesn't return any value, so you have to use the Action
-based overload of Intercept
.
For completeness sake, here's a third interesting example:
public class InstrumentedUserContext : IUserContext { private readonly IUserContext userContext; private readonly Instrument instrument; public InstrumentedUserContext( IUserContext userContext, Instrument instrument) { if (userContext == null) throw new ArgumentNullException(nameof(userContext)); if (instrument == null) throw new ArgumentNullException(nameof(instrument)); this.userContext = userContext; this.instrument = instrument; } public User GetCurrentUser() { return this.instrument.Intercept( nameof(GetCurrentUser), this.userContext.GetType().Name, this.userContext.GetCurrentUser); } public Currency GetSelectedCurrency(User currentUser) { return this.instrument.Intercept( nameof(GetSelectedCurrency), this.userContext.GetType().Name, () => this.userContext.GetSelectedCurrency(currentUser)); } }
This example demonstrates that you can also decorate an interface that defines more than a single method. The IUserContext
interface defines both GetCurrentUser
and GetSelectedCurrency
. The GetCurrentUser
method takes no arguments, so instead of a lambda expression, you can pass the delegate using method group syntax.
You can add such instrumenting Decorators for all appropriate interfaces. It's trivial (and automatable) work, but it's easy to do. While it seems repetitive, I can't come up with a more DRY way to do it without resorting to some sort of run-time Interception or AOP tool.
There's some repetitive code, but I don't think that the maintenance overhead is particularly great. The Decorators do minimal work, so it's unlikely that there are many defects in that area of your code base. If you need to change the instrumentation implementation in itself, the Instrument
class has that (single) responsibility.
Assuming that you've added all desired Decorators, you can use Pure DI to compose an object graph:
var instrument = new Instrument(registrar); var sut = new InstrumentedOrderProcessor2( new OrderProcessor( new InstrumentedOrderValidator( new TrueOrderValidator(), instrument), new InstrumentedOrderShipper( new OrderShipper(), instrument), new InstrumentedOrderCollector( new OrderCollector( new InstrumentedAccountsReceivable( new AccountsReceivable(), instrument), new InstrumentedRateExchange( new RateExchange(), instrument), new InstrumentedUserContext( new UserContext(), instrument)), instrument)), instrument);
This code fragment is from a unit test, which explains why the object is called sut
. In case you're wondering, this is also the reason for the existence of the curiously named class TrueOrderValidator
. This is a test-specific Stub of IOrderValidator
that always returns true
.
As you can see, each leaf implementation of an interface is contained within an InstrumentedXyz
Decorator, which also takes a shared instrument
object.
When I call the sut
's Process
method with a proper Order
object, I get output like this:
4ad34380-6826-440c-8d81-64bbd1f36d39 2017-08-25T17:49:18.43 Process begins (OrderProcessor) c85886a7-1ce8-4096-8a30-5f87bf0014e3 2017-08-25T17:49:18.52 Validate begins (TrueOrderValidator) c85886a7-1ce8-4096-8a30-5f87bf0014e3 2017-08-25T17:49:18.52 Validate ends (TrueOrderValidator) 8f7606b6-f3f7-4231-808d-d5e37f1f2201 2017-08-25T17:49:18.53 Collect begins (OrderCollector) 28250a92-6024-439e-b010-f66c63903673 2017-08-25T17:49:18.55 GetCurrentUser begins (UserContext) 28250a92-6024-439e-b010-f66c63903673 2017-08-25T17:49:18.56 GetCurrentUser ends (UserContext) 294ce552-201f-41d2-b7fc-291e2d3720d6 2017-08-25T17:49:18.56 GetCurrentUser begins (UserContext) 294ce552-201f-41d2-b7fc-291e2d3720d6 2017-08-25T17:49:18.56 GetCurrentUser ends (UserContext) 96ee96f0-4b95-4b17-9993-33fa87972013 2017-08-25T17:49:18.57 GetSelectedCurrency begins (UserContext) 96ee96f0-4b95-4b17-9993-33fa87972013 2017-08-25T17:49:18.58 GetSelectedCurrency ends (UserContext) 3af884e5-8e97-44ea-aa0d-2c9e0418110b 2017-08-25T17:49:18.59 Convert begins (RateExchange) 3af884e5-8e97-44ea-aa0d-2c9e0418110b 2017-08-25T17:49:18.59 Convert ends (RateExchange) b8bd0701-515b-44fe-949f-5f5fb5a4590d 2017-08-25T17:49:18.60 Collect begins (AccountsReceivable) b8bd0701-515b-44fe-949f-5f5fb5a4590d 2017-08-25T17:49:18.60 Collect ends (AccountsReceivable) 8f7606b6-f3f7-4231-808d-d5e37f1f2201 2017-08-25T17:49:18.60 Collect ends (OrderCollector) beadabc4-df17-468f-8553-34ae4e3bdbfc 2017-08-25T17:49:18.60 Ship begins (OrderShipper) beadabc4-df17-468f-8553-34ae4e3bdbfc 2017-08-25T17:49:18.61 Ship ends (OrderShipper) 4ad34380-6826-440c-8d81-64bbd1f36d39 2017-08-25T17:49:18.61 Process ends (OrderProcessor)
This is similar to the output from the previous article.
When writing object-oriented code, I still prefer Pure DI over using a DI Container, but if I absolutely needed to decorate many services, I'd seriously consider using a DI Container with run-time Interception capabilities. The need rarely materialises, though.
As an intermediate solution, you can use a delegation-based design like the one shown here. As always, it's all a matter of balancing the constraints and goals of the specific situation.


TODO: add tests for these cases: when changedOnly and field is part of an array: and update, if any field that's part of an array has changed, then all of those fields should be included, regardless of whether they have changed. and add and remove, only update object with changed fields. when changedOnly and not an array: if radio or checked: check defaultChecked if select: check defaultSelected else: check defaultValue


|
SideCar
|
Template class for device-specific readers. More...
#include </Users/howes/src/sidecar/IO/Readers.h>
Public Types | |
| using | Ref = boost::shared_ptr< TReader< _R, _D > > |
| using | ReaderType = _R |
| Type of the device providing raw data for this reader. More... | |
| using | DeviceType = _D |
Public Member Functions | |
| TReader (size_t bufferSize) | |
| Constructor. More... | |
| int | close () |
Protected Member Functions | |
| ssize_t | fetchFromDevice (void *addr, size_t size) |
| Implementation of the MessageReader prototype. More... | |
Template class for device-specific readers.
The template argument _D is a device to use to actually read in the message data.
| using SideCar::IO::TReader< _R, _D >::ReaderType = _R |
Type of the device providing raw data for this reader.
Device must provide a fetchFromDevice() method.
|
inline |
|
inlineprotected |


Gyrocopter
Tips
- You can use Force Staff on the Homing Missile for some reason.
- Stack ancients if you're carrying with Gyro. Flak Cannon will hit every single unit in the AoE for the
same damage. The spell is basically built to exploit stacking.
- Flak Cannon hits creeps if you're targeting a tower, but it won't hit the tower if you're attacking
creeps.
Counters
- Taking on Gyrocopter 1v1 in the early or mid game is probably suicidal. Rocket Barrage deals a ton of magic
damage to you if you eat all of it. Get a huddle going with your creeps if Gyro is trying to make a move on you.
- You can Bottle through any level of Rocket Barrage's damage as long as Gyro doesn't right click you.
- If Gyro is leveling Homing Missile, eat the rocket as early as you can while remaining safe.
 While they draw aggro from it, only tower shots or hero attacks can damage
it.
- Ward this guy's ancients or just pop in real quick and kill his dominated creep. Or even better yet, win
a team fight and then take his stacks.


I am working to finish updating this portfolio site. I hope to get this up by July 2018!
Please drop me a line<EMAIL_ADDRESS>Check out my Github or Devpost projects:


Briefly, my main areas of interest are:
Summary:
How people interact with software is really interesting
R&D Intern
August 2015 - September 2015
Software Engineer (Freelance)
November 2015 - June 2016
After finishing, I stayed on as a freelancer until June 2016 working on stock management and our retail feed.
Frontend Developer
July 2016 - September 2016
(About anything really)


Bug Trails CTF 23
Bug Trails 23 Write-up
This is my first CTF where I actually made it to the top. I had a chance to try my bug hunting skills that I’ve
been learning for a while now.
Overview of the Bug Trails 23
There were four challenges:
- BugFile (Web) (400 points)
- Admin Panel (Web) (400 points)
- An open port (Web) (400 points)
- Bibliosmia (Misc) (300 points)
BugFile
“Can you view the flag” - caption.
Here we see classic “Hello, World!” message.
So, when you see such pages the first two things you need to do is:
- Content Discovery
- Port Scanning
Port Scanning
- Rustscan is relatively new tool which makes port scanning faster, written in Rust.
rustscan -a <IP_ADDRESS> --ulimit 5000 -r 1-65535 -- nmap -A
- Except the ports nothing interesting found in nmap results.
Content Discovery
- I like to use
ffuf
for everything, some may like to usegobuster
. Both tools are written in goLang.
ffuf -u http://<IP_ADDRESS>/FUZZ -w /usr/share/seclists/Discovery/Web-Content/common.txt
The endpoints we’ve found are:
- /console
- /download
- /message
/console
- If we visit
/console
we can seewerkzeug
console page which is locked with PIN. Possible RCE
/message
- We can see a hint here, so note this path down
/download
- We see “We don’t allow requests to this endpoint.” - interesting.
- In CTFs and in general you also need to look at the source code of the endpoints, so let’s have a look here. I looked for any leaks on previous endpoints also but nothing interesting found.
- We can see a hint here,
<!--GET-->
requests are not allowed. Which only means we need to fuzz for http request methods. - So, I fire up the burp for http method request fuzzing.
- Sent the request to Repeater tab, I started changing request methods manually because the number of request methods are only handful.
- I tried using
POST
method but we get similar message as inGET
- Tried with
HEAD
to get all the available request methods but there was no useful response - Tried with
PUT
and we get something very interesting lead: “Invalid/missing parameter(s).”
- Which only means we need to fuzz for parameters,
param-miner
is a popular burp extension for fuzzing http headers, parameters etc but only available on burp suite pro edition - But one can try
arjun
tool written in python, I assume it doesn’t supportPUT
method - But I had no luck with both the tools, which means I need to try with
ffuf
orintruder
. I went with intruder.
- But I couldn’t find anything because I forgot to mention
Content-Type
header. - I ran it again with
Content-Type: application/x-www-form-urlencoded
header.
- I sorted the results with the length since all return
200 OK
. - And we find pretty interesting parameter
filename
, usually vulnerable to SSRF, LFI, RFI, OS command injection, sometimes maybe SQLi etc
- In response, “No such file: /home/admin/BugTrials/test” if we observe carefully, there is
test
value we provided in fuzzing, is directly appended to the path. - Which means we as an attacker can control this parameter, let’s try with LFI
- But seems like, the dots and slashes are removed, there is some sanitization that developers use to prevent LFI
- But let’s check with famous LFI payload:
....//....//....//etc/passwd
- We can also note the username: tuhin1729
- So what’s really happening in high level view is that developers tried to mitigate LFI but they couldn’t account for recursive dots and slashes. I recommend learning LFI from Hack the box Academy
- Nice, we have found LFI vulnerability but where to look for flag or something interesting. If you remember we
have found a hint on
/message
endpoint ->/home/admin/secret.txt
- Umm, no flag uh?
- “The developer of this challenge mistakenly posted some sensitive information in pastebin. Can you find it”
- Which means we may find something interesting on a pastebin file, but we didn’t find any pastebin link.
- Well, if we read carefully, there are two things we can search on pastebin for: developer name and challenge name.
- There’s no developer name given in the challenge but we can try username we found on
/etc/passwd
file tuhin1729 - Or if you had joined their discord challenge, you would’ve known who created this challenge.
- But there were no results found but we can try with challenge name
BugFile
and we see only one result.
- We can use the above found pin on
/console
endpoint
/console
- To execute commands, we can take help from werkzeug Hacktricks
- So that’s our 1st flag.
- Now, if we had tried to exploit werkzeug we could have been in a rabbit hole. And there’s no way one can see through these challenges, only try harder and take breaks when you are exhausted.
Key Takeaways
- If we land on a blank page on a real pentest or bug hunting or CTFs.
- The 1st thing we need to do is content discovery and port scanning
- When we enumerated few endpoints we need to check for any leaks, generally api keys and tokens are found in js files on real pentests, in the source code and also do http method fuzzing and parameter fuzzing
- And check for reflection of user input, provided to the parameters found, in the response and fuzz those parameters for any vulnerability that parameter may belong to.
Admin Panel
“can you login?” - caption
- We see a login page with username and password
- Also a Forgot Password hyperlink
- If we take a look at source code: we can find username
Content Discovery
ffuf -u http://<IP_ADDRESS>/FUZZ -w /usr/share/seclists/Discovery/Web-Content/common.txt
- We can only see one 200 OK response which is index.html - just home page
Port Scanning
rustscan -a <IP_ADDRESS> --ulimit 5000 -r 1-65535 -- nmap -A
- Except the ports nothing interesting found in nmap results.
- Only thing feasible now is /passwordreset.php endpoint
/passwordreset.php
- Let’s input the username we found
- We see a peculiar message here
- If we take look at the source:
- That red color masked thing is my public IP
- At the bottom we see a comment for administrator
- If the administrator receives a password reset request, he/she needs to send a curl request to this same endpoint.
- Which may suggest that we may need to use curl as our
User-Agent
- Let’s try that:
curl http://<IP_ADDRESS>/passwordreset.php
- But the response was same.
- Maybe we have to do something with IP, perhaps changing it?
- Now, changing IP doesn’t mean we need VPN or proxy but we need to fool the system that we are from the same system (code, design, application, WAFs etc) that administrator would.
- Maybe that doesn’t make sense, in simple terms the request that we are sending with curl should come from a private IP or localhost.
- For this we can use HTTP Headers to bypass this restriction, generally used with SSRF.
- You can get those header lists from googling or searching on GitHub ssrf-bypass, SSRF List 2022
- Now we can try with these headers on burp
- Sent the request to repeater and copy, paste these payloads all at once, or you can try intruder.
- And if you see, we’re able to change the IP to <IP_ADDRESS>
- But which header works is the question, so I removed half and check and repeated the process like binary search, untill I’m left with
X-Client-IP
header. - But seems like this is harder than we thought, I was staring at the screen for few seconds and it hit me to try the website IP and I also changed the
User-Agent
header.
- Now, this did not make any sense when I read this response because we don’t have any endpoint to register nor did we see any endpoint related to email.
- My first thought was token stealing using referrer header but that requires victim to visit any site we monitor and that’s not at all the case here.
- I looked over password reset functionalities checklists but I didn’t really read thorough them.
- So I called it a day.
- In the morning with fresh mind, I had again gone through account takeover check list found on Payload All The Things
- And when I read Password Reset Poisoning which I already know but didn’t strike my mind.
- I tired with
Host: burpcollaborator
but no luck then tried withX-Forwarded-Host: burpcollaborator
wasn’t really expecting anything but…
- I sent a GET with the token
- No “password” parameter found in GET, let’s add that with a value.
- That’s all right we can increase password complexity
- Now let’s try this on login panel we found initially.
- There you go, that’s our second flag.
An open port
“ps. this port is open <IP_ADDRESS> 2222” - caption
- So we are only given an IP and port: 2222
- Let’s start with port scanning
Port Scanning
- Um, No other ports than
22
, but the challenge said that there’s port:2222
- Port:
2222
is another port where SSH usually runs, I thought maybe this had to do with SSH. - I didn’t understand anything how to approach this particular challenge, so I went on to the Google and googled for any CTF challenges that had to do with port
- I learned a new thing while searching: port knocking a challenge was in few CTFs (picoCTF)
- But the challenge had nothing to do with port knocking because port knocking requires ports, I had found few ports on shodan but they are all closed.
- I thought I had to knock those ports, but it was a failure, read more about port knocking - it’s interesting..
- So, what to do now?
- There was this hint given on discord: “wait”
- Um, seems like we need to wait for the port to be opened?
- But for how long? And how do we find if the port is open?
- Well, googling is your friend, so I had googled for a while and found few bash one-liners and found one utility created specifically for thing in nodeJS
- wait-port is a utility – I think it sends TCP SYN packets continuously and waits for ACK.
wait-port <IP_ADDRESS>:2222
- I waited for some time and thought tool or maybe my approach is wrong but still ran it in the background.
- Maybe the port opens for every 1hr or 2hrs
- We know for sure that port opens once awhile but what to do when it does?
- I tried with nc, nmap, ssh, hydra default ssh passwords, but the port closes instantly.
- And then after a while, I tried with curl
wait-port <IP_ADDRESS>:2222 && curl <IP_ADDRESS>:2222
Key Takeways
- Learn things, follow/make checklists, try to come up with your own methodology, build hacker intuition by solving labs, CTFs
- You don’t always know the exact approach you need to take, research is a key thing in information security
Bibliosmia
https://hastebin.com/mihuhabila - c, d, u
- We are given with some cipher text and three alphabets.
- I’m only strong in web and network, no way I would have done this without the hints that were provided in their discord.
- First, Bibliosmia mean “The smell and aroma of a good book”
- So, naturally I thought this had to do with some book cipher, but book cipher requires a book and page numbers. Maybe the three alphabets we got need to be converted into numbers but that still leave one required piece in the puzzle: book. What book?
- I tried with all bases normally found online
- So I thought this is harder than the remaining challenges though there’s 100 points difference.
- I waited for any hints:
- Library
- Babel tower image
- Um, let’s combine library, babel and add cipher to it and make a Google search
- Visited that link, very promising
- In that, click on Browse, copy and paste the cipher we got and convert that c,d,u into numbers: 3, 4, 21
- So that’s our forth flag
Key Takeaways
- Google more, Research, Take time.


Aggregator
is requesting access to your bank account.
Select account(s):
3804 0074 0532 0130 0032
- Savings Account (Pro-Saver)
3675 9334 3432 3456 1232
- Current Account (Advance)
See permission details below
ReadAccountsDetail : Allow access to additional elements in the account payload.
ReadTransactionsCredits : Allow access only to read credit transactions information.
ReadAccountsBasic : Allow access to read basic account information.
ReadDirectDebits : Allow access to read all direct debit information
Allow
Deny


Geneac is a sitebuilder for people who are interested in sharing their genealogy.
See the readme in the repository for instructions on how to get going.
I started working on a website to store and share my genealogy research while I was an undergraduate student at the University of Minnesota-Duluth. Originally, the project was called 'familiar,' and I used this as the basis for a capstone project in the Honors program.
You can see the original paper and poster on the University of Minnesota Library's Digital Conservancy.
Trello Board


What is grid based design?
A grid based design is a way to organize the layout of the website. By creating rows and coloumns, one can easily arrange and move elements around a website.
What is all the hype about responsive webpages?
Responsive webpages can be viewed easily on any size of screen. The webpage will adjust texts, images, menus and whatever else it needs to, as the size of the viewing platform changes.
What is semantic structure?
The way we organize different semantic tags within other elements.
Any additional items that you enjoyed?
Google Fonts is a really cool tool, that I will use in the future.


PODCAST | THE INTERVIEW: We fly to Hawaii to meet the cast of 'Midway' and invite Hollywood star Darren Criss back home with us
by Herman EloffCape Town - In the fourth episode of our podcast series 'The Interview' we fly all the way to Hawaii to meet the cast of the new action drama, Midway.
The film, which opens in South African cinemas on 27 December, is based on the attack on Pearl Harbour and the subsequent Battle of Midway during World War II.
The film stars a string of Hollywood A-listers including Darren Criss, Keean Johnson, Ed Skrein, Patrick Wilson, Dennis Quaid, and Mandy Moore. Channel24's Bashiera Parker visited the Four Seasons Resort Oahu at Ko Olina where she got to meet some of the stars.
LISTEN TO THE PODCAST ON SOUNDCLOUD HERE :
SEE BASHIERA IN ACTION HERE :


Today i just finished the authentication using devise. Now the user need to login to modify their project and cannot see the project belongs to other user.
Some Notice:
-
use belongsto with hasmany or has_one together
-
userprojectspath(user, project) and userprojectpath(user, project) is quite different.
-
When database changes and push to heroku, the database may need to be reset with following step:
- Testing Devise with capybara and RSpec is a little complex. But Thanks, Schneems, your article give me some tips speed up capybara tests with device.


Development Environment on Ubuntu¶
Designate is comprised of four main components Designate API, Designate Central, Designate MiniDNS, and Designate Pool Manager, supported by a few standard open source components. For more information see Architecture.
There are many different options for customizing Designate, and two of these options have a major impact on the installation process:
- The storage backend used (SQLite or MySQL)
- The DNS backend used (PowerDNS or BIND9)
This guide will walk you through setting up a typical development environment for Designate, using BIND9 as the DNS backend and MySQL as the storage backend. For a more complete discussion on installation & configuration options, please see Architecture and Production Architecture.
For this guide you will need access to an Ubuntu Server (14.04).
Development Environment¶
Installing Designate¶
- Install system package dependencies (Ubuntu)
$ sudo apt-get update
$ sudo apt-get install python-pip python-virtualenv libssl-dev libffi-dev git
$ sudo apt-get build-dep python-lxml
- Clone the Designate repo from GitHub
$ mkdir openstack
$ cd openstack
$ git clone https://git.openstack.org/openstack/designate.git
$ cd designate
- Setup a virtualenv
Note
This step is necessary to allow the installation of an up-to-date pip, independent of the version packaged for Ubuntu. it is also useful in isolating the remainder of Designate’s dependencies from the rest of the system.
$ virtualenv .venv
$ . .venv/bin/activate
- Install an up-to-date pip
$ pip install -U pip
- Install Designate and its dependencies
Note
If you run into the error: Installed distribution pbr 1.1.1 conflicts with requirement pbr>=0.6,!=0.7,<1.0, try doing pip install pbr==0.11.0
$ pip install -r requirements.txt -r test-requirements.txt
$ python setup.py develop
- Change directories to the etc/designate folder.
Note
Everything from here on out should take place in or below your designate/etc folder
$ cd etc/designate
- Create Designate’s config files by copying the sample config files
$ cp -a rootwrap.conf.sample rootwrap.conf
- Make the directory for Designate’s log files
$ mkdir -p ../../log
- Make the directory for Designate’s state files
$ mkdir -p ../../state
Configuring Designate¶
Create the designate.conf file
$ editor designate.conf
Copy or mirror the configuration from this sample file here:
[DEFAULT]
########################
## General Configuration
########################
# Show more verbose log output (sets INFO log level output)
verbose = True
# Show debugging output in logs (sets DEBUG log level output)
debug = True
# Top-level directory for maintaining designate's state.
state_path = $pybasedir/state
# Log directory
logdir = $pybasedir/log
# Driver used for issuing notifications
notification_driver = messaging
# Use "sudo designate-rootwrap /etc/designate/rootwrap.conf" to use the real
# root filter facility.
# Change to "sudo" to skip the filtering and just run the command directly
# root_helper = sudo
# Supported record types
#supported_record_type = A, AAAA, CNAME, MX, SRV, TXT, SPF, NS, PTR, SSHFP, SOA
# RabbitMQ Config
rabbit_userid = designate
rabbit_password = designate
#rabbit_virtual_host = /
#rabbit_use_ssl = False
#rabbit_hosts = <IP_ADDRESS>:5672
########################
## Service Configuration
########################
#-----------------------
# Central Service
#-----------------------
[service:central]
# Maximum domain name length
#max_domain_name_len = 255
# Maximum record name length
#max_record_name_len = 255
#-----------------------
# API Service
#-----------------------
[service:api]
# Address to bind the API server
api_host = <IP_ADDRESS>
# Port to bind the API server
api_port = 9001
# Authentication strategy to use - can be either "noauth" or "keystone"
auth_strategy = noauth
# Enable API Version 1
enable_api_v1 = True
# Enabled API Version 1 extensions
enabled_extensions_v1 = diagnostics, quotas, reports, sync, touch
# Enable API Version 2
enable_api_v2 = True
# Enabled API Version 2 extensions
enabled_extensions_v2 = quotas, reports
#-----------------------
# mDNS Service
#-----------------------
[service:mdns]
#workers = None
#host = <IP_ADDRESS>
#port = 5354
#tcp_backlog = 100
#-----------------------
# Pool Manager Service
#-----------------------
[service:pool_manager]
pool_id = 794ccc2c-d751-44fe-b57f-8894c9f5c842
#workers = None
#threshold_percentage = 100
#poll_timeout = 30
#poll_retry_interval = 2
#poll_max_retries = 3
#poll_delay = 1
#periodic_recovery_interval = 120
#periodic_sync_interval = 300
#periodic_sync_seconds = None
#cache_driver = sqlalchemy
###################################
## Pool Manager Cache Configuration
###################################
#-----------------------
# SQLAlchemy Pool Manager Cache
#-----------------------
[pool_manager_cache:sqlalchemy]
connection = mysql+pymysql://root:password@<IP_ADDRESS>/designate_pool_manager?charset=utf8
#connection_debug = 100
#connection_trace = False
#sqlite_synchronous = True
#idle_timeout = 3600
#max_retries = 10
#retry_interval = 10
########################
## Storage Configuration
########################
#-----------------------
# SQLAlchemy Storage
#-----------------------
[storage:sqlalchemy]
# Database connection string - to configure options for a given implementation
# like sqlalchemy or other see below
connection = mysql+pymysql://root:password@<IP_ADDRESS>/designate?charset=utf8
#connection_debug = 100
#connection_trace = True
#sqlite_synchronous = True
#idle_timeout = 3600
#max_retries = 10
#retry_interval = 10
Installing RabbitMQ¶
Install the RabbitMQ package
$ sudo apt-get install rabbitmq-server
Create a user:
$ sudo rabbitmqctl add_user designate designate
Give the user access to the / vhost:
$ sudo rabbitmqctl set_permissions -p "/" designate ".*" ".*" ".*"
Installing MySQL¶
Install the MySQL server package
$ sudo apt-get install mysql-server-5.5
If you do not have MySQL previously installed, you will be prompted to change the root password. By default, the MySQL root password for Designate is “password”. You can:
Change the root password to “password”
- If you want your own password, edit the designate.conf file and change any instance of
“mysql+pymysql://root:password@<IP_ADDRESS>/designate?charset=utf8” to “mysql+pymysql://root:YOUR_PASSWORD@<IP_ADDRESS>/designate?charset=utf8”
You can change your MySQL password anytime with the following command:
$ mysqladmin -u root -p password NEW_PASSWORD
Enter password <enter your old password>
Create the Designate tables
$ mysql -u root -p
Enter password: <enter your password here>
mysql> CREATE DATABASE `designate` CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> CREATE DATABASE `designate_pool_manager` CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> exit;
Install additional packages
$ sudo apt-get install libmysqlclient-dev
$ pip install pymysql
Installing BIND9¶
Install the DNS server, BIND9
$ sudo apt-get install bind9
Update the BIND9 Configuration
$ sudo editor /etc/bind/named.conf.options
Change the corresponding lines in the config file:
options {
directory "/var/cache/bind";
dnssec-validation auto;
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
allow-new-zones yes;
request-ixfr no;
recursion no;
};
Disable AppArmor for BIND9
$ sudo touch /etc/apparmor.d/disable/usr.sbin.named
$ sudo service apparmor reload
Restart BIND9:
$ sudo service bind9 restart
Create and Import pools.yml File¶
Create the pools.yaml file
$ editor pools.yaml
Copy or mirror the configuration from this sample file here:
- name: default
# The name is immutable. There will be no option to change the name after
# creation and the only way will to change it will be to delete it
# (and all zones associated with it) and recreate it.
description: Default BIND9 Pool
attributes: {}
# List out the NS records for zones hosted within this pool
ns_records:
- hostname: ns1-1.example.org.
priority: 1
# List out the nameservers for this pool. These are the actual BIND servers.
# We use these to verify changes have propagated to all nameservers.
nameservers:
- host: <IP_ADDRESS>
port: 53
# List out the targets for this pool. For BIND, most often, there will be one
# entry for each BIND server.
targets:
- type: bind9
description: BIND9 Server 1
# List out the designate-mdns servers from which BIND servers should
# request zone transfers (AXFRs) from.
masters:
- host: <IP_ADDRESS>
port: 5354
# BIND Configuration options
options:
host: <IP_ADDRESS>
port: 53
rndc_host: <IP_ADDRESS>
rndc_port: 953
rndc_key_file: /etc/bind/rndc.key
# Optional list of additional IP/Port's for which designate-mdns will send
# DNS NOTIFY packets to
# also_notifies:
# - host: <IP_ADDRESS>
# port: 53
Import the pools.yaml file into Designate
$ designate-manage pool update --file pools.yaml
Initialize & Start the Central Service¶
Sync the Designate database.
$ designate-manage database sync
Start the central service.
$ designate-central
You’ll now be seeing the log from the central service.
Initialize & Start the API Service¶
Open up a new ssh window and log in to your server (or however you’re communicating with your server).
$ cd openstack/designate
If Designate was installed into a virtualenv, make sure your virtualenv is sourced
$ source .venv/bin/activate
Start the API Service
$ designate-api
You’ll now be seeing the log from the API service.
Initialize & Start the Pool Manager Service¶
Open up a new ssh window and log in to your server (or however you’re communicating with your server).
$ cd openstack/designate
If Designate was installed into a virtualenv, make sure your virtualenv is sourced
$ source .venv/bin/activate
Sync the Pool Manager’s cache:
$ designate-manage pool-manager-cache sync
Start the pool manager service:
$ designate-pool-manager
You’ll now be seeing the log from the Pool Manager service.
Initialize & Start the MiniDNS Service¶
Open up a new ssh window and log in to your server (or however you’re communicating with your server).
$ cd openstack/designate
If Designate was installed into a virtualenv, make sure your virtualenv is sourced
$ source .venv/bin/activate
Start the minidns service:
$ designate-mdns
You’ll now be seeing the log from the MiniDNS service.
Exercising the API¶
Note
If you have a firewall enabled, make sure to open port 53, as well as Designate’s default port (9001).
Using a web browser, curl statement, or a REST client, calls can be made to the Designate API using the following format where “api_version” is either v1 or v2 and “command” is any of the commands listed under the corresponding version at REST API Documentation
http://IP.Address:9001/api_version/command
You can find the IP Address of your server by running
curl -s checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//'
A couple of notes on the API:
- Before Domains are created, you must create a server (/v1/servers).


{% block order_field %}
{% get_form_field form inline.order_field as order_field %}
{{ order_field }}
{% endblock %}
{% endif %}
{% endblock %}
{% block inline_layout %}
{% for field in form.fields %}
{# FIXME field can't be html as we iterate over form.fields not inline.fields or inline.layout #}
{% if field.is_html %}
{{ field.content|safe }}
{% elif inline.can_order and inline.order_field == field %}
{# skip order field #}
{% else %}
{% get_form_field form field as form_field %}
{% if form_field is None %}
{% include "beam/partials/detail_field.html" with object=form.instance field=field %}
{% elif not form_field.is_hidden %}
{% get_url_for_related form_field.field.queryset.model "create" as create_url %}
{% get_options form_field.field.queryset.model as related_options %}
{% include "bootstrap4/field.html" with field=form_field form_show_errors=True wrapper_class="mb-0" %}


Thank you, your request for registration has been submiitted.It won't take long before you can start posting jobs.


I Can Do That.
A custom-tailored quiz for Soul Work Coffee.
A taste of the upcoming restaurant decider app.
Read, save, and annotate NYT political articles.


General Details
Prescription Details
Name
Disease
Medication
Duration
Lab Details
Name
Name of Lab
Report Type
Date
Impression
Findings
View Details
Hello node


We redefine content!
- innovate frictionless e-markets
- mesh rich architectures
- leverage dynamic initiatives
- monetize robust infomediaries
- aggregate sexy e-tailers
- whiteboard compelling bandwidth
- disintermediate visionary markets
- deliver wireless deliverables
- deploy cutting-edge relationships
- mesh scalable functionalities
- syndicate dot-com eyeballs
- envisioneer sticky synergies
- target 24/7 experiences
- deliver e-business methodologies
- embrace scalable experiences


All posts:
| User ID | Title | Body |
|---|---|---|
| {{p.userId}} | {{p.title}} | {{p.body}} |
The horse (Equus ferus caballus)[2][3] is one of two extant subspecies of Equus ferus. It is an odd-toed ungulate mammal belonging to the taxonomic family Equidae.
The horse has evolved over the past 45 to 55 million years from a small multi-toed creature, Eohippus, into the large, single-toed animal of today. Humans began to domesticate horses around 4000 BC, and their domestication is believed to have been widespread by 3000 BC. Horses in the subspecies caballus are domesticated, although some domesticated populations live in the wild as feral horses. These feral populations are not true wild horses, as this term is used to describe horses that have never been domesticated, such as the endangered Przewalski's horse, a separate subspecies, and the only remaining true wild horse. There is an extensive, specialized vocabulary used to describe equine-related concepts, covering everything from anatomy to life stages, size, colors, markings, breeds, locomotion, and behavior.


Event Date : 31/07/2013
Time : 6 pm- 7.30pm
Venue : TT304
Organizer : The Electronics Club(TEC)
Participant Count : 60
Speaker(s) Volunteers : Lavin Khandelwal, Shriya Agarwal, R.Mukundan, Rohan Kamra.
Keeping in view the response for Electronics 101 conducted the previous year, TEC started this fall sem with version 2.0 of the same event. Electronics 101 V2.0 was conducted on 26th july 2013 in TT 238 from 6pm onwards. It started with an introduction to the club and it’s working procedure by Sarthak Dubey. The event included introduction to basic electronic components like resistors ( colour coding) ,capacitors(value reading), inductors, diodes, Led’s, transistors etc.. It was followed by a free hands –on session of making simple ”LED- brightness control” circuit and all the materials were provided to them by TEC and SENSE-VIT
The feedback in totality was very appreciating for the club. Students liked the session and worked very enthusiastically throughout the event. The experience of making their first circuit on a breadboard was very exciting to them.


public abstract class FileSystemView extends Object
Java Licensees may want to provide a different implementation of FileSystemView to better handle a given operating system.
| Constructor and Description |
|---|
FileSystemView() |
| Modifier and Type | Method and Description |
|---|---|
File |
createFileObject(File dir,
String filename)
Returns a File object constructed in dir from the given filename.
|
File |
createFileObject(String path)
Returns a File object constructed from the given path string.
|
protected File |
createFileSystemRoot(File f)
Creates a new
File object for f with correct
behavior for a file system root directory. |
abstract File |
createNewFolder(File containingDir)
Creates a new folder with a default folder name.
|
File |
getChild(File parent,
String fileName) |
File |
getDefaultDirectory()
Return the user's default starting directory for the file chooser.
|
File[] |
getFiles(File dir,
boolean useFileHiding)
Gets the list of shown (i.e.
|
static FileSystemView |
getFileSystemView() |
File |
getHomeDirectory() |
File |
getParentDirectory(File dir)
Returns the parent directory of
dir . |
File[] |
getRoots()
Returns all root partitions on this system.
|
String |
getSystemDisplayName(File f)
Name of a file, directory, or folder as it would be displayed in
a system file browser.
|
Icon |
getSystemIcon(File f)
Icon for a file, directory, or folder as it would be displayed in
a system file browser.
|
String |
getSystemTypeDescription(File f)
Type description for a file, directory, or folder as it would be displayed in
a system file browser.
|
boolean |
isComputerNode(File dir)
Used by UI classes to decide whether to display a special icon
for a computer node, e.g.
|
boolean |
isDrive(File dir)
Used by UI classes to decide whether to display a special icon
for drives or partitions, e.g.
|
boolean |
isFileSystem(File f)
Checks if
f represents a real directory or file as opposed to a
special folder such as "Desktop" . |
boolean |
isFileSystemRoot(File dir)
Is dir the root of a tree in the file system, such as a drive
or partition.
|
boolean |
isFloppyDrive(File dir)
Used by UI classes to decide whether to display a special icon
for a floppy disk.
|
boolean |
isHiddenFile(File f)
Returns whether a file is hidden or not.
|
boolean |
isParent(File folder,
File file)
On Windows, a file can appear in multiple folders, other than its
parent directory in the filesystem.
|
boolean |
isRoot(File f)
Determines if the given file is a root in the navigatable tree(s).
|
Boolean |
isTraversable(File f)
Returns true if the file (directory) can be visited.
|
public static FileSystemView getFileSystemView()
public boolean isRoot(File f)
C:\
, D:\
, etc. Unix has one root,
the "/"
directory.
The default implementation gets information from the ShellFolder
class.f
- a File
object representing a directorytrue
if f
is a root in the navigatable tree.isFileSystemRoot(java.io.File)
public Boolean isTraversable(File f)
f
- the File
true
if the file/directory can be traversed, otherwise false
JFileChooser.isTraversable(java.io.File)
,
FileView.isTraversable(java.io.File)
public String getSystemDisplayName(File f)
f
- a File
objectJFileChooser.getName(java.io.File)
public String getSystemTypeDescription(File f)
f
- a File
objectJFileChooser.getTypeDescription(java.io.File)
public Icon getSystemIcon(File f)
f
- a File
objectJFileChooser.getIcon(java.io.File)
public boolean isParent(File folder, File file)
folder
- a File
object repesenting a directory or special folderfile
- a File
objecttrue
if folder
is a directory or special folder and contains file
.public File getChild(File parent, String fileName)
parent
- a File
object repesenting a directory or special folderfileName
- a name of a file or folder which exists in parent
new
File(parent, fileName)
except when parent and child are both
special folders, in which case the File
is a wrapper containing
a ShellFolder
object.public boolean isFileSystem(File f)
f
represents a real directory or file as opposed to a
special folder such as "Desktop"
. Used by UI classes to decide if
a folder is selectable when doing directory choosing.f
- a File
objecttrue
if f
is a real file or directory.public abstract File createNewFolder(File containingDir) throws IOException
IOException
public boolean isHiddenFile(File f)
public boolean isFileSystemRoot(File dir)
dir
- a File
object representing a directorytrue
if f
is a root of a filesystemisRoot(java.io.File)
public boolean isDrive(File dir)
dir
- a directoryfalse
alwayspublic boolean isFloppyDrive(File dir)
dir
- a directoryfalse
alwayspublic boolean isComputerNode(File dir)
dir
- a directoryfalse
alwayspublic File[] getRoots()
public File getHomeDirectory()
public File getDefaultDirectory()
File
object representing the default
starting folderpublic File createFileObject(File dir, String filename)
public File createFileObject(String path)
public File[] getFiles(File dir, boolean useFileHiding)
public File getParentDirectory(File dir)
dir
.dir
- the File
being querieddir
, or
null
if dir
is null
protected File createFileSystemRoot(File f)
File
object for f
with correct
behavior for a file system root directory.f
- a File
object representing a file system root
directory, for example "/" on Unix or "C:\" on Windows.File
object Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2015, Oracle and/or its affiliates. All rights reserved.


×
Success Modal
×
Danger Modal
×
Warning Modal
×
Info Modal
GUIDE Client
Connected to:
Not connected
Start Session
End Session
Random User
Chromosomes
Breeding
Egg Drop
Message
breeding placeholder
chromosomes placeholder
egg drop placeholder
message placeholder


{% extends "legaladmin/base.html" %} {% load static %} {% block addHead %} {% endblock %} {% block content %}
This application provides a concise overview and links to extensive repositories of information on the legal and administrative framework that is relevant to RIS3. The majority of sources referenced here are official EU reference sources; other sources, including those provided by commercial third-party providers, are clearly identified as such.
Please click on the "down" arrow for the respective topic you are interested in to continue.
This table provides a quick overview of existing finance measures under ESIF 2014-2020. Please use the link below the overview table to access the complete dataset with more elaborate filtering functionalities.


{% if course_basics["exists"] %} {% if assignment_basics["exists"] %}
Title:
Introduction:
Please use Markdown syntax to write an introduction for this assignment.
Visible:
{% if assignment_basics["exists"] %} Done editing | Delete assignment | Delete assignment submissions {% end %}


Press Publish to compile this website.
Compiled {{currentFile}} files of {{totalFiles}}
{{this}}
Website compiled and published.
An error occured while compiling the website.


Welcome to LT Web Designs
Here we aim to provide you with the website that you need.
Create. Design. Update.
Whether you need a site created to your specification, a site designed by us for you or your current site just needs some attention.
We provide you with what you need.
We want your input every step of the way
So your site is perfect for you.
Potatoes!
Ran out of ideas
Blah de blah de blah blah blah.
Get Started
To see our Services, Rates and more Click Here.


Qt Location GeoServices
The Qt Location provides the majority of its functionality through GeoService plugins. This document outlines how to develop a new GeoService plugin.
Plugin Description
Each plugin is described by a json file. The json describes the plugins capabilities and version. Below is an example of a json file used by the OpenStreenMap plugin:
{ "Keys": ["osm"], "Provider": "osm", "Version": 100, "Experimental": false, "Features": [ "OnlineMappingFeature", "OnlineGeocodingFeature", "ReverseGeocodingFeature", "OnlineRoutingFeature", "OnlinePlacesFeature" ] }
The entries have the following meaning:
| Key | Description |
|---|---|
| Keys | The unique name/key of the plugin. Each GeoService plugin must have a unique name. |
| Provider | The provider name of the services. Multiple plugins may have the same name. In such cases the Version string will be used to further distinguish the plugins. |
| Experimental | Marks the service plugin as experimental. API developers may choose to ignore such plugins when instanciating QGeoServiceProvider::QGeoServiceProvider(). |
| Version | The plugin version. If multiple plugins have the same provider name, the plugin with the higest version will be used. |
| Features | List of features provided by the plugin/service. Each feature is a string representation of the corresponding features in QGeoServiceProvider. For more details see QGeoServiceProvider::routingFeatures(), QGeoServiceProvider::geocodingFeatures() and QGeoServiceProvider::placesFeatures(). |
Implementing Plugins
A plugin implementer needs to subclass QGeoServiceProviderFactory and as many of the ManagerEngine classes as they want to provide implementations for.
Subclassing QGeoServiceProviderFactory will only involves overriding of one of the following methods:
- QGeoServiceProviderFactory::createGeocodingManagerEngine()
- QGeoServiceProviderFactory::createRoutingManagerEngine()
- QGeoServiceProviderFactory::createPlaceManagerEngine()
If a plugin does not provide an engine the relevant function should return 0.
Interface and convenience methods to implementers of QGeoServiceProvider plugins who want to provide support for geocoding operations | |
Interface and convenience methods to implementers of QGeoServiceProvider plugins who want to provide access to geographic routing information | |
Factory class used as the plugin interface for services related to geographical information | |
Interface for implementers of QGeoServiceProvider plugins who want to provide access to place functionality |


Enter your Vehicle
& Driver Information
Complete the form below to get the best Insurance Policy offers for your needs.
Driver ID:
Driver Name:
Birth Date:
Age:
Login to your
Account
Forgot your
Password


Model Performance
Overview
This section discusses the model performance from the implementation of the different models that served as target pools in DARTS. What follows is a description of the features, followed by an overview of the algorithms applied, discussion of the overall performance results and error analysis.
Description of Features
We used a feature set that included demographics, jurisdictional attributes, socio-economic status, voting history and survey data on people’s attitudes on a variety of political and social issues. We reduced the dimensionality of the feature set for modeling purposes using statistical analysis approaches (correlation analysis and Boruta methods) and intuition around thematically-related features. Features were engineered and normalized to scale for model implementation. The sources of this data included voter profile data and survey response data provided by the People’s Action campaign.
Algorithms
This section describes the classifier algorithms applied across the model strategies.
Logistic regression
Logistic regression is considered one of the most common and foundational algorithms in supervised learning. Fundamentally, logistic regression models the linear relationship between one or more arbitrary independent features and binary dependent variables. Logistic regression applies the logit transformation such that the feature set goes from an infinite, continuous scale to a probabilistic scale bounded between 0 and 1. Functionally, the log odds of an outcome occurrence is a linear function of the features. The binary nature of the outcome variable in this problem domain (decided or conflicted voter) makes logistic regression an appropriate choice classifier.
Random Forest
The Random Forest classifier builds on a bagged decision trees classifier. It creates training sets by bootstrap sampling with replacement in order to build each tree iteratively. Random Forest classifiers choose a subset of features to consider as split points. Regularization occurs as a result of having many different trees without pruning. The bootstrapping training process repeats iteratively by creating multiple trees. Each result of each iteration will be a bit different given different trees formed. The results are averaged to avoid overfitting.
Support Vector Machines (SVM)
The SVM classifier is a non-probabilistic linear classifier. The SVM training algorithm builds a decision function (support vectors) that assigns new observations to one category or the other. Different kernel functions are specified in the decision function. SVM is generally considered an effective classifier in high-dimensional space.
K-Nearest Neighbors (KNN)
The KNN classifier induces complex decision boundaries to separate observations. This can be thought of through a Voronoi diagram where regions in a space that are closest to each point are learned. The Voronoi region around each point defines the label. Regions can become more complex and arbitrary depending on specific examples in the training set. The higher the value of K, the smoother the decision boundary and the better the boundary generalizes to new data. Low values of K tend to overfit the training data and not generalize well on test data.
Adaboost
The Adaboost algorithm is an implementation of a boosting classifier developed in the early 2000s. Its main attributes are that it sets equal weights for each training example and proceeds to reduce weights for correct examples and increase weights for misclassified examples. Thus, AdaBoost weighs data points that are difficult to predict. Each iteration of the classifier is trained with the objective that respects importance weights placed on each feature.
Extreme Gradient Boosting (XGBoost)
The XGBoost algorithm is an implementation of a boosting decision trees classifier that has gained popularity in recent years for its good performance and speed. In boosting, a sequence of models are trained where each iteration emphasizes examples misclassified by the previous model. This ensemble technique iteratively takes on new models to correct existing models. Models are added sequentially until no further improvements can be made using gradient descent to minimize the loss function. Refer to this useful resource for further discussion about XGBoost.
Light Gradient Boosting Model (LightGBM)
The LightGBM algorithm is an implementation of a boosting decision tree classifier that, like XGBoost, has gained popularity in recent years for its good performance and speed, particularly in handling big data. The main difference of LightGBM is that it uses histogram-based algorithms to bucket continuous features into discrete bins, which speeds up training and reduces memory usage. XGBoost, on the other hand, uses a pre-sorted algorithmic approach. The advantages of histogram-based algorithms include reducing the cost of calculating the information gain at each split and uses histogram subtraction for speed up. Refer to the LightGBM documentation for more information.
Results
Model performance over the implementation period, following October 20th through November 3rd, are presented here. Models are compared to a baseline model, which is based on a stylized logistic regression model using People’s Action filters. We use the Cohen's Kappa metric to measure model prediction agreement with actual outcomes, Matthew’s Correlation Coefficient metrics to measure how well a model predicts true positives and true negatives, precision metric to measure how well a model correctly identifies conflicted voters and a recall metric to measure how well a model does not miss identifying conflicted voters. For simplicity, just the results from the implementation of the best performing algorithm for each model strategy are discussed here.
Cohen’s Kappa coefficient
Cohen’s Kappa is used to measure how well the model predictions perform relative to the actual outcomes. It is a statistic typically used to measure inter-rater reliability for qualitative items. It can be thought of as the proportionate agreement of a model predictions with actual results over the expected probabilities of agreement. Figure 1 below shows the Cohen’s Kappa measures for each model. Our models perform better than baseline. Model Strategy 4a using XGBoost and Model Strategy 4b using Light GBM are the best performing classifiers with Cohen’s Kappa greater than 10%.
Matthew’s Correlation Coefficient
Similar to Cohen’s Kappa, Matthew’s Correlation Coefficient (MCC) is a balanced measure of how well a model predicts True Positives and True Negatives, which is useful in this case when the classes (decided and conflicted voter groups) are of different sizes. The MCC is a correlation coefficient between the observed and predicted binary classifications, returning a value between −1 and +1. A coefficient of +1 represents a perfect prediction, 0 no better than random prediction and −1 indicates total disagreement between prediction and observation. Figure 2 below shows the MCC measures for each model. Our models perform better than baseline. Model Strategy 4a using XGBoost and Model Strategy 4b using Light GBM are the best performing classifiers with MCC greater than 10%.
Precision
Model precision is an important evaluation metric given the cost of calling. Higher precision signals a higher rate of undecided voters correctly identified. This would mean minimizing false positives or when the model directs the caller to contact a decided voter instead of an undecided voter. Figure 3 shows the model precision metric for each model. All models perform better than baseline. Model precision is consistently above 40% for all models. Model Strategy 4a using XGBoost and Model Strategy 4b using Light GBM are the best performing classifiers with 50% precision.
Figure 4 shows the model precision performance over time post-October 20th. We observe that no model consistently outperforms the others. While most models outperform the baseline model, there is no clear better model over all days. For example, we observe Model Strategy 3 with Logistic Regression implementation outperforms other models on October 24th, followed by a sharp underperformance on October 25th. We attribute this to the target voters being an elusive group. While, target voters might have certain persistent traits, shifts in the political climate and top-of-mind issues can lead to different sources of hesitancy on any given day particularly on days closer to the election.
Recall
Model recall is an important evaluation metric given that failing to call actual undecided voters because the model considers them to be decided voters is an acute missed opportunity. This is particularly important in the context of competitive elections where even a small margin of votes may matter and failing to contact enough undecided voters could be consequential. Figure 5 shows the recall metric for each model. All models perform better than baseline. Model recall is consistently above 40% for all models. Model Strategy 4a using XGBoost and Model Strategy 4b using Light GBM are the best performing classifiers with recall above 60%. In particular Model Strategy 4a using XGBoost achieves 68% recall, while baseline is 42%.
Error Analysis
Confusion Matrix
An analysis of the confusion matrix outcomes from binary classification predictions of decided versus undecided voters gives an understanding model performance. Figure 6 below is an example confusion matrix for the case problem.
This view allows us to understand the negative predictive value, NPV, across the top row and positive predictive value, PPV or precision, across the bottom row.
\[PPV = \frac{True\>positives}{True\>positives + False\>positives}\] \[NPV = \frac{True\>negatives}{True\>negatives + False\>negatives}\]Comparing the confusion matrix performance on the train data to the performance on the test data (post-October 20th) tells us how well the model generalizes or fits to real data in the wild. A model that performs well on the train data, but performs poorly on the test date is said to overfit; whereas a model that performs poorly on the train data is said to be underfit. A comparison of the model’s performance on test data to the baseline model’s performance gives an informative evaluation measure of true performance. Figures 7-11 show the confusion matrix performance for each of the models.
Generally, models have higher PPV in the test data as compared to the baseline model. The Model Strategy 4a and Model Strategy 4b implementations notably show much higher PPV in the test data as compared to the baseline model.
The Model Strategy 1 and Model Strategy 2 implementation generalizes well with an improvement in PPV going from the training data to the test data. The other models tend to generalize less well with mostly lower PPV going from training data to test data; however, the level of PPVs on the training data tends to be higher to begin with for the Model Strategies 4 and 5 implementations.
Balancing False Positives and False Negatives
The models are evaluated on their error distribution balance of Type 1 (False Positives) and Type 2 (False Negatives). For the problem of identifying undecided voters for a calling campaign in competitive election (“swing”) states, we seek to identify the model that, on balance, achieves a minimum of False Negatives and False Positives with a preference in minimizing False Negatives. A comparison of the models’ error distribution performance on test data to the baseline model’s performance gives an informative evaluation measure of true performance. Figures 12-16 show the error distribution for each of the models.
False Positives tend to decrease comparing the test performance to the baseline model performance for the Model Strategies 1, 2 and 3 implementations. The test performance of Model Strategies 4 and 5 implementations show a sharper decline in False Negatives with a somewhat small increase in False Positives compared to baseline.


EVALUATION FORM
Student Name :
A. Has the group member attended most meetings? Y/N
Please Select
YES
NO
B. Has the group member been prepared for group meetings? Y/N
Please Select
YES
NO
C. Has the group member participated positively in meetings? Y/N
Please Select
YES
NO
D. Has the group member performed their share of the work, as assigned? Y/N
Please Select
YES
NO
E. Has the group member been able to work well with others? Y/N
Please Select
YES
NO
F. Rate the level of initiative this group member has exhibited in the project.
G. Rate the quality of this group member's inputt to group discussions and design issues.
H. Rate the overall value of this group member to the project.
Percentage of work done.


|
KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
|
All the processes python should be derived from "Process". More...
Public Member Functions | |
| def | __init__ (self, model, settings) |
| def | ExecuteBeforeSolutionLoop (self) |
| def | ExecuteInitializeSolutionStep (self) |
| def | ExecuteFinalizeSolutionStep (self) |
| def | ExecuteBeforeOutputStep (self) |
| def | ExecuteFinalize (self) |
Public Attributes | |
| settings | |
| model_part | |
| variable | |
| benchmark | |
| compute_error | |
| print_output | |
| output_process | |
All the processes python should be derived from "Process".
| def apply_custom_body_force_process.ApplyCustomBodyForceProcess.__init__ | ( | self, | |
| model, | |||
| settings | |||
| ) |
| def apply_custom_body_force_process.ApplyCustomBodyForceProcess.ExecuteBeforeOutputStep | ( | self | ) |
| def apply_custom_body_force_process.ApplyCustomBodyForceProcess.ExecuteBeforeSolutionLoop | ( | self | ) |
| def apply_custom_body_force_process.ApplyCustomBodyForceProcess.ExecuteFinalize | ( | self | ) |
| def apply_custom_body_force_process.ApplyCustomBodyForceProcess.ExecuteFinalizeSolutionStep | ( | self | ) |
| def apply_custom_body_force_process.ApplyCustomBodyForceProcess.ExecuteInitializeSolutionStep | ( | self | ) |
| apply_custom_body_force_process.ApplyCustomBodyForceProcess.benchmark |
| apply_custom_body_force_process.ApplyCustomBodyForceProcess.compute_error |
| apply_custom_body_force_process.ApplyCustomBodyForceProcess.model_part |
| apply_custom_body_force_process.ApplyCustomBodyForceProcess.output_process |
| apply_custom_body_force_process.ApplyCustomBodyForceProcess.print_output |
| apply_custom_body_force_process.ApplyCustomBodyForceProcess.settings |
| apply_custom_body_force_process.ApplyCustomBodyForceProcess.variable |


Toggle navigation
DAFC Centenary Club
Settings
Logout
Home
Members
Payments
Draws
Reports
Site Admin


This visualisation retrieves sentences relating to topics on corruption from a 2015 Africa corruption report. The words in white is the topic in view and words in light grey are the nouns and verbs in the sentence.


Author: Matthew Leonawicz
License: MIT
memery
.The memery
package generates internet memes that optionally include a superimposed inset plot and other atypical features, combining the visual impact of an attention-grabbing meme with graphic results of data analysis.
The package differs from related packages that focus on imitating and reproducing standard memes. Some packages do this by interfacing with online meme generators whereas others achieve this natively. This package takes the latter approach. It does not interface with online meme generators or require any authentication with external websites. It reads images directly from local files or via URL and meme generation is done by the package.
While this is similar to the meme
package available on CRAN, it differs in that the focus is on allowing for non-standard meme layouts and hybrids of memes mixed with graphs. While this package can be used to make basic memes like an online meme generator would produce, it caters primarily to hybrid graph-meme plots where the meme presentation can be seen as a backdrop highlighting foreground graphs of data analysis results.
The package also provides support for an arbitrary number of meme text labels with arbitrary size, position and other attributes rather than restricting to the standard top and/or bottom text placement. This is useful for proper aesthetic interleaving of plots of data between meme image backgrounds and overlain text labels. The package offers a selection of templates for graph placement and appearance with respect to the underlying meme. Graph templates also permit additional template-specific customization. Animated gif support is provided but this is optional and functional only if the magick
package is installed.
Install the CRAN release of memery
with
install.packages("memery")
Install the development version from GitHub with
# install.packages("remotes")
remotes::install_github("leonawicz/memery")
See the vignette for an overview with usage examples.
Contributions are welcome. Contribute through GitHub via pull request. Please create an issue first if it is regarding any substantive feature add or change.
If you enjoy my open source R community contributions, please consider a donation :).
leonawicz.crypto
Please note that the memery
project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.


{% extends 'pat_layout.html' %} {% block body %}
They will be able to view your previous report and a add one report of their own.
Your reports will be securely stored in google's storage and will be available 24/7.
Not okay? Feeling sick? Search for doctors nearby you!


{% extends "layout_task-list.html" %} {% block page_title %} Money Claims Prototype {% endblock %} {% block home_link %} ../../task-list {% endblock %} {% block content %} {% include "includes/phase_banner_beta.html" %} {% if data.return_page and data.return_page.includes('check-and-send') or data.return_page and data.return_page.includes('check-your-answers')%} {% else %} Make a money claim Their details {% endif %} {% if data.return_page and data.return_page.includes('check-and-send') or data.return_page and data.return_page.includes('check-your-answers')%} {% else %} {% endif %} {{formData | safe}} {% if data['defendant-type']!="individual" %} Their full name Give their full name if you can. Enter details Their first name Their middle names (if any) Their last name {% endif %} {% if data['defendant-type']=="company" %} Details of {{data['defendant-type']}} Enter details Company name Contact person (if any) Company registration number (if known) Check the details of a company You might be able to check the details of a company on GOV.UK. {% endif %} {% if data.return_page and data.return_page.includes('check-and-send') or data.return_page and data.return_page.includes('check-your-answers')%} Cancel {% else %} {% endif %} {% endblock %}
Give their full name if you can.
You might be able to check the details of a company on GOV.UK.


Paul Reiser and Helen Hunt reprise '90s hit `Mad About You'
by MIKE CIDONI LENNOX and LEANNE ITALIE AP Entertainment WritersLOS ANGELES (AP) — Paul Reiser and Helen Hunt thought long and hard about whether to do a reboot of “Mad About You,” the NBC sitcom staple of the ‘90s.
After years of dismissing the idea, “Mad About You” is back. The limited series debuts Wednesday on Spectrum Originals for the company’s on-demand subscribers.
The new show picks up with Jamie, played by Hunt, unraveling with empty nest syndrome after her daughter Mabel heads off to New York University just five blocks from home.
As for Paul, he remains an agreeable bumbler.
The show carries on as friendly fare, with no politics or plots tackling out-on-a-limb issues of the day.
Gone is the couple’s thick-headed collie mix Murray. He’s been replaced by a lanky mixed breed dog that Paul and Jamie decide to call Walter.


SetXMLNodeText()
Syntax
SetXMLNodeText(Node, Text$)Description
Changes the text contained within the given XML node. See GetXMLNodeText() for more information.
Parameters
Node The XML node to set the text. Text$ The new text to set.
Return value
None.
Remarks
If the node contains children, changing its contained text may require an adjustment of the child nodes offset values as well.
See Also
GetXMLNodeText()
Supported OS
All


IES Campanillas
Málaga (Spain)
Public Educational Institution: Secondary Education, High School and Vocational Training.
iescampanillas.com
Studies
- SECONDARY EDUCATION (ESO)
- SPECIAL NEEDS
-
HIGH SCHOOL
- Nature Science adn Helthcare
- Humanities and Social Science
-
VOCATIONAL TRAINING
- Basic Level
- Medium Level
- Higher Level
Vocational Training at IES Campanillas
-
VOCATIONAL TRAINING - BASIC LEVEL
- Building Maintenance
- Computer Assistant
-
VOCATIONAL TRAINING - MEDIUM LEVEL (CFGM)
- Telecommunications facilities
- Microcomputer systems and networks (bilingual)
-
VOCATIONAL TRAINING - HIGHER LEVEL (CFGS)
- Web applications development (bilingual)
Higher Level Vocational Training
Web applications development
CITIC - C/ Pierre Laffitte, 6 - 8. CP 29590 Málaga - Spain
Andalusian Technological Park
Web Applications Development
- First course3 trimesters of classes
- Second course2 trimesters of classes
- Second course 1 trimester internship in a company
2000 hours including internship
Professional Modules - 1º DAW
- Programming
- Databases
- Markup Language and Information Management Systems
- Development Environments
- Computer Systems
- Professional Training and Guidance
Programming
- Variables
- Data input/output
- Conditional sentence (if and switch)
- Loops
- Random numbers
- Arrays
- Functions
- Object Oriented Programming
- Colecciones y diccionarios
- Files and arguments in console
- Java web applications (JSP)
- Access to databases with Java (JDBC)
Databases
- Relational database design
- SQL
- SqlServer, Oracle and MySQL
- Object-relational databases with Oracle
Development Environments
- Development methodologies
- Introduction to Metrica v3
- Class diagrams
- Use case diagram
- Interaction diagrams: sequence and collaboration
Markup Language and Information Management Systems
Computer Systems
- History of computing, computer system concept
- System hardware (processor, memory, motherboard, storage)
- Mounting equipment
- Windows 7 operating system (versions and installation users, groups, permissions, network, advanced management system)
- Linux operating system (Debian distributions and installation, installation packages and repositories, users, permissions, directories, usual commands, Shell scripts, cron, network configuration, NFS, SAMBA)
Professional Training and Guidance
- Prevention
- Labor law
- Orientation
Professional Modules - 2º DAW
- Web Development in Server Environment
- Web Development in Client Environment
- Web Applications Deployment
- Web Interfaces Design
- Business and Entrepreneurial Initiative
- Business English
Web Development in Server Environment
- PHP
- PHP + MySQL
- Object Oriented Programming with PHP
- Model View Controller
- Twig
- Symfony 2 / Drupal 8
Web Development in Client Environment
- HMTL DOM
- Javascript
- JQuery, JQuery Ajax, JQuery UI
- AngularJS
Web Applications Deployment
- FTP and HTTP services
- WEB server configuration (IIS y APACHE)
- Hosting
- Content Managment Systems
Web Interfaces Design
- Design basics
- HTML 5
- CSS 3
- Bootstrap
- Vectorial design applications
Business and Entrepreneurial Initiative
- Bussines idea
- The business environment
- Market research
- Finance, accounting, profitability
- Legal form
- Creation formalities
- Taxation
- Payment documents
Business English
- Business English: Cambridge English Business Preliminary Level B1 Certification
- Speaking: Communication skills. Public speaking
- Coaching: Planning objectives, time management
- Curricula and job interview
Professional certifications
Internship in companies - PTA and Málaga
Two periods (380 hours) internship in companies
1. From March to June
2. From September to December
Internship in the European Union
- IES Campanillas Erasmus+ Center (2014-2020) for IT Higher Level Vocational Training
- 10-15 students per year
- Current destinations: Cologne, Hanover and Dusseldorf (Germany)
- Other previous destinations: Helsinki and Kouvola (Finland) and Cork (Ireland))
- Job opportunities
- Dual System (school - companies)
- German course A1/A2
- English course B1/B2
Partner companies in the European Union