Help menu
Here you can consult some tutorials:
1.- How do I create a character?
Go to the home page by either clicking "Home" on the top-right corner,
or your username in the top left corner. There, click the "New" button.
fill the form with your character's name, group in which it will be saved,
and profile image before clicking "Submit" to save it.
2.- How do I create a campaign?
Go to the top-right corner of the screen. Click on "Campaigns" and
then on "Create Campaign". Fill the form with the name of the campaign,
the system you are using for it, the usual playing time, a description,
and an image to represent it. Then click "Submit".
3.- How can I join a campaign?
To join a public campaign you must go to the campaign page, usually
accessed by clicking on "Campaigns" on the top-right corner of the page,
and then on "Search campaigns". Then, click any campaign that catches
your eye. This will take you to the campaign page. There, click on the
"Join" button on the bottom-right corner of the page.
4.- I'm in a campaign's chatroom. How do I change the room?
Once you are in a chatroom, you will see a "Rooms" menu either on the
rightmost side of your page if you are on PC or a tablet, or bellow the
chat input if you are on your phone. Click or press the name of any of the
rooms, and the current room in your chat menu will change accordingly.
5.- How can I create a group to save characters in?
Currently you can't, but if you've made it here, the Help menu is intuitive
enough!.
Go to the home page by either clicking "Home" on the top-right corner, or your username in the top left corner. There, click the "New" button. fill the form with your character's name, group in which it will be saved, and profile image before clicking "Submit" to save it.
2.- How do I create a campaign?
Go to the top-right corner of the screen. Click on "Campaigns" and then on "Create Campaign". Fill the form with the name of the campaign, the system you are using for it, the usual playing time, a description, and an image to represent it. Then click "Submit".
3.- How can I join a campaign?
To join a public campaign you must go to the campaign page, usually accessed by clicking on "Campaigns" on the top-right corner of the page, and then on "Search campaigns". Then, click any campaign that catches your eye. This will take you to the campaign page. There, click on the "Join" button on the bottom-right corner of the page.
4.- I'm in a campaign's chatroom. How do I change the room?
Once you are in a chatroom, you will see a "Rooms" menu either on the rightmost side of your page if you are on PC or a tablet, or bellow the chat input if you are on your phone. Click or press the name of any of the rooms, and the current room in your chat menu will change accordingly.
5.- How can I create a group to save characters in?
Currently you can't, but if you've made it here, the Help menu is intuitive enough!.


{% extends "todo/base.html" %} {% block page_heading %}{% endblock %} {% block title %}File Ticket{% endblock %} {% block content %}
Have a support issue? Use this form to report the difficulty - we'll get right back to you.


User Telemetry
User Telemetry with Application Insights
The marketing team has expressed interest in the behavior of users across the PartsUnlimited website for how to best market the products, especially how popular the web application is and where the users live. The development team would like to know which browsers and operating systems that most users browse to the site from to target better user experiences.
Using the out-of-box telemetry for Application Insights, the teams will be able to find out how people use the application and gain insights into the goals that they will need to achieve.
In this lab, you will learn about setting up Application Insights and inserting the snippet of code for usage tracking into a web application to gain further insight into how users are behaving towards your web application.
Prerequisites
-
Visual Studio 2013 or higher
-
PartsUnlimited website deployed to a Microsoft Azure Web App (see link
-
Application Insights created in the same Azure Resource Group as the PartsUnlimited website
-
Continuous Integration build with deployment to the Azure web app
Tasks Overview
-
Set up Application Insights for PartsUnlimited
-
View real-time results for user telemetry in the Azure portal
Task 1: Set up Application Insights for PartsUnlimited
Step 1. In an Internet browser, navigate to http://portal.azure.com and sign in with your credentials.
Step 2. Click on the “Browse All” tile on the left column, select “Application Insights,” and click on the name of the telemetry that was created when you deployed the resource group using the Deployment template in the PartsUnlimited solution. The name of the telemetry should match the name of the PartsUnlimited name plus “Insights.”
Step 3. In the PartsUnlimited Application Insights telemetry, click on the “Settings” tile and then “Properties.” You will want to keep this browser window open with the details of the telemetry name, location, instrumentation key, and subscription information when we attach it to the PartsUnlimited website.
Step 4. To receive data, we will need to attach the PartsUnlimited Application Insights telemetry to the PartsUnlimited project in Visual Studio. In Visual Studio, open the PartsUnlimited solution.
Step 5. In the PartsUnlimited solution, right-click on the PartsUnlimitedWebsite project and select “Add Application Insights telemetry.”
Step 6. In the “Add Application Insights to Project” window, click on the “Use different account” hyperlink.
Step 7. Since we have the subscription and resource information for our PartsUnlimited Application Insights telemetry, click on the button, “Use advanced mode.”
Step 8. Fill in the subscription ID, resource group, Application Insights resource name, and Instrumentation key found in the new portal from step 3. Then press the “Add Application Insights to Project” button to add the telemetry in the project.
Step 9. Back in the Azure Portal, in the PartsUnlimited Application Insights telemetry, in the Application Health panel, click on the “Learn how to collect server response time data” overlay. Before Application Insights receives any information, we need to add script code to monitor each web page in the PartsUnlimited project.
Step 10. In the Quickstart panel to add Application Insights to your project, click on “Get code to monitor my web pages” and copy the end-user usage analytics code.
Step 11. Back in Visual Studio, in the PartsUnlimitedWebsite project, in Views/Shared/_Layout.cshtml, paste the snippet of code you copied for the end-user usage analytics code from the Azure portal before the rest of the scripts between the head tag.
Step 12. In the “Changes” tile in Team Explorer, commit the changes of adding Application Insights (adding ApplicationInsights.config, editing the publish profile, _Layout.cshtml, packages.config and web.config) and sync to the repo which should kick off an automated build and deploy to the website.
Now that the telemetry has been added to the web application, it may take a few minutes for Application Insights to refresh.
Task 2: View real-time results for user telemetry in the Azure portal
Now that we’ve given Application Insights time to refresh, we can take a look at the usage data in the new Azure Portal. The Portal will show a variety of metrics out of the box, including number of sessions, users, and browser sessions.
Step 1. In an Internet browser, navigate to http://portal.azure.com and sign in with your credentials.
Step 2. Click on the “Browse All” tile on the left column, select “Application Insights,” and click on the name of the telemetry that was created when you deployed the resource group using the Deployment template in the PartsUnlimited solution. The name of the telemetry should match the name of the PartsUnlimited name plus “Insights.”
Step 3. In the overview panel of the Application Insights instance, overall application health will be shown in server response time, browser page load time, server requests, and failed requests. (Actual times may vary)
Step 4. Scroll down in the overview portal and click on the “Usage” tile.
Step 5. Note the Usage timeline. By drilling into usage, we can gauge how popular our web application is based on the number of distinct users, active sessions, and number of calls to trackPageView() (usually called once). Click in the chart on “Users” to view more information about the users.
Step 6. In the Users timeline, note the number of users, new users, and page views. Additionally, the unique count of users by country is recorded. Click the X in the upper-right corner to close the Users panel.
Step 7. Back in the overview panel of the Application Insights instance, click on the chart for Browser Page Load Time.
Step 8. In the Browsers timeline, note the receiving response time, client processing time, page load network time, send request time, server response time, and page views. Additionally, the average count of browser page load time is shown below the timeline. Click on the timeline chart.
Step 9. In the Chart Details pane, scroll down to the Client area and uncheck all of the properties except for Receiving Response Time. Then, turn on the Grouping and select “Browser” as the “group by” property. The Browsers timeline will change and show the average receiving response time broken down into the various browsers that were used to log into the site.
Step 10. Back in the Overview panel, scroll down and click on the “Page views” tile.
Step 11. The Page views panel will break down the total page views, number of users, and pages per session for the web application.
All of the out-of-box data from Application Insights provide different types of data to learn how users interact with your web application.
In this lab, you learned about setting up Application Insights and inserting the snippet of code for usage tracking into a web application to gain further insight into how users are behaving towards your web application.
Try these labs out for next steps:
Further Resources
Usage analysis for web applications with Application Insights


The button was pressed 0 times.
You have been Anxious 0 times this month.
You have been Frustrated 0 times this month.
You have been Lonely 0 times this month.
You have been Gloomy 0 times this month.
You have been Stressed 0 times this month.
You have been Lethargic 0 times this month.


No.
Here is an excerpt from the example program.
The constructor for FileWriter
is passed a String which contains the
name for the file.
When the FileWriter
is constructed,
a new disk file is created in the current
directory and given the name "reaper.txt".
If there is already a file with that name,
it will be replaced.
The stream that
writes to the file is writer
.
public static void main ( String[] args ) throws IOException { String fileName = "reaper.txt" ; FileWriter writer = new FileWriter( fileName ); . . .
The two constructors that interest us are:
FileWriter(String fileName) FileWriter(String fileName, boolean append)
The second form of the constructor has
an argument, append
.
If append
is true
,
the constructor
will open an existing file will for writing
without destroying its contents.
If the file does not exist, it will be created.


Hi, steemit friends!❤
Here is my entry for A City A Story Photo Weekly Contest held by @aaronli.
这是我参加的由 @aaronli举办的小城故事相片比賽的作品。
During the Spring Festival every year, the government of Hangzhou will hold “West Lake Spring Flowers Exhibition” in the King Qian’s Temple to let the citizens and tourists come to enjoy the unique beauty of Hangzhou in spring. In Lunar January 6th, I went to enjoy the atmosphere of the spring with my mother there.
每年春节前后，杭州市政府都会在钱王祠举办“西湖迎春花展”，让市民和来玩的游客感受到春季杭州独特的美感。年初六的时候，和妈妈一同前去领略下春的气息。
When we get through the gate, the first thing that catches our eyes is the red puppy paper-cut.
走进门，首先映入眼帘的就是大红色的小狗剪纸。
The perfect combination of the theme of “dog” and Chinese traditional craftsmanship of paper-cut .
完美的将“狗”年的主题和中国传统手艺剪纸结合了起来。
Peony, which known as the “The King of Flowers” , are beautiful in color and smell fragrant. Peony is our national flower, and it is the symbol of wealth and prosperity. The blooming period of peony is generally May each year, and the horticultural workers at the West Lake paid a great effort for this exhibition.
“花中之王”牡丹花色泽艳丽，气味芬芳扑鼻，是中国的国花，是财富和欣欣向荣的象征。牡丹花的花期一般是每年的5月，西湖边的园艺工人为了这次展出付出了很大的努力。
Azalea has brightly colors and the most varied kind of modeling in this exhibition.
“花中西施”杜鹃花鲜艳绚丽，仿佛彩霞绕林，在这次展出中是造型最多样的一种。
The plum is also exceptionally bright and lovely.
一同展出的还有当季的梅花，也是分外明艳可爱。
There is a wall of orchid in the exhibit area. There are too many people taking photos there, so I do not have the opportunity to take pictures. Turning around, I find these two delicate orchid in pots, which I can not tell the specific name.
展品区有一堵“兰花墙”，合照的人实在太多，没机会拍下照片。一转身看到这两盆小巧别致的兰花，叫不出具体名字。
When preparing to go out, I notice this pot of precious stones flowers.
正准备出门之际，看到这盆宝石花。不禁惊讶于现在园林培育的技术，已经可以将如此多的反季花朵培育出来。
Back to the door, I am attracted by the shape of this fan. If you know a little about Hangzhou, you’ll find that he fans of Wang Xing Ji is also well-known in Hangzhou, besides the Longjing Tea and West Lake Silk.
回到门口的时候，被这个扇子的造型吸引住。如果你对杭州略有了解的话，就会知道，杭州出名的除了西湖龙井和丝绸，还有王星记的扇子。
Camera相机：iPhone 7
City城市：Hangzhou, Zhejiang Province 浙江杭州
谢谢大家的来看我的文章，如果您喜欢的话，请在steemit上关注我@nostalgic1212，或给我点赞和留言，再次感谢～
Thank you for reading my articles. If you like me, plz follow @nostalgic1212, or upvote me and leave your comments on steemit. Thx a looooooot~
This page is synchronized from the post: ‘【Vickyの杭州印象】A City A Story Photo Weekly Contest#15 -【FLOWER】~小城故事相片比賽#15-【 花】’


Français
Contact Us
Help
Search
Canada Site
ADM (Fin CS)
Defence Site
Access to Information and Privacy
Proactive Disclosure
Government-Wide Reporting
Disclosure of Travel and Hospitality Expenses (DND)
Disclosure of Contracts (DND)
Disclosure of Position Reclassifications (DND)
Disclosure of Grant and Contribution Awards Over $25,000 (DND)
Disclosure of Contracts
Overview
Reports
Quarter 3: 2007
Contract
Vendor Name
UNITED STATES DEPARTMENT OF THE NAVY (NAVSEA)
Reference Number
W8482-071376/001/USW
Contract Date
2-10-2007
Description of Work
Underwater Sound Equipment
Delivery Date
3-10-2007
Contract Value
$1,581,161.00
Updated: 2007-03-07
Important Notices


exposure risk &; model models OpenUrl features learning feature CrossRef Fig. calibrated machine age data CDV epidemic pathogen predictive important individual parvovirus performance pipeline uncalibrated Science disease exposed regression rainfall Molnar, Web host individuals interactions relationships used approach compared different likely example, plots year average lions relevant using (e.g., (see Serengeti algorithms b). based missing models, new non-linear prediction (Fig. including indicates infection logistic provide (i.e., Further, However, Machine Packer Packer, Retrieved Text associated better calibration classification effect higher increase lions. methods package predictions relatively steps values virus years Gilbert ICE advantage canine change chart compare considered data. distribution ecological feline importance increased interaction model, predicting prevalence quantify reflect risk. showing support value variable variables Bayesian Data Download Open Table a). advances algorithm analysis contrast, date differences distemper dynamics environmental estimates flexible followed future help line model. observations particular parvovirus, pipeline. provided sampled sets shaping similar statistical time use >; African Ecology Ecology, Evolution, False Friedman, Model National Rudnicki, Shapely True account agnostic assess best black certain classes complex curves data, data-hide-link-title=""> data-icon-position="" details). ecology epidemics. figure framework high imperfect imputation insights interrogate landscape large lion method models. mortality multiple order partial pathogens performance. population populations populations, positive, provides random represents robust sampling sections sensitivity subset substantially tab tested text trees understand uses variety vector visualize way wild wildlife year-prevalence


Tracks
Local File ...
Session
Local File ...
Save ...
Save
×
×
Save Session File
×
Enter session filename with .json suffix
Save SVG File
×
Enter filename with .svg suffix
Share
×
COPY
COPY


Build and export card JSON data.
This tool can be used to create data compatible with the RPG Cards app.
Icons are taken from the open-source RPG Cards code, which is in turn sources icons from Game-icons.net. Most of the icons available there should be available here.


Reports code constructs that always violate nullability contracts, may throw exceptions, or are just redundant, based on data flow analysis.
Examples:
if (array.length < index) {
System.out.println(array[index]);
} // Array index is always out of bounds
if (str == null) System.out.println("str is null");
System.out.println(str.trim());
// the last statement may throw an NPE
@NotNull
Integer square(@Nullable Integer input) {
// the method contract is violated
return input == null ? null : input * input;
}
The inspection behavior may be controlled by a number of annotations, such as
nullability annotations,
@Contract
annotation,
@Range
annotation and so on.
Configure the inspection:
- Use the Suggest @Nullable annotation for methods/fields/parameters where nullable values are used option to warn when a
nullable value is passed as an argument to a method with a non-annotated parameter,
stored into non-annotated field, or returned from a non-annotated method. In this case, the inspection will suggest propagating
the
@Nullable
annotation. You can also configure nullability annotations using the Configure Annotations button.
- Use the Treat non-annotated members and parameters as @Nullable option to assume that non-annotated members can be null,
so they must not be used in non-null context.
- Use the Report not-null required parameter with null-literal argument usages option to report method parameters that cannot be
null (e.g. immediately dereferenced in the method body), but there are call sites where a
null
literal is passed.
- Use the Report nullable methods that always return a non-null value option to report methods that are annotated as
@Nullable
, but always return non-null value. In this case, it's suggested that you change the annotation to @NotNull
.
- Use the Ignore assert statements option to control how the inspection treats
assert
statements. By default, the option
is disabled, which means that the assertions are assumed to be executed (-ea mode). If the option is enabled, the assertions will be completely ignored
(-da mode).
- Use the Report problems that happen only on some code paths option to control whether to report problems that may happen only
on some code path. If this option is disabled, warnings like exception is possible will not be reported. The inspection will report
only warnings like exception will definitely occur. This mode may greatly reduce the number of false-positives, especially if the code
is not consistently annotated with nullability and contract annotations. That is why it can be useful for finding the most
important problems in legacy code bases.
Before IntelliJ IDEA 2022.3, this inspection was part of the "Constant Conditions & Exceptions" inspection.
Now, it is split into two inspections:
"Constant Values" and "Nullability and data flow problems".


On your desired image, right click and choose 'Fusk'.
Choose which direction:
'+/-' will return a gallery with images that come before and after it.
'+' will return a gallery with images that only come after it.
'-' will return a gallery with images that only come before it.
Now choose how large you want your gallery to be - 10/20/50/100/200/500 or 'Other' (you choose!).
Your gallery will appear in the tab next to your current one. If an image isn't returned (404 or some other error), it will be hidden from view, but you can toggle that too!
Why Fuskr?
From the 'Fusker' Wikipedia article - A Fusker is a type of website or utility that extracts images from a web page, typically from free hosted galleries. Fusker software allows users to identify a sequence of images with a single pattern, for example: `http://www.example.com/images/pic[1-16].jpg`.
Version History
4.0.75
Omnibox and history should now be working correctly again.
4.0.61
Fix issues with the context menus not working correctly in Chrome. Firefox was unaffected but the solution is cross-browser compatible.
4.0.20
Create dark mode option.
Tidy up code and improve some speed issues, specifically around context menu creation.
New version numbering. Minor version is incremented and we also include a longer version name indicating the build date/time.
3.2
More excellent work by Jonathon Bolster!
Download images as a zip file and retain the structure if it's a nested fusk!
Options page change to support Chrome's preferred options layout.
Improvements to the way many urls are handled.
3.1
Fixed an issue with the fusk option not showing on links.
3.0
Application templating rewritten using AngularJS.
2.7
Fixed an annoying bug where Fuskr wouldn't work on some links that didn't have numbers, and wouldn't revert to the image url.
Reduced the permissions level greatly. Previously, Fuskr required that you give us access to all websites and all browsing activity, but we only care about your current tab. Google Chrome now has that ability, so we've reduced the permissions needed accordingly!
2.6
You can now download images directly from the gallery page!
You can now view the page in a slideshow!
Beginning to internationalize (l18n). If you want to help, let us know!
Updated to jQuery and jQuery UI.
2.5
Updated to jQuery v2.1.3 and jQuery UI 1.11.2.
2.4
Updated to jQuery v2 and jQuery UI 1.10.3.
Minor styling changes to the image gallery page.
2.3
Fixed some template issues and added more information and credits to the options page.
2.2
Updated libraries used by Fuskr.
2.1
New logo and images
2.0
Alphabetical fusking is now possible! You can now do fusks such as https://example.com/path/file/[a-z].jpg or even https://domain.com/path/file/[a-z]and[c-g]and[j-m].jpg!
Changes to the options page to make it much cleaner.
1.9.1
Some changes to the application in order to take into account recent security update to Google Chrome which will be enforced shortly.
1.9
- Fuskr wasn't working on Macs.
1.8
Change of name to Fuskr (thanks Google !).
Jonathon Bolster has put a lot of work into making Fuskr modular, and there are now a few unit tests around to make sure everything's hunky dory!
Fixed some issues with previous/next functionality not working when there are images missing. It also scrolls smoothly as well.
1.7
Added linkage below images.
1.6
A few bug fixes. Incognito works properly now, but only in v9 as there are some Chrome bugs outstanding.
1.5
Fixing a bug with the '+' icon showing up unnecessarily.
Galleries created in incognito mode are no longer stored.
Added the ability to scale images to the current window size.
Added some information about the current gallery (number of images and broken images).
1.4
Clicking a created image will jump the user to the next one. Manual fusks are a little more difficult so maybe that's one for later...
Added an options page! Currently the only two options are below.
Added recent fusks history. This allows you to keep track of and, if desired, go back to a previous one that you may have closed. This feature will only store 10 at maximum, can be disabled completely, or the history can be wiped.
Added an option for opening a gallery in the foreground.
1.3
Fixed a bug where having a nested gallery meant that the images were returned in the wrong order. - Kudos Jonathon!
Fixed an issue where the Fuskr option appears, even when the image is not 'fusk-able' - Kudos Jonathon!
Fixed an issue where choosing a manual gallery and not entering a url would still try to create a new tab. Kudos Jonathon!
Provided an 'option' for having the new gallery show on creation, or open in the background (default is open in the foreground).
1.2
Fixed a bug where the horizontal scrollbar was not visible for galleries where the images were bigger than the page.
Added the ability to use create a gallery based on a thumbnail, which will go to the linked image instead.
1.1
About 5 minutes after I released 1.0, I realised that Chrome had finally allowed extensions to create context menus, so I ripped my application apart and rebuilt it in thirty minutes to use the context menus.
1.0
Initial release.
Contact
Dan Atkinson<EMAIL_ADDRESS>Jonathon Bolster
Download
You can download this project in either
zip or
tar formats.
You can also clone the project with Git
by running:


Before Change
.unsqueeze(3))
x = sequence_embeddings
for i, cnn_layer in enumerate(self.cnn_layers):
// Pad so that the CNN doesn"t have the future
// of the sequence in its receptive field.
x = F.pad(x, (0, 0, self.kernel_width - min(i, 1), 0))
x = F.relu(cnn_layer(x))
x = x.squeeze(3)
After Change
// Pad so that the CNN doesn"t have the future
// of the sequence in its receptive field.
x = F.pad(sequence_embeddings,
(0, 0, receptive_field_width, 0))
x = F.tanh(self.cnn_layers[0](x))
for cnn_layer in self.cnn_layers[1:]:
x = F.pad(x, (0, 0, receptive_field_width - 1, 0))
x = F.tanh(cnn_layer(x))
x = x.squeeze(3)


This is a programming portfolio of Andrea Szaboova
A skilled researcher with 15+ years of experience in research, mentoring and working for city government, who is seeking to leverage her creative skills, professional expertise and passion for innovation to grow in the new role.
This is my programming portfolio.
github.com/Adka28/MyPortfolio
Languages: JavaScript, JQuery
JavaScript Arrays and Looping Independent Project.
github.com/Adka28/PingPong
Languages: HTML, CSS, JavaScript, JQuery
JavaScript & jQuery Independent Project.
github.com/Adka28/VacationSuggester
Languages: HTML, CSS, JavaScript, JQuery
This is a workshop project.
github.com/Adka28/workshop_p
Languages: HTML, CSS, JavaScript, JQuery
School project for creating a Web application.
github.com/Adka28/MVC
Languages: HTML, CSS, JavaScript, JQuery, C#, SQL, LINQ
PhD degree of Civil Engineering - Architectural Design
Technical University of Kosice, Kosice, Slovakia
Researcher-Technical University of Kosice, Slovakia
Using predictive analytics to create innovative model for prediction indoor air pollutant in residential building and developed custom software for underground design building according created new rules for digital design concepts.
Building Inspector-Building department City of Kosice, Slovakia
Issues building permits, construction permits, occupancy permits; ensures ongoing construction in compliance with all applicable laws, codes and regulations within the Building Inspector’s jurisdiction.
I like challenging myself and improving my coding skills in web development and find a job as a software engineer.
Artificial Intelligence, Travelling, Environmental science, Playing Piano, Felting aquarelle painting, Ballroom dancing, Hiking, Machine learning, Electronics & Gadgets, Nanotechnology
Creativity & Problem Solving
Attention to Detail
Active listening Teamwork
Presentation & Public speaking
Written & Oral Communication
Graphics
AutoCAD, ARCHICAD, MicroStation
Programming languages
HTML, CSS, JavaScript, jQuery, MVC, MS SQL Server, C#, .NET framework, LINQ


Welcome to DRF Chart of Account’s documentation!¶
Django Rest Framework Chart of Account¶
Description¶
DRF Chart of Account holds the layer models and it’s operations for a greater Accounting Software. Layers are usually used in an accounting software to make resources under a relationship. Generally 7 layers are used in a typical accounting software but in drf_chart_of_account there are 5 layers. As for example an organization has transport business. So we can say all the vehicles are in Vehicle Layer. Under that water vehicles may be under Vehicle -> Water Vehicle Layer. A speedboat can be under Vehicle -> Water Vehicle -> Speedboat layer. That’s how all the layer’s has relationship.
Requirements¶
This package needs Django, Django Rest Framework and Requests to run.
Version¶
Current stable version is 1.0
Compatibility¶
This package is Tox tested with Python version 3.6, 3.7 and 3.8 with Django version 2.0, 2.1, 2.2, 3.0, 3.1 with Django Rest Framework version 3.12.1. However, this package is compatible with Python version > 3.0 and Django version > 2.0 but not compatible with Python 2.7 and Django version < 2.0
Installation¶
This package can be installed in two ways. One is via the pypi package manager and other is directly from the Github.
For pypi installation please use the following command
pip install drf_chart_of_account
And for directly downloading from the Github repository use the following commands
git clone https://github.com/skoobytechforimpact/drf_chart_of_account
After successful installation open Django’s settings.py file and add ‘drf_chart_of_account’ and ‘rest_framework’, on your INSTALLED_APPS list.
INSTALLED_APPS = [
...
'rest_framework',
'django_user_interaction_log',
]
Include the event loggers URLconf in your project urls.py like this
path('accounts/', include('drf_chart_of_account.urls')),
Here you can put whatever you like on the path. Now run the app migration for creating the database migrations
python manage.py makemigrations
python manage.py migrate
Usage¶
This package is shipped with 5 Layer Models. LayerOneModel is the top parent model of all and LayerTwoModel is the immediate child of LayerOneModel and LayerThreeModel is the immediate child of LayerTwoModel and so on is LayerFourModel to LayerThreeModel and LayerFiveModel to LayerFourModel.
Each model needs a name, parent_layer (for child models) and created_by data to create an instance.
If any of the model instance has child data or has transaction (Transaction is a feature of Journal application) then the instance can’t be updated or deleted. However, this update validity check only happens if the update operation is called from the appropriate Update API. Updating model instance directly without the usage of the serializer class will not check the validity. The deletion operation always check the validity. It doesn’t depend on the invoking method.
API Details:¶
This package only accept json data as request and returns json in response. Below are the list of api endpoints for this package.
Here <layer_no> belongs to the layer model no. So for different layers the numbers are here:
Layer Model | URL Text |
|
|---|---|
LayerOneModel | one |
|
LayerTwoModel | two |
|
LayerThreeModel | three |
|
LayerFourModel | four |
|
LayerFiveModel | five |
The model primary key is an integer value.
Create API View
endpoint: https://your-domain-name/accounts/charts/layer/<layer_number>/
method: POST
payload:
{
"name": "Demo layer data",
"is_active": true,
"created_by": <pk>
}
List API View
endpoint: https://your-domain-name/accounts/charts/layer/<layer_number>/
method: GET
Detail API View
endpoint: https://your-domain-name/accounts/charts/layer/<pk>/
method: GET
Update API View
endpoint: https://your-domain-name/accounts/charts/layer/<pk>/
method: PUT
payload:
{
"name": "Demo layer data",
"is_active": true,
"created_by": <pk>
}
Delete API View
endpoint: https://your-domain-name/accounts/charts/layer/<pk>/
method: DELETE
Package Creator¶
This package is created by Skooby Technology for Impact. The package is a sub module of a larger Accounting Module


Social Buttons for Bulma v1.2.0
Social Sign-In Buttons based on Bulma and Font Awesome!
View on GitHub DownloadAvailable Classes
Disable Hover Animation
.no-animation
Available Button Sizes
.is-small
.is-medium
.is-normal
.is-large
Check them out in real projects
Installation
1. NPM (local)
Run npm install bulma-social
After installation, you can import the CSS files into your project using these commands:
import 'bulma/css/bulma.min.css'
import<EMAIL_ADDRESS>import 'bulma-social/bin/bulma-social.min.css'
2. HTML (CDN)
A typical header would look like this:
Examples
Start using the buttons as you would normally do adding additionally the social class. For example:
Or if you just want the icon button, use it like this:


Git support is available as a [plugin for Bamboo](http://www.atlassian.com/software/bamboo/tour/bamboo-plugin.jsp]
The Git plugin was authored by Kristian Rosenvold of Zenior AS in Norway and Don Brown of Atlassian.
For post-build pushes of repos up-stream, the Pre/Post Build Command Plugin will assist in calling git (must be on the Bamboo server's path):
git push FULLREPOURL BRANCHNAMETOPUSH:BRANCHNAMEONREMOTESIDE
With an actual URL
git push git://git.apache.org/commons-logging.git master-trial:master
Can walk through setting up a Git based project (from Apache Git sources)
[Bamboo on http://localhost:8085/](http://localhost:8085/)
Hudson is an open source CI server. It has excellent Git integration via the Git plugin.


A card with the image ratio of 1:1
A card with the image ratio of 4:3
A card with the image ratio of 16:9


rock - paper - scissors
New Game
paper
rock
scissors
x
Round Number
Player Move
Ai Move
Round Result
Game Result


---
layout: post
title: ! 'Top Tip: Using Virtual Box Guests with multiple GNOME desktops'
tags:
- Linux
- Work Practices
status: publish
type: post
published: true
meta:
_edit_last: '451289'
---
I'm using a Windows XP desktop running inside Virtual Box under a Gnome Linux (Ubuntu 8.04). It's quite handy to dedicate a virtual desktop to the Guest, or each guest if you have enough memory for more than one.
Using my default Compiz keyboard I can jump into the guest using <ctrl><alt><arrow>, if the guest is in full screen mode then I get put straight into Windows and can type away, use a mouse etc.
Going back to Linux is a little more difficult as Windows throws away the Compiz key shortcuts. Howevever if you preface the Compiz shortcuts with <RightCtrl> (assumes you are using the default VirtualBox hot keys) then you can jump backwards (or fowards).


The Wild Wild West (1999) 1 1/2 stars out of 4. Starring Will Smith, Kevin Kline, Salma Hayek and Kenneth Branagh. Directed by Barry Sonnenfeld.
The West is neither very wild nor very funny in The Wild Wild West, the latest in a tiresome stream of adaptations of old television shows.
Starring Will Smith as suave secret agent James West, the movie appears to need a jump start as it lurches from situation to situation.
And, of course, the writers six are credited, two for the story and four for the screenplay, a bad sign have, in their infinite wisdom, sought to "improve" on the concept of the '60s TV series.
Thus, Artemus Gordon (a hammy Kevin Kline) is not merely West's friend and assistant. No, here he's a U.S. marshal a rival to West, at first who, like in the TV series, is a master of disguise. But the writers do him one better, transforming him into a scientific genius who is always devising new and useful gadgets to extricate himself and West from various predicaments.
The only saving grace to this campy confection is Smith, who breezes through the proceedings unconcerned about the ludicrous situations.
Unlike Robert Conrad, who in the TV series was supposed to be suave and debonair, Smith's James West is a shoot-first, ask-questions-later type of hero.
He is a smooth talker and a charmer, but he sounds more the con-artist than cultured government agent.
What is embarrassing is watching Kenneth Branagh chew up the screen as the evil Dr. Loveless. He affects as thick a Southern accent that hasn't been heard on screen since Vivien Leigh complained about "War, war war!" in Gone With the Wind.
The story, what little there is, revolves around Loveless' attempts to break up the United States and reclaim the honor of the South following its defeat in the Civil War.
The chemistry that should exist between partners West and Gordon is nil.
And the same goes for the actors portraying them. Throughout the movie it seems that Smith and Kline merely recite lines to one another, that they have not developed any rapport.
Lovely Salma Hayek is wasted as the damsel in distress. She isn't in much danger, nor does she seem to be distressed that much.
Director Barry Sonnenfeld, his actors and writers cannot seem to decide if they want to play the movie straight, tongue-in-cheek or campy, so they meander through all three with very mixed results.
The Wild Wild West is a disappointment. Smith fans will enjoy this movie because their star gets most of the good one-liners. Other than that, there is no reason to go West, young people.
Bob Bloom is the film critic at the Journal and Courier in Lafayette, IN. He can be reached by e-mail at<EMAIL_ADDRESS>or at<EMAIL_ADDRESS>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


Focus Trap keeps focus within a certain DOM element while tabbing.
FocusTrap is applied to a container element with the pFocusTrap directive.
| Name | Type | Default | Description |
|---|---|---|---|
| pFocusTrapDisabled | boolean | false | When set as true, focus wouldn't be managed. |
Directive has no properties.
Directive has no events.
Directive does not apply any styling to host.
None.


In this example we basicly making a http get request to api and save the response as json data in localStorage.
We use https://swapi.co api which returns all Star Wars informations as json data.
{{apiData | json}}
{{cacheData | json}}


"/plugins/jslintPlugin.html":true,Then reload http://localhost:8080/defaults.pref in your browser to make sure it's not cached. (This is a workaround for Orion Bug 355895.)
To enable error logging add "debug=true" to the end of the plugin URL
To enable full trace debugging add "debug=trace" to the end of the plugin URL
To report problems or make suggestions:


{% extends "registration/base.html" %} {% load bootstrap4 %} {% block content %}
Password or Username is incorrect
Don't have an account? Create Account


Released on Thursday, Aug 4, 2016
Trifolia’s source code is available to the open-source community via a Github repository (https://github.com/lantanagroup/trifolia). This first release to open source is simply a dump of the Trifolia code-base. In the coming months, we will simplify the installation process, include exports of publicly available implementation guides (such as “IHE Health Story Consolidation”), and improve the developer documentation.
Trifolia includes support for FHIR STU3 in addition to DSTU1 and DSTU2. (HL7 recently changed the naming convention of draft specifications from DSTU—Draft Standard for Trial Use— to STU—Standard for Trial Use.) Support focuses on exporting, although some import functionality exists. Trifolia users can edit profiles using the STU3 schemas, and /api/FHIR3 endpoints allow integration with Trifolia.
We have had reports from users in China that they were not able to successfully login due to the Google-based captcha system. We found that China restricts the google.com domain, which is required for Google’s captcha use. We have replaced the Google captcha, enabling China-based users to access Trifolia.
A new “Import” menu item is available to editors for importing Trifolia-formatted data. This allows multiple installations of Trifolia to exchange implementation guides. In the near future, exported implementation guides will be exchangeable between installations of Trifolia using this Import functionality.
Type |
Description |
Task |
Open-source release |
New Feature |
Provide method of importing data into Trifolia |
New Feature |
Database installation scripts for open-source release |
New Feature |
FHIR STU3 Support |
Improvement |
Use non-google captcha for validating humanity during login |
Improvement |
Fix issues with FHIR exports found from testing |
Improvement |
Change exported publish statuses in MS Word |
Improvement |
Support for FHIR “must support” and “is modifier” flags on constraints |
Defect |
Web IG relationships diagram tab not working in Chrome 48+ |
Defect |
Versioning an IG does not copy the Web IG Volume 1 HTML and/or Sections |
Defect |
StructureDefinition not valid against latest FHIR schema |


Duke of York gives ‘no holds barred’ interview on Jeffrey Epstein relationship
Andrew has faced questions about his links with the paedophile who was found dead in his prison cell in New York
The Duke of York has spoken about his relationship with paedophile Jeffrey Epstein in a “no holds barred” interview.
Andrew has faced questions about his links with the disgraced financier, who was found dead in his prison cell in New York earlier this year where he was being held on sex trafficking charges.
An accuser of Epstein claims she was forced into a sexual encounter with the duke – an allegation he denies.
Newsnight presenter Emily Maitlis said on Twitter it was a “no holds barred” and “no questions vetted” interview, filmed at Buckingham Palace on Thursday.
It will be the first time the duke has answered questions on his relationship with Epstein. In 2015, he used a public appearance at Davos in Switzerland to deny the claims.
Virginia Giuffre is one of 16 women who say they were abused by Epstein, and she has previously claimed in court papers that she was forced to have sex with Andrew as a 17-year-old.
Her allegations, which Andrew denies, were struck from US civil court records in 2015 after a judge said they were “immaterial and impertinent”.
Buckingham Palace has branded the allegations “false and without any foundation” and “any suggestion of impropriety with underage minors” by the duke was “categorically untrue”.
Dogged by accusations of a lack of judgment about his links with Epstein, Andrew has previously denied he ever suspected “any behaviour of the sort” the financier.
Andrew said in a statement on August 24: “At no stage during the limited time I spent with him did I see, witness or suspect any behaviour of the sort that subsequently led to his arrest and conviction.”
He said he had “tremendous sympathy” for Epstein’s victims, and reiterated that it was a “mistake” seeing the 66-year-old after the American’s release from an 18-month prison term in 2010 for prostituting minors.
Epstein was found hanged in his cell on August 10 in New York while facing fresh charges of sex trafficking and conspiracy to traffic minors for sex.
The interview, recorded at Buckingham Palace on Thursday, will air on BBC Two at 9pm on Saturday.


Yes, yes, we did have a small conference here, in my home town. I was, with many other people, participating on the proceedings of the event.
It went fine, there was much of magnificent stuff and I can never be too grateful for all people who participated in making the event so good as it was. I'm in especial gratitude to the people who didn't come, since you're pretty much the reason why similar event should be arranged next year too, so that you could be enlightened, happy, have a few laughs and meet people.
But I'm not really sure if that's enough.
And that's just my opinion
And it's not really up to me. It's actually very much up to you, since anyone can do this stuff, and it's not all that hard. Takes time and effort though, both of which I did not sacrifice much this year, compared to other guys. But well, I'm somewhat apt at feeling grumpy anyway.
You see, this stuff, it ain't made for you. I mean, of course it is, but not for you as an individual.
Years back, we decided to drive towards certain goal, which was to make things improve around Central Finland. Mostly concerning our industry, since we're all, well, in doings with software development.
Event has had a local ring to it. This year, we had one local speaker (and I know there would be bunch of really good ones in addition) performing in each track.
We were extremely happy that many locally (meaning mostly Jyväskylä area) operating companies took part in sponsoring. Also, KETKY approached us, which is splendid. Extraordinary even.
And the point is?
Well. We could use some help. We could have used some help. Not with the conference things in particular, that we managed quite alright in our own homebrewish manner.
But the most feedback I get, is that "if I'd known the conference was about management/leadership/marshmallows, I'd have told person xyz about that".
It doesn't matter all that much what names you put to posters really, it doesn't matter what you put to your website, much of the stuff goes by word of mouth.
Now when we really aim to improve understanding of management and leadership practices in order of achieving better working conditions in whole Central Finland area, it's a bit of a kick to groin.
We'd benefit much of help from local media, mainly the local newspaper, for example.
This is something, where I am at my wits end. We tried to be loud. We tried to make ourself known to sources who would have had the option on telling about the happening for virtually everyone who should have been there.
And believe me, it's not for me. It's not for us. It would have been for the city we care about so much, that we spend numerous hours on creating an event where people could just come. And listen, and talk and take shitload of stuff among with them to local workplaces and start improving.
I'm happy that we attracted many of the people outside the Finnish agile mafia this year. It could still have been better, but well, we did all we could. We are not international. We are not "big" (though about 250 participants sorta is). We do not aim to promote anything. We aim to build up and improve local work, that is plenty enough. I'm sort of amazed, that the local bullhorns, responsible for much of information sharing around the area, don't react.
I feel sorta bad for Jyväskylä. A bit of a failure. There's not much that can save our debt ridden struggling city, but good starts and shitload of improving on IT sector, on ICT sector if you will.
Will it...
I've been asked plenty of times "How about next year? What will there be?". Well, if it's up to me, nothing. It's up to YOU :) We have pretty good contacts around and things sorted out. If you want to hop along, throw an email to<EMAIL_ADDRESS>for example. Come to chat on upcoming Agile Dinners, which will be fabulous, by the way! Holler us up on Twitter, on streets. Talk to your co-workers. Come to IRC (ircnet/#agilejkl). Think and talk. You are awesome.


analysis: defines an abstract analyzer API for converting text from a Reader into a TokenStream, an enumeration of token Attributes
codes: provides an abstraction over the encoding and decoding of the inverted index structure, as well as different implementations that can be chosen depending on application
document: provides simple Document class. A set of named fields whose names may be strings or instances of Reader.
index: provides two primary classes: IndexWriter which creates and adds documents to incides
search: provides data structures to represent queries (TermQuery for individual words, PhraseQuery for phrases)
store: abstract class to store persistent data
util: contains handy data structures and util classes
Similar to a database table, but less constraints. There are multiple segments of an index.
Document: similar to a row
Field: smallest definable unit of a data index. Data index provides many types of fields.
Term: Term is produced when field is put through an analyzer.
Segment: Index is composed of 1 or more sub-indexes.
First writes to an in-memory buffer (buffer not readable). Once buffer is large enough, it flushes to segment. Each segment has own index, independently searchable but not changed.
A DocId is not actually unique to the Index but is unique to a Segment. Lucene does this mainly to optimize writing and compression. Since it is only unique to a Segment, how can a Doc be uniquely identified at the Index level? The solution is simple. The segments are ordered. To take a simple example, an Index has two segments and each segment has 100 docs respectively. The DocId’s in the Segment are 0-100 but when they are converted to the Index level, the range of the DocId’s in the second Segment is converted to 100-200. DocId’s are unique within a Segment, numbered progressively from zero. But this does not mean that the DocId’s are continuous. When a Doc is deleted, there is a gap.
Lucene supports many types of fields and each type of field determines the supported data types and index modes.
Provides abstraction over the encoding and the decoding of the interveted index structure, as well as different implementations that can be chosen depending on application
Whenver Lucene needs to access the index, it does the accessing through codec APIs.
Codec is set-up per segment and every segment is free to use a different codec, although that is uncommon.
StoredFieldsFormat: encodes each document’s stored fields (block compression)
TermVectorsFormat: encodes per-document term vectors. (block compression)
LiveDocsFormat: bit set to mark deletion.
NormsFormat: encodes per-document and per-indexed-field index-time score normalizatino factors as encoded by the similarity. Contains compact encoding of field’s length and field level boosting
SegmentInfoFormat: saves metadata about the segment. How many docs, unique id.
FieldsInfosFormat: per-field metadata, whether nad how it was indexed, stored.
PostingsFormat: covers the inverted index, including fields, terms, documents.
DocValuesFormat: column stride per document values.
CompoundFormat: collapses separate index files, written by the above formulas into two files per segment.
Data is only searchable after a commit. Commit is a two stage operation. The first is prepareCommit, commit is called to complete a step.
Core interfaces are thread-safe and have internal concurrency tuning to optimize multi-thread writing.
First and third steps are locked.
Each DWPT includes its own in-memory buffer, which flushes into an independent file/segment.
Deleting a document goes through a deletion queue. Each DWPT has its own independent deletion queue known as pending updates. DWPT pending updates and global deletion queue schnc bi-directionally because doc deletion is global in scope.
The key concept in internal indexing is indexingChain, which as
Bitpacking: first bit is a continuation bit. Used for postings lists, numeric doc values.
LZ4: Used to stored fields. Stored fields take about 70% of the memory.
FSTs: Map
Lookup terms in terms index (Uses FST, in memory). Only stores prefixes of terms. Something like a prefix tree. As traversing sum up the weights. The sum is the offsets in the term dictionary. Doesn’t load alot of things in memory.
Term dictinary: compressed based on shared prefixes, similarly to a burst trie called the “BlockTree terms dict”. Read sequentially till the term is found. Contains information about frequency, score (I think)
Postings lists: block encoding. Encoded using Frame of Reference (FOR) delta
Stored Fields
Find the stored fields per document of the block.
2 disk seeks per field for search: find position in term dict + find postings list
1 disk seek per doc for stored fields: Finding the stored values
Typically all in cache
First bottle neck is when index grows larger than filesystem cache. Term dict/postings list not fully in cache.


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/detecting.20terminal.20goals.html ---
I have a little tactic that is meant to determine with the current goal is "terminal", that is, no other goals depend on it.
Unfortunately it is not working at the moment.
(The idea is just that if you know your current goal is terminal, you can be much more aggressive in discharging it, because nothing can go wrong later.)
I currently have
meta def metavariables : tactic (list expr) := do r ← result, pure (r.fold [] $ λ e _ l, match e with | expr.mvar _ _ _ := insert e l | _ := l end) meta def terminal_goal : tactic unit := do goals ← get_goals, let current_goal := goals.head, other_goals ← metavariables, let other_goals := other_goals.erase current_goal, other_goals.mmap' $ λ g, (do t ← infer_type g, d ← kdepends_on t current_goal, monad.whenb d $ pp t >>= λ s, fail ("This is not a terminal goal: " ++ s.to_string ++ " depends on it."))
And this works great detecting when the current goal appears in the form ?m_1
in a later goal.
But fails to detect that the current goal appears as something like ?m_1[_]
in a later goal.
Q1. Is this already implemented somewhere, better?
Q2. Any suggestions how I fix it?
Here's a MWE:
private structure D := ( w : ℕ → Type ) ( x : list (w 0) ) private def test_terminal_goal : D := begin split, swap, success_if_fail { terminal_goal }, -- succeeds, because terminal_goal correctly fails intros, success_if_fail { terminal_goal }, -- fails, because terminal_goal incorrectly succeeds exact ℕ, exact [] end
I think I would do it as:
meta def terminal_goal' : tactic unit := do g :: gs ← get_goals, gs.for_each $ λ g', guard (g'.occurs g)
It works with your example but does it work with your use cases?
@Simon Hudon, this doesn't seem to work in other cases. My tests are here: <https://gist.github.com/semorrison/5188f3c3e508148657be4d66f4875d8d> if you want to have a look. I have to run now, but will try to decipher why your version isn't working on the other tests later.
Ok, I'll have a look when I wake up :)
I don't really understand the logic of your suggestion: surely you meant guard (¬ g.occurs g')
not guard (g'.occurs g)
? In any case neither of those work. Sleep well. :-)
Thanks :)
When I see a goal with a "parametrised metavariable" like ?m_1[0]
, what does the underlying expr
look like? I can't decipher what it should be.
Is it just an app
of an mvar
?
Okay --- I've worked this all out. For anyone keeping score:
meta def metavariables : tactic (list expr) := do r ← result, pure (r.fold [] $ λ e _ l, match e with | expr.mvar _ _ _ := insert e l | _ := l end) meta def propositional_goal : tactic unit := do goals ← get_goals, let current_goal := goals.head, current_goal_type ← infer_type current_goal, p ← is_prop current_goal_type, guard p meta def subsingleton_goal : tactic unit := do goals ← get_goals, let current_goal := goals.head, current_goal_type ← infer_type current_goal >>= instantiate_mvars, to_expr ``(subsingleton %%current_goal_type) >>= mk_instance >> skip meta def terminal_goal : tactic unit := propositional_goal <|> subsingleton_goal <|> do goals ← get_goals, let current_goal := goals.head, other_goals ← metavariables, let other_goals := other_goals.erase current_goal, other_goals.mmap' $ λ g, (do t ← infer_type g, t ← instantiate_mvars t, trace t, d ← kdepends_on t current_goal, monad.whenb d $ pp t >>= λ s, fail ("This is not a terminal goal: " ++ s.to_string ++ " depends on it."))
I don't know if you still need the answer but ?m_1[0]
is a regular meta variable. I think [0]
signals the context that the variable can see. I don't know how to decode it though.
Thanks @Simon Hudon, all sorted out. ?m_1[0]
is encoded simply as an application of an mvar
on the expressions appearing inside the [ ... ]
. It turned out that I was missing an instantiate_mvars
, which was preventing successfully detection of these sort of "dependent mvars". I've made a PR for my terminal_goal
tactic and some relatives. https://github.com/leanprover/mathlib/pull/125
Oh, good! Sorry I couldn't help you any more than that
You have to be careful with those variables. They sneak up on you
I can't believe that I've written code that successfully uses instantiate_mvars
. What it actually means is still voodoo to me.
I can try to demystify if you like
Have you used get_goals
and set_goals
?
Yes, many times!
Good! And do you know that get_goals
returns a list of expressions that are in fact unassigned meta variables?
Yes!
(If I were Kevin, I'd be promising to write documentation in exchange for your explanation. :-)
(Haha! Where's Kevin when we need him!)
Good. So think of the proof state as being made of two parts (for the sake of this explanation): list of goals which is an arbitrary list of meta variables and the set of all allowed meta variables, some of which are assigned a value.
Great!
The relationship between the proof state and whatever you're trying to prove is that, when you enter tactic mode, you create an unassigned variable, put it in the list of goals and that variable is in fact the proof that you're supposed to return. From that point on, the assertion you're trying to prove does not matter. Only the variables and the goals do.
 Does this ring a bell?
Long story short, instantiate_mvar
finds all the mvar
nodes in your expression and, if the meta variable has a value (or type expr
) in the proof state it replaces mvar
with it. That means that, if you're pattern matching (using match
) on an expression and you're looking for expr.app (expr.app (const
eq _) e0) e1 and that you mean
mvar instead, even if that variable is assigned to a value that matches exactly what you're looking for, the pattern matching will fail. That's why it's prudent to use
instantiate_mvar before matching on a
expr` of which you don't know for sure that it doesn't contain meta variables.
I realize my explanation was a bit round about. I just needed to introduce the idea that the life span of meta variables is a whole proof and that it doesn't disappear once it's assigned.
I see.
I've encountered needing it in another strange place, as well, which I think matches with your explanation.
I was writing a tool for finding _all_ the possible rewrites of a given expression by a given rule.
Unfortunately the built-in rewrite has some problems --- once it has matched some of the parameters of your rewrite rule a particular way, it will subsequently only match the parameters the same way, when looking for further places the rule matches.
This even persists between different invocations of rewrite_core
, because this information is actually stored in the tactic state.
To solve this, I had to write a tactic lock_tactic_state (t : tactic A) : tactic A
which just discards any changes to the tactic state after invocation.
This throws away any information the tactic state was storing about how rewrite parameters had to match.
Unfortunately, the proofs that rewrite_core produced where suddenly full of metavariables!
I understand now that this is because these metavariables were _assigned_, but not _instantiated_, so when I discarded the tactic_state
those assignments were being lost.
Calling instantiate_mvars
on the proof term, before discarding the state, saved those assignments.
phew! :-)
(Sorry I missed the end of your explanation; family things happening at this end. I'm going to ping you @Simon Hudon as I expect you'll find this other example interesting.)
I'd be curious to see how you implemented lock_tactic_state
. Did you deconstruct the tactic value and extract the expected proof?
I'm looking forward to your next example. I'll probably see it when I wake up. Incidentally, Australia is way too far! Someone should move it closer to Europe and America, that way our days would overlap!
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


---
layout: post
title: What Others Know About Compression That You Don't
tags:
- bzip2
- compression
- deflate
- Theory
status: publish
type: post
published: true
meta:
_edit_last: '1'
_clicky_goal: a:2:{s:2:"id";s:0:"";s:5:"value";s:0:"";}
_wp_old_slug: what-others-know-about-compresson-that-you-dont
---
Ah, the compression formats. Always a mystery. Always just something we will use, but something we never understand. For one thing, this makes sense, considering Wikipedia alone lists 15 different compression formats. There are the well-known bz2, gz and LZMA algorithms. And the less well-known rz, ?Q? and ??_. Now that last one makes me happy this isn't a podcast...
Though for this post we will concentrate on Deflate. Deflate is not only used in gzip and zip, but is also a fan favorite to compress web assets when sent to the browser.
The Basic Building Blocks
Underneath Deflate uses LZ77 combined with a Huffman encoding.
LZ77 is used to detect duplicate strings and insert a so-called back reference (more on this later). Huffman Encoding is similar to ASCII, but instead of always using 8 bits, it stores the most used characters in 3 bits, and the least used ones, with, well, more bits. More on this also later.
Come On, Deflate Already!
First, Deflate chops up all parts into blocks to make processing easier. Then it decides in which mode it should encode that block:
- Store raw stream
- Store with a static Huffman encoding
- Store with a dynamic Huffman Encoding
Now, it still doesn't deflate. But lets see.
First mode is raw mode. In raw mode, Deflate decides that the data is already compressed and it can't do a better job. So it just inserts its header to say "I can't do anything with that, this is already compressed, dummy!". That's why, the next time a coworker shouts at you why you didn't ZIP these files, you can shout back: "D'oh, mode 1, man!".
Second mode is static Huffman mode. This just means that Deflate decides that the data is standard enough that the standard Huffman Encoding table should be used. For example useful for English text. This way Deflate doesn't have to add a table as overhead to the compressed content.
Third is dynamic Huffman mode. With dynamic Huffman mode, the content gets compressed with a Huffman Encoding, but the encoding table is generated based on the input. So for example, in Finish, the shortest code would probably be "ö", or something like that. In @zedshaw's recent tweets it could be "C", "F", "K" and "U", who knows!
But that leaves us with two question: Huffman Encoding, wut? And LZ77?
Huffman Encoding
Huffman Encoding is something that a guy called Huffman developed while getting a Ph.D from MTI MIT. Nothing surprising until now! The paper on it is actually from 1952.  That's double my age! That paper should feel old!
What it basically says: Tally up all individual characters. The most used one gets the shortest code (at 3 bits). Then continue down until you arrived at the end. Actually, Wikipedia does a better job at that than I ever could, so here's a picture:
[caption id="attachment_241" align="alignnone" width="600"] Huffman Coding Tree[/caption]
(Source: http://en.wikipedia.org/wiki/File:Huffman_tree_2.svg)
So that one sounded scary, turned out to be really easy!
So What About That LZ77
The next part in this tour around compression algorithms leads us right back into history. Can't we get something new going in the compression world?
LZ77 was introduced in a paper in, well, 1977 by Lempel and Ziv. LZ77 is a so-called sliding window compressor. At least they came up with impressive names back then. Why sliding window? It checks the last 2, 4 or 32 kB for repeating strings. Simple as that.
Should it find one such repeating string, instead of adding that string to the output stream, it puts a back marker in that basically says: If you want to finish reading that sentence, go back to page 32, line 17, and read from character 17 to character 34.
Now I See How They Tie Together
Well I hope you do! Else I failed and you should shame in the comments. :) Or of course I can try again:
First, Deflate splits up the document into blocks to make working with it easier. Then (lets assume the input isn't already compressed) it runs each block through LZ77 to get all the obvious double strings out of the way. Then it sends it through a Huffman Encoding to make it even shorter.
So yes, that's deflate.
What About The Others (BZIP2 Anyone?)
Not all of them use this simple approach, because simple apparently isn't good enough. BZIP2 goes through 9 different stages.
- Replacing all 4 or more repeating characters with just 4 characters. (There you see, a geek had to make this algorithm for comic books! "AAAAAAAAAA!" is so much longer than "AAA\7!") So called Comic Book Encoding... Unfortunately not, it's simply called Run Length Encoding. How boring!
- Next they wheel around the characters. Which basically means a fancy way to sort the same letters after each other so compression is easier. The so called Burrows-Wheeler Transform.
- Replace all repeating characters with 0, so we have as many 0 as possible. Could also be any other character. The Move-to-Front Transform (Yes, I hate these people too at concerts).
- And again, after sorting everything possible, we do a Run-length Encoding.
- Then a Huffman Encoding. Don't tell me now I have to explain what that is!
- Then again we see Huffmaaa\7n! This time with multiple tables per block to make the output even shorter.
- 8. and 9. Add some binary trickery.
So yes, you can use a lot of other things, but it all comes back to making the output even shorter. Surprising, hu?
So That's Compression
Yes, that's compression. Use a bit of special encoding, remove duplicates, and you are halfway there. Of course, this is just for Deflate. We saw that BZIP2 is already a lot more complicated and uses a lot of different tricks to make the output even smaller, but then again, it is also slower!
If you liked this post, you should follow me on Twitter and sign up for the RSS feed!
B58P3MMWCDTH


@Html(messages("ers_file_format_successful.sub_heading"))
@Html(messages("ers_file_format_successful.instructions"))
@Html(messages("ers.finish"))@* * Copyright 2021 HM Revenue & Customs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ @import config.ApplicationConfig @(implicit request: Request[AnyRef], messages: Messages, appConfig: ApplicationConfig) @import views.html.templates._ @ers_main(title = messages("ers.app_title")) { @header(messages("ers_file_format_successful.page_title"))
@Html(messages("ers_file_format_successful.instructions"))
@Html(messages("ers.finish"))


class: center, middle, inverse, title-slide # Workshop 1: Working with JSON & jsonlite ###
Sangeeth Selvaraju
&
Milan Schröder
### Hertie School |
Intro to Data Science Workshop
--- ## What is JSON? - **JavaScript Object Notation**: - Is a standard open file and data interchange format - uses human readable text to store and transmit data objects. - It is a common data format with diverse uses particularly in electronic data interchange like web applications with servers ## Benefits of using JSON - JSON is a "fat-free alternative" to XML - It has easy syntax - It is mostly used in web API's and for web development - It's supported across operating systems, browsers, and programming languages - **Most importantly for us**: JSON is a great tool for sharing data of any size, even audio or videos as it stores the data in arrays --- ## History of JSON .pull-left[ - Douglas Crockford originally specified the JSON format in the early 2000's. - He popularized it with Chip Morningstar and with State Software who helped in the early stages of the development - It was eventually sold to Sun Microsystems, Amazon, EDS. - The JSON.org site went live in 2002 and Yahoo started offering some of their web services in JSON - Fun fact: Crockford added a clause in the JSON license stating that "The software shall be used for Good and not evil" in order to keep it open source and mock corporate lawyers. ] .pull-right[  ] --- # History of the jsonlite package .pull-left[ - developed in 2014 by Jeroen Ooms, a research engineer at Berkeley Institute for Data Science - aims to realize practical and consistent mapping between JSON data and R objects - superseded `rjson` and `RJSONIO`, which led to inconsistent results in some instances - was soon widely adopted across the data science community ] .pull-right[  ] --- # Data Structures in JSON
 - **Object** - unordered list of key : value pairs - similar to a dictionary - can include all types of JSON structures - **Array** - ordered sequence of values - similar to R's vector-class - datatype can be heterogeneous - **Value** - no direct representation in R - one-element values are similar to vectors of length 1 - but they can also consist of multiple elements --- # object  --- # array

  --- # value  --- # Key functions: `fromJSON` ```r > JSON_array <- '[1, true, null, "string"]' > fromJSON(JSON_array, simplifyVector = TRUE) ``` ``` [1] "1" "TRUE" NA "string" ``` ```r > JSON_object <- + '[ + {"key": "value", "one": 1, "any_questions?": false}, + {"key": null, "one": "NA", "any_questions?": true} + ]' > fromJSON(JSON_object, simplifyDataFrame = TRUE) ``` ``` key one any_questions? 1 value 1 FALSE 2 <NA> NA TRUE ``` --- # Key functions: `toJSON` ```r > starwars %>% slice_sample(n = 1) %>% + toJSON(pretty = T) ``` ``` [ { "name": "Wedge Antilles", "height": 170, "mass": 77, "hair_color": "brown", "skin_color": "fair", "eye_color": "hazel", "birth_year": 21, "sex": "male", "gender": "masculine", "homeworld": "Corellia", "species": "Human", "films": ["The Empire Strikes Back", "Return of the Jedi", "A New Hope"], "vehicles": ["Snowspeeder"], "starships": ["X-wing"] } ] ``` --- ## Potential Issues: Dealing with NAs R knows different `NA`-values, but JSON only has `null` to represent those... - By default, `NA`'s are treated as strings (in numeric vectors) - so the string is no longer homogeneous, cause errors in statistical operations - but all information is preserved ```r > (toJSON(c(3.14, NA, NaN, 42, Inf, -Inf))) ``` ``` [3.14,"NA","NaN",42,"Inf","-Inf"] ``` - You can choose to represent them as null - keeping the vector numeric - but loosing information ```r > (toJSON(c(3.14, NA, NaN, 42, Inf, -Inf), na = "null")) ``` ``` [3.14,null,null,42,null,null] ``` --- ## Potential Issues: Converting back and forth - Note that there is no guaranteed one-to-one correspondence of R and JSON objects: - it will still be the encoded data - but ordering, class, etc. may differ ```r > (example <- slice_sample(starwars[1:6], n = 2)) ``` ``` # A tibble: 2 x 6 name height mass hair_color skin_color eye_color <chr> <int> <dbl> <chr> <chr> <chr> 1 Shmi Skywalker 163 NA black fair brown 2 Sly Moore 178 48 none pale white ``` ```r > fromJSON(toJSON(example[1:6])) ``` ``` name height hair_color skin_color eye_color mass 1 Shmi Skywalker 163 black fair brown NA 2 Sly Moore 178 none pale white 48 ``` --- ## Two more functions from the package: If you - for whatever reason - need it to be consistent, use `(un)serializeJSON` instead ```r > unserializeJSON(serializeJSON(example[1:5])) ``` ``` # A tibble: 2 x 5 name height mass hair_color skin_color * <chr> <int> <dbl> <chr> <chr> 1 Shmi Skywalker 163 NA black fair 2 Sly Moore 178 48 none pale ```
 This allows you to convert back and get the exact same structure back... --- ## Two more functions from the package: ...But it comes with a downside: The JSON structure has to be much harder to read (or transfer to other languages), to perfectly resemble the original... ```r > serializeJSON(example, pretty = TRUE) ``` ``` { "type": "list", "attributes": { "names": { "type": "character", "attributes": {}, "value": ["name", "height", "mass", "hair_color", "skin_color", "eye_color"] }, "row.names": { "type": "integer", "attributes": {}, "value": [1, 2] }, "class": { "type": "character", "attributes": {}, "value": ["tbl_df", "tbl", "data.frame"] } }, "value": [ { "type": "character", "attributes": {}, "value": ["Shmi Skywalker", "Sly Moore"] }, { "type": "integer", "attributes": {}, "value": [163, 178] }, { "type": "double", "attributes": {}, "value": ["NA", 48] }, { "type": "character", "attributes": {}, "value": ["black", "none"] }, { "type": "character", "attributes": {}, "value": ["fair", "pale"] }, { "type": "character", "attributes": {}, "value": ["brown", "white"] } ] } ``` ---
  You find more details, exercises, and sources in our practice materials

  See you in our workshop!


This was the motto for the very first SnowDays in 2004 where approximately 100 people rode the slopes of Obereggen. Since then more than 10 years past. While the event thrived and progressed from year to year many experiences where made on which the yearly expansion is based on. Meanwhile, our event attracts students from all over Europe to come to South Tyrol to take part at the famous Snowdays.
Even after all those Years the passion of the organisers, to offer the participants an unforgettable weekend in South Tyrol is still vast. Enthusiasm and teamwork are the leading traits which are driving the SCUB-Team (Sports Club University Bolzano), which over the last months has already started intensively with the organisation of the 14th edition of the Snowdays.
Our goal is to provide three unforgettable days of sport, joy and entertainment for every single participant. During the event students from different universities and countries get to know each other and enjoy together lots of different activities while exploring South Tyrol and the companies who are supporting the event.
Snowdays is the biggest winter sports event organised for students by students in Europe. From the 9th until the 11th of March SCUB organises sporting competitions, entertainment and parties in Bozen and surroundings.
The organising committee consists solely of volunteers, enthusiastic about sports, snow and mountains. Involved are students from the varying faculties of the UniBz, which is supporting the event.
Included in our package: all meals (breakfast, lunch, snacks, dinner), accommodation in student dorm or apartment, 2 ski passes, transport to the ski areas, 3 parties, "welcome box” containing the official t-shirt and many sponsors gadgets.
Developed with by Romeo Bellon


Postman Test Cases Generators
Paste your expected JSON response here
Generate test cases
Postman test cases


This article is the public disclosure of a series of resource exhaustion vulnerabilities investigated by a team of students consisting of…
oh wait i didn't read it completely
seems like hybrids arent affected
ComputerGenie 👴👴👴23-Jan-19 12:03 AM
depends on the hybrid, the attack, and the implimentation
$tefano.23-Jan-19 11:04 AM
any plans to add other big exchanges for KMD ? ( okex, digifinex, huobi, etc )
Volume market is low(edited)
ComputerGenie 👴👴👴23-Jan-19 12:09 PM
I must be old, I've never even heard of any of those (edited)
Cryptoon23-Jan-19 12:46 PM
what is digifinex?
PTYX23-Jan-19 12:53 PM
Kmd is on the best exchanges. Bittrex, Binance, Upbit, HitBTC, and Barterdex
Cryptoon23-Jan-19 01:10 PM
bitfinex is one of the larger ones we are not on yet, but hasnt got the best reputation
okex is mostly fake volume, same for huobi iirc
poloniex is oldschool name, but doesnt really have the volume it used to anymore
binance/bitpanda/bittrex are the best sources/fiat gateways for kmd tbh(edited)
ComputerGenie 👴👴👴23-Jan-19 01:13 PM
poloniex is oldschool name, but doesnt really have the volume it used to anymore
I'd love to be at a Circle board meeting and watch them explain why they think buying Polo is still a "good idea"
other than being "grandfathered" into certain things, I never understood why they would want it in the 1st place
LocoMB23-Jan-19 01:25 PM
droppping the Trollbox sounded their death knell (edited)
$tefano.23-Jan-19 01:27 PM
upbit €10.220
bittrex €37.686
bitpanda OMG .. fee very high
to move volumes okex and huobi are necessary
PTYX23-Jan-19 01:31 PM
So to increase kmda volume we need okex and huobi?
CryptoNinjaa23-Jan-19 01:31 PM
to increase wash trading yes
PTYX23-Jan-19 01:31 PM
Basically
CryptoNinjaa23-Jan-19 01:32 PM
Other coins with hi turnover are they really been purchased and taken off the exchange to use? or just for price speculatin g?
$tefano.23-Jan-19 01:32 PM
do have hear trading ?
CryptoNinjaa23-Jan-19 01:33 PM
someone could increase the kmd volume by using a trading bot to market make that is what keeps up most coin volumes not people robots
$tefano.23-Jan-19 01:34 PM
200K on trading volume daily and BNB has more than 66%
CryptoNinjaa23-Jan-19 01:35 PM
BNB has a real purpose for use on binance exchange so its expected
take XRP for example. What you see is mainly wash trading between bots. XRP has no use for people to buy and use.
What we need imo is is more eco systems projects to onboard all these bring attention naturally to komodo
$tefano.23-Jan-19 01:40 PM
attention is given by the trading in first step ..
big projects ( kmd, pirate, verus etc etc) and a big community but not volume(edited)
CryptoNinjaa23-Jan-19 01:42 PM
what im trying to say is. if you removed all the nonsense bot trading on the exchanges you would find that not many of bigger volume coins would actually have any volume
jl777c23-Jan-19 01:42 PM
what? you mean that 100% of a coins marketcap trading every week isnt organic trading?
CryptoNinjaa23-Jan-19 01:42 PM
Yes i was shocked too
jl777c23-Jan-19 01:43 PM
what is considered normal in crypto is just pretending that the massive manipulations are normal
CryptoNinjaa23-Jan-19 01:43 PM
Heres me thinking the unbanked are buying millions of $ worth of XRP a day
jl777c23-Jan-19 01:43 PM
a 1% per day volume is perfectly fine
if not on the high side
$tefano.23-Jan-19 01:50 PM
@CryptoNinjaa so do you think that 50 million of waves volumes is made by bot?
i hope to have 50 milion of bot on kmd!!(edited)
CryptoNinjaa23-Jan-19 01:51 PM
yes you do not need 50 mill to do it
jl777c23-Jan-19 01:51 PM
1 BTC at a time, back and forth
CryptoNinjaa23-Jan-19 01:51 PM
could be many bots also
The bots are not discovering prices they are there to turnover thats it
$tefano.23-Jan-19 01:52 PM
i do my own bot, I know how it works
CryptoNinjaa23-Jan-19 01:52 PM
then you understand how wash trading works
jl777c23-Jan-19 01:53 PM
it could be the 5% rewards acts to minimize exchange trading
cipi23-Jan-19 01:53 PM
btw, do you guys know some popular trading software that uses bots, so we can analyze the source code and see how the algorithm works? maybe we can trick the bots out
ComputerGenie 👴👴👴23-Jan-19 01:54 PM
Nov '17, 100% of the volume that drove up the price of UNIT by 3500x was a broken bot on topia
$tefano.23-Jan-19 01:54 PM
of course .. but having 50 mil against 200K it's better
CryptoNinjaa23-Jan-19 01:54 PM
becuase bigger number ?
200k of real buys would be better
1
$tefano.23-Jan-19 01:55 PM
investors want see numbers not whitepapers
jl777c23-Jan-19 01:55 PM
@$tefano. can we borrow $50 mil from you to make such markets?
why do you think we have millions to burn?
ComputerGenie 👴👴👴23-Jan-19 01:55 PM
investors want see numbers not whitepapers
Yes, and that's why the BTC bubble popped
CryptoNinjaa23-Jan-19 01:55 PM
hmm the last 4 years or crypto revolved alot around how a white paper looked
ComputerGenie 👴👴👴23-Jan-19 01:56 PM
pop goes the bubble because the bubble goes pop
jl777c23-Jan-19 01:57 PM
for investors I think by the time this bear market is over, they will appreciate all projects that are still alive and active
CryptoNinjaa23-Jan-19 01:57 PM
appreciate your feedback and thoughts @$tefano.. It is a good point to raise. but maybe towards the higher vol coins. like where are these coins going?(edited)
jl777c23-Jan-19 01:57 PM
XVG used to have a lot of volumes and probably still does now;
CryptoNinjaa23-Jan-19 01:58 PM
You could buy waves today. tons of volume . tomorrow bots switched off low liquidity then what?
jl777c23-Jan-19 01:58 PM
any news on waves today?
CryptoNinjaa23-Jan-19 01:58 PM
we expecting some lol ?
ComputerGenie 👴👴👴23-Jan-19 01:59 PM
I, personally, would rather have 0 "big money" investors and have it grow organically than have a gajillion dollars dumped into dogshit because investors looked at the ponzi scheme numbers and the bottom drops out because they have no long-term chance of return
jl777c23-Jan-19 01:59 PM
20%+ gain on big volumes for waves today
but couldnt find anything other than they were making some presentation in the recent days
CryptoNinjaa23-Jan-19 02:00 PM
Not sure have not heard anything. Rouge bot ?
jorian23-Jan-19 02:02 PM
waves is the future
can ben close this discord? it became obsolete
or was it ca333
sφldat23-Jan-19 02:10 PM
wts kmd -> waves
KomodoWorld23-Jan-19 02:11 PM
they had some interesting new features recently, but no special news today except a new wallet release
sφldat23-Jan-19 02:18 PM
this waves volume is weird..
CryptoNinjaa23-Jan-19 02:21 PM
lol
Is being 57th out of 2116 with like hardly any wash trading a bad thing?
LocoMB23-Jan-19 03:07 PM
wooot! I have been hodling my large-ish bag of WAVES since the ICO .. nice to see it floating up now
1
Privopunk23-Jan-19 03:10 PM
Waves mostly is fake volume though. Sometimes I wonder if Russians have blessed Waves & Link as projects.
New game on #Waves smart contracts is out today! It’s simple, it's decentralised, and you’ll need to be really patient to win: https://t.co/zoTEzOZcF7
#WavesPlatform #Blockchain #Crypto #Gaming $WAVES
CryptoNinjaa23-Jan-19 03:23 PM
Hang on 1 minute lol . what you make of this game
The last player to buy a ticket before the countdown hits zero will receive the entire amount held by the smart contract.
Ponzi game much? maybe looking into too much lol
ComputerGenie 👴👴👴23-Jan-19 03:26 PM
The last player to buy a ticket before the countdown hits zero will receive the entire amount held by the smart contract.
sounds like crypto trading in reverse
2
KomodoWorld23-Jan-19 03:27 PM
like Fomo 3D on ethereum
$tefano.23-Jan-19 04:09 PM
20 position .. bot or not bot
wirex card, games, new exchanges ( https://www.coinsuper.com with 130 MIL daily and 26 for volume))(edited)
do not get me wrong, i support Komodo since start, but I think new exchangers could increase our visibility
fake volume or not ..
1
KomodoWorld23-Jan-19 04:20 PM
there's not much that can be done to have Komodo on exchanges, its their decision. Certainly not worth to spend 100k for listing
$tefano.23-Jan-19 04:22 PM
indeed it's just to talk and to know future decisions(edited)
1
KomodoWorld23-Jan-19 04:23 PM
try to press them on socials, maybe they will consider if they see organic demand(edited)
$tefano.23-Jan-19 04:24 PM
@KomodoWorld you are Italian like me, in some Italian crypto groups people talk about Komodo and they have the same questions
KomodoWorld23-Jan-19 04:39 PM
unfortunately Komodo doesn't have VC backing or a Joseph Lubin billionaire. The aren't millions of funds available to list on more exchanges...
It must find its place by sheer tech superiority in a space that is 95% made of paid promotion or vaporware. In another year exchanges will beg to list Komodo
1
ComputerGenie 👴👴👴23-Jan-19 04:42 PM
In another year exchanges will beg to list Komodo
I wonder if that's true, mostly because I wonder if they will still be open in another year
D3b023-Jan-19 04:44 PM
do you have any idea how to attract people to invest in komodo?(edited)
CryptoNinjaa23-Jan-19 04:48 PM
I think most people stumble on komodo after hitting losses on other vapour ware. Security is a main selling point. Komodo is one of if not the most secure blockchain going. Freedom to build and not be tied to komodo is another plus.
Komodo is like a net it catches up all the useful tech and makes an eco system with it. majority of other projects create a box and close themselves off imo
2
SHossain23-Jan-19 04:50 PM
James once said, Komodo is a movie studio where anyone can produce a movie of their own. A lot of possibilities.
ComputerGenie 👴👴👴23-Jan-19 04:50 PM
do you have any idea how to attract people to invest in komodo?
imo, we need to attract more users and vendors, not necessarily more investors


https://github.com/R0bes/Terraform-Presentation
By Robin Schwendele
What we will see:
provider "azurerm" {
features {}
}
resource "azurerm_resource_group" "example" {
name = "demo1"
location = "westeurope"
}
resource "azurerm_public_ip" "example" {
name = "${azurerm_resource_group.example.name}-ip"
resource_group_name = azurerm_resource_group.example.name
location = azurerm_resource_group.example.location
allocation_method = "Static"
}
What we saw
What we will see:
After terraform apply via Azure CLI
az login
az iot hub device-identity create -n 'demo2-hub' -d 'demo2-device'
Custom Script in Terraform via local execution provisioner
resource "null_resource" "device_twin" {
provisioner "local-exec" {
when = create
interpreter = ["pwsh" , "-Command"]
command = az iot hub device-identity create -n 'demo2-hub' -d 'demo2-device'
}
}
Similar task to destroy
resource "null_resource" "device_twin" {
provisioner "local-exec" {
when = destroy
interpreter = ["pwsh" , "-Command"]
command = az iot hub device-identity delete -n 'demo2-hub' -d 'demo2-device'
}
}
And together
resource "null_resource" "device_twin" {
provisioner "local-exec" {
when = create
interpreter = ["pwsh" , "-Command"]
command = az iot hub device-identity create -n 'demo2-hub' -d 'demo2-device'
}
provisioner "local-exec" {
when = destroy
interpreter = ["pwsh" , "-Command"]
command = az iot hub device-identity delete -n 'demo2-hub' -d 'demo2-device'
}
}
Problem: Destroy time provisioner cannot access variables
variable "device_name" {}
resource "null_resource" "device_twin" {
provisioner "local-exec" {
when = create
interpreter = ["pwsh" , "-Command"]
command = az iot hub device-identity create -n 'demo2-hub' -d '${var.device_name}'
}
provisioner "local-exec" {
when = destroy
interpreter = ["pwsh" , "-Command"]
command = az iot hub device-identity delete -n 'demo2-hub' -d '${var.device_name}'
}
}
Solution: Triggers can retain data you need at destroy time
variable "device_name" {}
resource "null_resource" "device_twin" {
triggers = { name = var.device_name }
provisioner "local-exec" {
when = create
interpreter = ["pwsh" , "-Command"]
command = az iot hub device-identity create -n 'demo2-hub' -d '${self.triggers.name}'
}
provisioner "local-exec" {
when = destroy
interpreter = ["pwsh" , "-Command"]
command = az iot hub device-identity delete -n 'demo2-hub' -d '${self.triggers.name}'
}
}
variable "device_name" {}
resource "null_resource" "device_twin" {
triggers = {
hub = azurerm.iothub.my_hub.name
name = var.device_name
}
provisioner "local-exec" {
...
command = az iot hub device-identity create -n '${self.triggers.hub}' -d '${self.triggers.name}'
}
provisioner "local-exec" {
...
command = az iot hub device-identity delete -n '${self.triggers.hub}' -d '${self.triggers.name}'
}
}
What we saw
What we will see:
Current device twin resource (demo2)
variable "device_name" {}
provider "azurerm" {...}
resource "azurerm_resource_group" "demo3" {...}
resource "azurerm_iothub" "my_hub" {...}
resource "null_resource" "device_twin" {
triggers = {...}
provisioner "local-exec" { when = create ... }
provisioner "local-exec" { when = delete ... }
}
variable "device_name" {}
provider "azurerm" {...}
resource "azurerm_resource_group" "demo3" {...}
resource "azurerm_iothub" "my_hub" {...}
module "device_twin" {
source = "./Device"
name = "demo3-device"
iot_hub = "demo3-hub"
}
What we saw
terraform {
backend "local" { }
}
terraform {
backend "azurerm" {
resource_group_name = "demo4_state-storage"
storage_account_name = "demo4account"
container_name = "demo4container"
key = "demo4.tfstate"
}
}
What we will see:
Problem: One backend per configuration
Solution: Whole infrastructure as module
Initial approach
Changes applied


BitMEX Email Leak: Details of 23,000 Doxxed Emails Now Out
by Christine VasilevaWith a leak of at least 23,000 emails, the recent BitMEX email leak was much heavier than expected. An inadvertent message that included lists of emails made the rounds last week, creating a security break for the largest crypto derivatives exchange.
23,000+ Emails Leaked by BitMEX
Details of the BitMEX email leak were shared a few hours ago by well-known industry researcher Larry Cermak in one of his tweets. Using BitMEX is not entirely illegal, though it has been banned for US citizens.
BitMEX’s, perpetual BTC/USDT swap, is the most active contract linked to Bitcoin (BTC) trades. The exchange, however, operates in a legal gray area, and the leaked emails may point to breaks in excluding some regions. Trading on BitMex has also been seen as highly risky, akin to gambling.
The analysis of the leaks suggests most users were not highly aware of both internet and identity security. As much as half the emails may be linked to a name, only based on the actual composition of the address.
Some of the leaked emails were also compromised. This means BitMEX or even unrelated accounts can be at risk for exploitation. Taking over an exchange account could empty balances, or cause rogue trades. So far, none of this has affected the markets, though the attack coincided with a hack of the official BitMEX Twitter handle.
The emails, which contain several .gov and .edu extensions, can potentially lead the taxman to various persons. Dovey Wan, the co-founder of Primitive Crypto, commented that the emails may also be the basis for tax investigations.
Scammers, Phishers, and Taxman Attracted to Email Haul
While the emails have not been linked with transfers to BTC addresses, the new US IRS rules suggest that any BTC owner may have to report balances and be taxed either on capital gains or other forms of revenue.
BitMEX is still investigating the impact of the leaked emails, while telegram groups have been set to further spread the leak. Phishing scams or account thefts are possible with the easily discoverable information.
Unfortunately, BitMEX does not offer the option of an email ID change, and may require new KYC for all affected users.
What do you think about the latest BitMEX email leak? Share your thoughts in the comments section below!
Images via Bitcoinist Media Library, Twitter: @lawmaster, @DoveyWan, @BitMEXdotcom
The Rundown


Checkers’ Sixty60 grocery delivery service debuts in Cape Town, Sandton
by Andy WalkerCheckers on Monday, and just in time for Black Friday, announced its on-demand grocery delivery service that promises to deliver within an hour.
It’s powered by an app called Sixy60, through which users can order their food, track the status of their order, and follow the delivery in real time.
Think of its as Uber Eats for your groceries, except products listed cost the same as the products in stores. Delivery is also free. For now.
Checkers also only accepts card-based payments through Sixty60, so there’s no cash-on-delivery option available.
“The name Sixty60 captures the service’s main ambition: for customers to order groceries in sixty seconds and have them delivered in as little as sixty minutes,” said Neil Schreuder, Checkers’ chief of innovation and strategy.
While the app is still in its testing phase, it’s currently available to try out in limited areas across Sandton and Cape Town.
- For Cape Town: Durbanville, Willowbridge, Okavango Crossing, Rondebosch, Kloof Street and Sea Point.
- For Sandton: Melrose and Bryanston.
The app can be downloaded from the Google Play Store for Android devices, and the Apple App Store for iPhones.
Feature image: Shoprite Checkers


My name is Brandon Dullye and I am an enthusiastic, focused Full Stack Developer with a successful record of embracing new challenges and a passion for artful problem solutions. Driven to achieve goals through creative measures and always looking at the bigger picture. Excellent communication skills and resourceful team member. Utilizing the MERN stack and using creativity and persistence to overcome obstacles. I thrive in a fast pace work environments.
I am also an avid Gamer, Streamer, Producer, and HUGE San Antonio Spurs fan!


Created by 韩光川
tutor 薛亚婷
You can select from different transitions, like:
None -
Fade -
Slide -
Convex -
Concave -
Zoom
reveal.js comes with a few themes built in:
Black (default) -
White -
League -
Sky -
Beige -
Simple
Serif -
Blood -
Night -
Moon -
Solarized
网络舆情是社会舆论的一种表现形式，有效监测网络热点事件,有助于制定科学的决策。
数据处理和分析海量社交网络舆情数据大量应用Hadoop平台, 具有强大的分布式存储和计算能力,用于存储和处理海量数据
目前我国大多地方在对网络舆情进行监测时仍采取传统的人工方式，因此在对舆情信息的收集和分析研判时效率较低
Presentations look great on touch devices, like mobile phones and tablets. Simply swipe through your slides.
登录注册
地图浏览
日期切换
城市散列图
城市表显示
省份表显示
新闻源切换
You can select from different transitions, like:
None -
Fade -
Slide -
Convex -
Concave -
Zoom
reveal.js comes with a few themes built in:
Black (default) -
White -
League -
Sky -
Beige -
Simple
Serif -
Blood -
Night -
Moon -
Solarized
采集舆论数据、城市数据、省份数据。
#判断页尾
if "已经到底啦~"==browser.find_element_by_class_name('msg').text:
#定位时间
father=browser.find_elements_by_css_selector(".item.clearfix")
#删除无效时间
father_exc=browser.find_elements_by_class_name('dialog-list-wrap')
处理舆论数据，获取经纬度
#统一时间format
if(len(time.text)<9):
time_all.append(str(sysTime.localtime(sysTime.time()).tm_mon)+"月"+str(sysTime.localtime(sysTime.time()).tm_mday)+"日")
else:
time_all.append(time.text[:-5])
#获取经纬度
response=requests.get(url='http://api.map.baidu.com/geocoder',params=params,headers=headers)
lat=getjson(city).get("result").get("location").get("lat")
lng=getjson(city).get("result").get("location").get("lng")
数据的可视化展示
//获取城市名称，经纬度
//获取城市名称对应统计次数
结合可视化界面分析舆论时效性和影响范围
//日期切换
int indexNow = getIndex() - 1;
request.put("table", tableList.get(indexNow));
int indexNow = getIndex() + 1;
request.put("table", tableList.get(indexNow));
系统界面、功能、异常展示
import React, { useState } from 'react';
function Example() {
const [count, setCount] = useState(0);
return (

You clicked {count} times

<button onClick={() => setCount(count + 1)}>
Click me
</button>

);
}
Code syntax highlighting courtesy of highlight.js.
| Item | Value | Quantity |
|---|---|---|
| Apples | $1 | 7 |
| Lemonade | $2 | 18 |
| Bread | $3 | 2 |
These guys come in two forms, inline: The nice thing about standards is that there are so many to choose from
and block:
“For years there has been a theory that millions of monkeys typing at random on millions of typewriters would reproduce the entire works of Shakespeare. The Internet has proven this theory to be untrue.”
You can link between slides internally, like this.
There's a speaker view. It includes a timer, preview of the upcoming slide as well as your speaker notes.
Press the S key to try it out.
Presentations can be exported to PDF, here's an example:
Set data-state="something"
on a slide and "something"
will be added as a class to the document element when the slide is open.
Additionally custom events can be triggered on a per slide basis by binding to the data-state
name.
Reveal.addEventListener( 'customevent', function() {
console.log( '"customevent" has fired' );
} );
Press B or . on your keyboard to pause the presentation. This is helpful when you're on stage and want to take distracting slides off the screen.


https://gosecure.net/2019/02/20/abusing-unsafe-defaults-in-active-directory/
https://blog.netspi.com/exploiting-adidns/
There are quite a few articles about this now and the technique is used in krbrelayx among many other kill chains. Many attacks rely on a victim sending information to an attacker. One of the primary ways to achieve this is through DNS!
First, without implementing some router based wizardry, LLMNR and NBNS requests are contained within a single multicast or broadcast domain respectively. This can greatly limit the scope of a spoofing attack with regards to both the affected systems and potential privilege of the impacted sessions. Second, by default, Windows systems use the following priority list while attempting to resolve name resolution requests through network based protocols:
DNS
LLMNR
NBNS
Although not exploited directly as part of the attacks, DNS has a large impact on the effectiveness of LLMNR/NBNS spoofing due to controlling which requests fall down to LLMNR and NBNS. Basically, if a name request matches a record listed in DNS, a client won’t usually attempt to resolve the request through LLMNR and NBNS.
Why ADIDNS and not just LLMNR/NBNS?
The major advantage of ADIDNS spoofing over LLMNR/NBNS spoofing is the extended reach
the major disadvantage is the required AD access.
LLMNR and NBNS spoofing both continue to be effective year after year. My general recommendation, having worked with ADIDNS spoofing for a little while now, would be to start with LLMNR/NBNS spoofing and add in ADIDNS spoofing as needed
.
Tools!
I’ve released an updated version of Powermad which contains several functions for working with ADIDNS, including the functions shown in the post:
https://github.com/Kevin-Robertson/Powermad
I will be populating the Powermad wiki with step by step instructions:
https://github.com/Kevin-Robertson/Powermad/wiki
Also, if you are feeling brave, an ADIDNS spoofing capable version of Inveigh 1.4 can be found in the dev branch:
https://github.com/Kevin-Robertson/Inveigh/tree/dev