The document discusses internal domain-specific languages (DSLs), which allow programming languages to be customized through syntactic constructs to resemble other languages. Internal DSLs are implemented by leveraging features of host languages like method chaining for fluent interfaces, flexible syntax through macros and method missing, and reflection for mapping code to data models. Examples shown include using Ruby, Scala, and Clojure to define internal DSLs for web page templating, database queries, and domain entity definitions.
Airline reservation project using JAVA in NetBeans IDEHimanshiSingh71
This project is based on the database connectivity JDBC . In this application user can book airline flight . This is offline airline program in which the user can book and cancelled their flight and payment through credit and debit card .
User can take the information of different types of airline flight . In this application user can also see and take knowledge about the famous historical places without moving to another website .
This application is also secure from hacker.
Overall , this application is very much useful for users because they can do offline flight booking and it is secure application for booking flight and other purposes.
Python là ngôn ngữ lập trình đơn giản và đang càng này càng trở lên phổ biến. Bài giảng này cung cấp cách tiếp cận đơn giản dễ hiểu với python một cách dễ dàng nhất
Speaker: André Spiegel
Many applications require processes that load large amounts of data into MongoDB. It is easy to get these processes wrong, resulting in hours or days of loading time when it could be done in minutes. This talk identifies common mistakes and pitfalls and shows design patterns that can dramatically improve performance. The patterns introduced here can be used with any tool or programming language.
Airline reservation project using JAVA in NetBeans IDEHimanshiSingh71
This project is based on the database connectivity JDBC . In this application user can book airline flight . This is offline airline program in which the user can book and cancelled their flight and payment through credit and debit card .
User can take the information of different types of airline flight . In this application user can also see and take knowledge about the famous historical places without moving to another website .
This application is also secure from hacker.
Overall , this application is very much useful for users because they can do offline flight booking and it is secure application for booking flight and other purposes.
Python là ngôn ngữ lập trình đơn giản và đang càng này càng trở lên phổ biến. Bài giảng này cung cấp cách tiếp cận đơn giản dễ hiểu với python một cách dễ dàng nhất
Speaker: André Spiegel
Many applications require processes that load large amounts of data into MongoDB. It is easy to get these processes wrong, resulting in hours or days of loading time when it could be done in minutes. This talk identifies common mistakes and pitfalls and shows design patterns that can dramatically improve performance. The patterns introduced here can be used with any tool or programming language.
Groovy erfreut sich immer größerer Beliebtheit. Viele "grüne Wiese Projekte" werden damit und vor allem mit dem darauf aufsetzenden Grails Framework realisiert. Will man Groovy in einem bereits existierenden Java-Projekt verwenden bedeutet das nicht automatisch, dass das Projekt dazu grundlegend umgestellt werden muss. Insbesondere im Bereich der funktionalen Tests kann Groovy relativ problemlos integriert werden. Der Vortrag zeigt am Beispiel einer existierenden JSF-Anwendung wie diese mit Hilfe von Groovy und den Frameworks Spock und Geb automatisiert getestet werden kann.
Speaker: Charlie Swanson
Learn how MongoDB answers your queries from a query system engineer. If you've ever had a performance problem with a query but didn't know how to find the cause, or if you've ever needed to confirm that your shiny new index is being put to work, the explain command is an excellent place to start. MongoDB's explain system is a powerful tool for solving this type of problem, but can be intimidating and unwieldy to use. In this talk, we will discuss how the explain command works and break down its output into digestible pieces.
This Project was Created For My Diploma Course @ Esoft Metro Campus . I Think This Document Will Help You To Understand Behavior of DiTec Course.
Author: Kasun Madhusanka
* Obtained B Grade For This Project.
Do not direct copy form this project. This project was uploaded to enhance your IT knowledge.I think this project may be very helpful to understand procedure of C# project for DiTEC.
Author: Kasun Madhusanka
JDD2015: Where Test Doubles can lead you... - Sebastian Malaca PROIDEA
WHERE TEST DOUBLES CAN LEAD YOU...
"With great power comes great responsibility". And Test Double Patterns gives you a great power. Your life is easier, tests lighter and faster.
But someday this power can turn against you.
Each day we are more comfortable with using Test Double Patters. We are creating assumptions. We are mocking services. We are ending with well covered code and tests... that tell us nothing.
That's why it's so important to recognize warning signs. To know the pitfalls that are waiting for us. To know what to do in these situations.
Groovy erfreut sich immer größerer Beliebtheit. Viele "grüne Wiese Projekte" werden damit und vor allem mit dem darauf aufsetzenden Grails Framework realisiert. Will man Groovy in einem bereits existierenden Java-Projekt verwenden bedeutet das nicht automatisch, dass das Projekt dazu grundlegend umgestellt werden muss. Insbesondere im Bereich der funktionalen Tests kann Groovy relativ problemlos integriert werden. Der Vortrag zeigt am Beispiel einer existierenden JSF-Anwendung wie diese mit Hilfe von Groovy und den Frameworks Spock und Geb automatisiert getestet werden kann.
Speaker: Charlie Swanson
Learn how MongoDB answers your queries from a query system engineer. If you've ever had a performance problem with a query but didn't know how to find the cause, or if you've ever needed to confirm that your shiny new index is being put to work, the explain command is an excellent place to start. MongoDB's explain system is a powerful tool for solving this type of problem, but can be intimidating and unwieldy to use. In this talk, we will discuss how the explain command works and break down its output into digestible pieces.
This Project was Created For My Diploma Course @ Esoft Metro Campus . I Think This Document Will Help You To Understand Behavior of DiTec Course.
Author: Kasun Madhusanka
* Obtained B Grade For This Project.
Do not direct copy form this project. This project was uploaded to enhance your IT knowledge.I think this project may be very helpful to understand procedure of C# project for DiTEC.
Author: Kasun Madhusanka
JDD2015: Where Test Doubles can lead you... - Sebastian Malaca PROIDEA
WHERE TEST DOUBLES CAN LEAD YOU...
"With great power comes great responsibility". And Test Double Patterns gives you a great power. Your life is easier, tests lighter and faster.
But someday this power can turn against you.
Each day we are more comfortable with using Test Double Patters. We are creating assumptions. We are mocking services. We are ending with well covered code and tests... that tell us nothing.
That's why it's so important to recognize warning signs. To know the pitfalls that are waiting for us. To know what to do in these situations.
This is a java lab assignment. I have added the first part java re.pdffeetshoemart
This is a java lab assignment. I have added the first part \"java retail class\" at the bottom. I am
unsure how to read the txt file into an array from the retail class. The stock txt file has been
added also.
A beginning framework and inventory list has been provided to you to use your Retail Item Class
as an array. Develop a program to accomplish the following menu items that can be selected by
the end user. Discussion of what each menu item should do is provided below the menu item.
Modify your object class file as desired. Please append initials to files created. Use Select-Case
for menu choices and methods to perform those choices. Please make a selection: 1. Open
Inventory File (This should ask the user for the file name, open the file and load the data into the
object array). 2. Display All (This should show a table of all items and data) 3. Display Reorder
Only (This should show only the stock number, Description and current quantity for items
requiring reorder) 4. Find Stock number (Allows the user to enter part of the description and
displays all matching stock numbers and descriptions matching that - case insensitive, such as
“cubs” or “cubs”) 5. Display Stock number (Allows user to enter stock number and displays
record of item) 6. Add Quantity (Asks for stock number and quantity for units, adds it to current,
displays record results) 7. Subtract Quantity (Asks for stock number and quantity, subtracts,
displays results including if reorder is needed.) 8. Change Price (Asks for stick number, changes
price to provided value, display results). 9. New Item (Allows adding a new item, updates count.
Display record results). 10. Save Inventory File (asks user for file name, save all inventory to
that file in a format that can be read back.)
public class RetailItem{
private String description;
private int unitsOnHand;
private double price;
private int restock;
public void setDescription(String userDescription){
description=userDescription;
}
public void setUnitsOnHand(int userUnitsOnHand){
unitsOnHand=userUnitsOnHand;
}
public void setPrice(double userPrice){
price=userPrice;
}
public String getDescription(){
return description;
}
public int getUnitsOnHand(){
return unitsOnHand;
}
public double getPrice(){
return price;
}
public double getTotal(){
int total = unitsOnHand=(int) price;
return total;
}
public boolean getRestock(){
return false;
}
public RetailItem(String descriptionGiven, int unitsOnHandGiven, double priceGiven, int
restockGiven){
description=descriptionGiven;
unitsOnHand=unitsOnHandGiven;
price=priceGiven;
restock=restockGiven;
}
}
Solution
public class RetailItem{
private int stocknumber;
private String description;
private int unitsOnHand;
private double price;
private int restock;
public void setDescription(String userDescription){
description=userDescription;
}
public int getStocknumber() {
return stocknumber;
}
public void setStocknumber(int stocknumber) {
this.stocknumber = stocknumber;
}
public void setUnitsOnHand(in.
Code smells são um dos maiores vilões nos nosso código, onde muita vezes dificultam o entendimento do código, proporcionam armadilhas nas implementações e frequentemente ocasionam bugs em produção, com isso, essa apresentação tem como objetivo mostrar os benefícios de produzir códigos limpos através de boas práticas como SOLID, clean code, entre outras, que promovem hábitos de desenvolvimento para não cairmos nessas armadilhas causadas pelos code smells.
lab08/build.bat
@echo off
cls
set DRIVE_LETTER=%1:
set PATH=%DRIVE_LETTER%\MinGW\bin;%DRIVE_LETTER%\MinGW\msys\1.0\bin;%DRIVE_LETTER%\MinGW\gtkmm3\bin;%DRIVE_LETTER%\MinGW\gtk\bin;c:\Windows;c:\Windows\system32
set PROJECT_PATH=.
make DRIVE_LETTER="%DRIVE_LETTER%" PROJECT_DIR="%PROJECT_PATH%"
lab08/CSC2110/CD.h
#if !defined CD_H
#define CD_H
#include "Song.h"
#include "Text.h"
using CSC2110::String;
#include "ListArray.h"
using CSC2110::ListArray;
namespace CSC2110
{
class CD
{
private:
String* artist;
String* title;
int year;
int rating;
int num_tracks;
ListArray<Song>* songs;
public:
CD(String* artist, String* title, int year, int rating, int num_tracks);
virtual ~CD();
String* getKey();
void addSong(String* title, String* length);
void displayCD();
static ListArray<CD>* readCDs(const char* file_name);
static int compare_items(CD* one, CD* two);
static int compare_keys(String* sk, CD* cd);
static char getRadixChar(CD* cd, int index); //1-based
};
}
#endif
lab08/CSC2110/Double.h
#if !defined (DOUBLE_H)
#define DOUBLE_H
namespace CSC2110
{
class Double
{
private:
double value;
public:
Double(double val);
~Double();
double getValue();
};
}
#endif
lab08/CSC2110/HighPerformanceCounter.h
#if !defined (HIGHPERFORMANCECOUNTER_H)
#define HIGHPERFORMANCECOUNTER_H
namespace CSC2110
{
class HighPerformanceCounter
{
private:
double micro_spt; //micro_seconds per tick
HighPerformanceCounter();
static HighPerformanceCounter* hpc;
static int getTicksPerSecond();
public:
virtual ~HighPerformanceCounter();
static HighPerformanceCounter* getHighPerformanceCounter();
int getCurrentTimeInTicks();
double getTimeDifferenceInMicroSeconds(int start_time, int end_time);
};
}
#endif
lab08/CSC2110/Integer.h
#if !defined (INTEGER_H)
#define INTEGER_H
namespace CSC2110
{
class Integer
{
private:
int value;
public:
Integer(int val);
virtual ~Integer();
int getValue();
};
}
#endif
lab08/CSC2110/Keyboard.h
#if !defined KEYBOARD_H
#define KEYBOARD_H
#include "Text.h"
using CSC2110::String;
#include <string>
using namespace std;
namespace CSC2110
{
class Keyboard
{
private:
Keyboard();
public:
virtual ~Keyboard();
static Keyboard* getKeyboard();
//pre: the string (character literal) that will prompt the user for input
//post: the input read from the keyboard interpreted as an int is returned
int readInt(string prompt);
int getValidatedInt(string prompt, int min, int max);
//pre: the string that will prompt the user for input
//post: the input read from the keyboard interpreted as a double is returned
double readDouble(string prompt);
double getValidatedDouble(string prom ...
Avoiding JavaScript Pitfalls Through Tree Huggingzefhemel
Slides of the talk given at MeetJS Summit (http://summit.meetjs.pl). The TreeHugger playground can be found here: http://ajaxorg.github.com/treehugger/test.html
Intermediate languages are used in compiler construction to simplify retargeting compilers to multiple machine architectures. In the implementation of \emph{domain-specific languages} (DSLs), compilers typically generate high-level source code, rather than low-level machine instructions. DSL compilers target a software platform, i.e. a programming language with a set of libraries, deployable on one or more operating systems. DSLs enable targeting \emph{multiple} software platforms if its abstractions are platform independent. While transformations from DSL to each targeted platform are often conceptually very similar, there is little reuse between transformations due to syntactic and API differences of the target platforms, making supporting multiple platforms expensive. In this paper, we discuss the design and implementation of PIL, a Platform Independent Language, an intermediate language providing a layer of abstraction between DSL and target platform code, abstracting from syntactic and API differences between platforms, thereby removing the need for platform-specific transformations. We discuss the use of PIL in an implemementation of WebDSL, a DSL for building web applications.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
2. Internal DSLs are particular ways of
using a host language to give the host
language the feel of a particular
language.
Martin Fowler
Tuesday, May 18, 2010
3. Internal DSLs are particular ways of
abusing a host language to give the host
language the feel of a particular
language.
Martin Fowler
Tuesday, May 18, 2010
7. Order o = new Order();
Product p1 = new Product(1,Product.find(“Billy”));
o.addProduct(p1);
Product p2 = new Product(2,Product.find(”Janso"));
o.addProduct(p2);
Product p3 = new Product(4,Product.find(“Traby"));
o.addProduct(p3);
o.setPriorityRush(true);
customer.addOrder(o);
http://www.st.ewi.tudelft.nl/~bouwers/main/slides/2008jspring.pdf
Tuesday, May 18, 2010
42. class Person
def self.find(key, value)
puts "You want results from #{key} with a value of #{value}"
end
end
Person.find('name', 'Zef')
Tuesday, May 18, 2010
43. class Person
def self.find(key, value)
puts "You want results from #{key} with a value of #{value}"
end
def self.method_missing(id, *args)
if id.id2name =~ /find_by_(.+)/
return self.find(Regexp.last_match(1), args[0])
else
raise NoMethodError
end
end
end
Person.find_by_name('Zef')
Tuesday, May 18, 2010
65. (if (= n 10)
(print "It was ten!”)
nil)
Tuesday, May 18, 2010
66. (when (= n 10)
(print "It was ten!”))
Tuesday, May 18, 2010
67. (defn when [c ifTrue]
(if c
ifTrue
nil))
Tuesday, May 18, 2010
68. (when (= n 10)
(print "It was ten!”))
Tuesday, May 18, 2010
69. (defmacro when [c ifTrue]
(list 'if c ifTrue 'nil))
Tuesday, May 18, 2010
70. (defmacro when [c ifTrue]
`(if ~c
~ifTrue
nil))
Tuesday, May 18, 2010
71. (when (= n 10)
(print "It was ten!”))
(if (= n 10)
(print "It was ten!”)
nil)
Tuesday, May 18, 2010
72. (when (= n 10)
(print "It was ten!”))
(if (= n 10)
(print "It was ten!”)
nil)
Tuesday, May 18, 2010
73. (loop for i in *random*
counting (evenp i) into evens
counting (oddp i) into odds
summing i into total
maximizing i into max
minimizing i into min
finally (return (list min max total evens odds)))
Tuesday, May 18, 2010
74. (defent User
[:username :string {:unique true}]
[:openid :string]
[:email :email]
[:points :int])
http://github.com/zefhemel/adia
Tuesday, May 18, 2010
79. <h1>Hello, Rails!</h1>
<%= link_to "My Blog", post_path %>
http://zef.me/2308/when-rails-fails
Tuesday, May 18, 2010
80. <h1>Hello, Rails!</h1>
<%= link_to "My Blog", post_path %>
post_url failed to generate from
{:controller=>"posts", :action=>"show"} – you may have ambiguous
routes, or you may need to supply additional parameters for this
route. content_url has the following required parameters:
["posts", :id] – are they all satisfied?
http://zef.me/2308/when-rails-fails
Tuesday, May 18, 2010
81. <%= link_to 'Destroy', post, :confrm => 'Are you sure?', :method => :delete %>
Tuesday, May 18, 2010
82. <%= link_to 'Destroy', post, :confrm => 'Are you sure?', :method => :delete %>
Tuesday, May 18, 2010
83. class Post < ActiveRecord::Base
validates_presence_of :nam
end
Tuesday, May 18, 2010
84. class Post < ActiveRecord::Base
validates_presence_of :nam
end
Tuesday, May 18, 2010
94. + -
quick development lack of static checking
built on existing errors hard to trace
platform back to origin
existing community bad error messages
limited freedom in
syntax
Tuesday, May 18, 2010