MacRuby is a new implementation of the Ruby programming language powered by LLVM and built on top of CoreFoundation. It provides a fast and beautiful way for Cocoa developers to use Ruby while having full access to and integration with the Cocoa frameworks. While still in development, MacRuby aims to be a robust alternative to Objective-C that addresses limitations like code reuse and safety while maintaining compatibility.
This document discusses 3 use cases for Grand Central Dispatch (GCD): 1) Using GCD to move OpenGL rendering off the main thread to allow for smooth scrolling in a UIScrollView, 2) Using GCD to asynchronously load and display images in table view cells for smooth scrolling, and 3) Using GCD to continuously update an attributed string in a label to prevent stuttering of the main loop.
Day 1 of the training covers introductory C++ concepts like object-oriented programming, compilers, IDEs, classes, objects, and procedural programming concepts. Day 2 covers more advanced class concepts like constructors, destructors, static members, returning objects, and arrays of objects. Day 3 covers function and operator overloading.
This document provides a summary of key C++ concepts for an online certification course from the Global Open University, including pointers, arrays, parameter passing, classes, constructors/destructors, inheritance, virtual functions, and coding tips. It includes code examples and explanations for working with pointers, arrays, strings, parameter passing, classes, inheritance, polymorphism, and best practices for avoiding errors. The full course material can be accessed online at the provided URL.
A basic introduction to open cv for image processingChu Lam
This document provides an introduction to OpenCV, an open source computer vision and machine learning software library. It outlines the image data structure in OpenCV, basic image processing operations like thresholding, edge detection and morphological operations. It also covers working with videos, capturing frames and releasing the video source. Finally, it provides references and information about the author and his research interests in computer vision.
PVS-Studio team experience: checking various open source projects, or mistake...Andrey Karpov
To let the world know about our product, we check open-source projects. By the moment we have checked 245 projects. A side effect: we found 9574 errors and notified the authors about them.
This document contains information about Raphael Marques, including his name, academic program, email address, and website. It also contains code snippets and instructions for setting up a multiplayer racing game using a client-server model over a network. The code defines classes for tracks, cars, checkpoints, and sockets for sending car data between clients and servers. Buttons are included for switching between local and networked play.
This document discusses 3 use cases for Grand Central Dispatch (GCD): 1) Using GCD to move OpenGL rendering off the main thread to allow for smooth scrolling in a UIScrollView, 2) Using GCD to asynchronously load and display images in table view cells for smooth scrolling, and 3) Using GCD to continuously update an attributed string in a label to prevent stuttering of the main loop.
Day 1 of the training covers introductory C++ concepts like object-oriented programming, compilers, IDEs, classes, objects, and procedural programming concepts. Day 2 covers more advanced class concepts like constructors, destructors, static members, returning objects, and arrays of objects. Day 3 covers function and operator overloading.
This document provides a summary of key C++ concepts for an online certification course from the Global Open University, including pointers, arrays, parameter passing, classes, constructors/destructors, inheritance, virtual functions, and coding tips. It includes code examples and explanations for working with pointers, arrays, strings, parameter passing, classes, inheritance, polymorphism, and best practices for avoiding errors. The full course material can be accessed online at the provided URL.
A basic introduction to open cv for image processingChu Lam
This document provides an introduction to OpenCV, an open source computer vision and machine learning software library. It outlines the image data structure in OpenCV, basic image processing operations like thresholding, edge detection and morphological operations. It also covers working with videos, capturing frames and releasing the video source. Finally, it provides references and information about the author and his research interests in computer vision.
PVS-Studio team experience: checking various open source projects, or mistake...Andrey Karpov
To let the world know about our product, we check open-source projects. By the moment we have checked 245 projects. A side effect: we found 9574 errors and notified the authors about them.
This document contains information about Raphael Marques, including his name, academic program, email address, and website. It also contains code snippets and instructions for setting up a multiplayer racing game using a client-server model over a network. The code defines classes for tracks, cars, checkpoints, and sockets for sending car data between clients and servers. Buttons are included for switching between local and networked play.
This document discusses lambda expressions in C++. It begins with a brief introduction to lambdas, noting that they are unnamed functions that can access enclosing scopes and have an unspecified type. It then covers lambda syntax including capture lists, arguments, return types, and invocations. Examples are provided to demonstrate capturing values by copy or reference. Advantages of using lambdas like code compacting and algorithm specialization are presented. The document also discusses passing lambdas using std::function and templates. It concludes by asking for additional use cases and any questions.
OpenCV is an open source computer vision library that can be used for image processing and computer vision. It contains over 500 functions and supports Windows, Linux, and MacOS. The OpenCV library consists of three main modules: CV for computer vision algorithms, HighGUI for GUI and image/video input and output, and CXCore for basic data structures. To use OpenCV, developers need a C/C++ compiler like GCC and dependencies like CMake, Git, and Python. OpenCV can then be installed from source by cloning the GitHub repository, configuring with CMake, and building and installing with Make. Useful OpenCV functions and more information sources are also provided.
A Speculative Technique for Auto-Memoization Processor with MultithreadingMatsuo and Tsumura lab.
Yushi KAMIYA, Tomoaki TSUMURA, Hiroshi MATSUO, Yasuhiko NAKASHIMA:
"A Speculative Technique for Auto-Memoization Processor with Multithreading"(発表資料)
Proc. 10th Intl. Conf. on Parallel and Distributed Computing, Applications and Technologies (PDCAT'09), Higashi-Hiroshima, Japan, pp.160-166 (Dec. 2009)
TVM uses Verilator and DPI to connect Verilog/Chisel accelerator models written in SystemVerilog/Chisel to Python code. It initializes the hardware model and controls simulation using methods like SimLaunch, SimWait, SimResume. The Python code loads the accelerator module, allocates memory, runs the accelerator by calling driver functions that interface with the DPI to initialize, launch and wait for completion of the accelerator. This allows accelerators developed in Verilog/Chisel to be tested from Python.
This document provides an overview of JavaFX and its capabilities for creating rich user interfaces. It discusses that JavaFX offers developers an attractive combination of cross-platform support, powerful features, and high performance. JavaFX allows creating interfaces for desktop, browser, and mobile applications using the same codebase and tools.
The python interpreter converts programs to bytecodes before beginning execution. Execution itself consist of looping over these bytecodes and performing specific operations over each one. This talk gives a very brief overview of the main classes of bytecodes.
This presentation was given as a lightning talk at the Boston Python Meetup group on July 24th, 2012.
Our favorite language is now powering everything from event-driven servers to robots to Git clients to 3D games. The JavaScript package ecosystem has quickly outpaced past that of most other languages, allowing our vibrant community to showcase their talent. The front-end framework war has been taken to the next level, with heavy-hitters like Ember and Angular ushering in the new generation of long-lived, component-based web apps. The extensible web movement, spearheaded by the newly-reformed W3C Technical Architecture Group, has promised to place JavaScript squarely at the foundation of the web platform. Now, the language improvements of ES6 are slowly but surely making their way into the mainstream— witness the recent interest in using generators for async programming. And all the while, whispers of ES7 features are starting to circulate…
JavaScript has grown up. Now it's time to see how far it can go.
The document contains code snippets demonstrating various Java programming concepts:
1. It includes code examples to demonstrate bitwise operators, arithmetic operators, conditional operators, constructor overloading, and method overloading in Java.
2. Further code examples showcase prefix/postfix increment/decrement operators, relational operators, the super keyword, and pattern printing in Java.
3. The document also contains code for applets demonstrating buttons, checkboxes, choice lists, labels, lists, banner movement, graphics, and text fields.
4. Additional code shows examples of multithreading, the Scanner class, and text fields and buttons in Swing.
The document provides a collection of code snippets that implement different
This contains all the slides used in Silicon Valley Code Camp presentation on Sunday Oct 4, 10:45 session on "Amazing new features in JavaScript". At the end ut also includes the last year presentation covering ES 5
The document describes an implementation of the simulated annealing algorithm to solve the traveling salesman problem. It defines a City class to represent locations with name, coordinates, and derived Metro class to add remarks. It includes functions to calculate distance between cities, total route distance, and acceptance probability for simulated annealing. The main function gets user input for cities, runs simulated annealing to optimize the route, and outputs results.
The openFrameworks utils documentation provides information on various utility functions for date/time, lists, strings, threading, system tools, noise generation, screenshots, remote loading, and logging, allowing developers to easily access common operations like sorting/randomizing lists, splitting/joining strings, loading URLs asynchronously, and logging messages.
The document contains code snippets demonstrating the use of sequences in JavaFX. It shows how to create and initialize sequences of different types, perform operations on sequences like accessing elements, reversing, slicing, and modifying sequences by inserting, deleting, and replacing elements. It also demonstrates using sequences in for-loops and filters.
We all know, or should know, about SOLID. The question is, do we write C++ according to the SOLID principles?
https://platis.solutions/blog/2020/06/22/how-to-write-solid-cpp/
The document discusses various techniques for improving OpenGL application performance, including using vertex buffer objects (VBOs) and vertex array objects (VAOs) to store vertex data in graphics memory. It provides an example of creating a cube using VBOs and VAOs to initialize vertex position and color data and load it into a VBO. Display lists are described as allowing geometry to be defined once and executed multiple times to improve performance for redrawing the same geometry. Frustum culling and scissoring are introduced as clipping techniques. General memory management techniques like avoiding frequent memory allocations in loops are also covered.
The document discusses Automatic Feedback-Directed Optimization (AutoFDO) which uses profile feedback to optimize programs at compile time. It provides an example of using the perf tool to profile a bubble sort program written in C, and then using the Autofdo tools to process the profile data and compile the program with profile-guided optimization flags to improve performance. AutoFDO has been deployed in various projects like CPython, Firefox, Google datacenters, Chrome, and Clearlinux to improve performance by 5-10+% on average. Additional resources on AutoFDO are provided.
Exploring Color Spaces with Gesture Tracking and Smart Bulbs (Distill 2014)Daniel Luxemburg
The document discusses exploring different color spaces like RGB, HSL, and HSV by tracking hand gestures with a Leap Motion controller and controlling LIFX smart bulbs. Code examples are provided in Ruby and JavaScript to discover LIFX bulbs, map hand position data to color values, and set the bulb colors. The goal is to enable new ways of interacting with technology through gesture control and different representations of color.
Translating Classic Arcade Games to JavaScriptnorbert_kehrer
This document discusses translating classic arcade games like Asteroids from the 6502 processor to JavaScript. It begins by explaining emulation versus recompilation approaches. It then describes translating the 6502 assembly code to JavaScript by representing registers as variables and memory as arrays. Challenges like conditional branches are addressed. Optimization techniques like redundant flag calculation elimination are discussed, linking the translation to compiler theory topics like liveness analysis. The goal is a browser-playable version of Asteroids that demonstrates translating a real-world 6502 application to JavaScript.
New and delete are a thing of the past, with the new features in C++14 and beyond (such as smart pointers and move semantics) memory management is easier and safer. Learn how to use the new constructs of C++14 and beyond to create, move, and free objects in a safer and more efficient manner.
This document discusses connecting an Arduino Micro to an XBee module for wireless serial communication. It describes sending accelerometer data from the Arduino over serial using a comma separated value format of "id,x,y,z". It also discusses receiving this data in openFrameworks by reading from the serial port byte by byte and parsing the values. The values are then rescaled and drawn to the screen based on their range of 0-1023 mapping to the window width.
This document contains announcements for an upcoming church event including a Sunday morning prayer time, an international workers prayer request, a coupon exchange, mission fest in October-November, a kids club meeting, a life group study on who God is, an outreach meeting, and a brief congregational meeting to elect a nominating committee.
Eilidh MacDonald completed a four-week internship at Cerno Limited, an organizational psychology practice that specializes in leadership assessment and development. During her internship, Eilidh gained experience in interpreting psychological assessments, writing reports, administering assessment centers, analyzing 360-degree feedback tools, and more. She exceeded expectations with her ability to quickly understand tasks, initiative, work independently, and integrate into the team. Feedback from psychologists praised Eilidh's poise, confidence, initiative, organization, and ability to grasp requirements of different tasks. Cerno's director believes Eilidh will be an asset to any future employer.
This document discusses lambda expressions in C++. It begins with a brief introduction to lambdas, noting that they are unnamed functions that can access enclosing scopes and have an unspecified type. It then covers lambda syntax including capture lists, arguments, return types, and invocations. Examples are provided to demonstrate capturing values by copy or reference. Advantages of using lambdas like code compacting and algorithm specialization are presented. The document also discusses passing lambdas using std::function and templates. It concludes by asking for additional use cases and any questions.
OpenCV is an open source computer vision library that can be used for image processing and computer vision. It contains over 500 functions and supports Windows, Linux, and MacOS. The OpenCV library consists of three main modules: CV for computer vision algorithms, HighGUI for GUI and image/video input and output, and CXCore for basic data structures. To use OpenCV, developers need a C/C++ compiler like GCC and dependencies like CMake, Git, and Python. OpenCV can then be installed from source by cloning the GitHub repository, configuring with CMake, and building and installing with Make. Useful OpenCV functions and more information sources are also provided.
A Speculative Technique for Auto-Memoization Processor with MultithreadingMatsuo and Tsumura lab.
Yushi KAMIYA, Tomoaki TSUMURA, Hiroshi MATSUO, Yasuhiko NAKASHIMA:
"A Speculative Technique for Auto-Memoization Processor with Multithreading"(発表資料)
Proc. 10th Intl. Conf. on Parallel and Distributed Computing, Applications and Technologies (PDCAT'09), Higashi-Hiroshima, Japan, pp.160-166 (Dec. 2009)
TVM uses Verilator and DPI to connect Verilog/Chisel accelerator models written in SystemVerilog/Chisel to Python code. It initializes the hardware model and controls simulation using methods like SimLaunch, SimWait, SimResume. The Python code loads the accelerator module, allocates memory, runs the accelerator by calling driver functions that interface with the DPI to initialize, launch and wait for completion of the accelerator. This allows accelerators developed in Verilog/Chisel to be tested from Python.
This document provides an overview of JavaFX and its capabilities for creating rich user interfaces. It discusses that JavaFX offers developers an attractive combination of cross-platform support, powerful features, and high performance. JavaFX allows creating interfaces for desktop, browser, and mobile applications using the same codebase and tools.
The python interpreter converts programs to bytecodes before beginning execution. Execution itself consist of looping over these bytecodes and performing specific operations over each one. This talk gives a very brief overview of the main classes of bytecodes.
This presentation was given as a lightning talk at the Boston Python Meetup group on July 24th, 2012.
Our favorite language is now powering everything from event-driven servers to robots to Git clients to 3D games. The JavaScript package ecosystem has quickly outpaced past that of most other languages, allowing our vibrant community to showcase their talent. The front-end framework war has been taken to the next level, with heavy-hitters like Ember and Angular ushering in the new generation of long-lived, component-based web apps. The extensible web movement, spearheaded by the newly-reformed W3C Technical Architecture Group, has promised to place JavaScript squarely at the foundation of the web platform. Now, the language improvements of ES6 are slowly but surely making their way into the mainstream— witness the recent interest in using generators for async programming. And all the while, whispers of ES7 features are starting to circulate…
JavaScript has grown up. Now it's time to see how far it can go.
The document contains code snippets demonstrating various Java programming concepts:
1. It includes code examples to demonstrate bitwise operators, arithmetic operators, conditional operators, constructor overloading, and method overloading in Java.
2. Further code examples showcase prefix/postfix increment/decrement operators, relational operators, the super keyword, and pattern printing in Java.
3. The document also contains code for applets demonstrating buttons, checkboxes, choice lists, labels, lists, banner movement, graphics, and text fields.
4. Additional code shows examples of multithreading, the Scanner class, and text fields and buttons in Swing.
The document provides a collection of code snippets that implement different
This contains all the slides used in Silicon Valley Code Camp presentation on Sunday Oct 4, 10:45 session on "Amazing new features in JavaScript". At the end ut also includes the last year presentation covering ES 5
The document describes an implementation of the simulated annealing algorithm to solve the traveling salesman problem. It defines a City class to represent locations with name, coordinates, and derived Metro class to add remarks. It includes functions to calculate distance between cities, total route distance, and acceptance probability for simulated annealing. The main function gets user input for cities, runs simulated annealing to optimize the route, and outputs results.
The openFrameworks utils documentation provides information on various utility functions for date/time, lists, strings, threading, system tools, noise generation, screenshots, remote loading, and logging, allowing developers to easily access common operations like sorting/randomizing lists, splitting/joining strings, loading URLs asynchronously, and logging messages.
The document contains code snippets demonstrating the use of sequences in JavaFX. It shows how to create and initialize sequences of different types, perform operations on sequences like accessing elements, reversing, slicing, and modifying sequences by inserting, deleting, and replacing elements. It also demonstrates using sequences in for-loops and filters.
We all know, or should know, about SOLID. The question is, do we write C++ according to the SOLID principles?
https://platis.solutions/blog/2020/06/22/how-to-write-solid-cpp/
The document discusses various techniques for improving OpenGL application performance, including using vertex buffer objects (VBOs) and vertex array objects (VAOs) to store vertex data in graphics memory. It provides an example of creating a cube using VBOs and VAOs to initialize vertex position and color data and load it into a VBO. Display lists are described as allowing geometry to be defined once and executed multiple times to improve performance for redrawing the same geometry. Frustum culling and scissoring are introduced as clipping techniques. General memory management techniques like avoiding frequent memory allocations in loops are also covered.
The document discusses Automatic Feedback-Directed Optimization (AutoFDO) which uses profile feedback to optimize programs at compile time. It provides an example of using the perf tool to profile a bubble sort program written in C, and then using the Autofdo tools to process the profile data and compile the program with profile-guided optimization flags to improve performance. AutoFDO has been deployed in various projects like CPython, Firefox, Google datacenters, Chrome, and Clearlinux to improve performance by 5-10+% on average. Additional resources on AutoFDO are provided.
Exploring Color Spaces with Gesture Tracking and Smart Bulbs (Distill 2014)Daniel Luxemburg
The document discusses exploring different color spaces like RGB, HSL, and HSV by tracking hand gestures with a Leap Motion controller and controlling LIFX smart bulbs. Code examples are provided in Ruby and JavaScript to discover LIFX bulbs, map hand position data to color values, and set the bulb colors. The goal is to enable new ways of interacting with technology through gesture control and different representations of color.
Translating Classic Arcade Games to JavaScriptnorbert_kehrer
This document discusses translating classic arcade games like Asteroids from the 6502 processor to JavaScript. It begins by explaining emulation versus recompilation approaches. It then describes translating the 6502 assembly code to JavaScript by representing registers as variables and memory as arrays. Challenges like conditional branches are addressed. Optimization techniques like redundant flag calculation elimination are discussed, linking the translation to compiler theory topics like liveness analysis. The goal is a browser-playable version of Asteroids that demonstrates translating a real-world 6502 application to JavaScript.
New and delete are a thing of the past, with the new features in C++14 and beyond (such as smart pointers and move semantics) memory management is easier and safer. Learn how to use the new constructs of C++14 and beyond to create, move, and free objects in a safer and more efficient manner.
This document discusses connecting an Arduino Micro to an XBee module for wireless serial communication. It describes sending accelerometer data from the Arduino over serial using a comma separated value format of "id,x,y,z". It also discusses receiving this data in openFrameworks by reading from the serial port byte by byte and parsing the values. The values are then rescaled and drawn to the screen based on their range of 0-1023 mapping to the window width.
This document contains announcements for an upcoming church event including a Sunday morning prayer time, an international workers prayer request, a coupon exchange, mission fest in October-November, a kids club meeting, a life group study on who God is, an outreach meeting, and a brief congregational meeting to elect a nominating committee.
Eilidh MacDonald completed a four-week internship at Cerno Limited, an organizational psychology practice that specializes in leadership assessment and development. During her internship, Eilidh gained experience in interpreting psychological assessments, writing reports, administering assessment centers, analyzing 360-degree feedback tools, and more. She exceeded expectations with her ability to quickly understand tasks, initiative, work independently, and integrate into the team. Feedback from psychologists praised Eilidh's poise, confidence, initiative, organization, and ability to grasp requirements of different tasks. Cerno's director believes Eilidh will be an asset to any future employer.
In 1954 it was well recognized by those in positions of authority that it was only a matter of time, only a few decades, before the general public would be able to grasp and upset the cradle of power, for the very elements of the new silent-weapon technology were as accessible for a public utopia as they were for providing a private utopia.
The issue of primary concern, that of dominance, revolved around the subject of the energy sciences.
Energy is recognized as the key to all activity on earth. Natural science is the study of the sources and control of natural energy, and social science, theoretically expressed as economics, is the study of the sources and control of social energy. Both are bookkeeping systems: mathematics. Therefore, mathematics is the primary energy science. And the bookkeeper can be king if the public can be kept ignorant of the methodology of the
bookkeeping.
Third part nations - S-CCO leaked document 1Marc Manthey
In the case of Germany, France, and others, they are both partners and targets and leaders like German Chancellor Angela Merkel is well aware that the German intelligence agencies assist NSA in spying on Germans and others in the same manner as the UK, Canada, Australia, and New Zealand, the so-called "Five Eyes [FVEY]" English-speaking club of signals intelligence partners.
For the people that STILL not believe this is the ORIGINAL document from the http://dtic.mil website via archive.org http://web.archive.org/web/20060512051411/http://www.dtic.mil/ndia/2001testing/bushnell.pdf
Top Secret National Reconnaissance Office declassification guidelineMarc Manthey
Top Secret National Reconnaissance Office declassification guideline, refers to Signals Intelligence (SIGINT) Exchange descriptors. I explained to The Observer that code words found on Page 9 of the document like DIKTER and SETTEE, stood for Third Party SIGINT exchanges with Norway and the Republic of Korea, respectively. I also impressed on The Observer that these agreements, like the Second Party arrangements, are truly one-way streets, whereby NSA grabs all of the SIGINT from partner countries with the partners, especially the Third and Fourth Parties -- the latter include China, Sweden, Finland, Austria, and Switzerland
O documento descreve três classificações de palavras de acordo com a sílaba tônica: agudas (sílaba tônica é a última), graves (sílaba tônica é a penúltima) e esdrúxulas (sílaba tônica é a antepenúltima). Exemplos de cada classificação são fornecidos, e esdrúxulas sempre têm acento. O documento termina com um teste de classificação de palavras.
This is a set of modified MacRuby presentation slides given at the Pittsburgh Ruby Brigade meeting on Nov 5, 2009. The original presentation was given by Patrick Thomson at C4[3] in September, 2009. Slides 68 and 69 were added by me for the PghRB talk.
Patrick's original slides are available at http://www.slideshare.net/importantshock/why-macruby-matters
MacRuby is a Ruby implementation for Mac OS X that allows Ruby code to directly interact with Cocoa and other OS X frameworks. It uses a single runtime and garbage collector to bind Ruby and Objective-C. MacRuby aims to provide the best platform for Ruby developers and a great platform for Cocoa developers. Benchmarks show that Fibonacci code runs faster in MacRuby compared to pure Ruby and Objective-C implementations, due to optimizations from the LLVM compiler.
The talk focuses on the processes and requirements to ship a software, which was written with MacRuby, to the end user. I present libraries and tools, that are helpful for this purpose and show how to use them.
The document discusses MacRuby, an implementation of Ruby 1.9 that runs on the Objective-C runtime. It allows Ruby objects to be peers with Objective-C objects without a translation layer. MacRuby provides access to Cocoa and CoreFoundation frameworks, allowing Ruby code to build OSX and iOS applications. It also discusses HotCocoa, a library that uses Ruby to build user interfaces without Interface Builder.
My presentation will be on the topic of MacRuby. MacRuby is relevent to Ruby developers because it allows us to dive into the world of Mac OS X development using Ruby 1.9. Unlike RubyCocoa, where we would need to use both Ruby and Objective-C, MacRuby's API allows us to just use Ruby.
I will go into a brief history of MacRuby and explain just why it is important to us as Ruby developers. I will then do some live coding of a quick desktop application using MacRuby. Attendees will be able to take away from the presentation a good understanding of MacRuby and the passion to develop something of their own using it.
Objective-C was invented by Brad Cox and Tom Love. It adds object-oriented programming to the C programming language and is used for Apple's operating systems. Objective-C source files have a .m extension and interface files have a .h extension. Objective-C derives its object syntax from Smalltalk and messages are enclosed in square brackets. It allows dynamic typing using the "id" keyword.
The document discusses RubyCocoa, which bridges the Ruby and Objective-C programming languages allowing Ruby code to access Cocoa frameworks, describes its history and key contributors, and provides an example of how RubyCocoa allows Ruby code to call methods on Objective-C classes similarly to how it is done in Objective-C. It also lists additional resources for learning more about RubyCocoa, Cocoa, and Objective-C.
Le slide deck de l'Université que nous avons donnée avec Rémi Forax à Devoxx France 2019.
Comme promis, Java sort sa version majeure tous les 6 mois. Le train passe et amène son lot de nouveautés. Parmi elles, certaines sont sorties : une nouvelle syntaxe pour les clauses switch et l'instruction de byte code CONSTANT_DYNAMIC. D'autres sont en chantier, plus ou moins avancé : une nouvelle façon d'écrire des méthodes de façon condensée, un instanceof 'intelligent', des constantes évaluées au moment où elles sont utilisées. Les projets progressent. Loom, et son nouveau modèle de programmation concurrente que l'ont peut tester avec Jetty. Amber, qui introduit les data types et des nouvelles syntaxes. Valhalla, dont les value types donnent leurs premiers résultats. S'il est difficile de prévoir une date de sortie pour ces nouveautés, on sait en revanche qu'une fois prêtes elles sortiront en moins de 6 mois. De tout ceci nous parlerons donc au futur et en public, avec des démonstrations de code, des slides, du code, de la joie et de la bonne humeur !
Разработка кросс-платформенного кода между iPhone < -> Windows с помощью o...Yandex
This document discusses cross-platform development for the iPhone. It outlines two main approaches: porting existing code and writing new code designed for cross-platform use. Porting involves overcoming challenges like incompatible languages and system APIs across platforms. Solutions proposed include runtime libraries like qobjc and frameworks like dCocoa that emulate Objective-C and provide portable APIs. Writing new code allows using languages and libraries like C++, Lua and Qt that are inherently cross-platform. The document provides examples of porting Objective-C code to dCocoa and discusses benefits of a cross-platform approach.
This document discusses several techniques for optimizing C code:
1) Code motion involves moving code that is executed repeatedly in loops outside of the loop if its return value remains constant, such as calling a function.
2) Loop unrolling repeats the code within loops multiple times to reduce the total number of iterations and associated overhead.
3) Inlining replaces function calls with copies of the function code to avoid call overhead for simple functions.
Slides from my "Swift, Swiftly" session at Øredev 2014.
Revealed by Apple in June of this year, the Swift programming language has already established itself as a huge leap forward for iOS and OS X developers. Learn the ins and outs of this new language, see how it compares to other modern OO languages, and hear about how Apple developers are using Swift to achieve new levels of productivity and efficiency.
Full video available: http://oredev.org/2014/sessions/swift-swiftly
This document introduces MacRuby, a Ruby implementation that allows Ruby code to be used to script and build applications for Mac OS X. MacRuby provides a complete Ruby 1.9 environment and allows Ruby code to interface with Cocoa and Objective-C to build graphical user interface applications. Performance benchmarks show that MacRuby code runs nearly as fast as native Objective-C. MacRuby is currently available as a preview release but will be included in Mac OS X 10.7 Lion.
Macruby& Hotcocoa presentation by Rich KilmerMatt Aimonetti
The document discusses the history of Ruby on Mac OS X and Apple's goals to make Ruby a first-class language for Cocoa development. It introduces MacRuby as a solution to issues with RubyCocoa, and describes how HotCocoa builds on MacRuby to provide an idiomatic Ruby API for Cocoa. It concludes with an overview of the current state of MacRuby development.
Experiments in Sharing Java VM Technology with CRubyMatthew Gaudet
IBM is developing a just-in-time (JIT) compiler called Testarossa based on its Open Runtime (OMR) toolkit. The goal is to integrate the JIT compiler into MRI Ruby to improve performance without changing how MRI works. So far, the JIT supports most opcodes and can run Rails applications, but performance gains are modest. IBM hopes to collaborate with the Ruby community to further optimize Ruby and help make it faster.
This is the slide for what I shared in JS Group meetup, 2014, Taiwan. It covers what JavaScript could do for making the program more "functional", the benefits, price and the limitation.
The document discusses how Smalltalk can support functional programming through existing features and extensions. It describes how the Pharo-Functional repository adds syntactic sugar like the compose operator and collection literals to make functional code more succinct. New classes and methods are also introduced to facilitate functional patterns. The author argues Smalltalk already has the fundamentals for functional programming and some simple extensions could make it more pleasant, hoping some may become mainstream features. In the meantime, anyone can add these capabilities to their Pharo image.
Cray XT Porting, Scaling, and Optimization Best PracticesJeff Larkin
The document discusses optimization best practices for Cray XT systems. It covers choosing compilers and compiler flags, profiling and debugging codes at scale with hardware performance counters and CrayPAT tools, optimizing communication with MPI by using techniques like pre-posting receives and reducing collectives, and optimizing I/O. The document emphasizes testing optimizations on the number of nodes the application will actually run on.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
Programming Foundation Models with DSPy - Meetup SlidesZilliz
Prompting language models is hard, while programming language models is easy. In this talk, I will discuss the state-of-the-art framework DSPy for programming foundation models with its powerful optimizers and runtime constraint system.
Main news related to the CCS TSI 2023 (2023/1695)Jakub Marek
An English 🇬🇧 translation of a presentation to the speech I gave about the main changes brought by CCS TSI 2023 at the biggest Czech conference on Communications and signalling systems on Railways, which was held in Clarion Hotel Olomouc from 7th to 9th November 2023 (konferenceszt.cz). Attended by around 500 participants and 200 on-line followers.
The original Czech 🇨🇿 version of the presentation can be found here: https://www.slideshare.net/slideshow/hlavni-novinky-souvisejici-s-ccs-tsi-2023-2023-1695/269688092 .
The videorecording (in Czech) from the presentation is available here: https://youtu.be/WzjJWm4IyPk?si=SImb06tuXGb30BEH .
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxSitimaJohn
Ocean Lotus cyber threat actors represent a sophisticated, persistent, and politically motivated group that poses a significant risk to organizations and individuals in the Southeast Asian region. Their continuous evolution and adaptability underscore the need for robust cybersecurity measures and international cooperation to identify and mitigate the threats posed by such advanced persistent threat groups.
Taking AI to the Next Level in Manufacturing.pdfssuserfac0301
Read Taking AI to the Next Level in Manufacturing to gain insights on AI adoption in the manufacturing industry, such as:
1. How quickly AI is being implemented in manufacturing.
2. Which barriers stand in the way of AI adoption.
3. How data quality and governance form the backbone of AI.
4. Organizational processes and structures that may inhibit effective AI adoption.
6. Ideas and approaches to help build your organization's AI strategy.
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
Generating privacy-protected synthetic data using Secludy and MilvusZilliz
During this demo, the founders of Secludy will demonstrate how their system utilizes Milvus to store and manipulate embeddings for generating privacy-protected synthetic data. Their approach not only maintains the confidentiality of the original data but also enhances the utility and scalability of LLMs under privacy constraints. Attendees, including machine learning engineers, data scientists, and data managers, will witness first-hand how Secludy's integration with Milvus empowers organizations to harness the power of LLMs securely and efficiently.
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...alexjohnson7307
Predictive maintenance is a proactive approach that anticipates equipment failures before they happen. At the forefront of this innovative strategy is Artificial Intelligence (AI), which brings unprecedented precision and efficiency. AI in predictive maintenance is transforming industries by reducing downtime, minimizing costs, and enhancing productivity.
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
5th LF Energy Power Grid Model Meet-up SlidesDanBrown980551
5th Power Grid Model Meet-up
It is with great pleasure that we extend to you an invitation to the 5th Power Grid Model Meet-up, scheduled for 6th June 2024. This event will adopt a hybrid format, allowing participants to join us either through an online Mircosoft Teams session or in person at TU/e located at Den Dolech 2, Eindhoven, Netherlands. The meet-up will be hosted by Eindhoven University of Technology (TU/e), a research university specializing in engineering science & technology.
Power Grid Model
The global energy transition is placing new and unprecedented demands on Distribution System Operators (DSOs). Alongside upgrades to grid capacity, processes such as digitization, capacity optimization, and congestion management are becoming vital for delivering reliable services.
Power Grid Model is an open source project from Linux Foundation Energy and provides a calculation engine that is increasingly essential for DSOs. It offers a standards-based foundation enabling real-time power systems analysis, simulations of electrical power grids, and sophisticated what-if analysis. In addition, it enables in-depth studies and analysis of the electrical power grid’s behavior and performance. This comprehensive model incorporates essential factors such as power generation capacity, electrical losses, voltage levels, power flows, and system stability.
Power Grid Model is currently being applied in a wide variety of use cases, including grid planning, expansion, reliability, and congestion studies. It can also help in analyzing the impact of renewable energy integration, assessing the effects of disturbances or faults, and developing strategies for grid control and optimization.
What to expect
For the upcoming meetup we are organizing, we have an exciting lineup of activities planned:
-Insightful presentations covering two practical applications of the Power Grid Model.
-An update on the latest advancements in Power Grid -Model technology during the first and second quarters of 2024.
-An interactive brainstorming session to discuss and propose new feature requests.
-An opportunity to connect with fellow Power Grid Model enthusiasts and users.
14. In Objective-C:
1. create a static, shared instance
2. initialize once and only once
3. add an sharedInstance accessor method
…for every singleton class.
Tedious.
98. Last summer I had an internship at Apple.
My views here, however, represent that of an open-source contributor,
and not an Apple employee. Any speculations on the future of MacRuby
are entirely mine and are in no way representative of any plans, attitudes,
or future directions that Apple may take. This presentation is neither
sponsored nor endorsed by Apple.
Apple: please donʼt sue me.
revolutionary graph-search algorithm that powers just about every network routing protocol
this quote of Dijkstra&#x2019;s draws attention to a central conundrum facing Cocoa programmers today
the conundrum is this: Objective-C, the language we all know and love&#x2026;
&#x2026;provides us with an insufficiently powerful level of abstraction. We build the best desktop apps out there, but we do it in spite of ObjC.
So, as a language, what does ObjC lack?
I submit that perhaps the most fundamental problem with ObjC is its lack of support for code reuse. At the Objective-C level of abstraction, effective code reuse is like pulling teeth.
And sure, inheritance provides a good measure of code reuse. But for many use cases, it simply doesn&#x2019;t apply.
Consider the singleton. It&#x2019;s a great example of a common Objective-C pattern which cannot be abstracted out, forcing us to resort to boilerplate code.
Every singleton class needs its own static, shared instance. Single inheritance can&#x2019;t solve the problem, and it&#x2019;s questionable that multiple inheritance is the right solution in this case.
So, creating a singleton in Objective-C is really tedious. Add to the fact that very few people agree on the right way to go about this tedium - should you synchronize on sharedInstance, or init? Should you check for NULL or use pthread_once or dispatch_once? - and ensuring proper behavior seems hardly worth the trouble. It&#x2019;s too tedious.
And tedium sucks.
A sufficiently powerful language would provide us with a code reuse mechanism like mixins.
Mixins, for those who haven&#x2019;t heard of them, provide another level of abstraction into class definitions. Like classes, you define them and define method implementations in them; however, instead of including them in the class hierarchy, you mix them into classes - the resulting class copies the methods you defined in your mixin.
Here&#x2019;s an example. In this language, the &#x201C;include&#x201D; keyword mixes a mixin into a class. By including the Singleton mixin in this class, it defines initialization and accessor methods as well as setting aside a static, shared instance.
Now we can access the shared instance. Easy.
And sure, I understand that the Objective-C language designers held off on implementing New and Fancy Ideas. And I agree with them.
But mixins have been around since Symbolics Lisp. Anyone remember that? I don&#x2019;t. I wasn&#x2019;t even born yet.
That was a while ago. And we, as Mac programmers, should ask more from our development tools.
Though Objective-C has a huge advantage in that it&#x2019;s based on C, it also has a huge disadvantage - that it&#x2019;s based on C.
Being a representation of a Von Neumann machine, C can solve any computable problem. But what&#x2019;s interesting is that C is actually pretty expressive, even when you need to do fancy, comp-sci-sexy things. You&#x2019;ve got a reasonable approximation of continuations with setjmp, of exceptions with sigsetjmp, and first-class functions with function pointers.
But all of these things are hideously unsafe. We&#x2019;re programmers, not superheroes - if our tools allow us to make a mistake, we will make it.
And C&#x2019;s unsafeness is visible in almost every part Objective-C.
We program in a high-level language. Why do we still have the ability to shoot ourselves so profoundly in the foot with raw pointers? You, or the library functions you call, can stomp all over memory silently and watch as you drown in bizarre and irreproducible behavior.
C&#x2019;s ability to treat just about anything as a memory address means that you can bamboozle the hell out of the garbage collector.
Nowhere is the unsafe and backwards nature of C - and consequently, Objective-C - more apparent than exceptions. C really doesn&#x2019;t play nice with the notion of exceptions at all, and has therefore hobbled ObjC exception support throughout ObjC&#x2019;s lifetime.
ObjC exception handling is horrifically inefficient. Since on 32-bit exceptions are based on setjmp and longjmp, pretty much everything about them are expensive. Exception creation and try-blocks got much faster with 64-bit C++-compatible exceptions, but throwing them got even slower.
And the kicker is that the vast majority of Cocoa frameworks aren&#x2019;t exception-safe. So there is absolutely no guarantee that objects will be cleaned up or finalized properly if you throw an exception.
So thanks to this, nobody ever checks for exceptions - honestly, when was the last time you checked for alloc throwing an NSMallocException? - and we make do with functions that take pointers to NSErrors and some functions that return either Carbon, Cocoa, POSIX, or Mach error codes.
Go ahead. Call me lazy.
But I&#x2019;m tired of creating arrays manually. I want a language that has sufficient syntactic abstraction so that I can just create arrays inline. I mean, imagine if we had to do this to create NSStrings - it would be endlessly tedious!
And don&#x2019;t even get me started on how tedious NSDictionary creation is. These may seem like syntactic quibbles to some of you, but I know that in the past I&#x2019;ve avoided using dictionaries in favor of long if-else statements, just because creating dictionaries is so tedious!
Similarly, I want operator overloading, because it lets me say what I mean. I want the less-than sign to be transformed into a call to compare - and let&#x2019;s be frank, operator overloading is never going to come to Objective-C.
Basically, I want a language that&#x2019;s as well-designed as Cocoa.
And so far, the closest I have come to that ideal is when I write code in MacRuby.
For those of you that haven&#x2019;t heard of it, MacRuby is a new implementation of Ruby, a scripting language from Japan.
MacRuby differs from the standard implementation of Ruby 1.9 in that its its virtual machine, optimization routines, bytecode generation, and just-in-time compilation are all implemented on top of LLVM, the Low-Level Virtual Machine project. LLVM is already blazingly fast, and I&#x2019;m confident that its performance will only continue to improve.
In addition to replacing the Ruby 1.9 VM with the LLVM one, we also reimplemented the standard Ruby data structures on top of CoreFoundation. In addition to providing us with a set of memory-efficient, fast, and mature set of data structures, implementing MacRuby on top of Core Foundation also ensured that&#x2026;
&#x2026;Ruby objects are absolutely indistinguishable from Cocoa objects - they even respond to the same API calls! NS/CFStrings are Ruby strings, NS/CFArrays are Ruby arrays, NS/CFDictionaries are Ruby hashes.
But we go beyond what Objective-C offers, and return to a Smalltalk heritage where there are no primitive types. Everything descends from NSObject, even floats and integers.
Though MacRuby is an Apple-supported project, it is released under the Ruby license so you can embed it into your commercial applications.
The MacRuby team is one of the smartest and most focused I&#x2019;ve ever seen. Laurent Sansonetti, an employee at Apple, started MacRuby just as an experiment to see how well Ruby would run on top of the Objective-C runtime and garbage collector. Yet in its current form, I truly believe that it&#x2019;s stable enough
Clarification!
Bridges, as Tim pointed out in C4[1], are unreliable, difficult, and tend to be slow.
Explain the differences.
not a toy!
everyone has to deal with it sooner or later
explain what they are, what systems (Python, Ruby, Lua) use them
explain how much they suck
green threads suck
So. The big question.
MacRuby is fast. Not just Fast Enough, but fast.
This may surprise many of you, as most people know Ruby as &#x201C;that weird, slow, Japanese space-Perl.&#x201D; And the conception that Ruby is slower than other comparable languages has been true - up until now.
A good example of the speed boosts that we aim for is the Fibonacci sequence.
Take na&#xEF;ve implementations of the Fibonacci sequence, using recursion, in C&#x2026;
and in Objective-C (using ObjC message sending),
and, predictably, C is going to be a lot faster. And trying to get MacRuby faster than C for everything is beyond the scope of this project.
But take the same Fibonacci implementation in Ruby, run it under MacRuby&#x2026;
and we see that MacRuby is, in this benchmark, faster than Objective-C.
The answer lies in the --compile flag. MacRuby can compile Ruby source down to Mach-O x86 executables.
This is hugely exciting. Nobody else has done this before. And up until now, shipping a closed-source desktop application written in Ruby has been a Bad Idea - but now you can hide your source code from prying eyes.
keyword syntax is readable.
worst of both worlds: verbosity of keyword syntax and unreadability of ALGOL-style syntax
syntactic extensions to make ObjC calls look gorgeous.
optional set of layers
to make common idioms concise
nestable, elegant, yet completely optional
like in Lisp and Scheme
Ruby and Objective-C are almost absurdly similar - how similar, you ask?
contrived example, but talk about CoreImage, CoreGraphics, PDF documents
hooray for my GCD layer
talk about how things just work, and plug topfunky&#x2019;s MacRuby screencast
hooray
whine about all of these features
be honest!
Though one can obviously treat Objective-C like a dynamic language, and give the &#x2018;id&#x2019; type to everything, well-written and idiomatic Objective-C code takes advantage of static typing to catch errors before they happen. And because Ruby is a duck-typed language, you&#x2019;re going to lose some power.
And rather than viewing this as a problem for MacRuby, I think this is a great opportunity for another language to come in and apply all the innovations in the world of static typing - type inference, currying, existential types - to the world of Cocoa. So, uh, someone get on that.
The 0.5 release of MacRuby is almost upon us. This release will be the first one based on the new virtual machine.
If you want to play with the new features now, I recommend checking out the source from MacRuby.org
or get builds for Snowy.
DISCLAIMER!
I&#x2019;m here to talk about what is TECHNICALLY POSSIBLE, not what&#x2019;s *going* to happen.
we want to be the fastest Ruby implementation around
we still need continuations, fibers, and to make all C exts compatible
The first thing people usually ask about MacRuby is &#x201C;Does it run Rails yet?&#x201D;
No. It doesn&#x2019;t. And though we&#x2019;d like to have it run Rails in the future, there&#x2019;s still a lot of work to be done in that direction - revamping the sockets interface, improving IO speed and flexibility, and making sure that MacRuby supports all the maddening little metaprogramming quirks of which Rails takes advantage.
Much more interesting to me is the question of whether or not