Good afternoon males, females, natural hermaphrodites, unnatural hermaphrodites, unsexed, androgens, androids, blackberries, geeks, nerds, intelligent trousers, wabbits, wabbit stews, fork bombs, monkey derivatives, etc, etc, etc...
This article will discuss the IDE known as
Dev-C++ (specifically, Bloodshed Dev-C++), which is in surprisingly common usage. More specifically, I will be discussing why we try to steer people away from using Dev-C++, and
what you can do if you are a Dev-C++ user. This article does not apply to Orwell Dev-C++ or any other forks of Dev-C++ (Orwell Dev-C++ will be discussed below as a viable alternative).
Why we've deprecated Dev-C++
It all boils down to one reason:
The official Dev-C++ hasn't been updated since 2005, and likely will never be updated since
the lead developer has stated in 2006 that due to personal issues he will not be continuing development on Dev-C++.
From there, there are 3 main problems that are directly caused by Dev-C++'s age.
- The included MinGW is obsolete.
- The many known bugs may never be fixed.
- The IDE lacks the features of more modern IDEs.
I'll go over each of these in order.
The included MinGW is obsolete.
MinGW is an irregular acronym which stands for "
Minimalist
GNU for
Windows". It includes a various set of tools commonly found on many *nixes including the g++ compiler and gdb debugger, which Dev-C++ makes use of.
A problem with Dev-C++ not being updated in computer centuries is that the bundled MinGW is several years old, and as a result the compiler doesn't work nearly as well on new systems as a hot-out-of-the-oven copy of MinGW's g++ would. The latest version of Dev-C++ comes with MinGW version 3.4.2, however at the time of this article's last update (November 8, 2013) MinGW's g++ is at version 4.8.1.
Finally, not only is the code generation likely worse with an older compiler, but the compiler bundled with Dev-C++ was released well before the C++11 standard started to gain steam. Many valuable C++11 features (like auto, decltype, the new for loop syntax, lambdas, regexes, and multithreading) are completely unsupported.
The many known bugs may never be fixed.
The latest version of Dev-C++ (<IP_ADDRESS>, which by the way is a beta) currently has over 350 open bugs according to Sourceforge's bug tracker (
link), and possibly more that are not accounted for.
Furthermore, due to the fact that the dev-packs system is no longer being updated, that feature itself has also become broken with many packs being either outdated or no longer existent.
Since the lead developer quit and there have been no updates since then, it is highly unlikely that these bugs will ever be fixed.
The IDE lacks many of the features of more modern IDEs.
Dev-C++'s debugging utilities are... also old. A debugger is an essential utility for any programmer to have at any level, and complaints about the Dev-C++ debugging interface being confusing are not uncommon.
In addition, the code completion and file parsers are lagging behind the times as well. As the C++11 standard has now been released, most of the fully-featured IDEs have added support for C++11 features. Dev-C++, however, will likely not change, making it even less suitable for programming in C++ than it is now.
What you can do if you're using Dev-C++
Switch to Orwell Dev-C++
This is a recommended option if you really like Dev-C++ or if you're required to use it. It's a fork of the original Dev-C++ that is more up-to-date with C++11 support. It offers a choice between two modern compilers, one for 32-bit platforms and one for 64-bit platforms.
You can download Orwell Dev-C++ with either compiler here:
http://sourceforge.net/projects/orwelldevcpp/files/Setup%20Releases/
Completely switch IDEs
There are other IDEs in existence, some of which are of excellent quality. Although changing IDEs has a learning curve, there are some formidable alternatives to Dev-C++ in existence. All of the IDEs listed here will run on Windows, though not all of them come bundled with compilers.
The list of good free IDEs includes but is not limited to:
Go minimalist
This isn't an option I recommend too highly for most, however using a minimalist text editor with makefiles and a terminal is something I sometimes enjoy as a development option, and I'm sure there are others who would as well.
Possible lightweight editors include but are not limited to:
Update Dev-C++
I recommend this option the least considering the problems you might run into with the IDE itself, however if you're highly reluctant to change to even Orwell Dev-C++ then the least one can do to make the IDE more suitable for use is update the included MinGW.
I cannot give the specifics of how to do this, unfortunately, as I am incapable of even installing Dev-C++. However, you would probably end up doing a few searches for MinGW-related files, removing them, and the installing the new MinGW in their places.
Be careful doing this, though, as having two versions of MinGW might trigger linker errors ("undefined reference to __cpu_features_init").
In conclusion...
While the original Dev-C++ might be easy to use, that does not mean that you should stick with it. To quote Moschops from
here:
Nailing my feet to the floor is easier than using my own muscles to balance, but you don't see me doing that :)
-Albatross
EDIT1: Added some useful hyperlinks.
EDIT2: Fixed the bullet points.
EDIT3: Put the pluses back in the article after an encoding update erased them. Also updated the wxDev-C++ download link.
EDIT4: Added QT Creator and Notepad++. Thank you
Danellos and
immutable for the suggestions!
EDIT5: I just *had* to include a quite by
Moschops at the end. :)
EDIT6: Fixed a small formatting issue, added a few links, and made some other small changes.
EDIT7: Updated the Eclipse CDT link to reflect a new version and made a few phrasing changes.
EDIT8: Acknowledged that Orwell Dev-C++ is a very worthy alternative.
EDIT9: Updated the Sourceforge bug tracker link, and made some small wording changes.
EDIT10: Updated a few links, emphasized the point about this referring to Bloodshed Dev-C++, and removed the recommendation to switch to wxDev-C++ as its development has been stagnant for some time now.
EDIT11: Removed a note that Code::Blocks is dated, as there was a release on 2013-12-27.


Six Days Seven Nights
Chad'z rating: ** (out of 4 = fair/below average)
1998, PG-13, 101 minutes [1 hour, 41 minutes]
[romantic comedy]
Starring: Harrison Ford (Quinn Harris), Anne Heche (Robin Monroe), David Schwimmer (Frank Martin), Jacqueline Obradors (Angelica); written by Michael Browning; produced by Roger Birnbaum, Wallace Nicita, Ivan Reitman; directed by Ivan Reitman.
Seen June 22, 1998 at 7:30 p.m. at Rotterdam Square Mall Cinemas (Rotterdam, NY), theater #1, with my brother John for free using my Sony/Loews critic's pass. [Theater rating: ***: good sound, picture, and seats]
For the past few years a new trend, a conspiracy even, has been infiltrating the mainstream movie market. Major studios have been producing a growing number of "fluff" films, or what might be referred to as modern B-movies. Although not nearly as bad as their predecessors, these pieces of medicore filmmaking work in the same manner, that is, to simply clutter theaters in effort to out-do the competition. The trend has been subtle as the films are made mostly by rookies and flavor-of-the-month actors, but here comes "Six Days Seven Nights" which could change everything. Not only is it another generic romantic comedy without the romance nor the comedy, but it separates it from the rest is the credit of Harrison Ford and Ivan Reitman, and yet neither come close to working their magic with the material.
As is the case with most fluff movies, this one wastes no time in establishing the minimum requirements necessary for a story to exist. During the opening credits we're told the entire backstory as we meet the young New York couple: Robin Monroe (Heche), a trendy editor at a semi-trashy women's fashion magazine, and her boyfriend (and soon to be fiancée) Frank Martin (Schwimmer), who may be the world's first dorky yuppie. The two have been dating for a few years and are about to take a vacation together at a resort on a remote tropical island.
By the time the two arrive at their hotel, the feeling of complete and total unoriginality is evident. This is worsened when the film decides to form a plot of sorts by giving the characters something of conflict, which involves their forced interaction with Quinn Harris (Ford), an old, shady airplane pilot whose presence is annoying not only to Robin and Frank, but to the audience as well since it's clear what will happen between which characters, when, and why.
The first act rushes to get to the film's catch which involves Quinn and Robin's being stuck together on an deserted (not desert) island. How this comes about is presented as completely logical, but is really total stupidity. It's clear the filmmakers don't want to spend too much time on plausibility, otherwise they might have found less predictable and more believable plot elements to move the story along.
Cliches don't necessarily equal flaws, and although they are abundant here, it is the poor script and flat direction which suffocate the film. The cliches are at least consistent, almost to the point of being satirical, but the way in which they are employed is the film's problem.  Of course an attractive man and woman who don't like each other and are forced into being together are going to fall for each other. Of course the junky little plane is going to crash so the characters are stranded. Of course their lovers back home will get together. And of course some "funny" things will happen along the way.
Making a romantic comedy work shouldn't be a difficult task. It's a mixture of two well-loved genres, but here the two clash so harshly it's painful. The film's comedic side is basically a combination of every joke currently availble on "Must See TV." We get the cartoony sight gags, some slapstick, and lame one-liners at all the wrong times. Its romantic side is laughable as Ford and Heche are completely out of place. Neither put much emotion into their acting, probably because they've deserve better and have done much better than this and thus they have no chemistry. Meanwhile, Schwimmer does his usual Ross-from-"Friends" schtick, with the constant whining and over-acting. But it's not entirely the actors' fault, since they have little to work with here. The plot is weak, the dialogue is worse, and the attempt at suspense by introducing villains is cartoonish to the extreme. I half expected Scooby Doo to show up.
Critics often accuse today's films of ripping-off the classics, but with the case of "Six Days Seven Nights" I really wish it had done so, then there'd be at least some sign of taste. Just once I'd like to see a film as generic as this copy the end of "Casablanca."
e-mail<EMAIL_ADDRESS>(C) 1998 Chad Polenz
Member of: The Online Film Critics Society (OFCS) The Internet Movie Critics Association (IMCA) The Online Movie-Goers Academy (OMGA)
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Passionate Writer & Photographer
Everything has beauty, but not everyone can see
Everything has beauty, but not everyone can see
Everything has beauty, but not everyone can see
Everything has beauty, but not everyone can see
Everything has beauty, but not everyone can see
Everything has beauty, but not everyone can see
Everything has beauty, but not everyone can see


Gateway
BOT
21-Nov-19 02:30 AM
[telegram] <Regnar> Yea the API has general orderbook function but it was decided that the AtomicDEX mobile app wouldn't have it (at least not initially) the goal is more to focus on reducing bottlenecks and increasing swap successes than to add additional features. So right now the orderbook will only return the current trading pair
However one of the devs is running the market maker on his personal website and has the Orderbook API enabled so you can see what's available.
https://oracle.earth/mm2_orderbook/ (re @EPIDEMIC_media: Any way to see what offers are available without having the particular coin in wallet?)
(edited)
[telegram] <Regnar> Oh it's been a while since I've dealt with 0conf things. Have you taken a look at this guide for reclaiming 0conf?
https://docs.komodoplatform.com/mmV1/guides/manual-claim-legacy-0conf-deposit.html#manually-claim-0conf-deposits-using-linux (re @Amalgamus: I lost many coins by using Barterdex and Agama wallet. I would like to know whether I have a chance to get them back? 2 years ago I sent 2000 KMD to use the lightning "faster". But when I claimed those coins back I was directed to a page on "How to claim 0conf deposit after expiry date". All I manage to do was to wreck my computer after trying this for days. I got so frustrated, that I quit trading anything related to KMD. I have also many Supernet tokens... Any idea where I can trade them?)
Documentation for developers building on the Komodo Platform
[telegram] <Regnar> I also asked in discord support. (re @Amalgamus: I lost many coins by using Barterdex and Agama wallet. I would like to know whether I have a chance to get them back? 2 years ago I sent 2000 KMD to use the lightning "faster". But when I claimed those coins back I was directed to a page on "How to claim 0conf deposit after expiry date". All I manage to do was to wreck my computer after trying this for days. I got so frustrated, that I quit trading anything related to KMD. I have also many Supernet tokens... Any idea where I can trade them?)
[telegram] <EPIDEMIC_media> While I agree making sure that atomic dex main priority should be making sure it doesnt crash durning 100 simeoultanous transactions, basic order book features are going to be needed in this is ever going to take off for mainstream use.
[telegram] <Amalgamus> Thanks for answering. That's how I wrecked my computer. As i had tried all I could with my very limited capacity, I ended up installing linux and was never able to claim anything by myself. What I find frustrating is that when you send those coins they tell you you can claim them back easily. But why the address you sent them to doesn't sent them back when the option just disappeared from your wallet? That's called stealing if this wallet doesnt send the coins back to the owner.
[telegram] <Amalgamus> Thanks for answering. That's how I wrecked my computer. As i had tried all I could with my very limited capacity, I ended up installing linux and was never able to claim anything by myself. What I find frustrating is that when you send those coins they tell you you can claim them back easily. But why the address you sent them to doesn't sent them back when the option to claim them back just disappeared from your wallet? That's called stealing if this wallet doesn't send the coins back to the owner. (re @Regnar: Yea the API has general orderbook function but it was decided that the AtomicDEX mobile app wouldn't have it (at least not initially) the goal is more to focus on reducing bottlenecks and increasing swap successes than to add additional features. So right now the orderbook will only return the current trading pair
However one of the devs is running the market maker on his personal website and has the Orderbook API enabled so you can see what's available.
https://oracle.earth/mm2_orderbook/)
(edited)
[telegram] <Regnar> I'd say it currently has basic orderbook already. If you choose a coin, pick the amount to trade, and select the coin you want to swap for, itll tell you the number of open orders, and then shows you the orderbook for that pair. (re @EPIDEMIC_media: While I agree making sure that atomic dex main priority should be making sure it doesnt crash durning 100 simeoultanous transactions, basic order book features are going to be needed in this is ever going to take off for mainstream use.)
[telegram] <polycryptoblog> Off by several orders of magnitude (re @EPIDEMIC_media: While I agree making sure that atomic dex main priority should be making sure it doesnt crash durning 100 simeoultanous transactions, basic order book features are going to be needed in this is ever going to take off for mainstream use.)
[telegram] <Regnar> Kinda like a centralized exchange, you choose the coin pair, you see orderbook for that pair. You don't choose the base and see the orderbook of ever pair, all at once.
[telegram] <EPIDEMIC_media> But I need to have that coin in wallet to be able to see that No?
[telegram] <Regnar> However no, you cannot browse orderbooks for coins that are not activated in your wallet. If you have a single coin (any coin) you can see all the pairs and orderbooks for that
[telegram] <Regnar> So if you only have BTC and KMD activated. You will only see BTC and KMD pairs. This has more to do with the inability to atomic swap a coin into a wallet you didn't even activate yet
[telegram] <Regnar> And AtomicDEX (no other multicoin wallet does this either) doesn't activate ALL coins right away, you have to manually select them.
[telegram] <Regnar> Otherwise your App would be connecting to dozens or more different blockchain SPV servers all at once, download block header data for each chain all at once to get that wallet balance.
This would be a huge resource hog
[telegram] <Regnar> Which is another reason why Komodo nSPV is such a huge improvement over traditional SPV!!
[telegram] <Regnar> I understand you are frustrated man but those coins are in an address only you can access, it's not stealing because nobody else can access them.
Besides that source, I'm not sure of many other ways to get them back. I'll tag you if I get some info in Discord. You'll have much better luck asking in there as there are a lot of Devs in the channels that are much more familiar with 0conf than I am (re @Amalgamus: Thanks for answering. That's how I wrecked my computer. As i had tried all I could with my very limited capacity, I ended up installing linux and was never able to claim anything by myself. What I find frustrating is that when you send those coins they tell you you can claim them back easily. But why the address you sent them to doesn't sent them back when the option to claim them back just disappeared from your wallet? That's called stealing if this wallet doesn't send the coins back to the owner.)
[telegram] <Amalgamus> Thanks a lot, I'll try to get someone to do it for me as I am hopeless with that. But now do you know if Supernet can be traded? (re @Regnar: I'd say it currently has basic orderbook already. If you choose a coin, pick the amount to trade, and select the coin you want to swap for, itll tell you the number of open orders, and then shows you the orderbook for that pair.)
[telegram] <Regnar> I know it isn't in AtomicDEX app right now but it is being traded on the AtomicAPI. (re @Amalgamus: Thanks a lot, I'll try to get someone to do it for me as I am hopeless with that. But now do you know if Supernet can be traded?)
[telegram] <polycryptoblog> Eventually it will be on Atomicdex . Also jl777 is buying Supernet at 30kmd for larger orders
[telegram] <Regnar> (re @polycryptoblog: Eventually it will be on Atomicdex . Also jl777 is buying Supernet at 30kmd for larger orders)
[telegram] <Amalgamus> Thanks, I appreciate; (re @polycryptoblog: Eventually it will be on Atomicdex . Also jl777 is buying Supernet at 30kmd for larger orders)


| #, ## |
manipulate strings |
| #define |
define variables |
| #error |
display an error message |
| #if, #ifdef, #ifndef, #else,
#elif, #endif |
conditional operators |
| #include |
insert the contents of another
file |
| #line |
set line and file information |
| #pragma |
implementation specific
command |
| #undef |
used to undefine variables |
| Predefined preprocessor
variables |
miscellaneous preprocessor
variables |
| abort |
stops the program |
| abs |
absolute value |
| acos |
arc cosine |
| asctime |
a textual version of the time |
| asin |
arc sine |
| assert |
stops the program if an expression
isn't true |
| atan |
arc tangent |
| atan2 |
arc tangent, using signs to
determine quadrants |
| atexit |
sets a function to be called when
the program exits |
| atof |
converts a string to a double |
| atoi |
converts a string to an
integer |
| atol |
converts a string to a long |
| bsearch |
perform a binary search |
| calloc |
allocates and clears a
two-dimensional chunk of memory |
| ceil |
the smallest integer not less than
a certain value |
| clearerr |
clears errors |
| clock |
returns the amount of time that the
program has been running |
| cos |
cosine |
| cosh |
hyperbolic cosine |
| ctime |
returns a specifically formatted
version of the time |
| difftime |
the difference between two
times |
| div |
returns the quotient and remainder
of a division |
| exit |
stop the program |
| exp |
returns "e" raised to a
given power |
| fabs |
absolute value for floating-point
numbers |
| fclose |
close a file |
| feof |
true if at the end-of-file |
| ferror |
checks for a file error |
| fflush |
writes the contents of the output
buffer |
| fgetc |
get a character from a stream |
| fgetpos |
get the file position
indicator |
| fgets |
get a string of characters from a
stream |
| floor |
returns the largest integer not
greater than a given value |
| fmod |
returns the remainder of a
division |
| fopen |
open a file |
| fprintf |
print formatted output to a
file |
| fputc |
write a character to a file |
| fputs |
write a string to a file |
| fread |
read from a file |
| free |
returns previously allocated memory
to the operating system |
| freopen |
open an existing stream with a
different name |
| frexp |
decomposes a number into scientific
notation |
| fscanf |
read formatted input from a
file |
| fseek |
move to a specific location in a
file |
| fsetpos |
move to a specific location in a
file |
| ftell |
returns the current file position
indicator |
| fwrite |
write to a file |
| getc |
read a character from a file |
| getchar |
read a character from
STDIN |
| getenv |
get enviornment information about a
variable |
| gets |
read a string from
STDIN |
| gmtime |
returns a pointer to the current
Greenwich Mean Time |
| isalnum |
true if a character is
alphanumeric |
| isalpha |
true if a character is
alphabetic |
| iscntrl |
true if a character is a control
character |
| isdigit |
true if a character is a digit |
| isgraph |
true if a character is a graphical
character |
| islower |
true if a character is
lowercase |
| isprint |
true if a character is a printing
character |
| ispunct |
true if a character is
punctuation |
| isspace |
true if a character is a space
character |
| isupper |
true if a character is an uppercase
character |
| isxdigit |
true if a character is a
hexidecimal character |
| labs |
absolute value for long
integers |
| ldexp |
computes a number in scientific
notation |
| ldiv |
returns the quotient and remainder
of a division, in long integer form |
| localtime |
returns a pointer to the current
time |
| log |
natural logarithm |
| log10 |
natural logarithm, in base 10 |
| longjmp |
start execution at a certain point
in the program |
| malloc |
allocates memory |
| memchr |
searches an array for the first
occurance of a character |
| memcmp |
compares two buffers |
| memcpy |
copies one buffer to another |
| memmove |
moves one buffer to another |
| memset |
fills a buffer with a
character |
| mktime |
returns the calendar version of a
given time |
| modf |
decomposes a number into integer
and fractional parts |
| perror |
displays a string version of the
current error to STDERR |
| pow |
returns a given number raised to
another number |
| printf |
write formatted output to
STDOUT |
| putc |
write a character to a stream |
| putchar |
write a character to
STDOUT |
| puts |
write a string to
STDOUT |
| qsort |
perform a quicksort |
| raise |
send a signal to the program |
| rand |
returns a pseudorandom number |
| realloc |
changes the size of previously
allocated memory |
| remove |
erase a file |
| rename |
rename a file |
| rewind |
move the file position indicator to
the beginning of a file |
| scanf |
read formatted input from
STDIN |
| setbuf |
set the buffer for a specific
stream |
| setjmp |
set execution to start at a certain
point |
| setlocale |
sets the current locale |
| setvbuf |
set the buffer and size for a
specific stream |
| signal |
register a function as a signal
handler |
| sin |
sine |
| sinh |
hyperbolic sine |
| sprintf |
write formatted output to a
buffer |
| sqrt |
square root |
| srand |
initialize the random number
generator |
| sscanf |
read formatted input from a
buffer |
| strcat |
concatenates two strings |
| strchr |
finds the first occurance of a
character in a string |
| strcmp |
compares two strings |
| strcoll |
compares two strings in accordance
to the current locale |
| strcpy |
copies one string to another |
| strcspn |
searches one string for any
characters in another |
| strerror |
returns a text version of a given
error code |
| strftime |
returns individual elements of the
date and time |
| strlen |
returns the length of a given
string |
| strncat |
concatenates a certain amount of
characters of two strings |
| strncmp |
compares a certain amount of
characters of two strings |
| strncpy |
copies a certain amount of
characters from one string to another |
| strpbrk |
finds the first location of any
character in one string, in another string |
| strrchr |
finds the last occurance of a
character in a string |
| strspn |
returns the length of a substring
of characters of a string |
| strstr |
finds the first occurance of a
substring of characters |
| strtod |
converts a string to a double |
| strtok |
finds the next token in a
string |
| strtol |
converts a string to a long |
| strtoul |
converts a string to an unsigned
long |
| strxfrm |
converts a substring so that it can
be used by string comparison functions |
| system |
perform a system call |
| tan |
tangent |
| tanh |
hyperbolic tangent |
| time |
returns the current calendar time
of the system |
| tmpfile |
return a pointer to a temporary
file |
| tmpnam |
return a unique filename |
| tolower |
converts a character to
lowercase |
| toupper |
converts a character to
uppercase |
| ungetc |
puts a character back into a
stream |
| va_arg |
use variable length parameter
lists |
| vprintf, vfprintf, and
vsprintf |
write formatted output with
variable argument lists |


Company profile - Canadian Company Capabilities
Third-Party Information Liability Disclaimer
Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.
CoolIT Systems, Inc.
Legal Name:
CoolIT Systems, Inc.
Operating Name:
CoolIT Systems
Mailing Address:
10-2928 Sunridge Way NECALGARY, Alberta
T1Y 7H9
Location Address:
10-2928 Sunridge Way NECALGARY, Alberta
T1Y 7H9
Tel.:<PHONE_NUMBER>
Tel.:<PHONE_NUMBER>
Fax:<PHONE_NUMBER>
Logo
Company Profile
CoolIT Systems is the global leader in liquid cooling solutions for the High Performance Computing (HPC), Cloud and Enterprise markets. The company’s extremely energy efficient systems fulfill the essential role of keeping CPUs, GPUs, Memory, Voltage Regulators and other computer components at a stable, cool temperature. As an experienced innovator with over 50 patents and more than 2 million liquid cooling units deployed in desktops, servers and data centers around the globe, CoolIT Systems Direct Contact Liquid Cooling (DCLC) technology is the top choice for Original Equipment Manufacturers (OEMs) and system integrators.
Liquid cooled solutions enable higher rack densities, increases performance capabilities and reduces data center OPEX and overall TCO. CoolIT Systems prides itself on manufacturing energy efficient solutions that allow data center operators to reduce their carbon footprint, and in some cases even to recycle waste server heat.
Full profile
Full profile
Contact information
Company description
Product / Service / Licensing
Rack DCLC utilizes a three-module, “building block” approach: Server Module, Manifold Module, and Heat Exchange Module. Data centers are diverse in their setups, and the appropriate heat rejection method may vary: CoolIT’s modules include CHx (Liquid -to-Liquid), AHx (Liquid-to-Air) and custom options. Installations are endlessly scalable, easy to maintain and service, and accommodate any environmental condition. All CoolIT Systems solutions are safe to use due to leak-free, dry-break technology.
CoolIT Systems liquid cooling desktop solutions increase the gaming potential and performance of CPUs and GPUs. With years of experience engineering reliable, capable and controllable Direct Contact Liquid Cooling technology for high performance desktops, Corsair recognizes CoolIT as a leader in liquid cooling innovation. Each model in the Corsair Hydro Series™ offers quiet and efficient cooling in a compact, easy to install package that is guaranteed to be leak-free.
CoolIT’s Closed-Loop solutions are cooling systems that exist entirely within the desktop or server. A variety of efficient Coldplate Assemblies are installed next to heat-producing components and hot air is then rejected through slim, quiet radiators. The sealed liquid loops ship pre-filled with coolant and installation is comparable to that of a standard heat sink. Many types of Closed-Loop systems are available to both standard and custom rack-mount configurations.
World-renowned Original Equipment Manufacturers such as Lenovo and Hewlett-Packard Enterprise choose CoolIT Closed-Loop liquid cooled editions of their High Performance servers.
Technology profile
A key component of the Server Module, CoolIT Systems’ patented Split-Flow coldplates are solid copper components which deliver superior performance for today’s high thermal density processors.
The Split-Flow design uses microchannel architecture to minimize pressure drop, maximize coolant flow, and direct the coolest liquid to the hottest area of the processor first. At only 2.4mm in height, coldplates are easily integrated into extremely compact, low-profile blade architectures, and allow for optimal performance in very thermally dense cooling applications.
Market profile
Alliances:
- Sales/Marketing
- Technology
Industry sector market interests:
- Consumer Products
- Environment
- Information Technology and Telecommunications
- Manufacturing
- Mining/Petroleum/Gas
- Aerospace
- Defence
- Automotive
- Electrical Equipment
Geographic markets:
Export experience:
- China
- Denmark
- Hong Kong
- Norway
- Poland
- Singapore
- South Africa
- Sweden
- Switzerland
- Taiwan
- United Arab Emirates
- United Kingdom
- United States
Sector information
Key / Major clients:
Boston LimitedCascade Technologies
eBay
Intel
Lenovo
Supermicro
Center for Biological Sequence Analysis, Technical University of Denmark
Fraunhofer Heinrich Hertz Institute
Poznan Supercomputing & Networking Center
Success stories:
Poznan Supercomputing and Networking Center:The Poznan Supercomputing and Networking Center (PSNC) of Poland issued a public tender to cool its High Performance Computing (HPC) center, which provides HPC resources for scientific research, businesses and public institutions. In early 2015, CoolIT Systems partnered with Huawei and installed three racks at PSNC cooled by Direct Contact Liquid Cooling (DCLC). During the first project at PSNC, CoolIT installed three Rack DCLC™ CHx40 Modules: liquid-to-liquid heat exchangers which utilize centralized pumping architecture and manage over 40kW of heat load per rack with warm water cooling.
In the summer of 2015, the extremely hot Polish weather caused an almost total system failure. This temporary shutdown affected every air-cooled rack; but CoolIT’s liquid cooled rack continued to function normally. This prompted PSNC to invest in a full-scale roll out of CoolIT Systems solutions.
CoolIT was contracted to install a much larger system for PSNC’s new 1.4 petaFLOPS supercomputer, “Eagle.” Two CoolIT Systems CHx650 Heat Exchange Modules were selected to handle 1,032 servers across 17 racks utilizing 40°C hot water.
Since PNSC prides itself on innovative and environmental identity, is it fitting that the energy removed from the computing components is able to be reused to heat nearby campus buildings. Operating expenses are lowered in conjunction with carbon emissions, making Eagle one of the most powerful yet energy efficient supercomputers in the European Union. PSNC now benefits from an extremely dense data center that is easily maintained and scalable.
Center for Biological Sequence Analysis at the Technical University of Denmark:
The Center for Biological Sequence Analysis (CBS) at the Technical University of Denmark is striving towards CO2 neutrality in its High Performance Computing facility known as “Computerome.” CBS made it a mission to achieve this computational performance as efficiently as possible. CoolIT accepted the challenge and delivered a liquid cooled, modular data center setup that not only dramatically lowers the energy consumed for cooling, but also provides a workable system to recycle the waste heat energy produced by the servers and captured in coolant.
The solution replaced traditional air cooling equipment with warm water cooling. A centralized pumping Rack DCLC™ CHx40 Heat Exchange Module cools over 16,000 chips which process at up to 563 gigaFLOPS at peak performance. The system distributes liquid directly across the processors into stainless steel manifolds which use all metal, dry-break quick disconnects. These 100% leak-free connectors safe-guard against drips and leaks, which is vital for this valuable system that originally ranked 235 of the Top500 most powerful supercomputers on the planet.
CoolIT enabled CBS to recover waste heat energy by routing high temperature liquid from the servers to provide heat for the adjacent campus buildings and the nearby town of Roskilde. With this installation, The Technical University of Denmark has more than achieved their initial efficiency goals for Computerome.
Intel Cherry Creek Cluster supercomputer:
In 2013, Intel contacted CoolIT with a very ambitious goal of collaborating on a Top500 Supercomputer. The project was particularly special, as this system was to fit in two standard racks, run on a popular Supermicro form-factor and was going to run, fully loaded, on the floor at the 2013 Supercomputing Conference.
Intel was interested in a Direct Contact Liquid Cooling (DCLC™) solution because the supercomputer was running very hot and the Top500 submission deadline was fast approaching. The system needed to manage 6000W of processing power. CoolIT created a specialized design that runs liquid inside the server nodes and utilizes one of CoolIT’s modular, self-contained Liquid-to-Air Heat Exchange Modules.
The innovative and flexible technology combined with the phenomenal efforts from all those involved in hardware, logistics, software and coordination resulted a rank of 400 on the Top500, and a very impressive rank of 41 on the Green500, consuming less than 75kW of power. The system ran flawlessly for the duration of the SC13 show.
The creation of Cherry Creek proved that a world-class supercomputer can be assembled using readily available, off-the-shelf components. By leveraging DCLC, the system was fast, cool, quiet and very environmentally friendly.
Testimonial:
Brian Connors - VP, Next Generation IT & Business Development, Data Center Group at Lenovo:“With the new NeXtScale M5, we are in our fourth generation of our Warm Water Cooling architectures since having pioneered the concept in early 2012. As the leader in warm water cooling technology, we are proud to partner with CoolIT Systems to continue driving innovations that save clients CAPEX and OPEX costs while improving reliability of critical components through optimized cooling of the entire system.”
Joe Curley, Director of Marketing, Intel Technical Computing Group:
“Working with CoolIT Systems to integrate their innovative direct contact liquid cooling solution was critical to deploying the Cherry Creek cluster, even in an environment that doesn’t have the cooling capabilities of a data center.”
Radoslaw Januszewski, IT Specialist at Poznan Supercomputing and Networking Centre:
“Last summer, we had a long period of 40°C weather and our A/C system went nuts. It was very difficult to keep the air-cooled racks running under those conditions. The liquid cooled racks were the only ones that continued to operate effectively, so it proves we made the right decision to go with CoolIT Systems and their reliable technology.
We are pleased to have migrated from a liquid cooled pilot project with CoolIT Systems to a full-scale rollout. The pilot project proved to be very reliable, it met our efficiency goals, and provided a bonus performance boost with the processors very happy to be kept at a cool, consistent temperature as a result of liquid cooling’s effectiveness."
Peter Løngreen, Head of High Performance Computing at the Center for Biological Sequence Analysis at the Technical University of Denmark (CBS-DTU):
"The CBS supercomputer works on complex DNA and patient data that drives an ongoing requirement for increased computational power to accomplish our goals to position Denmark as a world leader in life science and pharmaceutical research. An equally important goal was provisioning these computational resources as efficiently as possible. CoolIT delivered a liquid cooled system that lowers the energy consumed for cooling and provides opportunities to reuse the waste heat from the servers.”
Frank Ham, CEO at Cascade Technologies:
“Partnering with CoolIT Systems solved our key requirements of more compute density without having to expand our floor space or AC capacity. The liquid cooled solution surpasses our efficiency goals, allows us to pack a lot of compute into a small environment, and is impressively quiet.”
Brian Hatmaker, Vice President at STULZ USA:
“CoolIT Systems is attractive to the global STULZ Group because it aligns well with STULZ’ history of bringing innovation and highly efficient technology to the data center market. We see a growing need in the market for more flexible solutions to support high performance and high density compute applications. Chip-to-Atmosphere solutions will generate immediate CAPEX and OPEX savings with minimal footprint requirements.”
Rusty Robertson, Aerospace & Defense Application Specialist at Stäubli Corporation:
"Trust is a huge factor when putting liquids in close proximity to critical electronics. We are proving that CoolIT Systems' technology outfitted with Stäubli's dripless quick disconnects works flawlessly. Skeptics are becoming converts."
Third-Party Information Liability Disclaimer
Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.
Contacts
Contact information
Description
Company description
Products, services and licensing
Product / Service / Licensing
Rack DCLC utilizes a three-module, “building block” approach: Server Module, Manifold Module, and Heat Exchange Module. Data centers are diverse in their setups, and the appropriate heat rejection method may vary: CoolIT’s modules include CHx (Liquid -to-Liquid), AHx (Liquid-to-Air) and custom options. Installations are endlessly scalable, easy to maintain and service, and accommodate any environmental condition. All CoolIT Systems solutions are safe to use due to leak-free, dry-break technology.
CoolIT Systems liquid cooling desktop solutions increase the gaming potential and performance of CPUs and GPUs. With years of experience engineering reliable, capable and controllable Direct Contact Liquid Cooling technology for high performance desktops, Corsair recognizes CoolIT as a leader in liquid cooling innovation. Each model in the Corsair Hydro Series™ offers quiet and efficient cooling in a compact, easy to install package that is guaranteed to be leak-free.
CoolIT’s Closed-Loop solutions are cooling systems that exist entirely within the desktop or server. A variety of efficient Coldplate Assemblies are installed next to heat-producing components and hot air is then rejected through slim, quiet radiators. The sealed liquid loops ship pre-filled with coolant and installation is comparable to that of a standard heat sink. Many types of Closed-Loop systems are available to both standard and custom rack-mount configurations.
World-renowned Original Equipment Manufacturers such as Lenovo and Hewlett-Packard Enterprise choose CoolIT Closed-Loop liquid cooled editions of their High Performance servers.
Technology
Technology profile
A key component of the Server Module, CoolIT Systems’ patented Split-Flow coldplates are solid copper components which deliver superior performance for today’s high thermal density processors.
The Split-Flow design uses microchannel architecture to minimize pressure drop, maximize coolant flow, and direct the coolest liquid to the hottest area of the processor first. At only 2.4mm in height, coldplates are easily integrated into extremely compact, low-profile blade architectures, and allow for optimal performance in very thermally dense cooling applications.
Market
Market profile
Alliances:
- Sales/Marketing
- Technology
Industry sector market interests:
- Consumer Products
- Environment
- Information Technology and Telecommunications
- Manufacturing
- Mining/Petroleum/Gas
- Aerospace
- Defence
- Automotive
- Electrical Equipment
Geographic markets:
Export experience:
- China
- Denmark
- Hong Kong
- Norway
- Poland
- Singapore
- South Africa
- Sweden
- Switzerland
- Taiwan
- United Arab Emirates
- United Kingdom
- United States
Sector
Sector information
Key / Major clients:
Boston LimitedCascade Technologies
eBay
Intel
Lenovo
Supermicro
Center for Biological Sequence Analysis, Technical University of Denmark
Fraunhofer Heinrich Hertz Institute
Poznan Supercomputing & Networking Center
Success stories:
Poznan Supercomputing and Networking Center:The Poznan Supercomputing and Networking Center (PSNC) of Poland issued a public tender to cool its High Performance Computing (HPC) center, which provides HPC resources for scientific research, businesses and public institutions. In early 2015, CoolIT Systems partnered with Huawei and installed three racks at PSNC cooled by Direct Contact Liquid Cooling (DCLC). During the first project at PSNC, CoolIT installed three Rack DCLC™ CHx40 Modules: liquid-to-liquid heat exchangers which utilize centralized pumping architecture and manage over 40kW of heat load per rack with warm water cooling.
In the summer of 2015, the extremely hot Polish weather caused an almost total system failure. This temporary shutdown affected every air-cooled rack; but CoolIT’s liquid cooled rack continued to function normally. This prompted PSNC to invest in a full-scale roll out of CoolIT Systems solutions.
CoolIT was contracted to install a much larger system for PSNC’s new 1.4 petaFLOPS supercomputer, “Eagle.” Two CoolIT Systems CHx650 Heat Exchange Modules were selected to handle 1,032 servers across 17 racks utilizing 40°C hot water.
Since PNSC prides itself on innovative and environmental identity, is it fitting that the energy removed from the computing components is able to be reused to heat nearby campus buildings. Operating expenses are lowered in conjunction with carbon emissions, making Eagle one of the most powerful yet energy efficient supercomputers in the European Union. PSNC now benefits from an extremely dense data center that is easily maintained and scalable.
Center for Biological Sequence Analysis at the Technical University of Denmark:
The Center for Biological Sequence Analysis (CBS) at the Technical University of Denmark is striving towards CO2 neutrality in its High Performance Computing facility known as “Computerome.” CBS made it a mission to achieve this computational performance as efficiently as possible. CoolIT accepted the challenge and delivered a liquid cooled, modular data center setup that not only dramatically lowers the energy consumed for cooling, but also provides a workable system to recycle the waste heat energy produced by the servers and captured in coolant.
The solution replaced traditional air cooling equipment with warm water cooling. A centralized pumping Rack DCLC™ CHx40 Heat Exchange Module cools over 16,000 chips which process at up to 563 gigaFLOPS at peak performance. The system distributes liquid directly across the processors into stainless steel manifolds which use all metal, dry-break quick disconnects. These 100% leak-free connectors safe-guard against drips and leaks, which is vital for this valuable system that originally ranked 235 of the Top500 most powerful supercomputers on the planet.
CoolIT enabled CBS to recover waste heat energy by routing high temperature liquid from the servers to provide heat for the adjacent campus buildings and the nearby town of Roskilde. With this installation, The Technical University of Denmark has more than achieved their initial efficiency goals for Computerome.
Intel Cherry Creek Cluster supercomputer:
In 2013, Intel contacted CoolIT with a very ambitious goal of collaborating on a Top500 Supercomputer. The project was particularly special, as this system was to fit in two standard racks, run on a popular Supermicro form-factor and was going to run, fully loaded, on the floor at the 2013 Supercomputing Conference.
Intel was interested in a Direct Contact Liquid Cooling (DCLC™) solution because the supercomputer was running very hot and the Top500 submission deadline was fast approaching. The system needed to manage 6000W of processing power. CoolIT created a specialized design that runs liquid inside the server nodes and utilizes one of CoolIT’s modular, self-contained Liquid-to-Air Heat Exchange Modules.
The innovative and flexible technology combined with the phenomenal efforts from all those involved in hardware, logistics, software and coordination resulted a rank of 400 on the Top500, and a very impressive rank of 41 on the Green500, consuming less than 75kW of power. The system ran flawlessly for the duration of the SC13 show.
The creation of Cherry Creek proved that a world-class supercomputer can be assembled using readily available, off-the-shelf components. By leveraging DCLC, the system was fast, cool, quiet and very environmentally friendly.
Testimonial:
Brian Connors - VP, Next Generation IT & Business Development, Data Center Group at Lenovo:“With the new NeXtScale M5, we are in our fourth generation of our Warm Water Cooling architectures since having pioneered the concept in early 2012. As the leader in warm water cooling technology, we are proud to partner with CoolIT Systems to continue driving innovations that save clients CAPEX and OPEX costs while improving reliability of critical components through optimized cooling of the entire system.”
Joe Curley, Director of Marketing, Intel Technical Computing Group:
“Working with CoolIT Systems to integrate their innovative direct contact liquid cooling solution was critical to deploying the Cherry Creek cluster, even in an environment that doesn’t have the cooling capabilities of a data center.”
Radoslaw Januszewski, IT Specialist at Poznan Supercomputing and Networking Centre:
“Last summer, we had a long period of 40°C weather and our A/C system went nuts. It was very difficult to keep the air-cooled racks running under those conditions. The liquid cooled racks were the only ones that continued to operate effectively, so it proves we made the right decision to go with CoolIT Systems and their reliable technology.
We are pleased to have migrated from a liquid cooled pilot project with CoolIT Systems to a full-scale rollout. The pilot project proved to be very reliable, it met our efficiency goals, and provided a bonus performance boost with the processors very happy to be kept at a cool, consistent temperature as a result of liquid cooling’s effectiveness."
Peter Løngreen, Head of High Performance Computing at the Center for Biological Sequence Analysis at the Technical University of Denmark (CBS-DTU):
"The CBS supercomputer works on complex DNA and patient data that drives an ongoing requirement for increased computational power to accomplish our goals to position Denmark as a world leader in life science and pharmaceutical research. An equally important goal was provisioning these computational resources as efficiently as possible. CoolIT delivered a liquid cooled system that lowers the energy consumed for cooling and provides opportunities to reuse the waste heat from the servers.”
Frank Ham, CEO at Cascade Technologies:
“Partnering with CoolIT Systems solved our key requirements of more compute density without having to expand our floor space or AC capacity. The liquid cooled solution surpasses our efficiency goals, allows us to pack a lot of compute into a small environment, and is impressively quiet.”
Brian Hatmaker, Vice President at STULZ USA:
“CoolIT Systems is attractive to the global STULZ Group because it aligns well with STULZ’ history of bringing innovation and highly efficient technology to the data center market. We see a growing need in the market for more flexible solutions to support high performance and high density compute applications. Chip-to-Atmosphere solutions will generate immediate CAPEX and OPEX savings with minimal footprint requirements.”
Rusty Robertson, Aerospace & Defense Application Specialist at Stäubli Corporation:
"Trust is a huge factor when putting liquids in close proximity to critical electronics. We are proving that CoolIT Systems' technology outfitted with Stäubli's dripless quick disconnects works flawlessly. Skeptics are becoming converts."


Exploratory Data Analysis on the Student Alcohol Consumption dataset (Introduction)
The dataset we chose is the Student Alcohol Consumption dataset by UCI Machine Learning which can be obtained at Kaggle. This analysis was done as part of fulfilling the Data Mining course in Multimedia University. People who contributed to this were Aaron Patrick Nathaniel, Lim Yue Hng (Neil) and Nicolas Raj.
Describing the dataset
Alcohol is an often abused substance that troubles many individuals in their adulthood as they struggle to cope with emotional and physical stress that comes with the mantle of adulthood. However, many do not consider the effect of this intoxicating substance in the context of the younger, more impressionable generation. Therefore, researchers seek to rectify that lack by conducting a survey to obtain important raw data on alcohol consumption in a student environment as well as their demographic information and other data that may be of some relevance.
This Student Alcohol Consumption dataset is based on data collected in two secondary schools in Portugal. The students included in the survey were in the courses of mathematics and Portuguese. The amount of mathematics students involved in the collection was 395, whereas 649 Portuguese Language students were recorded to have participated. However, the data reveals that there was a total of 382 students that were in both datasets, this was evident in the exact replication of data. The data collected, in locations such as Gabriel Pereira and Mousinho da Silveira, includes several values of pertinence. Examples of such data are records of demographic information, grades, and alcohol consumption. The dataset which we will be exploring will be the dataset containing information about the students from the mathematics course only.
The datasets have a total of 33 attribute columns of which we could do some column selection based on certain parameters. This will be attempted in section E as part of the preprocessing before plotting the data for our exploratory data analysis. The columns and how they are recorded are as listed below:
- school - GP/MS for the student's school
- sex - M/F for gender
- age - 15-22 for the student's age
- address - U/R for urban or rural respectively
- famsize - LE3/GT3 for less than or greater than three family members
- Pstatus - T/A for living together or apart from parents, respectively
- Medu - 0 (none) / 1 (primary-4th grade) / 2 (5th - 9th grade) / 3 (secondary) / 4 (higher) for mother's education
- Fedu - 0 (none) / 1 (primary-4th grade) / 2 (5th - 9th grade) / 3 (secondary) / 4 (higher) for father's education
- Mjob - 'teacher', 'health' care related, civil 'services', 'at_home' or 'other' for the student's mother's job
- Fjob - 'teacher', 'health' care related, civil 'services', 'at_home' or 'other' for the student's father's job
- reason - close to 'home', school 'reputation', 'course' preference or 'other' for the choice of school
- guardian - mother/father/other as the student's guardian
- traveltime - 1 (<15mins) / 2( 15 - 30 mins) / 3 (30 mins - 1 hr) / 4 (>1hr) for time from home to school
- studytime - 1 (<2hrs) / 2 (2 - 5hrs) / 3 (5 - 10hrs) / 4 (>10hrs) for weekly study time
- failures - 1-3/4 for number of class failures (if more than 3 than record 4)
- schoolsup - yes/no for extra educational support
- famsup - yes/no for family educational support
- paid - yes/no for extra paid classes for Math or Portuguese
- activities - yes/no for extra-curricular activities
- nursery - yes/no for whether attended nursery school
- higher - yes/no for desire to continue studies
- internet - yes/no for internet access at home
- romantic - yes/no for relationship status
- famrel - 1-5 scale on quality of family relationships
- freetime - 1-5 scale on how much free time after school
- goout - 1-5 scale on how much student goes out with friends
- Dalc - 1-5 scale on how much alcohol consumed on weekdays
- Walc - 1-5 scale on how much alcohol consumed on weekend
- health - 1-5 scale on health condition
- absences - 0-93 amount of absences from school
- G1 - 0-20 for the first period grade
- G2 - 0-20 for the second period grade
- G3 - 0-20 for the final grade
Possible insights that can be obtained from mining the chosen dataset
Since the main purpose of the dataset is to find correlations between students with their alcohol consumption patterns, the most conspicuous relationship would be the relationship between their grades with respect to their workday and weekend alcohol consumption. The traditional consensus is that students who consume alcohol at high levels tend to skip more classes and perform worse in their studies, thus, resulting in lower grades. However, a research conducted in the United States by Balsa (2011), showed that increases in levels of alcohol consumption only resulted in small reductions of GPA. We shall see which consensus holds true. Five columns play a major role in this which are: column 27 (workday alcohol consumption) and/or column 28 (weekend alcohol consumption), column 31 (first period grade), column 32 (second period grade) and column 33 (final grade).
For the data exploratory exercise, we choose to examine four columns: workday alcohol consumption, first period grade, second period grade and their final grade. We chose workday alcohol consumption because drinking over workdays is more unusual than drinking over the weekends. Our explanation would be more focused on the final grade because we think that students will be more serious towards their final grade rather than the first period grade and second period grade. Thus, their final grade would be the perfect measure of that particular student's success. However, if more elaborate data mining techniques were to be used, more features can be selected and used in order to obtain more accurate insights. This will be explained in the next section (Section C).
As we all know, human relationships play a major role in people's lives. It can develop a plethora of emotions in oneself, may it be a positive or negative emotion. It is a usual train of thought that those who have a bad relationship with their family members will be stressed and unhappy which results in them drinking alcohol for consolation. We could check to see if that hypothesis has a concrete basis by using column 24 (famrel), column 27 (workday alcohol consumption) and/or column 28 (weekend alcohol consumption). If the hypothesis holds true, we would expect to see an increasing level of alcohol consumption (both column 27 and 28) when famrel has a low value. However, the assumption is that the alcohol consumption is high because the student's relationship with his/her family has a low value. Correlation does not imply causation. This may not hold true because it is a possibility that the student's relationship with his/her family is low because of their high level of alcohol consumption. For the data exploratory exercise, we choose to examine three columns: workday alcohol consumption, weekend alcohol consumption and their family relationship.
Besides family relationships, we can also try to find if there is a relationship between being single and consuming high levels of alcohol. To do so, we need to take column 23 (romantic), column 27 (workday alcohol consumption) and/or column 28 (weekend alcohol consumption) into consideration. Column 23 (romantic), only gives information on whether or not the student has a partner. It does not state the level of intimacy between them. A research conducted by Dinescu et. al. (2016), studied the relationship between married couples with their single counterparts and found out that if partners are more intimate, they will drink less. Assuming the romantic relationship in our dataset is of an intimate level, we can find out if this statement holds true. For the data exploratory exercise, we choose to examine three columns: workday alcohol consumption, weekend alcohol consumption and their relationship status.
Last but not least, we can also obtain insights on health issues and drinking alcohol. In general, we would assume that people who are not healthy, will avoid drinking in order to prevent their health from further deterioration. To obtain insights on this, we could refer to column 29 (health), column 27 (workday alcohol consumption) and/or column 28 (weekend alcohol consumption). We would think that if the value for health is lower, the value for their workday and/or weekend alcohol consumption would also be lower. For the data exploratory exercise, we choose to examine three columns: workday alcohol consumption, weekend alcohol consumption and their health.
What type of data mining technique would be relevant?
The data mining technique we think is suitable is classification. For a student to pass the subject, there are a couple of factors that could be correlated with the outcome. We could take into consideration the following:
- the amount of time a student studies (studytime, column 14)
- does the student join any extra paid classes (paid, column 18)
- does the student participate in any extra co-curricular activities (activities, column 19)
- if the student is involved in any romantic relationship (romantic, column 23)
- how is the student's family relationship quality (famrel, column 24)
- the tendency of the student to go out with friends (goout, column 26)
- weekday alcohol consumption (Dalc, column 27)
- weekend alcohol consumption (Walc, column 28)
Figure 1 illustrates the high-level description of our classification.
We think that classification is the best data mining technique to be employed because we can build a classification model to predict if a student will get a passing grade based on the factors mentioned above. We can use studytime (column 14), paid (column 18), activites (column 19), romantic (column 23), famrel (column 24), goout (column 26), Dalc (column 27), Walc (column 28) as the attributes and GStatus as the class for the training set to predict the class GStatus in the test set and validate the model.
GStatus is derived from the final period grade, (G3, column 33) where according to EuroEducation.net (n.d.), the passing marks for a student in Portugal would be 10 out of 20. The reason for this change is because it is easier to classify a student's result as pass/fail rather than a discrete numeric number. This would help the classification model to more accurately predict the class GStatus because it would be less accurate for the classification model to predict a numeric value ranging from 0-20.
Data quality issues
There are a few columns which we think could be further clarified or changed. They are:
- guardian (column 12) - Currently, it is divided into 3 levels which are "mother", "father" and "other". However the part labelled "other" should be a bit more specific as for the entries where people have placed "other". They should add factors of whether the student is an orphan or living with their closer relatives.
- schoolsup (column 16) - The column name schoolsup with entries "yes" or "no" of which stands for extra educational support is a little misleading and ambiguous as we do not know if it means the student is receiving extra educational support due to this grades/results or because the student is from a unwealthy family and is receiving support in terms of food. If it is the latter, it will not have a big impact on grades compared to the former. Instead, schoolsup should be replaced with a column named scholarship to indicate whether if a student is under the school scholarship. The value for the attribute should be a simple binary answer such as yes/no.
- paid (column 18) - This column is for students with extra paid classes within the course subject which only has yes or no option, it does not state how many paid classes they took. A proper amendment would be to ask how many extra paid classes they took in a week and have the values be of an numeric format.
- activities (column 19) - This column is for extra-curricular activities that students have participated in and it only has a yes or no option. There is no indication as to how many extra-curricular the students have taken. A proper way to go about this is to have the column ask how many extra-curricular activities they took in a week and have the values be of an numeric format.
- goout (column 26) - This column is for the amount of time that the student spend to go out with his/her friends. The option given is to state how much they go out with friends (1 if very low and 5 if very high). This is not a proper measurement unit. It should have been recorded as how many times the student go out with their friends in a week and the values should be in a numeric format.
References
- Balsa, A. I., Giuliano, L. M., & French, M. T. (2011). The effects of alcohol use on academic achievement in high school. Economics of Education Review, 30(1), 1-15.
- Dinescu, D., Turkheimer E., Beam, C.R., Horn, E.E., Duncan, G., Emery, R.E. (2016). Is marriage a buzzkill? A twin study of marital status and alcohol consumption. Journal of Family Psychology, Vol 30(6), Sep 2016, 698-707.
- EuroEducation.net. (n.d.). EDUCATION SYSTEM IN PORTUGAL. Retrieved from http://www.euroeducation.net/prof/porco.htm


Status class.
More...
#include <Error.h>
Status class.
Definition at line 52 of file Error.h.
◆ Status() [1/4]
Default Constructor.
Definition at line 56 of file Error.h.
◆ Status() [2/4]
Default Constructor.
- Parameters
-
| error_status | Error status. |
| error_description | (Optional) Error description if error_status is not valid. |
Definition at line 65 of file Error.h.
std::string error_description() const
Gets error description if any.
◆ Status() [3/4]
Allow instances of this class to be copy constructed.
◆ Status() [4/4]
Allow instances of this class to be move constructed.
◆ error_code()
Gets error code.
- Returns
- Error code.
Definition at line 89 of file Error.h.
◆ error_description()
| std::string error_description |
( |
| ) |
const |
|
inline |
◆ operator bool()
Explicit bool conversion operator.
- Returns
- True if there is no error else false
Definition at line 81 of file Error.h.
References arm_compute::OK.
◆ operator=() [1/2]
Allow instances of this class to be copy assigned.
◆ operator=() [2/2]
Allow instances of this class to be move assigned.
◆ throw_if_error()
| void throw_if_error |
( |
| ) |
const |
|
inline |
Throws a runtime exception in case it contains a valid error status.
Definition at line 102 of file Error.h.
106 internal_throw_on_error();
The documentation for this class was generated from the following files:


Why I killed my aunt - Suspect - Premium Times Nigeria
by Usman AuduA 29-year-old man accused of culpable homicide, Abbas Abubakar, of Kissayip Village in Bassa Local Government Area of Plateau State has explained why he killed his aunt, Fatima Maitala.
Mr Abubakar was among the 36 suspects paraded by the state commissioner of police, Isaac Akinmoyede, on Thursday.
The commissioner said the 36 suspects were apprehended for alleged kidnapping, rape, possession of illegal firearms, culpable homicide, among others.
Mr Akinmoyede said Mr Abubakar was arrested following a report to the police by Maitala Bako, the husband of the deceased who claimed his wife was shot dead by the suspect.
‘Yes I did it’
Mr Abubakar said he committed the crime.
 I killed her because; first, she was the one who killed one of my uncle’s ‘spiritually’. It is so because when my uncle was about to die, he mentioned her (Fatima ) severally. He would say ‘Fatima, Fatima, Fatima would kill me’. That was how I got to know she was the one who killed my uncle.

Mr Abubakar said he regretted his action.
Meanwhile, police boss, Mr Akinmoyede, said the suspect “led police detectives to the place he hid the firearm he used in committing the dastardly act.
“The detectives moved swiftly to the place and recovered one single barrel gun. The prime suspect will be charged to court,” the policeman said.


| Top |
GLib supports spawning of processes with an API that is more
convenient than the bare UNIX fork()
and exec()
.
The g_spawn family of functions has synchronous (g_spawn_sync()
)
and asynchronous variants (g_spawn_async()
, g_spawn_async_with_pipes()
),
as well as convenience variants that take a complete shell-like
commandline (g_spawn_command_line_sync()
, g_spawn_command_line_async()
).
See GSubprocess in GIO for a higher-level API that provides stream interfaces for communication with child processes.
void
(*GSpawnChildSetupFunc) (gpointer user_data
);
Specifies the type of the setup function passed to g_spawn_async()
,
g_spawn_sync()
and g_spawn_async_with_pipes()
, which can, in very
limited ways, be used to affect the child's execution.
On POSIX platforms, the function is called in the child after GLib
has performed all the setup it plans to perform, but before calling
exec()
. Actions taken in this function will only affect the child,
not the parent.
On Windows, the function is called in the parent. Its usefulness on Windows is thus questionable. In many cases executing the child setup function in the parent can have ill effects, and you should be very careful when porting software to Windows that uses child setup functions.
However, even on POSIX, you are extremely limited in what you can
safely do from a GSpawnChildSetupFunc, because any mutexes that were
held by other threads in the parent process at the time of the fork()
will still be locked in the child process, and they will never be
unlocked (since the threads that held them don't exist in the child).
POSIX allows only async-signal-safe functions (see signal(7)) to be
called in the child between fork()
and exec()
, which drastically limits
the usefulness of child setup functions.
In particular, it is not safe to call any function which may
call malloc()
, which includes POSIX functions such as setenv()
.
If you need to set up the child environment differently from
the parent, you should use g_get_environ()
, g_environ_setenv()
,
and g_environ_unsetenv()
, and then pass the complete environment
list to the g_spawn...
function.
gboolean g_spawn_async_with_pipes (const gchar *working_directory
,gchar **argv
,gchar **envp
,GSpawnFlags flags
,GSpawnChildSetupFunc child_setup
,gpointer user_data
,GPid *child_pid
,gint *standard_input
,gint *standard_output
,gint *standard_error
,GError **error
);
Executes a child program asynchronously (your program will not
block waiting for the child to exit). The child program is
specified by the only argument that must be provided, argv
.
argv
should be a NULL
-terminated array of strings, to be passed
as the argument vector for the child. The first string in argv
is of course the name of the program to execute. By default, the
name of the program must be a full path. If flags
contains the
G_SPAWN_SEARCH_PATH
flag, the PATH
environment variable is
used to search for the executable. If flags
contains the
G_SPAWN_SEARCH_PATH_FROM_ENVP
flag, the PATH
variable from
envp
is used to search for the executable. If both the
G_SPAWN_SEARCH_PATH
and G_SPAWN_SEARCH_PATH_FROM_ENVP
flags
are set, the PATH
variable from envp
takes precedence over
the environment variable.
If the program name is not a full path and G_SPAWN_SEARCH_PATH
flag is not
used, then the program will be run from the current directory (or
working_directory
, if specified); this might be unexpected or even
dangerous in some cases when the current directory is world-writable.
On Windows, note that all the string or string vector arguments to
this function and the other g_spawn*() functions are in UTF-8, the
GLib file name encoding. Unicode characters that are not part of
the system codepage passed in these arguments will be correctly
available in the spawned program only if it uses wide character API
to retrieve its command line. For C programs built with Microsoft's
tools it is enough to make the program have a wmain()
instead of
main()
. wmain()
has a wide character argument vector as parameter.
At least currently, mingw doesn't support wmain()
, so if you use
mingw to develop the spawned program, it will have to call the
undocumented function __wgetmainargs()
to get the wide character
argument vector and environment. See gspawn-win32-helper.c in the
GLib sources or init.c in the mingw runtime sources for a prototype
for that function. Alternatively, you can retrieve the Win32 system
level wide character command line passed to the spawned program
using the GetCommandLineW()
function.
On Windows the low-level child process creation API CreateProcess()
doesn't use argument vectors, but a command line. The C runtime
library's spawn*() family of functions (which g_spawn_async_with_pipes()
eventually calls) paste the argument vector elements together into
a command line, and the C runtime startup code does a corresponding
reconstruction of an argument vector from the command line, to be
passed to main()
. Complications arise when you have argument vector
elements that contain spaces of double quotes. The spawn*() functions
don't do any quoting or escaping, but on the other hand the startup
code does do unquoting and unescaping in order to enable receiving
arguments with embedded spaces or double quotes. To work around this
asymmetry, g_spawn_async_with_pipes()
will do quoting and escaping on
argument vector elements that need it before calling the C runtime
spawn()
function.
The returned child_pid
on Windows is a handle to the child
process, not its identifier. Process handles and process
identifiers are different concepts on Windows.
envp
is a NULL
-terminated array of strings, where each string
has the form KEY=VALUE
. This will become the child's environment.
If envp
is NULL
, the child inherits its parent's environment.
flags
should be the bitwise OR of any flags you want to affect the
function's behaviour. The G_SPAWN_DO_NOT_REAP_CHILD
means that the
child will not automatically be reaped; you must use a child watch to
be notified about the death of the child process. Eventually you must
call g_spawn_close_pid()
on the child_pid
, in order to free
resources which may be associated with the child process. (On Unix,
using a child watch is equivalent to calling waitpid()
or handling
the SIGCHLD
signal manually. On Windows, calling g_spawn_close_pid()
is equivalent to calling CloseHandle()
on the process handle returned
in child_pid
). See g_child_watch_add()
.
G_SPAWN_LEAVE_DESCRIPTORS_OPEN
means that the parent's open file
descriptors will be inherited by the child; otherwise all descriptors
except stdin/stdout/stderr will be closed before calling exec()
in
the child. G_SPAWN_SEARCH_PATH
means that argv
[0] need not be an
absolute path, it will be looked for in the PATH
environment
variable. G_SPAWN_SEARCH_PATH_FROM_ENVP
means need not be an
absolute path, it will be looked for in the PATH
variable from
envp
. If both G_SPAWN_SEARCH_PATH
and G_SPAWN_SEARCH_PATH_FROM_ENVP
are used, the value from envp
takes precedence over the environment.
G_SPAWN_STDOUT_TO_DEV_NULL
means that the child's standard output
will be discarded, instead of going to the same location as the parent's
standard output. If you use this flag, standard_output
must be NULL
.
G_SPAWN_STDERR_TO_DEV_NULL
means that the child's standard error
will be discarded, instead of going to the same location as the parent's
standard error. If you use this flag, standard_error
must be NULL
.
G_SPAWN_CHILD_INHERITS_STDIN
means that the child will inherit the parent's
standard input (by default, the child's standard input is attached to
/dev/null). If you use this flag, standard_input
must be NULL
.
G_SPAWN_FILE_AND_ARGV_ZERO
means that the first element of argv
is
the file to execute, while the remaining elements are the actual
argument vector to pass to the file. Normally g_spawn_async_with_pipes()
uses argv
[0] as the file to execute, and passes all of argv
to the child.
child_setup
and user_data
are a function and user data. On POSIX
platforms, the function is called in the child after GLib has
performed all the setup it plans to perform (including creating
pipes, closing file descriptors, etc.) but before calling exec()
.
That is, child_setup
is called just before calling exec()
in the
child. Obviously actions taken in this function will only affect
the child, not the parent.
On Windows, there is no separate fork()
and exec()
functionality.
Child processes are created and run with a single API call,
CreateProcess()
. There is no sensible thing child_setup
could be used for on Windows so it is ignored and not called.
If non-NULL
, child_pid
will on Unix be filled with the child's
process ID. You can use the process ID to send signals to the child,
or to use g_child_watch_add()
(or waitpid()
) if you specified the
G_SPAWN_DO_NOT_REAP_CHILD
flag. On Windows, child_pid
will be
filled with a handle to the child process only if you specified the
G_SPAWN_DO_NOT_REAP_CHILD
flag. You can then access the child
process using the Win32 API, for example wait for its termination
with the WaitFor*() functions, or examine its exit code with
GetExitCodeProcess()
. You should close the handle with CloseHandle()
or g_spawn_close_pid()
when you no longer need it.
If non-NULL
, the standard_input
, standard_output
, standard_error
locations will be filled with file descriptors for writing to the child's
standard input or reading from its standard output or standard error.
The caller of g_spawn_async_with_pipes()
must close these file descriptors
when they are no longer in use. If these parameters are NULL
, the
corresponding pipe won't be created.
If standard_input
is NULL, the child's standard input is attached to
/dev/null unless G_SPAWN_CHILD_INHERITS_STDIN
is set.
If standard_error
is NULL, the child's standard error goes to the same
location as the parent's standard error unless G_SPAWN_STDERR_TO_DEV_NULL
is set.
If standard_output
is NULL, the child's standard output goes to the same
location as the parent's standard output unless G_SPAWN_STDOUT_TO_DEV_NULL
is set.
error
can be NULL
to ignore errors, or non-NULL
to report errors.
If an error is set, the function returns FALSE
. Errors are reported
even if they occur in the child (for example if the executable in
argv
[0] is not found). Typically the message
field of returned
errors should be displayed to users. Possible errors are those from
the G_SPAWN_ERROR domain.
If an error occurs, child_pid
, standard_input
, standard_output
,
and standard_error
will not be filled with valid values.
If child_pid
is not NULL
and an error does not occur then the returned
process reference must be closed using g_spawn_close_pid()
.
If you are writing a GTK+ application, and the program you
are spawning is a graphical application, too, then you may
want to use gdk_spawn_on_screen_with_pipes()
instead to ensure that
the spawned program opens its windows on the right screen.
working_directory |
child's current working directory, or |
[allow-none] |
argv |
child's argument vector, in the GLib file name encoding. |
[array zero-terminated=1] |
envp |
child's environment, or |
[array zero-terminated=1][allow-none] |
flags |
flags from GSpawnFlags |
|
child_setup |
function to run in the child just before |
[scope async][allow-none] |
user_data |
user data for |
[closure] |
child_pid |
return location for child process ID, or |
[out][allow-none] |
standard_input |
return location for file descriptor to write to child's stdin, or |
[out][allow-none] |
standard_output |
return location for file descriptor to read child's stdout, or |
[out][allow-none] |
standard_error |
return location for file descriptor to read child's stderr, or |
[out][allow-none] |
error |
return location for error |
gboolean g_spawn_async (const gchar *working_directory
,gchar **argv
,gchar **envp
,GSpawnFlags flags
,GSpawnChildSetupFunc child_setup
,gpointer user_data
,GPid *child_pid
,GError **error
);
See g_spawn_async_with_pipes()
for a full description; this function
simply calls the g_spawn_async_with_pipes()
without any pipes.
You should call g_spawn_close_pid()
on the returned child process
reference when you don't need it any more.
If you are writing a GTK+ application, and the program you are
spawning is a graphical application, too, then you may want to
use gdk_spawn_on_screen()
instead to ensure that the spawned program
opens its windows on the right screen.
Note that the returned child_pid
on Windows is a handle to the child
process and not its identifier. Process handles and process identifiers
are different concepts on Windows.
working_directory |
child's current working directory, or |
[allow-none] |
argv |
child's argument vector. |
[array zero-terminated=1] |
envp |
child's environment, or |
[array zero-terminated=1][allow-none] |
flags |
flags from GSpawnFlags |
|
child_setup |
function to run in the child just before |
[scope async][allow-none] |
user_data |
user data for |
[closure] |
child_pid |
return location for child process reference, or |
[out][allow-none] |
error |
return location for error |
gboolean g_spawn_sync (const gchar *working_directory
,gchar **argv
,gchar **envp
,GSpawnFlags flags
,GSpawnChildSetupFunc child_setup
,gpointer user_data
,gchar **standard_output
,gchar **standard_error
,gint *exit_status
,GError **error
);
Executes a child synchronously (waits for the child to exit before returning).
All output from the child is stored in standard_output
and standard_error
,
if those parameters are non-NULL
. Note that you must set the
G_SPAWN_STDOUT_TO_DEV_NULL
and G_SPAWN_STDERR_TO_DEV_NULL
flags when
passing NULL
for standard_output
and standard_error
.
If exit_status
is non-NULL
, the platform-specific exit status of
the child is stored there; see the documentation of
g_spawn_check_exit_status()
for how to use and interpret this.
Note that it is invalid to pass G_SPAWN_DO_NOT_REAP_CHILD
in
flags
.
If an error occurs, no data is returned in standard_output
,
standard_error
, or exit_status
.
This function calls g_spawn_async_with_pipes()
internally; see that
function for full details on the other parameters and details on
how these functions work on Windows.
working_directory |
child's current working directory, or |
[allow-none] |
argv |
child's argument vector. |
[array zero-terminated=1] |
envp |
child's environment, or |
[array zero-terminated=1][allow-none] |
flags |
flags from GSpawnFlags |
|
child_setup |
function to run in the child just before |
[scope async][allow-none] |
user_data |
user data for |
[closure] |
standard_output |
return location for child output, or |
[out][array zero-terminated=1][element-type guint8][allow-none] |
standard_error |
return location for child error messages, or |
[out][array zero-terminated=1][element-type guint8][allow-none] |
exit_status |
return location for child exit status, as returned by |
[out][allow-none] |
error |
return location for error, or |
gboolean g_spawn_check_exit_status (gint exit_status
,GError **error
);
Set error
if exit_status
indicates the child exited abnormally
(e.g. with a nonzero exit code, or via a fatal signal).
The g_spawn_sync()
and g_child_watch_add()
family of APIs return an
exit status for subprocesses encoded in a platform-specific way.
On Unix, this is guaranteed to be in the same format waitpid()
returns,
and on Windows it is guaranteed to be the result of GetExitCodeProcess()
.
Prior to the introduction of this function in GLib 2.34, interpreting
exit_status
required use of platform-specific APIs, which is problematic
for software using GLib as a cross-platform layer.
Additionally, many programs simply want to determine whether or not
the child exited successfully, and either propagate a GError or
print a message to standard error. In that common case, this function
can be used. Note that the error message in error
will contain
human-readable information about the exit status.
The domain
and code
of error
have special semantics in the case
where the process has an "exit code", as opposed to being killed by
a signal. On Unix, this happens if WIFEXITED()
would be true of
exit_status
. On Windows, it is always the case.
The special semantics are that the actual exit code will be the
code set in error
, and the domain will be G_SPAWN_EXIT_ERROR
.
This allows you to differentiate between different exit codes.
If the process was terminated by some means other than an exit
status, the domain will be G_SPAWN_ERROR
, and the code will be
G_SPAWN_ERROR_FAILED
.
This function just offers convenience; you can of course also check
the available platform via a macro such as G_OS_UNIX
, and use
WIFEXITED()
and WEXITSTATUS()
on exit_status
directly. Do not attempt
to scan or parse the error message string; it may be translated and/or
change in future versions of GLib.
Since 2.34
gboolean g_spawn_command_line_async (const gchar *command_line
,GError **error
);
A simple version of g_spawn_async()
that parses a command line with
g_shell_parse_argv()
and passes it to g_spawn_async()
. Runs a
command line in the background. Unlike g_spawn_async()
, the
G_SPAWN_SEARCH_PATH
flag is enabled, other flags are not. Note
that G_SPAWN_SEARCH_PATH
can have security implications, so
consider using g_spawn_async()
directly if appropriate. Possible
errors are those from g_shell_parse_argv()
and g_spawn_async()
.
The same concerns on Windows apply as for g_spawn_command_line_sync()
.
gboolean g_spawn_command_line_sync (const gchar *command_line
,gchar **standard_output
,gchar **standard_error
,gint *exit_status
,GError **error
);
A simple version of g_spawn_sync()
with little-used parameters
removed, taking a command line instead of an argument vector. See
g_spawn_sync()
for full details. command_line
will be parsed by
g_shell_parse_argv()
. Unlike g_spawn_sync()
, the G_SPAWN_SEARCH_PATH
flag
is enabled. Note that G_SPAWN_SEARCH_PATH
can have security
implications, so consider using g_spawn_sync()
directly if
appropriate. Possible errors are those from g_spawn_sync()
and those
from g_shell_parse_argv()
.
If exit_status
is non-NULL
, the platform-specific exit status of
the child is stored there; see the documentation of
g_spawn_check_exit_status()
for how to use and interpret this.
On Windows, please note the implications of g_shell_parse_argv()
parsing command_line
. Parsing is done according to Unix shell rules, not
Windows command interpreter rules.
Space is a separator, and backslashes are
special. Thus you cannot simply pass a command_line
containing
canonical Windows paths, like "c:\program files\app\app.exe", as
the backslashes will be eaten, and the space will act as a
separator. You need to enclose such paths with single quotes, like
"'c:\program files\app\app.exe' 'e:\folder\argument.txt'".
command_line |
a command line |
|
standard_output |
return location for child output. |
[out][array zero-terminated=1][element-type guint8][allow-none] |
standard_error |
return location for child errors. |
[out][array zero-terminated=1][element-type guint8][allow-none] |
exit_status |
return location for child exit status, as returned by |
[out][allow-none] |
error |
return location for errors |
void
g_spawn_close_pid (GPid pid
);
On some platforms, notably Windows, the GPid type represents a resource
which must be closed to prevent resource leaking. g_spawn_close_pid()
is provided for this purpose. It should be used on all platforms, even
though it doesn't do anything under UNIX.
Error codes returned by spawning processes.
|
Fork failed due to lack of memory. |
||
|
Read or select on pipes failed. |
||
|
Changing to working directory failed. |
||
|
execv() returned |
||
|
execv() returned |
||
|
execv() returned |
||
|
deprecated alias for |
||
|
execv() returned |
||
|
execv() returned |
||
|
execv() returned |
||
|
execv() returned |
||
|
execv() returned |
||
|
execv() returned |
||
|
execv() returned |
||
|
execv() returned |
||
|
execv() returned |
||
|
execv() returned |
||
|
execv() returned |
||
|
execv() returned |
||
|
execv() returned |
||
|
Some other fatal failure,
|
#define G_SPAWN_ERROR g_spawn_error_quark ()
Error domain for spawning processes. Errors in this domain will be from the GSpawnError enumeration. See GError for information on error domains.
Flags passed to g_spawn_sync()
, g_spawn_async()
and g_spawn_async_with_pipes()
.
|
no flags, default behaviour |
||
|
the parent's open file descriptors will
be inherited by the child; otherwise all descriptors except stdin,
stdout and stderr will be closed before calling |
||
|
the child will not be automatically reaped;
you must use |
||
|
|
||
|
the child's standard output will be discarded, instead of going to the same location as the parent's standard output. |
||
|
the child's standard error will be discarded. |
||
|
the child will inherit the parent's standard
input (by default, the child's standard input is attached to |
||
|
the first element of |
||
|
if |
||
|
create all pipes with the |
#define G_SPAWN_EXIT_ERROR g_spawn_exit_error_quark ()
Error domain used by g_spawn_check_exit_status()
. The code
will be the program exit code.


This is a simple form to get the Opinion Of users concerning a particular brand
Would you recommend Microverse to a friend?
What is your favourite feature of Microverse
What would you like to see improved?
Any comments or suggestions?


This page is a playground for testing, nothing more.
This isn't an opinion
opinions
http://schema.org/Article
Opinions
Maybe... I should elaborate this on multiple lines.
Maybe
even with HTML


{% load static %}
Public Grievances such as Noise pollution, disorderly behavior and damage of public property .
A criminal complaint is a court document that accuses or charges a suspect with committing a specific crime.
Report individuals who have gone missing or who need a search and rescue team.
Public Grievances such as noise pollution,destruction of public property and other public related incidents.
A criminal complaint is a court document that accuses or charges a suspect with committing a specific crime.
Report missing person(s) who need search and rescue.
Fire-112
Medical assistance-119
Electricity emergency-8010
Police-117
© 2021 Crime Prevention System. All rights reserved | Design by Fritz-dale kechia


Don't delete or change anything within < and > characters unless asked to do so.
Don't delete any main parts of the template, like icons and other things. Always comment them by adding  at the end of the code for that section.
You should use a text editor specifically built for coding. You can use basic notepad type editor but don’t curse me afterwards. So better to use a nice code editor. There are some pretty awesome code editors which you can use for free like Brackets, Atom, Notepad++ and Sublime Text 2. I am using Brackets for this tutorial.
When I say open index.html or minilio.css that means to open that file in the code editor (usually by right clicking).
The Template has three categories of colors:
Primary Color: #ff6347 (Tomato)
Secondary Color: #000000 (Black)
Background Color: #ffffff (White)
To Change Colors first open minilio.css in the css folder.
I am changing primary color for this example. Same procedure will apply for other colors too.
NOTE: Don’t choose same colors for two or all categories. That way you won’t be able to change them separately afterwards.
1. Press Ctrl+f and type the code of the color you want to replace like this,
2. Press Ctrl+h and type the code of your desired color like this,
3. Click Batch… and it will ask for reconfirmation.
4. Click Replace and done.
Just replace the favicon.png file in img folder with your own favicon.png file.
Open index.html and press Ctrl+f and type <title>. Remove Minilio and type your Site Title.
Just replace logo.png file in img folder with your own logo.png file.
There are two types of Intro. Paragraphical Intro and Name and Job Description only Intro which is hidden by default.
Paragraphical Intro is the default one. If you want the Name and Job Description only Intro do the following.
In index.html press Ctrl+f and type class="intro" like this,
Now comment it by adding  at the end of the line. like this,
Now Press Ctrl+f and type class="intro-name" like this,
And remove  from the end of the line. Like this,
And done.
To Edit the Intro, in index.html replace Minilio with your name and Static Portfolio Template with your Job Desicription. And If you have chosen the paragraphical intro same will apply there and you can change the rest of the text too. (don’t change anything that is in between  characters)
The social icons on the side/navigation bar are inside a div with class="important-social-links". So you can press Ctrl+f and type class="important-social-links" to find the div.
To hide the icons you don’t need, just comment them like this,
To add your social links in their respective icons, add your social link between inverted commas in <a href="" like this, <a href=https://facebook.com/username
In index.html press Ctrl+f and type class="copyright" then edit the copyright text like this,
Just replace profile.png file in img folder with your own profile.png file.
In index.html press Ctrl+f and type class="about-me" and remove the lorem ipsum paragraph and write your bio. (don’t change anything that is in between  characters)
If you want to hide any of the three What I Do icons. In index.html press Ctrl-f and type class="what-i-do". All three icons and their texts are in their respective divs. So to hide any of them, just comment the whole div by adding a  at the end of the div like this,
In index.html press Ctrl+f and type class="skills" like this,
Now if you want to delete any of the skills just delete its complete line or comment it. And if you want to add more skills then duplicate an existing line and edit the text in it.
In index.html press Ctrl+f and type class="contact-details" like this,
Now for hiding, comment the whole div like we did in What I Do Section. To Edit the Text replace the pre added text between
 and
 tags with your text. (don’t change anything that is in between  characters)
The procedure to hide the unwanted social icons or adding the social links to respective icons is the same as of the social icons in side/navigation bar. Now to navigate to the section for social icons in contact page, in index.html press Ctrl+f and type class="social" like this,
Rest is the same as for the social icons in side/navigation bar.
In index.html press Ctrl+f and type id="ajax-contact" and comment the whole form tag like this,
Open mailer.php in code editer. mailer.php is located in php folder.
Now goto line number 23 and replace<EMAIL_ADDRESS>with your email ID where you want to recieve contact form messages. like this,
Don't remove double commas.
NOTE: To get rid of all demo projects when setting up the template. Just delete all project folders in the work folder and delete all code between
 and
 tags. Remember don't delete the tags themselves, only the code between them.
Now to add a new project, follow the procedure below.
1. In the work folder of the template, create a folder for your project.
NOTE: It is case sensitive and do not use spaces when naming the project folders. Instead use underscores like this: Sample_Project or This_is_a_project etc.
2. Now add your project images and name them numerically in the ascending order and create a square image file for your project cover image and name it cover.jpg. Like this,
3. Now open the code generator and fill in your project details like this,
4. Now click generate and copy paste the generated code into your portfolio div. For that, open Index.html and press Ctrl+f and type class="portfolio" and paste the generated code between
 and
 like this,