Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the blade domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/u112623068/domains/mzekiosmancik.com/public_html/wp-includes/functions.php on line 6114
mezo | MeZO Blog
Posts By :

mezo

Introduction to AI on Microsoft Azure 853 480 mezo

Introduction to AI on Microsoft Azure

Hello my dear padawans I would like to write some notes about AI for everyone, I am preparing for Microsoft AI Engineer certification exams and I will put my notes here as much as possible 🙂

What is AI? AI is a powerful tool, paving the way for innovative software that enhances health care, assists individuals with physical limitations, fortifies smart infrastructure, delivers captivating entertainment experiences, and contributes to environmental conservation.

Exploring AI

AI is characterized by its ability to mimic human behaviors and skills. It encompasses:

  • Machine Learning: The cornerstone of AI, enabling computers to learn from data and make informed predictions.
  • Computer Vision: Allows AI to interpret visual information from images and videos.
  • Natural Language Processing: Enables computers to understand and respond to human language.
  • Document Intelligence: Manages and processes vast amounts of data in documents efficiently.
  • Knowledge Mining: Extracts valuable information from unstructured data sources.
  • Generative AI: Creates original content ranging from text to images.

Diving Deep into Machine Learning

Machine learning stands as the bedrock of many AI applications. Since its inception in the 1950s, it has been a focal point for data scientists globally. This branch of AI intertwines computer science with mathematics.

Consider sustainable farming – an area where machine learning proves instrumental. Companies like The Yield leverage sensors, data analytics, and machine learning algorithms to provide farmers with actionable insights on weather patterns, soil quality, and plant health.

Unraveling Machine Learning Mechanisms

In today’s digital age, we are inundated with a plethora of data daily. Machine learning algorithms sift through this extensive dataset – including social media posts, emails, photographs – discerning patterns and relationships that inform decision-making processes.

For instance in environmental conservation efforts; machine learning models analyze complex datasets identifying correlations between various elements. These insights are pivotal for developing strategies aimed at preserving our planet’s biodiversity while promoting sustainable practices.

Unleashing the Power of AI: A Deep Dive into Machine Learning and Computer Vision

In the ever-evolving field of Artificial Intelligence (AI), a team of dedicated botanists and scientists are making remarkable strides in understanding wildflower species. Armed with labeled data meticulously collected from wildflower samples, these professionals employ sophisticated algorithms to unveil intricate relationships between various features and species.

The Journey from Data Collection to Model Creation

The process begins in the heart of nature, where every sample is labeled with precision, ensuring accuracy in data collection. This labeled data then undergoes rigorous processing through an algorithm designed to uncover hidden patterns and relationships. The culmination of this process is a comprehensive model that encapsulates these findings.

As AI continues its upward trajectory, new samples discovered by volunteers can now be easily identified by this model, marking a significant milestone in AI’s capabilities.

Microsoft Azure: Your Companion in Machine Learning

Machine learning has found a formidable ally in Microsoft Azure. With its Azure Machine Learning service, users are endowed with a cloud-based platform tailored for creating, managing, and publishing machine learning models with ease.

Azure Machine Learning Studio stands out with its diverse authoring experiences including Automated machine learning for quick model creation; Azure Machine Learning designer for no-code solution development; Data metric visualization for experiment analysis; and Notebooks for personalized code writing on integrated Jupyter Notebook servers.

A Glimpse into the World of Computer Vision

Venturing into the realm of computer vision unveils possibilities that were once considered beyond reach. The Seeing AI app exemplifies computer vision’s prowess. Crafted for individuals with blindness or low vision, this app employs AI to narrate the visual world around them – an innovation transforming lives.

For an immersive experience on Seeing AI’s capabilities watch this video or explore more on the Seeing AI web page.

In Conclusion

AI’s journey from collecting wildflower samples to identifying species labels using complex models underscores its phenomenal growth. With platforms like Microsoft Azure enhancing machine learning and innovations like Seeing AI illuminating paths in computer vision, we are indeed witnessing a renaissance in artificial intelligence!

TaskDescription
Image classificationAn image of a taxi with the label "Taxi".
Image classification involves training a machine learning model to classify images based on their contents. For example, in a traffic monitoring solution you might use an image classification model to classify images based on the type of vehicle they contain, such as taxis, buses, cyclists, and so on.
Object detectionAn image of a street with buses, cars, and cyclists identified and highlighted with a bounding box.
Object detection machine learning models are trained to classify individual objects within an image, and identify their location with a bounding box. For example, a traffic monitoring solution might use object detection to identify the location of different classes of vehicle.
Semantic segmentationAn image of a street with the pixels belonging to buses, cars, and cyclists identified.
Semantic segmentation is an advanced machine learning technique in which individual pixels in the image are classified according to the object to which they belong. For example, a traffic monitoring solution might overlay traffic images with “mask” layers to highlight different vehicles using specific colors.
Image analysisAn image of a person with a dog on a street and the caption "A person with a dog on a street".
You can create solutions that combine machine learning models with advanced image analysis techniques to extract information from images, including “tags” that could help catalog the image or even descriptive captions that summarize the scene shown in the image.
Face detection, analysis, and recognitionAn image of multiple people on a city street with their faces highlighted.
Face detection is a specialized form of object detection that locates human faces in an image. This can be combined with classification and facial geometry analysis techniques to recognize individuals based on their facial features.
Optical character recognition (OCR)An image of a building with the sign "Toronto Dominion Bank", which is highlighted.
Optical character recognition is a technique used to detect and read text in images. You can use OCR to read text in photographs (for example, road signs or store fronts) or to extract information from scanned documents such as letters, invoices, or forms.

Understand natural language processing

Natural language processing (NLP) is a subfield of artificial intelligence that deals with the interaction between computers and humans in natural language. It involves processing natural language datasets, such as text corpora or speech corpora, using either rule-based or probabilistic (i.e. statistical and, most recently, neural network-based) machine learning approaches. The goal is a computer capable of “understanding” the contents of documents, including the contextual nuances of the language within them. The technology can then accurately extract information and insights contained in the documents as well as categorize and organize the documents themselves.

NLP has a wide range of applications, including:

  • Sentiment Analysis: Identifying the sentiment of a piece of text, such as whether it is positive, negative, or neutral.
  • Named Entity Recognition: Identifying and categorizing named entities in text, such as people, organizations, and locations.
  • Machine Translation: Automatically translating text from one language to another.
  • Question Answering: Automatically answering questions posed in natural language.
  • Chatbots: Interacting with users in natural language to answer questions or perform tasks.

NLP is a rapidly evolving field, with new techniques and models being developed all the time. Some of the most recent advances include:

  • Pre-trained Language Models: Large neural network models that are trained on massive amounts of text data, allowing them to perform a wide range of NLP tasks with high accuracy.
  • Transformers: A type of neural network architecture that has revolutionized NLP by allowing models to process entire sequences of text at once, rather than one word at a time.
  • Zero-shot Learning: A technique that allows models to perform NLP tasks in languages they have never seen before, by leveraging their knowledge of related languages.

NLP is a powerful tool that has the potential to transform the way we interact with computers and with each other. As the field continues to evolve, we can expect to see even more exciting applications of this technology in the years to come.

Document intelligence

Document Intelligence is a subfield of AI that focuses on managing, processing, and utilizing large volumes of data found in forms and documents. It enables the creation of software that can automate processing for contracts, health documents, financial forms, and more. This technology can extract valuable information from unstructured data sources, categorize and organize documents, and efficiently manage high volumes of data. Knowledge Mining is another area of AI that deals with extracting information from large volumes of often unstructured data to create a searchable knowledge store. It is a powerful tool that can help organizations extract valuable insights from their data and make informed decisions. Together, Document Intelligence and Knowledge Mining are transforming the way businesses manage and process data, enabling them to work more efficiently and effectively.

Generative AI

Generative AI is a subfield of artificial intelligence that deals with creating original content. It is often used in chat applications, where it takes in natural language input and returns appropriate responses in a variety of formats, including natural language, image, code, and audio. Generative AI models learn the patterns and structure of their input training data and then generate new data that has similar characteristics. This technology has a wide range of applications, including art, writing, script writing, software development, product design, healthcare, finance, gaming, marketing, and fashion. With the advent of large neural network models and transformer-based deep neural networks, generative AI has become more powerful and capable of performing a wide range of tasks with high accuracy.

Responsible AI 

Responsible AI is an approach to developing, assessing, and deploying AI systems in a safe, trustworthy, and ethical way. It emphasizes accountability, fairness, and inclusivity. The goal is to ensure that AI is created and applied in an ethical way that benefits everyone, while minimizing the potential for artificial intelligence to cause harm. Responsible AI practices aim to mitigate bias, ensure privacy, and prioritize the well-being of all users. Microsoft Azure provides a suite of tools to help you create a customized, end-to-end responsible AI experience, including the Responsible AI Dashboard, which offers a range of tools to help you operationalize responsible AI practices for your organization or business. As the field of AI continues to evolve, responsible AI practices will play an increasingly important role in ensuring that AI is developed and deployed in a way that benefits society as a whole.

At Microsoft, AI software development is guided by a set of six principles, designed to ensure that AI applications provide amazing solutions to difficult problems without any unintended negative consequences.

  • Fairness
  • Reliability and safety
  • Privacy and security
  • Inclusiveness
  • Transparency
  • Accountability

I hope that is helpful

May the knowledge be with you

Components on Blazor 1024 557 mezo

Components on Blazor

Hi my fellow Padawans

Blazor is a frontend framework like Angular or React but mostly like React and it has components for create pages and reusable objects functionalities.

But how can we create a component and use it on the pages in our Blazor application?

First Read this Article and create your first Blazor application 🙂

Then on your Solution Explorer find Pages and right click on it and Add -> Razor Component

On Add New Item windows write your components name and create it

I decided to make something different and I created Todo.Razor file and I add these codes on the page

@page "/todo"
@using BlazorApp1.Data;

<h3>Todo</h3>

<ul>
    @foreach (var todo in todos)
    {
            <li>@todo.Title</li>
    }
</ul>

<input placeholder="Something todo" @bind="newTodo" />
<button @onclick="AddTodo">Add todo</button>

@code {
    private List<TodoItem> todos = new();
    private string? newTodo;

    private void AddTodo()
    {
        if (!string.IsNullOrWhiteSpace(newTodo))
        {
            todos.Add(new TodoItem { Title = newTodo });
            newTodo = string.Empty;
        }
    }
}

And find NavMenu.razor file inside of the Shared folder on your Solution Explorer. Find the last item of menu divs and Add this code:

  <div class="nav-item px-3">
            <NavLink class="nav-link" href="todo">
                <span class="oi oi-list-rich" aria-hidden="true"></span> Todo
            </NavLink>
        </div>

You will have a NavMenu.Razor page like this:

<div class="top-row ps-3 navbar navbar-dark">
    <div class="container-fluid">
        <a class="navbar-brand" href="">BlazorApp1</a>
        <button title="Navigation menu" class="navbar-toggler" @onclick="ToggleNavMenu">
            <span class="navbar-toggler-icon"></span>
        </button>
    </div>
</div>

<div class="@NavMenuCssClass" @onclick="ToggleNavMenu">
    <nav class="flex-column">
        <div class="nav-item px-3">
            <NavLink class="nav-link" href="" Match="NavLinkMatch.All">
                <span class="oi oi-home" aria-hidden="true"></span> Home
            </NavLink>
        </div>
        <div class="nav-item px-3">
            <NavLink class="nav-link" href="counter">
                <span class="oi oi-plus" aria-hidden="true"></span> Counter
            </NavLink>
        </div>
        <div class="nav-item px-3">
            <NavLink class="nav-link" href="fetchdata">
                <span class="oi oi-list-rich" aria-hidden="true"></span> Fetch data
            </NavLink>
        </div>
        <div class="nav-item px-3">
            <NavLink class="nav-link" href="todo">
                <span class="oi oi-list-rich" aria-hidden="true"></span> Todo
            </NavLink>
        </div>
    </nav>
</div>

@code {
    private bool collapseNavMenu = true;

    private string? NavMenuCssClass => collapseNavMenu ? "collapse" : null;

    private void ToggleNavMenu()
    {
        collapseNavMenu = !collapseNavMenu;
    }
}

When you open the webpage you will see the Todo on your left navigation menu and then you will see your amazing Todo application like below:

If you want to use this component in other pages for example add this component on the home page. Go to your Index.Razor inside of the Pages folder and add this code :

<Todo/>

Your index.Razor will look like this

@page "/"

<PageTitle>Index</PageTitle>

<h1>Hello, Everyone!</h1>

Welcome to your new app. Hello 

<SurveyPrompt Title="How is Blazor working for you?" />




<Todo/>

Then we RUN our app oooorrr we can Hot Reload and we will see the result like below:

That is easy isn’t it ?

I hope that is helpful

May the knowledge be with you

Create Your First Blazor Application 1024 557 mezo

Create Your First Blazor Application

Hello My Fellow Padawans 🙂

Today I will tell you about a new Frontend Technology called “Blazor”. It sounds similar from somewhere… Yes Razor and yes its a Microsoft technology.

Ok but lets remember what is RAZOR first: Razor is a format for generating text-based content, like HTML. Razor files have cshtml or a razor file extension, and contain a mix of C# code along with HTML.

What is Blazor

Blazor is a user-interface framework built on .NET and Razor. Blazor applications can run on a server as part of an ASP.NET application or can be deployed to run in the browser on a user’s machine similar to a single-page application. It comes with 2 different app styles.

Blazor Server: is an implementation of the Blazor user-interface framework as part of the ASP.NET Core web development framework, deployed to a web server. Developing an application with Blazor Server generates HTML on a web server as it is requested by web site visitors, typically using a web browser. That HTML is then delivered to the visitor’s browser, and a two-way communication pipeline is maintained using ASP.NET Core SignalR and preferring a Web Sockets connection.

Users that click buttons, navigate, and perform other interactions with a Blazor Server application have their actions transmitted on this SignalR connection, and the server responds with user-interface updates using the same connection. The Blazor Server framework automatically updates the browser with the content generated on the web server.

Blazor WebAssembly: Shortened to Blazor WASM, is an implementation of the Blazor user-interface framework that runs on the HTML 5 standard WebAssembly runtime present in all modern browsers. The binary output of your application, the DLL files, are transmitted to the browser and run with a version of .NET that has been optimized to work with the WebAssembly runtime regardless of the underlying operating system of the device browsing to the website.

Since WebAssembly is a technology that runs entirely in the browser, it’s possible to deploy this model of the Blazor application using files that a web server doesn’t parse or interact with. This type of “static” approach reduces the requirements for a web server and shifts all processing for the application to the user’s machine.

Advanced processing and logic can take place in the browser. When the application needs data or to interact with other services, it can use standard web technologies to communicate with HTTP services.

How to build an application with Blazor

Start your Visual Studio 2022

Then create Blazor Server App and in the Configure your new project window, enter BlazorApp as the project name and select Next.

In the Additional information window, select .NET 7.0 (Standard Term Support) in the Framework drop-down if not already selected and click the Create button.

Your project is created and loaded in Visual Studio. Take a look at the contents of your project using Solution Explorer.

Several files were created to give you a simple Blazor app that is ready to run.

  • Program.cs is the entry point for the app that starts the server and where you configure the app services and middleware.
  • App.razor is the root component of the app.
  • The Pages directory contains some example web pages for the app.
  • BlazorApp.csproj defines the app project and its dependencies and can be viewed by double-clicking the BlazorApp project node in the Solution Explorer.
  • The launchSettings.json file inside the Properties directory defines different profile settings for the local development environment. A port number is automatically assigned at project creation and saved on this file.

To run your application basically click the Run button.

When you made some changes and you want to see your changes on the browser you need to click the Hot Reload button

If you want to make “Hot Reload” every time you save your changes then you need to click the menu button next to “Hot Reload” and select “Hot Reload on File Save” Then VS will watch your file save and refresh your web app on the browser to show your changes.

After you run your app you will see the default app of the Blazor.

Congrats you made your first Blazor App and make it run!

Last thing I want to show is how Blazor files and pages look like

_Host.cshtml This holds our application and renders page components.

@page "/"
@namespace BlazorApp1.Pages
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@{
    Layout = "_Layout";
}

<component type="typeof(App)" render-mode="ServerPrerendered" />

Index.razor : This is the Home page that you see on the screenshot below.

@page "/"

<PageTitle>Index</PageTitle>

<h1>Hello, Everyone!</h1>

Welcome to your new app. Hello 

<SurveyPrompt Title="How is Blazor working for you?" />

Counter.razor and this is the counter component as a page. It’s easy to render and reuse.

@page "/counter"

<PageTitle>Counter</PageTitle>

<h1>Counter</h1>

<p role="status">Current count: @currentCount</p>

<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>

@code {
    private int currentCount = 0;

    private void IncrementCount()
    {
        currentCount++;
    }
}

Congrats 🙂 you open the new Blazor App and make that work

I will keep continuing to write about it coz I probably will use it for my company.

I hope that is helpful

May the knowledge be with you

Binary representation of floating-point numbers 1024 420 mezo

Binary representation of floating-point numbers

Have you ever considered the process by which computers store floating-point numbers such as 3.1416 (𝝿) or 9.109 × 10⁻³¹ (the mass of the electron in kg) in the memory which is limited by a finite number of ones and zeroes (aka bits)?

For integers (i.e., 17). It appears to be fairly straightforward. Assume we have 16 bits (2 bytes) to store the number. We can store integers between 0 and 65535 in 16 bits:

(0000000000000000)₂ = (0)₁₀

(0000000000010001)₂ =
    (1 × 2⁴) +
    (0 × 2³) +
    (0 × 2²) +
    (0 × 2¹) +
    (1 × 2⁰) = (17)₁₀

(1111111111111111)₂ =
    (1 × 2¹⁵) +
    (1 × 2¹⁴) +
    (1 × 2¹³) +
    (1 × 2¹²) +
    (1 × 2¹¹) +
    (1 × 2¹⁰) +
    (1 × 2⁹) +
    (1 × 2⁸) +
    (1 × 2⁷) +
    (1 × 2⁶) +
    (1 × 2⁵) +
    (1 × 2⁴) +
    (1 × 2³) +
    (1 × 2²) +
    (1 × 2¹) +
    (1 × 2⁰) = (65535)₁₀

On the off chance that we really want a marked number we might utilize two’s supplement and shift the scope of [0, 65535] towards the negative numbers. For this situation, our 16 pieces would address the numbers in a scope of [-32768, +32767].

As you would have seen, this approach will not permit you to address the numbers like – 27.15625 (numbers after the decimal point are simply being disregarded).

However, we’re not the initial ones who have seen this issue. Around ≈36 years ago a few brilliant people conquered this limit by presenting the IEEE 754 norm for floating-point arithmetic.

The IEEE 754 standard portrays the way (the framework) of utilizing those 16 bits (or 32, or 64 bits) to store the numbers of wider range, including the small floating numbers (smaller than 1 and closer to 0).

To get the thought behind the standard we could review the logical documentation – an approach to communicating numbers that are excessively huge or excessively little (for the most part would bring about a long string of digits) to be helpfully written in decimal structure.

As you might see from the picture, the number portrayal may be parted into three sections:

sign
division (otherwise known as significant) – the important digits (the significance, the payload) of the number
example – controls how far and in which direction to move the decimal point in the fraction
The base part we might preclude simply by settling on what it will be equivalent to. For our situation, we’ll involve 2 as a base.

Rather than utilizing every one of the 16 bits (or 32 bits, or 64 bits) to store the fraction of the number, we might share the bits and store a sign, type, and portion simultaneously. Contingent upon the numbers of bits that we will use to store the number we end up with the accompanying parts:

Floating-point formatTotal bitsSign bitsExponent bitsFraction bitsBase
Half-precision1615102
Single-precision3218232
Double-precision64111522

With this approach, the number of bits for the fraction has been reduced (i.e. for the 16-bits number it was reduced from 16 bits to 10 bits). It means that the fraction might take a narrower range of values now (losing some precision). However, since we also have an exponent part, it will actually increase the ultimate number range and also allow us to describe the numbers between 0 and 1 (if the exponent is negative).

For example, a signed 32-bit integer variable has a maximum value of 2³¹ − 1 = 2,147,483,647, whereas an IEEE 754 32-bit base-2 floating-point variable has a maximum value of ≈ 3.4028235 × 10³⁸.

To make it possible to have a negative exponent, the IEEE 754 standard uses the biased exponent. The idea is simple – subtract the bias from the exponent value to make it negative. For example, if the exponent has 5 bits, it might take the values from the range of [0, 31] (all values are positive here). But if we subtract the value of 15 from it, the range will be [-15, 16]. The number 15 is called bias, and it is being calculated by the following formula:

exponent_bias = 2 ^ (k−1) − 1

k - number of exponent bits

I’ve tried to describe the logic behind the converting of floating-point numbers from a binary format back to the decimal format on the image below. Hopefully, it will give you a better understanding of how the IEEE 754 standard works. The 16-bits number is being used here for simplicity, but the same approach works for 32-bits and 64-bits numbers as well.

Checkout the interactive version of this diagram to play around with setting bits on and off, and seeing how it would influence the final result

Here is the number ranges that different floating-point formats support:

Floating-point formatExp minExp maxRangeMin positive
Half-precision−14+15±65,5046.10 × 10⁻⁵
Single-precision−126+127±3.4028235 × 10³⁸1.18 × 10⁻³⁸

Be aware that this is by no means a complete and sufficient overview of the IEEE 754 standard. It is rather a simplified and basic overview. Several corner cases were omitted in the examples above for simplicity of presentation (i.e. -0-∞+∞ and NaN (not a number) values)

Code examples

In the javascript-algorithms repository, I’ve added a source code of binary-to-decimal converters that were used in the interactive example above.

Below you may find an example of how to get the binary representation of the floating-point numbers in JavaScript. JavaScript is a pretty high-level language, and the example might be too verbose and not as straightforward as in lower-level languages, but still it is something you may experiment with directly in the browser:

See the Pen bitsToFloat.js by mzekiosmancik (@mzekiosmancik) on CodePen.

References

You might also want to check out the following resources to get a deeper understanding of the binary representation of floating-point numbers:

Welcome to AI-Powered Blogging 1024 1024 mezo

Welcome to AI-Powered Blogging

Artificial intelligence (AI) has made significant strides in recent years and is now being utilized in a variety of industries, including blogging. AI has the potential to revolutionize the way we create and consume content online, and it is important for bloggers to understand how it is being used in the industry. In this article, we’ll explore the various ways in which AI is being utilized in blogging and how it could shape the future of the industry.

One way AI is being used in blogging is through the use of natural language processing (NLP). NLP allows computers to understand and analyze human language, which can be used to improve the accuracy of content recommendations and suggestions. For example, if you’re writing a blog post and you want to include a related article, an AI tool could suggest relevant content based on the keywords and themes in your post. This can help bloggers create more coherent and cohesive content and provide a better experience for their readers.

Another way AI is being utilized in blogging is through the use of chatbots. Chatbots are computer programs that are designed to simulate conversation with human users, and they’re often used to provide customer service or support. In the context of blogging, chatbots can be used to interact with readers and provide them with personalized recommendations based on their reading history. This can help build a sense of community and engagement with readers and improve the overall user experience.

Created by Dall-E by OpenAI

AI can also be used to optimize the design and layout of a blog. For example, an AI tool could analyze user data and suggest the best layout for a blog based on factors such as the type of content being shared and the target audience. This can help bloggers create a more user-friendly and engaging experience for their readers.

In addition to these uses, AI can also help improve the speed and efficiency of content creation. For example, AI tools can help writers generate ideas for blog posts, identify the best sources for research, and even write drafts of articles. While these tools are not meant to replace human writers, they can help streamline the content creation process and save time for bloggers.

One area where AI is particularly useful is in content curation. With the vast amount of information available online, it can be difficult for bloggers to keep up with the latest trends and news in their industry. AI tools can help by curating relevant content and delivering it to bloggers in real-time. This can help bloggers stay up-to-date and provide their readers with the latest and most relevant information.

AI is also being used to improve the accuracy of spelling and grammar in blog posts. With the help of AI tools, bloggers can catch mistakes and typos before they are published, helping to improve the overall quality of their content.

In addition to these uses, AI is being utilized in the field of search engine optimization (SEO). SEO is the practice of optimizing a website in order to rank higher in search engine results. AI tools can help bloggers optimize their content for search engines by analyzing user data and suggesting the most effective keywords and phrases to use. This can help bloggers increase their visibility and reach a wider audience.

AI is also being used to improve the personalized recommendations provided to readers. By analyzing user data, AI tools can suggest content that is most relevant and interesting to individual readers. This can help improve the user experience and keep readers coming back for more.

Despite all of these potential uses, it’s important to note that AI is still in its early stages and there are limitations to what it can do. While AI can help improve the accuracy and efficiency of content creation, it is not yet able to replicate the creativity and nuance of human writing. As such, it is unlikely that AI will

Created by Dall-E by OpenAI

what is chat gpt

CHAT-GPT (short for “Chat Generative Pre-training Transformer”) is a variant of the GPT (Generative Pre-training Transformer) language model developed by OpenAI. It is designed to generate human-like text and responses in the context of a conversation, making it well-suited for use in chatbots and virtual assistants.

The GPT model was first introduced by OpenAI in 2018 as a way to generate natural language text that is difficult to distinguish from text written by humans. It was trained on a massive dataset of human-generated text and was able to generate coherent and coherent paragraphs and even entire articles.

CHAT-GPT builds on the capabilities of the original GPT model by adding the ability to track context and engage in conversation with users. It does this by using a conversational data set to learn about common patterns and structures in human conversation. This allows it to generate responses that are more natural and contextually appropriate in a conversation.

CHAT-GPT has been used in a variety of applications, including virtual assistants, chatbots, and even language translation. Its ability to generate human-like text and engage in conversation has made it a popular choice for developers looking to build natural language processing applications.

While CHAT-GPT and other AI language models have made significant strides in generating human-like text, it is important to note that they are not yet able to fully replicate the complexity and nuance of human language. However, as AI technologies continue to evolve, it is likely that they will become increasingly sophisticated and capable of more advanced language processing tasks.

This Article created by AI 🙂

Create a React Native Web, Android, and IOS project with Expo CLI 1024 635 mezo

Create a React Native Web, Android, and IOS project with Expo CLI

Hello fellow programmer padawans

As you can understand from the title I will tell you how to create a web, Android, and IOS project with React Native and Expo. First, we need the Expo CLI package.

What’s Expo CLI?

Expo CLI is the npm package that creates a project that we can test on our devices. We won’t need to write codes on Xcode or Android Studio. We only need Visual Studio Code and we can write codes for 3 different environments.

First things first, we need NodeJs installed on our computer if you don’t have it you can download it here: https://nodejs.org/en/.

Install Expo and Create Project

To install the Expo CLI you need to open Node.js Command Prompt and run this code

npm install -g expo-cli

To create the project run this code below

expo init ProjectName

Template Selection

As soon as you make the code creation command run, you will see the selection menu as shown below. We need to select a template depending on our needs. I prefer to select a TABS template, it’s a TypeScript and a very good sample to learn and to see the structure of the project.

Start your project and see your app on your device

After the project creation is over we need to go inside the project folder from Nodejs Command Prompt to start your project.

expo start

Then we can see a website and a barcode on the command prompt, that barcode is the magic. I will show you…

After you see all these screens you now are ready to test your app on your device. Download the Expo app from the Apple App Store or Google Play and create an account.

Open your Camera and read the barcode. It will then ask you to open in the Expo app, do it and Voila! Your app is working on your phone or tablet.

First, open the project folder with Visual Studio Code so you can checkout the folder and file structure. Then you can find the Screens folder and make some changes on the TabScreenOne.tsx or TabScreenTwo.tsx files and you will see your app is changing on your device as well.

That’s all for now! I will write about components on React Native on my next post.

Thanks for reading

May the force be with you. 

Expo ile React Native Web, IOS ve Android Projesi Oluşturmak 1024 635 mezo

Expo ile React Native Web, IOS ve Android Projesi Oluşturmak

Selamlar sevgili programcı padavanlar

Başlıktan da anladığınız gibi bu makalemde sizlere nasıl React Native ile hem web hem android hem de IOS projesi oluşturabiliriz sorusunun cevabını anlatacağım. İlk olarak Expo CLI paketini yükleyerek başlıyoruz.

Expo CLI paketi ile oluşturduğumuz projemiz için XCode yada Android Studio gibi ek IDE yazılımlarına ihtiyaç kalmadan tek seferde 3 platform için yazılım geliştirebilmemizi sağlıyor.

Expo ile proje geliştirebilmek için öncelikle NodeJS e ihtiyacımız var. Eğer bilgisayarınız da NodeJS yoksa şuradan https://nodejs.org/en/ indirebilirsiniz.

NodeJS i kurduk şimdi sıra Expo CLI paketinde.

Expo Kurulumu ve Proje Oluşturma

ExpoCLI kurmak için Node.js command promptu bulup çalıştırın ve aşağıdaki komut satırını çalıştırın.

npm install -g expo-cli

Projeyi Oluşturmak için ise :

expo init ProjeAdı

Template Seçimi

Komut satırı çalışır çalışmaz aşağıdaki template seçim ekranı bizi karşılıyor. Buradan projenize uygun olan şablonu seçebilirsiniz ben TABS template ini seçiyorum. TABS ile gelen proje içerisinde çalışan bir sekme örneği var React Native i çok iyi anlayabileceğiniz güzel bir örnek olduğunu düşünüyorum.

Sonrasında yine Node.js command prompt üzerinden oluşturduğumuz klasörün içine giderek projemizi çalıştırıyoruz.

expo start

Proje çalışırken hem command prompt üzerinde hemde açılan localhost web sitesi üzerinde bir kare barcod çıkıyor bu barcod ne işe yarıyor birazdan anlatacağım…

Nodejs Command Prompt

Web Expo Proje Sayfası 

Projemizi Cihazlarda Çalıştırmak

Ardından elinizdeki cihaz üzerinde Google Play yada Apple App Store üzerinden Expo uygulamasını indirerek bir hesap oluşturun ardından projenizi eklemek için bir barkod isteyecek işte şimdi yukarda çıkan barkodların bir anlamı oldu. Cihazınızın kamerası ile barkodu okutun ve oluşturduğunuz uygulamanız telefonunuzda çalışmaya başlasın.

Başlangıç olarak projenizi Visual Studio Code üzerinde açıp Screens klasörü içindeki TabOneScreen.tsx , TabTwoScreen.tsx dosyalarını biraz değiştirerek uygulamanızı biraz değiştirebilirsiniz.

Şimdilik bu kadar bir sonraki yazıda sizlere React Native üzerinde component yapısını anlatacağım.

Okuduğunuz için teşekkürler

Bilgiyle Kalın…

Levenshtein Distance Algorithm 1024 668 mezo

Levenshtein Distance Algorithm

Hello my fellow Padawans 

Couple days ago I had to use an algorithm for comparing string and I want to write something about Levenshtein Algorithm. This algorithm is for measure the metric distance between 2 string text. Informally, the Levenshtein distance between two words is the minimum number of single-character edits (insertions, deletions or substitutions) required to change one word into the other. It is named after the Soviet mathematician Vladimir Levenshtein, who considered this distance in 1965.

Mathematically, the Levenshtein distance between two strings a, b (of length |a| and |b| respectively) is given by leva,b(|a|,|b|)

where 1(ai≠bi) is the indicator function equal to 0 when ai≠bi and equal to 1 otherwise, and leva, b(i,j) is the distance between the first i characters of a and the first j characters of b.

Note that the first element in the minimum corresponds to deletion (from a to b), the second to insertion and the third to match or mismatch, depending on whether the respective symbols are the same.

We can use this algorithm for string matching and spell checking

This algorithm calculates the number of edit operation that are necessary to modify one string to another string. Fro using this algorithm for dynamic programming we can use these steps :
1- A matrix is initialized measuring in the (m, n) cells the Levenshtein distance between the m-character prefix of one with the n-prefix of the other word.
2 – The matrix can be filled from the upper left to the lower right corner.
3- Each jump horizontally or vertically corresponds to an insert or a delete, respectively.
4- The cost is normally set to 1 for each of the operations.
5- The diagonal jump can cost either one, if the two characters in the row and column do not match else 0, if they match. Each cell always minimizes the cost locally.
6- This way the number in the lower right corner is the Levenshtein distance between these words.

An example that features the comparison of “HONDA” and “HYUNDAI”,

Following are two representations: Levenshtein distance between “HONDA” and “HYUNDAI” is 3.

The Levenshtein distance can also be computed between two longer strings. But the cost to compute it, which is roughly proportional to the product of the two string lengths, makes this impractical. Thus, when used to aid in fuzzy string searching in applications such as record linkage, the compared strings are usually short to help improve speed of comparisons.

Here’s the code that you can use the Levenshtein Distance and calculate percentage between 2 string.

See the Pen levenshtein.js by mzekiosmancik (@mzekiosmancik) on CodePen.

Microsoft Edge Chromium new browser for Windows and Mac OS 500 334 mezo

Microsoft Edge Chromium new browser for Windows and Mac OS

Microsoft officially launched new Edge Chromium browser for Windows and MacOS. A stable version of Edge Chromium is available for everyone to download here. Microsoft initially targeting Edge at enterprise users of Windows and macOS , but consumers will be able to manually install it .

In coming months, Edge Chromium will be available with the Windows 10 updates for fully replace the existing built-in browser. Microsoft taking things slowly and carefully about bringing the new Edge Chromium gradually to groups of Windows 10 users through Windows 10 update.

Microsoft working with Google to make Edge faster and stable. Also Edge Chromium will support Chrome extensions . if you’re using Chrome you can sync your history settings and extensions. You can choose from three different levels to avoid being tracked on the web in Edge, and the default setting will block trackers from sites you haven’t visited before. This makes sure content and ads are less personalized and harmful trackers are blocked. There’s also a strict setting that blocks the majority of trackers on the web, but that could mean some parts of sites fail to load or might not work correctly. If you’re familiar with Ghostery, then Microsoft’s built-in protection Edge is similar.

It’s also available for IOS , Android , MacOS , Windows 10, 8.1 , 8 , 7

I hope you will like new browser.
Stay with wisdom my fellow Padawan 🙂
Peace
Mezo…

Javascript Algoritmaları – Bubble Sort 230 300 mezo

Javascript Algoritmaları – Bubble Sort

Bubble Sort okullarda öğretilen ilk algoritmadır diyebiliriz. Bu algoritma verim olarak en verimsiz sıralama algoritmasıdır ancak yapısal olarak anlaşılması en kolayıdır. Buradaki temel fikir sıralanacak dizi içindeki elemanların karşılaştırılmasıdır. Her seferinde 2 eleman karşılaştırılır ve sonrasında yerleri değişmeden önce doğru sıradalarmı diye emin olur. Basit olarak : 
*Ilk eleman ile ikinciyi karşılaştırır
*Eğer ilk eleman ikinci elemandan sonra gelmeliyse yerlerini değiştirir
*Sonra üçüncü eleman ile ikiyi karşılaştırır 
*Eğer  ikinci eleman , üçüncü elemandan sonra gelecekse yerlerini değiştirir ve bu işlem dizinin son elemanına kadar devam eder. 
Aşağıdaki resim anlattığım şu mantığı anlamanıza yardımcı olacaktır. 

Flowchart:

Örnek Kod:

See the Pen Bubble Sort by mzekiosmancik (@mzekiosmancik) on CodePen.

Javascript Algoritmaları – Selection Sort 300 363 mezo

Javascript Algoritmaları – Selection Sort

Selection Sort Bubble Sort’un biraz geliştirilmiş halidir ve elemanlar arasında döngü ile dönerken her eleman geçişinde sadece bir seçim yapar ve o seçimin sıralamasını değiştirir.
Bu sıralama : 
*Ilk elemanın en küçük olduğunu varsayar 
*Sonra bu elemanı ikinci sıradaki değer ile karşılaştırır.
*Eğer ikinci sıradaki eleman ilkinden küçükse bu sefer ikinci değeri en küçük olarak atar. 
*Bu işlem dizinin son elemanına dek devam eder.
*Eğer minimum deger başladığınız değer değilse yerlerini değiştirir.
Aşağıdaki resim biraz daha yardımcı olacaktır.

Selection Sort Çalışması:

Örnek Kod:

See the Pen Selection Sort by mzekiosmancik (@mzekiosmancik) on CodePen.

Javascript Algoritmaları – Insertion Sort 300 180 mezo

Javascript Algoritmaları – Insertion Sort

Insertion Sort sonuç olarak beklediğimiz sıralanmış listeyi her eleman için sıralayan çok basit bir sıralama algoritmasıdır. Bu yüzden de Heap Sort yada Quick Sort kadar verimli bir sıralama algoritması değildir. Insertion sıralamasını elimizdeki bir dizi iskambil kağıtlarını sıralamak gibi düşünebilirsiniz. Aşağıdaki animasyonu incelediğinizde göreceksiniz elinizdeki kağıtları sıramak için bir kartı aradan çekip yerine yerleştirdiğimiz gibi çalışan ve her seferinde sıralanmış bir dizi elde eden bir sıralama yöntemi. 

Animasyon:

FlowChart:

Örnek Kod:

See the Pen Insertion Sort by mzekiosmancik (@mzekiosmancik) on CodePen.

Javascript Algoritmaları – Binary Search 386 878 mezo

Javascript Algoritmaları – Binary Search

Binary search sıralı bir dizi içinde aradığımız değeri bulabilmek için çok verimli bir algoritmadır.  Verilen sıralı diziyi tekrar tekrar 2 ye bölerek aramaya devam eder sonunda aradığı değerin index numarasını bulana kadar. Binary search kullanımı için bir örnek verecek olursak , diyelim ki Google Maps ile çalışıyorsunuz ve kullanıcıdan aldığınız bir mekan ismini DB den gelen sıralı listenizden bulup o mekanın koordinatlarını alıp haritada gostermek istiyorsunuz bunun için en verimli arama algoritması Binary Search olacaktır. Nedenini açıklayacak olursak linear arama da algoritma tüm listeyi bastan sona gezer ve bulmaya çalışırdı bu da binlerce mekan bilgisi içinden bir isim bulabilmek için tek tek bastan sona hepsini incelemesi gerektiği anlamına geliyor hem uzun hemde yorucu bir işlem ancak binary search ile bu binlerce mekanı tek tek kontrol etmek zorunda değiliz.

İnsanlara bir algoritmayı anlatırken bazı küçük detayları söylemeye gerek yoktur örneğin bir kek yapılmasını istediğimizde buzdolabını nasıl açması gerektiğini yada yumurtaları dolaptan çıkarıp nasıl kırmaları gerektiğini söylememize gerek kalmaz insan bu gibi küçük detayları kendisi tamamlayarak kek yapma işlemini tamamlayabilirler ancak bilgisayarda bu gibi küçük detaylar  bilgisayar tarafından tamamlanamaz tüm detayların bilgisayara tanımlanması gerekir.

Programlama boyutunda algoritmaları uygulayabilmek için algoritmanın tüm detaylarını bilmek gerekiyor. Problem için girdiler nedir ? Çıktısı nedir ? Hangi değişkenler tanımlanmalı ? Bu değişkenler ne türde olmalı? Bir döngü olmalı mı ne gibi koşullarda olmalı gibi detaylar.

Hadi bu kadar boş yaptıktan sonra şu binary search e dikkatlide göz atalım. Buradaki ana fikir belirttiğimiz sayıyı bulabilmek için belirli aralıkları takip etmek. Diyelim ki bir tahmin oyunu oynuyoruz ve bu tahmin oyununda aklımızdan 1 ile 100 arasında bir sayı tutuyoruz. Ardından siz de bana tahminimizi söylüyorsunuz ve 25 diyorsunuz ve ben size Yukarı diyorum. Ardından siz 81 diyorsunuz bende size Aşağı diyorum. Şimdi biliyorsunuz ki sayı artık kırmızı ile işaretlediğimiz 26 ile 80 aralığında yani 25 ten küçük ve 81 den büyük sayıların hepsini elemiş olduk.

Her seferinde tahmininiz eğer doğru değilse kalan aralıktaki sayıları belli tahmin edilebilir bir aralığa bölerek devam ediyor. Üçüncü tahmininde53 diyorsunuz ve bende Aşağı diyorum yine ne yapmış olduk 26-80 aralığındaki sayıyı tekrar bölmüş olduk 

Doğru sayıyı bulana kadar böyle sürüp giden ama sonunda sayıyı bulduğumuz bir oyun gibi çalışır Binary Search.

İşlem sırası yazacak olursak

1-Min = 1 ve Max = n

2-Max ve Min sayı aralığında bir integer bir değer tut

3-Eğer sayıyı bulduysan çık. Doğru tahmin

4-Eğer tutulan sayıdan düşük ise Min değişkenine tahmin edilen sayıya 1 ekleyip atama işlemini gerçekleştir.

5-Eğer tahmin edilen sayı tutulandan büyük ise o zaman Max değerini tahmin edilenden 1 çıkarıp atama işlemini gerçekleştir.

6-2 numaralı işleme geri dön.

See the Pen Binary Search by mzekiosmancik (@mzekiosmancik) on CodePen.

Javascript Algoritmalari – Heap Sort 709 790 mezo

Javascript Algoritmalari – Heap Sort

Sıradaki sıralama algoritmamız Heap Sort yani Türkçe meali ile yığın sıralaması.

Bilgisayar bilimine göre heap Sort yani yığın sıralaması algoritması karşılaştırma bazlı bir sıralama algoritmasıdır. Heap sort geliştirilmiş seçimli sıralama olarak da düşünülebilir : yani diziyi sıralanmış ve sıralanmamış olarak bölümlere ayırır ve interaktif bir biçimde sıralanmamış olan bölümü daraltır son olarak bir bütün sıralanmış bir output ortaya çıkarır. Heap sort iyi dizayn edilmiş QuickSort dan daha yavaş çalışsa da , O(n log n) çalışma zamanında olumlu bır  avantajı vardır.  Heap sort yerinde ve kullanılabilir bir algoritma olmasına rağmen stabil çalışan bir sıralama algoritması değildir. 

Heap sort çalışması sırasında bir diziyi rastgele sırası değişen değerlerle sıralar.  Algoritmanın ilk çalışma aşamasında elemanlar heap yapısına uygun olacak sekilde tekrar sıralanır ve heap ağacı yapısı aşağıdaki animasyonda gösterildiği gibi sonucu sunar. 

Animasyon:

FlowChart:

Örnek Kod:

See the Pen Heap Sort by mzekiosmancik (@mzekiosmancik) on CodePen.

Javascript Algoritmaları – Merge Sort 625 598 mezo

Javascript Algoritmaları – Merge Sort

Bır baska sıralama tekniği ile birlikteyiz inkilizcesi Merge Sort türkçesi birleştirme kaynaştırma sıralaması olan bu algoritma 2 diziyi alıp küçükten büyüğe sıralamak üzerine kurulmuştur.

Aşağıdaki animasyondan da anlayacağınız üzere 2 dizi alınıyor daha sonra bunları n kadar alt dizilere bölerek bu alt listeleri karşılaştırılarak results dizisine ekleme yaparak sıralıyor.
Animasyon :

Flowchart :

Örnek Kod :

See the Pen Merge Sort by mzekiosmancik (@mzekiosmancik) on CodePen.

Javascript Algoritmalari – Quick Sort 453 593 mezo

Javascript Algoritmalari – Quick Sort

Merhaba arkadaşlar bazı aldığım notları sizlerle paylasmak istiyorum bunlar javascript  ile temel algoritma soruları ve yöntemleri olarak nitelendireceğimiz küçük yazılar olacak.
Hızlı sıralama
Hızlı sıralama bir dizi içindeki elemanları herhangi bir ilişki kuralı koymadan dümdüz küçükten büyüğe sıralamamıza yarayan bir algoritma hadi bakalım nasıl bir şeymiş…

Bu sıralama önce diziden bir ilk elemanı pivot olarak belirler ve onun etrafında sıralama yapmaya başlar. Küçükse left dizisine büyükse right dizisine. Yani pivot eleman her zaman ortada kalıcak şekilde ,ondan büyük ve kücükleri sıralar. Dikkat edecek olursanız fonksiyonun sonunda sıralanmış olan diziyi döndürürken left ve right dizileri içinde aynı metodu cağırarak yani onları da bir daha sıralamaya koyarak geri döndürüyoruz.
Sıralama Animasyonu :
Sorting quicksort animation

FlowChart :

Örnek Kod :

See the Pen Quick Sort by mzekiosmancik (@mzekiosmancik) on CodePen.

Vue.js 2 Cookbook 302 373 mezo

Vue.js 2 Cookbook

Andrea Passaglia dan Vue.js ogrenebilmek profesyonel web uygulamalari gelistirebilmeniz icin 101 hands on Vue.js 2 ornegi ve ayrintili anlatimi.

Indirmek icin tiklayiniz…

Modern Python Cookbook 302 373 mezo

Modern Python Cookbook

Indirmek icin tiklayiniz…

Mastering OpenCV with Practical Computer Vision Projects 302 373 mezo

Mastering OpenCV with Practical Computer Vision Projects

Indirmek icin tiklayiniz…

Expert Delphi 302 373 mezo

Expert Delphi

Indirmek icin tiklayiniz…

Angular Test-Driven Development 302 373 mezo

Angular Test-Driven Development

Indirmek icin tiklayiniz…

Mastering Qt5 302 373 mezo

Mastering Qt5

İndirmek için tıklayınız…

Artificial Intelligence with Phyton 302 373 mezo

Artificial Intelligence with Phyton

Click for Download PDF…

PostgreSQL Development Essentials 302 373 mezo

PostgreSQL Development Essentials

indirmek için tıklayınız…

Andriod UI 302 373 mezo

Andriod UI

Android UI Design örnek kodları ve birden fazla ortam için dönüştürülmüş formatları ile Android kullanıcı arayüzü tasarımında büyük ilerleme sağlayacağınız bir kitap olacak.

İndirmek için tıklayınız…

Bölüm 3 – Swift Playground Alistirmalari 1024 729 mezo

Bölüm 3 – Swift Playground Alistirmalari

Merhaba arkadaşlar

Şimdi geldi sıra biraz Swift alıştırması yapmaya  Xcode IDE’mizi kurup açtıktan sonra örnek bir Playground  dosyası açarak devam ediyoruz ve biraz Swift alıştırmaları yapıyoruz. Bunun nasıl yapılacağını bilmiyorsanız muhtemelen bir önceki yazıyı okumadınız anlamına geliyor hemen vakit kaybetmeden buradan okuyabilirsiniz.

35+23
62-14
50/ 3
423 * 514

Playground sayfasını açtıktan sonra başlayalım Swiftin basit kodlarını tanımaya.

İlk Örnek olarak Operatorleri tanıyalım yani Swift hangi işaretlerle matematiksel işlemleri yapabilir ve kod olarak sunları yazalım ve işlemlerimizin sonucunu anında sağ taraftakı alanda görelim.
Bu işlemleri yaptıktan hemen sonra sol taraftaki alanda sonuclarının çıktığını göreceğiz.
Peki Swift programlama dilinde tipler neler ve nasıl tanımlanıyor hemen bir örnekle devam edelim burada spesifik olarak bir tip tanımlayarak yolumuza devam etmek istediğimiz takdirde bu tip tanımlamalarını yapabiliriz. Tiplerin diğer dillerden pek bir farkı yok yalnızca tanımlama aşamasında biraz değişik gelebilir.
Playground alanımıza şu kodları yazalım:

//Tipler
var yas : Int  = 32 :
var para : Double = 11.5
var isim : String = “Mezo”
var dogruYanlis : Bool = true

Peki bu bir kural mı yani bu şekilde yazmadan bir değişken tanımlamak mümkün mü sorusuna evet olarak cevap verip Javascript te nasıl bir tip tanımlama zorunluluğumuz yoksa burada da bir tip belirtmeden bir değişken tanımı yapabiliriz. Aşağıdaki örnekleri Playground a yazarak çıktılarını inceleyelim :

//Tip tanimi yapilmadan tanimlanan degiskenler
var yasim = 31
var ismim = “Mezo”
var param = 13.5
var bilgilerDogrumu = false
// Degiskenlere deger atanmasi
ismim  = “Mehmet Zeki”

Değişkenlerden bahsederken sabitlerden bahsetmemek olmaz tabi ki. Bir değişenin yalnızca okunabilir olmasını istiyorsanız daha sonradan üzerine veri yazılmasını değiştirilmesini istemiyorsanız sabit değişken tanımlarsınız buda Swift te şu şekilde oluyor :

// Sabit Degiskenler
let BilgisayarMarkasi = “Apple”
//BilgisayarMarkasi = “Microsoft” // Bunu yazamazsiniz cunku degiskenin basina let yazildiginda constant (sabit) olur degistirilemez.
Basit alıştırmamıza karşılaştırma operatörleri ile devam ediyoruz sayın okuyucu o mu büyük bu mu? bunlar eşit mi yoksa değil mi ? Gibi sorularınızın cevabı işte asağıdaki kodlarda önce sabit değişkenlerimizi tanımlıyoruz ardından da karşılaştırıyoruz
//Karsilastirma Operatorleri
let benimYasim = 31
let babaminYasi  = 50
let arkadasiminYasi = 29
let kacSenedirDunyadayim = 31

benimYasim > babaminYasi
benimYasim == kacSenedirDunyadayim
benimYasim < babaminYasi
benimYasim <= kacSenedirDunyadayim benimYasim >= kacSenedirDunyadayim
benimYasim != babaminYasi

Playground projesi açarak bu alıştırmaları yazdığımızda anlık sonuçlarınıda görmüş olacaksınız aşağıdaki resimdeki gibi

Umarım Yararlı olmuştur
Bilgiyle Kalın
M.Zeki OSMANCIK

Bölüm 2 – Swift Playground ile Oynayalım 1024 306 mezo

Bölüm 2 – Swift Playground ile Oynayalım

Merhabalar arkadaşlar

Xcode kurulumunu tamamladıktan sonra artık Swift öğrenmeye başlayabiliriz. 2014 yılında Uluslararası Yazılım Geliştiricilerı Konferansında (Worldwide Developer Conference) Apple tüm IOS geliştiricilerini şaşırtarak ‘Swift’ adında yeni bir programlama dilini kullanmaya başlayacaklarını duyurdu. Bu dil öğrenmesi kolay ve bir çok yeniliklerle geliştiricilerin daha verimli üretken olmalarını sağlayabilecekti.

Bu dilden önce IOS uygulamaları geliştirmek için Objective C dili kullanılıyordu. Bu dil yaklaşık 20 yıldır Apple tarafından öncelikli programlama dili olarak MacOS IOS uygulamaları için kullanılıyordu. Objective C öğrenmesi zor ve syntax’ı karışık hataya müsait ve yeni başlayan insanları korkutan ,akılda kolay kalmayan bir programlama diliydi.

Swift programlama dilinin çıkarılması Apple’ın bu tarz yorumlara en güzel cevabı oldu. Syntax temiz ve okuması daha kolay bir programlama dili. Ben Swift’i kullanmaya yeni başladım daha önce Objective C ile uygulamalar geliştirdim anca söyleyebilirim ki o zaman kesinlikle işkence çekmişim Swift kesinlikle daha kullanışlı ve kolay 🙂 Swift’i öğrendikten sonra Objective C o kadar zor geldi ki geri dönüp baktığımda tekrar Objective C ile uygulama geliştirir miyim ? Hiç Sanmıyorum 🙂

Swift bir çok yazılımcıyı IOS yazılımı geliştirmesi için tahrik edecek gibi duruyor. Eğer bir Web Developer sanız ve daha Javascript AngularJS gibi dillerle uğraşıyorsanız müjdeler olsun Swift öğrenmeniz ve uygulamanıza başlamanız sadece bir kaç gününüzü alacaktır. Eğer programlama deneyimi olmayan yeni başlayan bir aday iseniz çok endişelenmeyin sizinde yanlızca bu yazı dizisini bitirmeniz ve bol bol pratik yapmanız sonrasinda siz de uygulamanızı geliştirebilecek hale gelebilirsiniz.

Haziran 2015 de Apple Swift 2 yi duyurdu ve bu programlama dili açık kaynak (open source) haline geldi. Bu herşeyini gizli tutan Apple için çok büyük bir adım oldu. Dili açık kaynak haline getirerek geliştiricilerin bu programlama dili için ilginç ve yaratıcı projeler eklemesi anlamına geliyordu. Swift yanlızca IOS uygulaması geliştirilen bir dil olmaktan çıktı mesela IBM giib firmalar web framework (kütüphane) yaratıp Swift ile web uygulamarının da geliştirilebilmesini sağladılar. Belki bir gün Android uygulamarınıda Swift ile yazarız kim bilir 🙂

Bu yılın ilk aylarında Swift 3 ü duyuran Apple Eylül 2016 da yeni versiyonunu çıkardığı Xcode 8 i tamamen Swift 3 ile entegre hale getirdi ve geliştiricilerin huzuruna sundu. Bu versiyon Swift in doğduğu tarihten itibaren çıkarılan en büyük en iddialı versiyonuydu.

Swift 3 te çok fazla bir değişiklik yok gibi görünse de API isimleri değiştirildi ve eklenmiş daha fazla özellik tanıtıldı. Bütün bu değişiklikler işleri zorlaştırmaktan çok geliştiricilerin daha kolay uygulama geliştirmeleri için yapılan değişiklikler ve özellikler. Şu değişti bu değişti şeklinde açıklama yapmayacağım çünkü öğrenmeye yeni başladık değil mi ? Kafa karıştırmaya gerek yok eski versiyonları bilmediğinize göre direkt yenisini öğreneceğimiz için sorun yok.

Şimdi isterseniz Objective C ve Swift kodlarına bakalım…

Objective C

const int count = 10;
double price = 23.55;

NSString *firstMessage = @”Bu Swift bir harika dostum “;
NSString *secondMessage = @”Öyle değil mi ?”;
NSString *message = [NSString stringWithFormat:@”%@%@”, firstMessage, secondMessage];

NSLog(@”%@”, message);

 

Swift

let count = 10
var price = 23.55

let firstMessage = “Bu Swift bir harika dostum”
let secondMessage = “Öyle değil mi ?”
var message = firstMessage + secondMessage

print(message)
Kodlara baktığımızda ilk kısımda Objective C kodlarını görüyoruz ikinci olarak Swift kodlarını görüyoruz. Hangi dili tercih edersiniz ? Sanırım cevaplar aynı herkes Swift’in daha okunur kolay göründüğünü düşünüyordur. Objective C nin syntax’ı daha karışık biraz daha zor gibi.

Contant(sabit) ve Variable (değişken) tüm programlama dillerinde yer alan basit yapılardır. Objective C de kullanacağınız değişken ve sabitlerin hangi türden olacağı içersine hangi değerlerin tutulacağını biz belirlemek zorundayız.Örneğin bu string (yazı) türünden değişkeni tanımlamak için NSString yada NSMutableString değerlerini kullanmak gerekiyor bunların arasındaki farkları anlatmayacağım uzun uzun ancak bu yapılardan hangisini kullanmamız gerektiğine bizler karar vermek zorundayız ancak Swift te böyle bir zorunluluk yok yalnızca değeri ismiyle tanımlamanız yeterli.

Kodlamayı öğrenmek için alıştırma yapmak kadar etkili bir yöntem yoktur arkadaşlar unutmayın ne kadar çok alıştırma yaparsanız o kadar çok mantığı öğrenip kodlarınızı kendiniz yazmaya başlayacaksınız işin sırrı yazmak yazmak yazmak 🙂

Evet şimdi sıra geldi Swift ile programlama alıştırması yapmaya :

Resim 2-1 Xcode Başlangıç Penceresi

Playground özel bir Xcode dosyasıdır basitce Başlangıç Penceresinden seçip isimlendirip kullanmaya başlayabilirsiniz.

Resim 2-2 Playground Dosyası Oluşturmak

İstediğini ismi verebilirsiniz, Next butonuna bastığınızda dosyanın nereye kaydedileceğine dair bir pencere ile bir yer seçmelisiniz ve sonrasında işte karşımızda Playground 🙂

Resim 2-3 Playground Interface’i.

Şimdi bu ekranı tanıyalım : Sol tarafta bir editör bulunuyor bu editör kodlarımızı yazdığımız editördür, sağ tarafta görülen panel ise sol taraftaki editöre yazdığımız kodların çıktılarını anında gördüğümüz bir alan bulunmakta. Ekranı ilk açtığımızda default olarak 2 satır kod görüyoruz Import ile başlayan kod satırı bir kütüphanenin kullanılacağını belirtir. Farklı kütüphaneleri kullanacağımız zaman mutlaka dosyamız üzerine import etmemiz gerekmekte.

Haydi artık kodlarımızı yazmaya başlayalım.

Önce değişken tanımlayarak başlayalım.

var isim = “MEZO”

Bu satırları yazar yazmaz hemen sağ tarafta çıktılarını göreceksiniz şu şekilde.

Resim 2-4 Sonuçların Sağ Panelde Gösterilmesi

Sonrasında aşağıdaki kodla devam edelim

isim.lowercased()
Xcode editörü otomatik tamamlama (IntelliSense) özelliğine sahiptir yani siz bir değişken yada bir obje tanımladıktan sonra tekrar cağırmak yada kullanmak isterseniz Xcode editörü size seçenekleri sunuyor yanlış yazma olasılığınız ortadan kalkıyor. Yukarda ‘isim’ adında bir değişken tanımladık , editöre ‘is’ yazdığınız anda size aşağıdaki resimde göreceğiniz gibi bir öneri penceresi çıkarmakta ve size ‘is’ ile başlayan objeleri ve tanımladığınız değişkenleri göstermekte bu özelliği kullanmak için tek yapmanız gereken çıkan isteden ‘isim’ i seçip Enter tuşuna basmak.

Resim 2-5 Intellisense

Swift yapılarında (.) nokta işareti kütüphanelerde bulunan metotları çağırmak için kullanılırlar. Tek yapmanız gereken değişken yada objenin isminden sonra (.) noktaya basmak ve Intellisense listesi yine karşımızda bu sefer metot listesi geliyor buradan da ‘U’ harfine basarak uppercased metodunu listeden seçip Enter tuşuna basmanız yeterli olacaktır.

Resim 2-6 Intellisense üzerindeki metot önerileri listesi

Şimdi kodlamaya aşağıdaki kodla devam edelim

isim.lowercased() + ” Blog”
Swift (+) artı operatörü ile bu string tipindeki nesneleri birleştirme imkanı sunuyor. Yazdığımız kod ile message2 içersindeki yazıyı küçük harflerle yazıp sonunada eklediğimiz yazıyı ekleyerek bizlere gösterecektir. İlginç ve eğlenceli olan bir küçük nokta belirteyim kodlarınızın arasına emojiler de ekleyebiliyorsunuz 🙂 Nasıl mı ? Tek yapmanız gereken Control + Command + Space tuşlarına basmak ve emoji seçme ekranı karşınıza geliyor.

Başka bir kodla devam edelim

if isim == “MEZO BLOG” {
print(“isim ayni”)
} else {
print(“isim ayni degil”)
}
Koşul mantığı programlamada çok yaygın kullanılır. Hayatta olduğu gibi programlarımızda da bazı seçimler yapmak zorunda kalabiliriz bu karar aşamasında bazı koşulları belirterek farklı işlemler yaptırmak mümkün. Bunun için yazmamız gereken kod ‘if-else’ koşul kodlarımızdır. Yukardaki yazdığımız kodun Türkçe meali şudur : Eğer isim “MEZO BLOG” ile aynı ise o halde “isim ayni” yaz. Eğer değilse o halde “isim ayni degil” yaz dedik.

Haydi birazda ön yüz(UI – User Interface). elemanları ile çalışıp çalışmamızı biraz şenlendirelim. 🙂

let messageLabel = UILabel(frame: CGRect(x: 0, y: 0, width: 300, height: 50))
messageLabel.text = message1
messageLabel
Aslında bu tür elemanları gerçek bir IOS projesi açtığımızda mouse ile ekleyebileceğiz ancak burada kodlarımız ile bir önyüz elemanı yaratıp nasıl görünüyor onu test edeceğiz. Yukardaki kodda genişliği 300 yüksekliği 50 pixel olan bir Label (etiket) türünden bir UI elemanı ürettik ve içersinde göstermesi içinde message1 değişkenini verdik. Bu kodu yazdıktan sonra sağ panelde herşeyin sonucunu görüyorduk ya bu kez orada birşey göremeyebiliriz yani görücez ama sonucu değil. Aşağıdaki resimde gördüğünüz üzere bu kodun sonucunun tam karşısındaki sonucun yanında 2 tane nokta belirecek biri Quick Look (Gözat) diğeri ise Show Result (Sonucu Göster) eğer Quick Look butonuna tıklarsanız Label nesnesinin neye benzediğini ve içersindeki mesajı görebilirsiniz.

 

Resim 2-7 Oluşturduğumuz Label Nesnesinin Görünümü

Bu sadece basit bir Label(etiket) nesnesi içinde bir yazı var ancak bu nesnenin özelliklerinide değiştirebiliyoruz mesela rengini değiştirelim , yazıyı ortalayalım ,kenarlarını yuvarlak yapalım.

messageLabel.backgroundColor = UIColor.orange
messageLabel.textAlignment = NSTextAlignment.center
messageLabel.layer.cornerRadius = 10.0
messageLabel.clipsToBounds = true
messageLabel
Ve karşınızda özellikleri değiştirilmiş bir Label nesnesi 🙂

 

Resim 2-8 Label Nesnesinin Değişmiş Özellikleri

Bu IOS SDK nın gücü arkada hazır derlenmiş olarak bulunan binlerce kütüphaneden geliyor ve bize kolayca nesne yaratmak özelliklerini değiştirmek gibi işlemleri kolayca yapmamızı sağlıyor.

Evet Swiftin tadına az da olsa baktınız 🙂 Umarım sevmişsinizdir ve yapıyı öğrenmek sizler için kolay oluyordur. Bu yazıda yaptığımız örneğin playground dosyasını buradan indirebilirsiniz.

Sorularınızı yorum olarak yada email ile ulaştırabilirsiniz.

Sonraki Yazıda Ne Var ?

Bu yazının sonuna geldiniz şimdi sıra biraz alıştırma yapmakta sonraki bölüm bol bol alıştırma yapabileceğiniz bir bol örnekli bir yazı olacak değişkenleri operatörleri vb basit başlangıç nesnelerini tanıyacaksınız. Size tavsiyem hiç vakit kaybetmeden bir sonraki bölüme geçip alıştırma yapmanız.

Bilgiyle Kalın

M.Zeki OSMANCIK

 

< – Bölüm 1 – Xcode8 ile Uygulama Geliştirmeye Giriş

Bölüm 1 – Xcode8 ile Uygulama Geliştirmeye Giriş 1024 640 mezo

Bölüm 1 – Xcode8 ile Uygulama Geliştirmeye Giriş

Merhaba arkadaşlar

Tek tek makale yazmak yerine,  makalelerimi seri olarak yayınlayıp sizlere komple bir eğitim seti sunmak istedim ve bunun için hobi olarak başladığım IOS programlamayla alakalı yazılar hazırladım.
Günümüzde her şeyin akıllı cep telefonlarıyla yapılabildiği aşikar ve hemen hemen herkesin farklı konularda değişik fikirleri var.  Neden kendiniz bir uygulama gelistirip bunu AppStore üzerinden insanlarla paylaşmayasınız ki? Bu ilk yazımda sizlere hemen kod yazımı vb. şeyler yazmayacağım. Bu yazı bir ısınma yazısı; nelere ihtiyacımız var, nasıl öğreniriz? Bunun gibi giriş bilgilerinden bahsedeceğim.<

1. Bir  Mac edinin 
Evet yanlış okumadınız bunu yapabilmek için bir Mac bilgisayara ihtiyacımız var maalesef. Aranızda “Mac Türkiye’de kaç para haberin var mı? Mac bilgisayar edinmeden de IOS yazılımı yapılır hocam” diyen muhalif arkadaşlar çıkacaktır elbet, onlara cevabım : Evet Mac olmadan da IOS yazılım geliştirilebilir ama yazı serisi NATIVE IOS PROGRAMMING konularını içermekte olduğundan, bu yazı serisini takip edip IOS programlama öğrenebilmeniz için Mac bilgisayar edinmeniz şart.

2. Bir Apple Hesabı Açın 
Mac bilgisayarınızı edindikten sonra AppStore üzerinden veya internet sitesinden XCode programını indirip yükleyebilmek için Apple hesabına ihtiyacınız olacak. En önemlisi de bu hesap ile XCode üzerinden geliştirmeye devam ettiğinizde Iphone ya da Ipad üzerine deploy edip test etmenize müsade edecek.  Eğer Apple hesabınız yoksa buradan: (https://appleid.apple.com/account) kolayca edinebilirsiniz

3. XCode Yükleyin
IOS programlamaya başlamak, native kod ile IOS uygulamaları geliştirebilmek için Xcode adı verilen IDE (Integrated Development Environment)’yi AppStore ya da internet sitesinden indirip Mac bilgisayarımız üzerine kurmanız gerekmekte. XCode dışında bir program ya da bir eklenti kurmanız gerekmiyor çünkü IOS SDK (Software Development Kit) XCode ile birlikte bilgisayarınıza kuruluyor.
Daha öncede söylediğim gibi XCode programını bilgisayarınıza indirmeniz için 2 yöntem var :
XCode u AppStore üzerinden indirmek
Xcode u indirebilmek için Mac bilgisayarınız üzerinde bulunan AppStore programını açıp arama kısmına XCode yazarak bulup ücretsiz olarak indirebilirsiniz. Bu arada eğer AppStore üzerinde MACOS ile ilgili bir update varsa mutlaka bu updateleri tamamladıktan sonra XCode programını kurmanızı tavsiye ederim.

Resim 1-1. Simge Barında ki AppStore İkonu

XCode un AppStore sayfası böyle bir şey :

Resim 1-2. AppStore’daki XCode Download Sayfası

İndirdikten ve kurulum tamamlandıktan sonra Launch Pad de böyle bir simge göreceksiniz Tebrikler XCode u mac bilgisayarınıza kurdunuz 😀

Resim 1-3. LaunchPad üzerindeki Xcode simgesi

Bu yazı dizisi özellikle Xcode8 üzerine devam edeceğinden eğer daha önce bilgisayarınızda Xcode varsa mutlaka update etmenizi tavsiye ediyorum yapacağımız örnekleri daha kolay yapmanızı sağlayacaktır.
Xcode u Internet Sitesinden İndirmek
Normalde AppStore üzerinden bu programı edinmek çok daha kolaydır ama tercih eden olursa ”Ben cinsim AppStore dan indirmeyeceğim.” diyen olursa internet sitesi olan http://developer.apple.com/
register/
üzerinden de Apple hesabınızla giriş yapıp indirebilirsiniz. Bu işlemde daha sonra indirdiğiniz dosyaya çift tıklayıp kurmanız da gerekiyor 🙂

4. Apple Developer Programına Üye Olmak (Opsyonel)
Kafa karıştırıcı bir durum bu aslında. IOS programlama yapmak için ”İlla bu programa katılıp para vermeli miyiz?” soruları çok dolanıyor. Xcode8 sürümü için zorunlu değilsiniz, para ödemeseniz de olur. Xcode7 den önceki sürümlerde eğer iPhone ya da iPad üzerinde deploy ve test etmek isterseniz mutlaka bu programa paşa paşa  yıllık parasını verip üye olmanız gerekiyordu ancak Xcode7 de Apple insafa geldi ve bu zorunluluğu kaldırdı. Xcode7 ve 8 sürümlerinde sadece Apple hesabınızla Xcode programını çalıştırıp proje oluşturmanız yeterli. İPhone ve iPad e deploy edebiliyorsunuz.   Bu yazıyı okuduğunuza göre yeni öğreniyorsunuz yani uzun bir süre bu programa para vermenize gerek olmayacak demektir.
Her şey bitti, IOS programlamayı öğrendiniz ve bir uygulama geliştirdiniz diyelim. ”Hadi bunu AppStore da yayınlayayım da herkes indirsin kullansın  hatta bu uygulamaya bir fiyat biçeyim satın alma işlemi de olsun ya da ICloudKit ile ICloud üzerine yedek alan bir uygulama yapayım” dediğiniz zaman bu Apple Developer Programına  (https://developer.apple.com/programs/) üye olmanız ve yıllık $99 bayılmanız gerekmekte, aksi takdirde uygulamanızı yanlızca kendi telefonunuzda kullanmaya devam edersiniz. 🙂
Özet olarak şimdilik para falan vermenize gerek yok sadece fikriniz olsun diye ekledim 🙂
5. Ne Öğrenmeniz Gerekiyor 
IOS uygulaması yapabilmek için ortamı hazırladık IDE kurduk Apple hesabı hazır şimdi sıra geldi  uygulamayı hangi dil ile geliştireceğiz sorusunun cevabına:
* Swift Öğrenmeliyiz : Apple ın geliştirdiği yeni nesil programlama dili Swift her otorite tarafından tavsiye edilmekte. Objective C biraz eski moda ve zor kaldı artık.
* Xcode öğrenmeliyiz : Alt tarafı program deyip geçmeyin gavur yapmış 🙂 Xcode üzerindeki her şeyi öğrenmelisiniz ki etkili ve güzel uygulamalar geliştirebilesiniz.
* IOS Development Kit Öğrenmeliyiz : IOS Development Kit içersinde bulunan yapı UI kontrollerini API leri öğrenmeliyiz ki istediğimiz her işlemi kolayca uygulamamıza entegre edebilelim.

Öğrenmek gereken çok şey var ama merak etmeyin bu yazı dizisi ile çoğu konuyu en iyi şekilde öğrenmiş olacaksınız tek yapmanız gereken biraz vakit ayırmak.
Evet ilk yazımın sonuna geldik. Sorularınız olursa yorum olarak yazın, cevaplamaktan keyif duyarım.
Bilgiyle Kalın

Bölüm 2 – Swift Playground ile Oynayalım -> 

C# – DataTable İçindeki Verilerin Sıralarını Ters Çevirmek 150 150 mezo

C# – DataTable İçindeki Verilerin Sıralarını Ters Çevirmek

Merhaba arkadaşlar
Her yazılımcının korkulu rüyası olan test uzmanı arkadaşlarımdan biri olan Bill bir hata kaydı açmış ve demiş ki şu şu sayfada ki listelenen verilerin sıralamaları yanlış ters olması lazım demiş. Bende ufak bir araştırma sonucu bir metod oluşturarak bu problemi çözdüm ve pratik bir bilgi olması açısından sizlerle paylaşmak istedim.
İşte o kodlar 🙂

[codebox 1]

Bilgiyle Kalın
M.Zeki OSMANCIK

AngularJS – Factory 638 479 mezo

AngularJS – Factory

Merhaba arkadaşlar

Bu yazıyı okumadan önce hemen Servis makalesini okuyup devam ederseniz sizin için daha yararlı olacağını düşünüyorum.  Burdan Okuyun hemen. 😉

Factory Angularjs nin dış işleri bakanıdır. Yani dış bağlantılarla alakalı olan işleri yönetmemizi sağlar. Yani web servis çağrılarımızı bu Factory ler üzerine yazarak tüm Controller lar üzerinden rahatça erişebilir ve kullanabiliriz. Servisler makalesınde yaptığımız tanımın aynısını factory içinde yapabiliriz yani hem kodların kolay okunması hemde test edilmesini kolaylaştıran javascrıpt dosyalarıdır. AngularJS e başlayanlar bu iki yapıyı oldukça fazla karıştırırlar bu karışıklığı önlemek için bu oyunu bozuyoruz 🙂

 

Örnek üzerinde hazır github servisi çağırdım 🙂 angular yazıp aratın bakalın ne olacak  🙂

 

 

Umarım Yararlı Olur.
Bilgiyle Kalın.
M.Zeki OSMANCIK

AngularJS – Services 333 302 mezo

AngularJS – Services

Merhaba arkadaşlar
AngularJS de servisler hem kodların kolay okunması hemde test edilmesini kolaylaştıran javascrıpt dosyalarıdır. Servisler genelde kod içersinde kullanacığımız bazı methodlar için yazabiliriz. Örneğin bir hesaplama yapması gereken bir methodu servis olarak oluşturup Controller üzerinde birden fazla yerde kolayca kullanıkmasını mümkün kılabiliriz. AngularJS servis ve factory yi kullanarak Separation of Concerns konseptini desteklemektedir.
Peki Separation Concerns nedir ? Bir yazılımı oluşturan kodların katmanlara ayrılmasıdır. Web sitemizin veritabanından bir veri alıp bize sunması için gerekli olan her bir işlemi ayrı ayrı konumlandırmak da diyebiliriz ; veri tabanına bağlanan kod ayrı , onu alıp işleyen kod ayrı , son olarak web sayfası üzerinde gösteren kod ayrı yerlerde katmanlar halinde yazılır ki bu katmanları okuması hata tespiti yada test kodlarımızın çalışması kolaylaşsın. Bu konsepte en uygun örnek MVC Design Pattern dir.
Konumuza geri dönecek olursak AngularJS ile oluşturulan bir projede servis iç işlevlerin birden fazla controller üzerinden çağırılabilmesi için oluşturacağımız klasik javascript metotlarıdır.
Hemen kısa bir örnekle merakımızı dindirip. Örneği inceledikten sonra hemen Factory yazısınıda okursanız sizlere çok katkısı olacağını umuyorum.

Umarım Yararlı Olur.
Bilgiyle Kalın.
M.Zeki OSMANCIK

Raspberry Pi 3 Nedir ? 1024 647 mezo

Raspberry Pi 3 Nedir ?

Merhaba arkadaşlar

pi_3Raspberry Pi ARM işlemcili kredi tartı büyüklüğünde bir bilgisayar olarak karşımıza 4 sene once çıkmıştı. Önceki sürümlerinde bluetooth ve wireless bağlantılar için USB donglelar kullanmak zorunda kalsakda 4. senesinde çıkardıkları Raspberry Pi 3’de bu özellikleride kart üzerine entegre ederek bizlere daha fazla USB portu bırakmış 🙂
RaspberryPı bir düşük özellikli bir masaüstü bilgisayardır yani klavye mouse ve ekranınızı bağlayarak temel sözcük işleme işlemleri HD videolar düşük özellik gerektilren oyunlar oynanabilir. Aynı zamanda GPIO pinleri sayesinde kapsamli bir kontrol kapasitesine sahip oluyorsunuz.

GPIO ile kucuk motorlar ledler kameralar çeşitli sensörler vb bir çok cevre birimini kullanabilir kontrol edebilirsiniz. Yapılabilecekler hayal gücünüzle sınırlı 🙂

 

Peki Yeni Raspberry Pi 3 uzerinde neler var ?

Asagidaki resimde de gorebileceginiz uzere

4 Port USB 2 , Ethernet LAN girişi , ses cıkışı (HDMI üzerinden de ses alabilirsiniz ) , CSI Kamera portu , HDMI Portu , Harddisk gibi kullandığımız Micro SD kart girişi , daha önce daha az sayıda olan suan sayısı 40 Pine çıkarılmış GPIO paneli , entegre Bluetooth ve Wireless LAN , 1 GB Ram , 1.2 GHz işlemci mevcut.  Ilk bilgisayarimi hatırlıyorumda Raspberry ondan çok çok çok daha hızlı 😀

Pi3+Breakout+Feb+29+2016

 

İlk etapta aklınıza sadece basit bir bilgisayar resmi canlandırdığı icin kapasitesini bilemeyebilip “Peki bu cihazla ne yapabiliriz?” diyebilirsiniz bu sorunuzun cevabi icinde sürekli takip ettiğim bir Youtube kanalı olan Geek Life in tatlı hatunu Luria Petrucci ‘nin en Cool 10 projeyi tanıttığı videoyuda paylaşıyorum.

Umarım yararlı olur.

Bilgiyle Kalın.

M.Zeki OSMANCIK

AngularJS – Dinamik Değişken 980 400 mezo

AngularJS – Dinamik Değişken

Merhaba arkadaşlar
Bildiğiniz gibi AngularJS de html ile js dosyası arasındaki bağı scope ile sağlıyorduk. Yani controller üzerinde tanımladığımız bır scope nesnesini html üzerinde {{}} veya ng-bind ile çağırabiliyoruz. Bahsettiğimiz değişkenler sabit tanımlanıp görüntülenenler. Bir de JS tarafında tanımlayabildiğimiz değişkenler var ki bu yazımızın konusuda budur zaten 🙂

Hemen HTML kodlarımızı yerlestirelim
[codebox 1]

ve Controller kodlarımız
[codebox 2]

Burada tanımladığımız $scope.dynamicVariable = {}; objemiz içersine istenilen miktarda değişken tanımlanabilir ve HTML tarafından da {{dynamicVariable[company.CompanyID]}} şeklinde kullanabiliyoruz.

ve AngularJS ile dinamik değişkenimiz hayırlı olsun 🙂 Bu da ornegimiz.

Umarım Yararlı Olur
Bilgiyle Kalın
M.Zeki OSMANCIK

AngularJS – Basit Search Filter 1024 789 mezo

AngularJS – Basit Search Filter

Merhaba arkadaşlar
Bu kez de AngularJS ile çooooooook ama çok basit şekilde listelediğimiz nesneler üzerinde bir Text input ile nasıl arama yapabiliriz sorusunun cevabını 2 satırda bir fiddle’da paylaşmak istiyorum.

Bu datayı AngularJS ile Controller içersinde oluşturalım ve bir $scope değiskeni içersine şu şekli tanımlamamız gerekiyor .
[codebox 2]

ve her zaman olduğu gibi HTML kodlarımızı bir oluşturalım ve listeme işlemini gerçekleştirelim.
[codebox 1]

Bu asamadan sonra JSON nesnemizin içersindeki elemanların ekranımıza listelendiğini görebileceksiniz.

İş arama kısmına geldiğinde ise HTML de de şu şekli bir değişiklik yapmamız gerekmekte.

[codebox 3]

Burada kullandığımız FILTER bizim listelediğimiz JSON nesnesi ya da array içersinde input üzerine tanımladığımız ng-model yardımı ile filtreleme yapıp $scope.companyList adında ki objeye atama yapar böylelikle siz de listeye abc yazdığınızda listedeki abc yi bularak $scope.companyList nesnesine atamasını yaparak bizlere gösterir 🙂

Benim yorumlamam bu kadar 🙂
Iste bu kadar basıt 🙂
Örnek kodu Fiddle’dan inceleyebilirsiniz.

Umarım Yararlı Olur
Bilgiyle Kalın.
M.Zeki OSMANCIK

Angular JS – Model 1024 576 mezo

Angular JS – Model

model

Biliyorum Model denilince aklınıza yukarıdaki ablalar geliyor ama hayaller Viktoriya Sikrıt  hayatlar Angular JS ne yapalım  !! Konuyla alakası bile yok tamamen ilgi çekmek için kullandım bu fotoğrafı. Bu model öyle bir model ki bu ablalar kadar güzel olmasa da angularjs ile hayatı kolaylaştıran güzel bir yapıdır şöyle ki :

Bob_at_EaselModel aslinda bir boyadir !!

“Ne diyon lan sen değişik? AngularJS anlatıyordun ne alaka boya badana!” diyebilirsiniz ama Model bir boyadır. Şimdi alakaya çay demleyelim.

MVC yi anlatabileceğim en iyi metafor belki de budur ve bundan sonraki kısımda modeli daha iyi anlayabileceğinizi düşünüyorum.

MVC deki

Model = Boya , Controller = Ressam , View = Tual olarak düşünürsek :

Yani son kullanıcıya bir görüntü, bilgi vb. şeyleri bir web sitesi üzerinde göstermek için öncelikle bu bilgileri ve görüntüleri bir yerden sağlamamız gerekiyor. İste bu verileri DB veya servislerden sağlayan ve View üzerinde Controller yardımı ile gösterilmesini sağlayan yapıya MODEL diyoruz…

Aynı yandaki Bob amcamızın boyayı alıp tuval üzerine küçük yalnız ağaçlar, mutlu bulutlar yapıp resmini tamamlayıp göstermesi gibi bir şey işte 🙂

Şimdi bakalım model denen şey AngularJS içersinde ne gibi bir role sahip bakalım View i nasıl boyayacak ?

Yine bir HTML dosyamız var ve bunun üzerine AngularJS kütüphanesini ve js dosyamızı ekledik ve ng-model nesnesini bu HTML dosyamız içersinde kullandık.

[codebox 1]

 

Burada kullandığım mydata benim modelim olmuş oluyor ve sayfa üzerinde bir veriyi alıp başka bir yere sayfayı yenilemeden, durulamadan, kurulamadan aşağıdaki resimde görüleceği üzere yazabiliyor. Controller içersinde bir tanımlama yapmadan bu şekilde kullanmak mümkün. Bu demektir ki biz controller üzerinde bir servisten ya da bir işlemden elde ettiğimiz değeri mydata adlı modele eşitlersek bu bizim HTML sayfamız üzerinde gösterilecek anlamına geliyor yani tuval üzerine boyamız dökülecek ve resim ortaya çıkacak.

model2

Controller üzerine çok basit bir işlem yaparak bu mydata değerini sayfa üzerinde güncellemeye çalışırsak.

[codebox 2]

Ve bunu HTML üzerinden tetiklemek istersek

[codebox 3]

Sonuç olarak çıktımız şu şekilde olacaktır

 model3

Burada olan olay şu: controller üzerine bir metot yazarak ng-model tarafından kullanılan nesneyi değiştirdim ve butona tıkladığımda anında View üzerinde görüntülemeye başladım. Bu string yerine servisten gelen bir veri olabilirdi ya da bir işlem sonucu elde edilen bir veri olabilirdi.

Umarım Yararlı Olur

Bilgiyle Kalın

M.Zeki OSMANCIK

Angular JS – View 478 326 mezo

Angular JS – View

Merhabalar

Angular JS nin V’si olan “View for Vendeta” ile devam ediyoruz. View denilen yapı aslında HTML dosyalarından baska bir şey değildir.Bildiğiniz gibi AngularJS için şöyle böyle demiştik ,sonra kendisinden Single Page Application olarak bahsetmiştik. Buradaki mantık sabit bir index.html sayfası ve içerisinde sayfalarımızın içeriği ile değişen küçük, leziz, gerçek html parçacıkları ile donatılmış, harika bir tat.

Şimdi isterseniz bu View olayı nasıl çalışıyor sayfa üzerinde nasıl gösteriliyor bir göz atalım…

Öncelikle gerekli olan malzemeleri sayıyorum

1 adet Angularjs kütüphanesi buradan temin ediyorsunuz

1 adet Angularjs Route kütüphanesi onuda buradan temin ediyorsunuz

1 adet Notepad++ o sizde var zaten olmayanı dövüyoruz 🙂

Evet tarife geçelim artık…

Index.HTML dosyanızı oluşturarak içersine şu kodları ekliyorsunuz.

[codebox 1]

Daha önceki Controller makalesindeki indexten tek farkı bir fazla kütüphane ve bir de ng-view denen bir dalga motor eklemişiz.

Ng-view  bizim sayfa göstericimiz  yani ASP.Net de ContentPlaceHolder vardı aynı ondan işte 🙂  ng-view üzerinde gösterilecek olan küçük html parçaları yani sayfa içerikleri ,ngroute kütüphanesini kullanarak oluşturacağımız config nesnesi üzerindeki yönergeleri takip ederek ng-view üzerinde değişirler.

O zaman bir config nesnesi oluşturalımda neymiş bu olay görelim.

[codebox 2]

Görüldüğü üzere module tanımlarken içerisine mutlaka ngRoute tanımlıyoruz ki config oluşturduğumuzda “bu ne lan?”  demesin.

Daha sonra config içersinde $routeProvider.when() metodunu kullanıp sayfa url si sonundaki parametreleri yazarak hangi view gösterilecek bu view in controller i ne olacak belirtebiliyoruz.

Sonrasinda buda Controller im bunu zaten biliyorsunuz bilmiyorsanız “o ne la?” diyorsanız buraya bakınız.

[codebox 3]

Bu arada yukarıda yazmış olduğum config ve controller tek bir JS dosyası içersine yazılıyor yani en azından ben şuanlık öyle yaptım sonra dosya yapısı ve klasörleme yöntemlerinide anlatacağım.

Son olarak eklemiş olduğum iki View  içersine aynı şeyleri yazdım oda şöyle ki :

[codebox 4]

Ve çalıştırdığım zaman aldığım çıktıda burada 🙂

view2 view1

Sonuç olarak 2 değişik sayfayı bir index.html içersinde gösterdik ve sayfa değişimlerini sağladık.

Umarım Yararlı Olur

Bilgiyle Kalın

M.Zeki OSMANCIK

Angular JS – Controller 657 486 mezo

Angular JS – Controller

Selam Arkadaslar

Yazmaya uzuuun bir ara verdikten sonar yine sizlerleyim 🙂 Angular JS konusuna devam edeceğiz. İlk yazımda AngularJS nedir mantığı nedir kısaca bahsettik. Bu yazıda ise MVC nin C sinden bahsedeceğim.

Controller

Controller MVC nin View’i yani son kullanıcının gördüğü ile model yani business logic katmanlarının iletişime geçtiği katmandır.  Yani kod yardimi ve model katmanı ile elde ettigimiz bir veriyi HTML kodlarına gönderme işini üstlenir. Aşağıdaki diagram bize Controller’ın görevini anlamakta biraz daha yardımcı olacaktır.

angularJs_mvc_framwork

Şimdi gelin isterseniz küçük bir örnek ile Controller ne işe yarıyor görelim. Öncelikle JS dosyaları ile çalışacağımızı belirtmek isterim herhangi bir editöre ihtiyacınız olmayacaktır Notepad++ işinizi görecektir. Tabi AngularJS kütüphanesinide buradan indirip eklemeyi unutmayın lütfen.

HTML dosyamizi asagidaki gibi oluşturuyoruz.

[codebox 1]

Ardından birde buradaki ng controller karşısında yer alan Controller1 adlı dosyamızı ekleyip içersine şu kodları eklemeliyiz.

[codebox 2]

Eklemiş olduğumuz ng-controller tagı ile html üzerinde çalışacak olan AngularJS kodlarının nereyi hedef alarak metotları araması ve çalıştırması gerektiğini belirtmiş olduk.

Bu yöntem ile bir angularjs uygulamasının içersine bir controller tanımlayarak bu controller içersine yazdığımız her kodu ve aldığımız her değeri html elemanlari üzerine aktarmamızın ne kadar kolay olduğunu görmüş olduk . Son olarak bu işlemin çıktısı aşağıdaki gibi olacaktır. Butona tıklandığında controller içersindeki metot çalışacaktır.

angularController2

Umarım yararlı olur

Bilgiyle Kalın

M.Zeki OSMANCIK

Angular JS Nedir? 980 400 mezo

Angular JS Nedir?

Merhaba arkadaşlar
AngularJS ile ilgili yazı dizisine başlamış bulunmaktayız 🙂 Haydi hayırlı olsun 🙂
AngularJS google tarafından desteklenen bir Javascript MVC(Modal View Controller) kütüphanesidir.
Modal : Verinin tutulduğu nesnelerdir ve ilişkili olduğu View nesnesini etkiler.
View : Template in yani görünümün tutulduğu nesnelerdir.
Controller : Modal ve View nesnelerini bağlayan nesnedir. İşlemler kontroller Controller üzerinde yapılır

AngularJS kendi kütüphanesinden başka kütüphanelere bağımlı değildir. Bunun için sadece AngularJS kütüphanelerini ekleyerek
tek sayfa uygulamaları geliştirmeye imkan sağlar. AngularJS’in en önemli özelliği çift yönlü olmalarıdır.
Yani modal’da olan değişiklik view’a , view’da olan değişiklik modal’a yansır. Directive’ler ile
yeni html tag’larının geliştirilmesine de olanak sağlar. Kodlar kısalır karmaşa ortadan kalkar.
AngularJS kütüphanesi yaklaşık 100kb boyuttadır. https://angularjs.org
AngularJS çeşitli bileşenleri içeren modüller şeklinde oluşturulmuştur. Bu modüller; Directive’ler Service’ler
Provider’ lar Type’lardır.

AngularJS Kütüphaneleri
ng  : AngularJS in temel modüllerini içeren kütüphanedir. Varsayılan olarak yüklenir.
ngRoute : AngularJS uygulamaları içersinde URL yönetimi yapmak için kullanılır. (angular-route.js)
ngAnimate : AngularJS uygulamalarında animasyon özelliklerini sayfalarımıza eklemek için kullanılır. (angular-animate.js)
ng-Cookie : Cookie yönetimi için kullanılır. (angular-cookies.js)
ng-Touch : Mobil tarayıcılar için geliştirilen sayfalarda kullanılabilir. (angular-touch.js)
ng-Mock : Testlerde mock işlemi yapmak için kullanılır.

Şimdi gelin size basit bir örnek yapalım 🙂

HTML Sayfamız
[codebox 1]

JavaScript Dosyamız
[codebox 2]

Örneğe buradan ulaşabilirsiniz 🙂

Bilgiyle Kalın
M.Zeki Osmancık

Windows 10 Start Menü Problemi Çözümü 1024 535 mezo

Windows 10 Start Menü Problemi Çözümü

Merhaba arkadaşlar

Windows 10 kullanırken başıma gelen ve çözümünü bulduğum bir problemi sizlerle paylaşmak istiyorum. Windows10 işletim sisteminin 9926 Built ‘ini kullanıyordum bir gün bir baktım ki Start menüsü çalışmıyor ne yapsam ne etsemde olmadı. Update yaptım yeniden başlattım vs vs gibi yöntemlerle çözüme ulaşamadım ve başladım araştırmaya. Araştırmalarım sonucunda Powershell ile birlikte bazı kodların çalıştırılarak windows içindeki bazı paketlerin yeniden yüklenerek bu işlemin gerçekleşeceğini öğrendim. Öncelikle Powershell.exe yi bularak Administrator olarak çalıştırıyoruz ve ardından kodumuzu yapıştırıp enter a basıyoruz.

Kod şu şekilde:

[codebox 1]

Bu kodu çalıştırdıktan sonra aşağıdaki gibi bir işlem gerçekleşiyor.

powershell

 

Voila 😀

Artık Start Menümüz sağlıklı şekilde çalışıyor .

Umarım yararlı olur

Bilgiyle Kalın 😉

M.Zeki Osmancık

 

Unity – Kurulum ve IDE 1024 457 mezo

Unity – Kurulum ve IDE

Merhaba arkadaşlar

Unity ile oyun yazmaya merak sardım bu aralar hobi olsun diye işin ustası Tolga Kaçar ve biz öğrencileri Ahmet Kayar ve ben birlikte öğle aralarımızı Unity öğrenerek değerlendirmeye başladık. 🙂  İlk iş olarak nasıl kurulum yaparsınız diye anlatmak istedim hemen arkasından da IDE üzerindeki pencerelerden bahsedeceğim.

Unity ‘de “merhaba dünya” falan yapmayacagim bu yazımda sadece Unity nedir ,ne yapar, nerden kuracagiz actigimizda gelen ekranlar nedir kisaca ve basitce bunlardan bahsedecegim oncelikle Unity biz developerlara sunulmus 3d veya 2d oyun programlama sağlayan çok eyi ,çok da güzel eyi bir IDE. 🙂 Oyun programlama ile ilgili hiç bir fikriniz yoksa şu soru kafalarda belirebilir ben 3 boyutlu çizim bilmiyorum nasil olacak ? Dert etmeyin hazır, beleş veya ücretli yada ücretli ama beleş assetler yani 3 boyutlu yada 2 boyutlu cizimler nesneler internette mevcut 😉 Çizim olayini hallettik peki ya kod olayi derseniz onuda C# ile hallediyoruz 🙂
Evet cok geyik yapmadan kuruluma gecelim artik 😉 Ilk olarak unity3d  sitesine giriyoruz ve GET UNITY butonuna tıklayarak installer dosyasını PC ye indiriyoruz ve kuruluma geçiyoruz 🙂

Unity-setup1

Download bittiyse sıra ile kurulum islerine gecebiiriz. Kurulumda dikkat edilecek isaretlenecek onemli bir configurasyon yok o yuzden resimleri arka arkaya koyuyorum

Unity-setup2

Unity-setup3

Unity-setup4

Unity-setup5

Unity-setup6

Kurulumu yaptik programimizi actik heyecanliyiz 😉 gelelim Unity yi açıp ilk etapda cikan ekranda neler var gordugumuz seyler neler onlara bakalım:

Unity-setup7

Unity-setup9

unity5

 

Hieracrhy : Bu listede oyun nesnelerimiz yer alir karakter yerler gokler gorup gorebilecegimiz hersey burada yer alir ilk etapda zaten bir kamera nesnesinin eklenmiz oldugunu gorebiliyoruz.

Inspector : adiindanda anlasilacagi gibi oyun nesnelerimizin pzelliklerini gorebildigimiz ve editleyebilgimiz penceredir kendisi 😉 u ity i actiginizda sol tarafta hicbirsey gorunmuyorsa kamera nesnesine tikladigimizda bu kameranin ozelliklerini gorebiliriz.

Scene : orta kisimda bulunan bu yer bizim sahnemiz oyunumuzu bu sahne uzerinde goruntuleyip nesneleri burada yerlestiriyor olacagiz. Ilk bakildiginda kamerani. Sahne uzerine yerlesmis oldugunu gorebiliriz

Asagidaki pencere . Bu pencerede projemiz icersinde bulunan resimler spritelar materialler , script dosyalari kisaca proje icerigi yer alir.

Evet bu yazida bu kadar unity i kurduk ve pencereleri tanidk bir sonraki yazida 2 boyutlu bir oyuna baslayacagiz birlikte tabi cok hizli ilerlemeden 🙂 tek makalede bi mario beklemeyin 😉 ayrica projemizide yine size duyuruyor olacagiz 😉

Şimdilik bu kadar 🙂

Umarım Yararlı Olur

Bilgiyle Kalın

M.Zeki Osmancık

XRebel Nedir ? 1024 755 mezo

XRebel Nedir ?

Merhaba arkadaşlar

İlginç bir konu ile karşınızdayım 🙂

Web Sayfaları yapıyorsunuz java kullanıyorsunuz ve sizin ve takım arkadaşlarınızın yaptığı sayfaların performansı ile ilgili şüpheleriniz var. Sayfaların performansını ölçen bir tool mevcut adı XRebel.

XRebel sayfa içersindeki sorguları session verilerini vb  performansı etkileyen kısımları ölçerek ayrıntılı bir rapor çıkartabilen bir tool. Dilerseniz 15 günlük Trial i mevcut.

Şimdi sizlere nasıl XRebel tool unu sayfamız üzerine entegre ederiz resimlerle bahsetmek isterim 😉

Çoooook basit şekilde kurulumu anlatmak gerekirse

Öncelikle http://zeroturnaround.com/software/xrebel/ adresinden Trial versionunu indiriyorsunuz ve dosyaları zipten çıkarıyorsunuz. Ardından C:/ altına yerleştirdikten sonra Eclipse üzerinde bir Dynamic Web App oluşturuyor ve içersine kodlarınızı yazıyorsunuz benim kodlarım” asdasdasdasdasdasdasd” oldu  😀 Şu şekilde

xrebel2

Sonra Run Configuration kısmını açıp C:/ içersine yerleştirdiğim xrebel.jar dosyasını VM Arguments üzerine ekliyoruz.

 

xrebel1

 

Projeyi çalıştırdığımda kenarda küçük bir bar gelmişse aşağıdaki gibi bu iş tamam demektir. Artık tüm web sitemiz ile ilgili ölçümler başarılı şekilde yapılmaya başlanacak ve ayrıntıları ile bizlere listelenecek. Eğer lisansım gelirse sizlere daha ayrıntılı bir sunum yapacağım 😀

xrebel3

Demo videosunuda buradan izleyebilirsiniz 🙂 

Bilgiyle Kalın

M.Zeki Osmancık

Windows 10 Klavye Kısayolları 1024 576 mezo

Windows 10 Klavye Kısayolları

Merhaba arkadaşlar

Untitled

Windows 10 Pro Technical Preview son halini aldı artık dün akşam gelen sağlam bir update ile sürekli şekil değiştiren Windows 10 stabil halini aldı artık diye umuyoruz 🙂 Herneyse ben kısayollardan bahsetmek istiyorum hemen kısaca 🙂 Windows 10 da Linux ve MacOs ta bulunan multiDesktop özelliği falan gelmiş 🙂 Bunlar içinde kısayol tuşlarını sizlerle paylaşmak istedim 🙂

Pencereleri sağa sola yapıştırmak için  : Windows key + Sağ yada Sol Yukarı tuşu pencereyi full screen yapar Aşağı tuşuda full screnden normal pencere boyutu tekrar basarsanızda simge boyutunda küçültür.

Penceler arası geçiş için : Alt + Tab – Bu bildiğimiz Alt Tab

Task view: Windows + Tab – Bu tuşla hem pencereler arası geçiş hemde desktoplar arası geçiş yapmak için bir ekran açılıyor.

Yeni bir Desktop oluşturmak için  : Windows key + Ctrl + D

Açık olan Desktop u kapamak için : Windows key + Ctrl + F4

Bu Desktoplar arası geçiş yapabilmek için  : Windows key + Ctrl + Sağ yada Sol

 

Umarım yararlı olur

Bilgiyle Kalın

M.Zeki OSMANCIK

 

 

Visual Studio Online da Proje Silme İşlemi 600 274 mezo

Visual Studio Online da Proje Silme İşlemi

Merhaba arkadaşlar

Biraz önce Visual Studio Online da bulunan bir projemi silmek istedim ve uzun süre aradıktan sonra projenin nasıl silineceğini buldum 😀 sizlerlede paylaşmak istedim 😀 Visual Studio  Online ı açtığımızda solda üstte Ayarlar simgesi var ahanda şöyle  🙂  Ona basıyorsunuz sonra karşınıza çıkan ekranda projeler listelenecek hangi projeyi silecekseniz sağ click ve Delete o işlemde ahanda şöyle 🙂

IC686855

Umarım yararlı olur 🙂

Bilgiyle Kalın

M.Zeki OSMANCIK

Whatsapp PC ye Geldi :) 880 695 mezo

Whatsapp PC ye Geldi :)

Merhaba arkadaşlar

Artık PC başındayken telefondan Whatsapp tan yazışma derdine son !!!!! WhatsApp web versiyonunu açıkladı kullanıma açtı bile 😀 Bende denedikten sonra hemen yazayım dedim 🙂  Kulanmak için ne yapmak gerek 🙂 Android işletim sistemli telefonunuzdan WhatsApp taki menüyü açıyorsunuz ve karşınıza bir WhatsApp Web seçeneği geliyor açtığınızda bir kamera çıkıyor kod mod bişi diyor ne olaki la bu derken hemen web.whatsapp.com adresine giriyorsunuz ve karşınıza sayfa çıkınca kafada şimşekler çakıyor 😀 neden kod istediğini anlıyoruz telefonumuzla kodu okutur okutmaz TA DAAAAAAAAA 😀 WhatsApp artık webde 😀 klavyeden yaz yazabildiğin kadar 😀

10947710_10153678930762366_181967451_n,whatsappweb

Web WhatsApp üzerinden resim çekebiliyor yada mevcut resimleri gönderebiliyorsunuz ve ses kaydı yollayabiliyorsunuz 😉

Biz resim yollamanın denemesini yaptık bile işte oda aşağıda gözlerimizden ne kadar sevindiğimiz belli oluyordur heralde 😛 😀

Untitled picture

Haydi Hepimize Hayırlı Olsun 😀

 

Bilgiyle Kalın

M.Zeki Osmancık

Proje Geliştirme Süreçleri – V Model 1024 704 mezo

Proje Geliştirme Süreçleri – V Model

Merhaba arkadaşlar

Yeni bir gün yeni bir Proje Geliştirme Süreci olan V Model ile karşınızdayım 🙂

Daha önce ki yazılarda Waterfall ve Agile yöntemlerinden bahsetmiştik. V model biraz Waterfall metoduna benzer. Yani Waterfallda olduğu gibi tüm analiz ve dökümantasyonun en başta yapılması ve bitirilmesi ihtiyaçların kesinleştirilmesi gerekiyor. Verification and Validation olarak bilinen ve V Model olarak kısaltılan bu metotda Waterfall dan farklı olarak analiz ve ihtiyaçlar kesinleştikten sonra yazılım geliştirmeye başlamadan önce bir test planı oluşturulmalıdır. Bu modelin yazılım ve test döngüleri çizildiğinde V harfi ortaya çıkar 😀  Walla çıkar 😀 aşağıdaki resmi inceleyebiliriz 😀

V-Model

 

Resimde görüldüğü gibi V harfi çıkıyormuş 🙂 resim üzerinden bahsetmek gerekirse burada process sırası olarak sol taraftan sağ tarafa gidiliyor. Öncelikle Analizlerimiz çıkıyor sonra Fonksiyonel özellikler belirleniyor sonra Dizayn aşamasından geçiyor bu analizler ve Programcıların anlayabileceği şekle getiriliyor en ortada kocaman yazdığı gibi programı kodluyoruz sonra unit testi unutmuyoruz onlarsız olmaz 😀 unit testten sonra entegrasyon testi sonra sistem testi sonra kullanıcı kabulu ve kapanış 😀

Burada V harfininde bir özelliği var aslında şimdi her maddenin hemen karşılığında bir madde mevcut soldan sağa doğru giderken kodlama aşamasından sonra sağ tarafta bulunan aşamalardan birinde bir sakatlık bir eksik efendime söyleyeyim bir istek arzu gelirse bu hemen karşısındaki aşamaya atlar yine resimde görüldüğü gibi.

Yani User Acceptence aşamasına gelmiş bir yazılımda kullanıcı bu ürünü kabul etmezseeee 😀 en başa dönüyoruz 😀 tekrar analiz tekrar falan falan falan 😀 Sil baştan olmasada istenilen yeni özellik ile alakalı tüm processler için tekrar bir döngü tekrar bir iş tekrar bir çalışma gerekiyor 🙂

V model çokda zor değil değilmi 🙂 resim zaten açıklıyor…

Umarım yararlı olur

Bilgiyle Kalın

M.Zeki OSMANCIK

 

Kanban Ne Ola ki ? 508 212 mezo

Kanban Ne Ola ki ?

Merhaba arkadaşlar

Proje geliştirme süreçleri ve bu süreçlerde kullanılan metotlar vs ile ilgili küçük bilgiler vermeye tam gaz devam ediyorum 😀 Sırada Kanban var

Kanban, tam zamanında Üretim ortamında malzeme hareketlerinin kontrolü amacıyla kullanılan bir çizelgeleme yaklaşımıdır. Toyota’nın üretim verimliliğini artırmak amacıyla Taiichi Ohno tarafından geliştirilmiştir. Yöntem 1953’ten bu yana kullanılmaktadır. Aslında japoncada görsel işaret veya kart anlamına gelir. Üretimin tam zamanında gerçekleşmesi konusunda başarılı bir metotdur. Tüm olayları görselleştirir ve üretim sürecini büyük resimde görme imkanı sağlar.

Toyotada kullanılmaya başladığına göre küçük bir tahminle biraz hayalgücü ile bu sistemin aslında nasıl çalıştığını hayal etmek çok da zor değil. Bir üretim hattı mevcut ve bu üretim hattı üzerinde ürün bazı işlemlere tabi tutuluyor ve en son olarak bir ürün yani araba ortaya çıkıyor. Örneklemek gerekirse bir band üzerinde önce arabanın iskeletine parçalar sıra ile takılıyor kapılar , çeşitli aksamlar , motoru ,camları, iç aksesuarları gibi bu sıra ile giden işlemlerde bir aksilik olmaması önemli bunun içinde süre ve malzeme kontrolü önemli 😉 Kanban tüm bu işlemleri görselleştirip takibi kolaylaştırıyor 😉

Sen ne anlatıyorsun değişik 😀 Toyota kullanıyorda bizdemi araba üreteceğiz ?  diyebilirsiniz 😀 demeyin çünkü Kanban olayının yazılımada uyarlanması çok da zor değil. Adamlar yapmış 2004 yılında bu Kanban felsefesini yani görselleştirme işini yazılımada uyarlayıp bir metodoloji haline getirmişler.

Özet olarak bahsetmek gerekirse Kanban metodu mevcut sürecinizde hemen bir değişikliğe gitmenizi zorunlu kılmaması önemli avantajlarından bir tanesi. Zamanla yazılımın veya sürecin evrimleşeceğini öngörür.

Yani Kanban Yazılım Geliştirme Süreci veya Proje Yönetimi diye bir şey yoktur. Kanban bir süreç değildir, sürekli akışı teşvik eden, hafif siklet bir metodtur.

Kanban, temelde 4 temel prensibi kullanır:

  • Ne biliyorsan onunla başla,
  • Artırımsal ve evrimsel değişimi takip etmeyi kabul et,
  • Mevcut sürece, rollere, sorumluluklara ve ünvanlara saygı göster.
  • Tüm seviyelerde liderliği teşvik et

Bu prensipler akabinde Kanban’ın 5 ana özelliğide şöyle özetlenebilir :

  • İş akışını görselleştirir
  • Aynı anda yapılan işleri sınırlandırır
  • Akışı yönetmeyi ve ölçmeyi kolaylaştırır
  • Süreç ilkelerini belirgin kılar
  • İşbirliği yaparak iyileştirmeyi sağlar

Bu süreçte belli adımlarda yapılan iş diğer adımlarda yapılan işlerden daha çabuk sonuçlanabilir. Bir adımın çıktısı diğer bir adımın girdisidir. Zamanında tüketilemeyen görevler o adımda bir birikime neden olacaktır. Kanbanda her bir adımda eş zamanlı yapılacak işlerin sayısına bir sınır getirilmesi sürecin darboğazlarının azalmasına imkan tanır. Bir üretkenlik yaratılıp arkadan gelmekte olan işler için bir yer açar. Sınırlama getirilmemesi durumunda bir sürecin belli bir adımında çok iş yapılıyor olmasına rağmen biten bir iş olmayacaktır. Sonuç olarak takım ne kadar çok çalışırsa çalışsın o zamana kadar bir değer üretememiş olacaktır.

Örnek olarak bir Web sayfası yapıyorsanız bu aşamada tasarım için 1 kişi , programlama için 2 kişi olduğunu varsayarsak kodlamada gerçekleşecek bir gecikme tasarımdan çıkan işler bitip ,development aşamasına gelen işleri çoğaltacak ve bu aşamada developer arkadaşlar zorlanacak belki de yeni bir developer ihtiyacı doğacak . Ama bu işler sınırlandırılırsa bu dar boğaz yada işlerin belli aşamalarda artması durumu desek daha doğru olur biraz daha aza indirgenmiş olur. Ayrıca Kanban ile büyük resim görüldüğünden , resimde bu problemin yöneticiler tarafından görüntülenmesi  çalışanlar açısından da önemli ve rahatlatıcı bir özellik.

Kanban’da görselleştirme Değer Akış diyagramları ile ve kanban tahtası ile sağlanabilir. Değer akış diyagramları mevcut durumun, gelecekteki sistemin anlaşılması ve israfın önlenmesi için kullanılır.
Kanban Tahtası ahanda aşağıdaki gibi birşeydir.

kanban-movement

Resimde görüldüğü gibi işler belli başlıklarla ayrılır her iş bittiğinde bir sonraki aşamaya geçer ve bitirilirler.

Kanban ile kendi kişisel işlerinizi bile takip etmek kolay 😉 bunun için internet ortamında kullanılan bazı uygulamalarda mevcut. 😉

Umarım Yararlı Olur

Bilgiyle Kalın

M. Zeki OSMANCIK

Proje Geliştirme Süreçleri – Agile Scrum 1024 841 mezo

Proje Geliştirme Süreçleri – Agile Scrum

Merhaba arkadaşlar

Proje geliştirme süreçleri ile alakalı bilgi almaya  devam ediyoruz. Bildiğiniz gibi bir önce ki yazımda Waterfall metodunu türkçem yettikçe anlatmaya çalıştım. Bu yazımda ise farklı bir tür yeni bir trend herkesin öğrenmeye uygulamaya çalıştığı bir metot olan Agile Scrum metodundan yine türkçem yettiğince bahsetmeye çalışacağım 🙂

Agile türkçe meali Çevik olan bu metot aşamalı olarak projeleri geliştirmemizi sağlıyor ve bu sayede biraz esnek davranabilmemizi sağlıyor. Waterfall metodunda analiz kısmı bittikten sonra müşteriyle uzun süre görüşemediğimiz çok özlediğimiz doğrudur işte Agile yöntemi bu özleme son veriyor ve müşteri ile sürekli iletişim içinde bulunmamızı sağlıyor 😀 Yani kısacası Agile adı gibi projemize çeviklik kazandırıyor ve gerek hız gerek üretilen değerler açısından bize güzel faydalar sağlıyor. 🙂

Agile denen yöntemin içersinde de farklı frameworkler mevcut bunlardan biri Scrum diğeri XP dir. Windows XP değil ama 😀  meali Extreme Programming. 🙂

Bu metotlardan şimdilik Scrum dan bahsedeceğim XP için sonraki yazılardan birinde bahsedebilirim…

Scrum denilen şey itiş kakış anlamına gelen ama anlamı kadar karmaşa içinde yürümeyen bir yöntem. Bu yöntem içersinde bulunan bazı terimleri sizlere konu ile birlikte açıklamak isterim 🙂

Product Owner : İşi yaptırmak isteyen tarafta bulunan ve yazılımın tüm detayına hakim olan bize anlatabilecek arkadaştır.

Product Backlog : Yazılım için yapılmış analiz diyebiliriz. yazılımımız şöyle güzel olsun, böyle iyi olsun , hatta şöyle de güzel olsun içinden atlar kuşlar böcekler çıksın şeklinde olabilen ve ürünü yaptıracak olan Product Owner tarafından yazılmış belli formata sahip User Story‘ ler  bütünüdür.

Herneyse bu PO (Petrol Ofisi değil Product Owner 😀 ) arkadaş bizlere fantazi dünyasının sınırlarını zorlayarak bütün bir product backlogu oluşturduktan sonra bu işleri en çok önemliden en az önemliye sıralar ve teslim eder. Product Backlog yaşayan bir liste olabilir yani sürekli madde eklenebilir silinebilir vs vs. Bu PO nun zevkine kalmış artık 🙂

User Story’ler INVEST diye kısa bir isimle adlandırılan kurallar dizisini içerirler.Invest şöyle sıralanır :

  • Indipendent(Bağımsızlık):User Story kendi başına bir içeriğe sahip olmalıdır. Diğer user story’lere bağlı olmamalıdır.
  • Negotiable(Tartışılabilir): User Story’ler, bir sprint içeriğine girene kadar her an değiştirilebilir.
  • Valuable(Değer): bir user story son kullanıcı için bir değer ifade etmelidir.
  • Estimable(Tahmin yürütülebilir): Bir user story’nin süresi tahmin edilebilmelidir.
  • Sized appropriately(Makul boyut): User Story’ler plan, görev ve öncelik bakımından derecelendirilmesi ele alınabilmesi için çok kompleks yapıda olmamalıdır.
  • Testable(Test edilebilirlik): User Story’ler test edilebilirliği mümkün kılmalıdır.

Sonrasında Scrum takımı bu product backloglar içersinde (burası önemli) her seferinde bir değer üretebilecek şekilde 2 veya 4 haftalık bir süre olan proje bitimine kadar tekrar eden  ve Sprint adı verilen dönem içinde gerçekleştirilmek üzere görevleri alır sıralar kendi içinde dağıtır ve geliştirmeye başlar. Tüm bu işleri yöneten arkadaşa Scrum Master denir. Çok karizmatik bir ünvanı bulunan bu arkadaş takımın tüm yükünü omuzlarında taşır ,ihtiyaçları sağlar , engelleri kaldırır, gaz verir vs vs.

Bu takım Scrum kuralları gereği bazı seremoniler yapmak zorundadır. Mesela her sabah maksimum 15 dk süren “Ne yaptım?” “Ne yapacağım?” “Önümde engel varmı varsa neler?” sorularının kısaca cevaplandığı bir toplantı. Sonra Sprint başlamadan önce acaba hangi taskları alsakta yapsak müşteriye nasıl bir değer üretsek sorusunun tartışıldığı Sprint Review. Bir de takımın kendi içinde birbirini tebrik ,tahrik edebildiği yanlış varsa “ben nerde yanlış yaptım” şarkısının söylendiği güzel bir durum varsa ortamın şenlendiği garip bir o kadar ilk seferde adını söylemesi zor bir toplantı vardır ki oda Retrospective toplantısıdır. 🙂

Sprint başlar mutlu yazılımcılar kodlarını yazmaya başlarlar her gün birbirlerine mutluluk içinde neler yaptıklarını anlatırlar ve 2 veya 4 hafta dediğimiz sprint süresi sonunda müşteriye bir demo gösterirler bu elle tutulur gözle görülür müşterinin test etmesine olanak veren hatta ve hatta müşterinin  “İyi olmuş hadi bunu Deploy edelim böylece” lafını söyletebilecek bir yazılım olmalıdır ki Scrum dediğimiz metot amacına ulaşabilsin 🙂

Scrum ı açıklayan çok güzel bir resim aşağıdaki gibidir 🙂

Scrum-Plan-Do-Check-Act-Diagram

 

Peki bitti mi tabiki de bitmedi 🙂 birde son olarak bahsetmek istediğim küçük bir konu da Burn Down Chart.

Born-down chart İş sonu grafiği anlamına gelir ve Sprint sırasında takım üyeleri görevlerini yerine getirildikçe kalan iş ve yapılan iş arasındaki korelasyonu belirten bir grafik ortaya çıkar.İşte bu grafik takım üyelerine veya yöneticilerine fikir verir. Aynı zamanda takımın iş için istediği sürelerin yeterli olup olmadığı ve işin zamanında tamamlanıp tamamlanamadığı konusunda da fikir veren bir grafiktir. Adının burn down olması sanırım takımın işlerini zamanla eş değer şekilde bitirmeleri yakmaları eritmeleri vs. olabilir 🙂 Bu chart örneğinide yine aşağıdaki gibi görebilirsiniz.

BurnDownChart

Kısaca fikriniz olması açısından Agile ve Scrum ı açıkladım.

Umarım Yararlı Olur

Bilgiyle Kalın

M.Zeki OSMANCIK

Proje Geliştirme Süreçleri – Waterfall 512 320 mezo

Proje Geliştirme Süreçleri – Waterfall

Merhaba arkadaşlar
Yazılım geliştirmede çok sayıda farklı model ve süreçler mecvuttur. Bu yazımda sizlere yazılım dünyasında diğer modellere de örnek olan “Waterfall Model”inden bahsetmek istiyorum .Bu model bir yazılımın geliştirme sürecini Plan, Design, Built, Test ve Deploy aşamaları olarak ele alır. Bu aşamaların her biri birbirini bekleyen ve etkileyen  süreçlerdir.
Plan (Analiz)
Bir problem çözümü olarak nitelendirilen yazılımın ne yapacağını ve nasıl yapacağını belirlediğimiz yani problemi tanımladığımız aşama analiz aşamasıdır. Yazılan kod isteneni doğru bir şekilde yerine getirebiliyorsa başarılı bir yazılım olarak nitelendirilebilir bu sebeptendir ki  öncelikle yazılımdan ne istendiğinin doğru bir biçimde anlatılması ve yorumlanması gerekir. Analiz aşaması personel, donanım ve sistem gereksinimlerinin belirlenmesi, sistemin fizibilite çalışmasının yapılması, kullanıcıların gereksinimlerinin analizi, sistemin ne yapıp ne yapmayacağının kısıtlamalar göz önüne alınarak belirlenmesi, bu bilginin kullanıcılar tarafından doğrulanması ve proje planı oluşturulması adımlarından oluşur.

Design (Tasarım)
Yazılımın analizini yaptık ihtiyaçlarını belirledik artık bilgi sahibiyiz ne nasıl olur az çok biliyoruz bundan sonra ki aşamada neler yapacağiz peki ? Analizin sonucunda belirlenen ihtiyaçlara yanıt verecek yazılımın temel yapısının oluşturulduğu aşamadır. Yazılım tasarımı, bir bileşen veya sistemin nasıl gerçekleştirileceğini belirlemek için kullanılan teknikler, stratejiler, gösterimler ve desenlerle ilgilidir. Bu aşama yazılım bileşenleri arasındaki ara yüzler, mimari tasarım, veri tasarımı, kullanıcı ara yüzü tasarımı, tasarım araçları ve tasarımın değerlendirilmesi alt süreçlerini de kapsamaktadır. Tasarım aşaması, yazılımın hem kullanıcı ara yüzünü hem de programın omurgasını ortaya koymaktadır. Yapılacak tasarım, yazılımın işlevsel gereksinimlere uygun olmasının yanı sıra kaynaklar, performans ve güvenlik gibi kavramları da göz önüne alınarak gerçekleştirilmelidir. Kısaca tasarım kısmında yazılım içersinde karşılaşılabilecek tüm herşey göz önüne alınarak kodlama için start verilmeye uygun ortam hazırlanır.
Build (Kodlama)
Şimdiki kısım bizim en sevdiğimiz kısım Kodlama 😀 Bu aşama, tasarım sürecinde ortaya konan veriler doğrultusunda yazılımın gerçekleştirilmesi yani kodların yazılması aşamasıdır. Bu süreç programlama çalışmalarının yanı sıra yazılımın geliştirilmesi ve kullanıcıya ulaştırılması sürecindeki bütün çalışmaları kapsar. Tasarım sonucu üretilen süreç ve veri tabanının fiziksel yapısını içeren fiziksel modelin bilgisayar ortamında çalışan yazılım biçimine dönüştürülmesi çalışması olarak da nitelendirilebilir. Yazılım geliştirme ortamı, programlama dili, veri tabanı yönetim sistemi, yazılım geliştirme araçları seçimi kodlama aşamasında gerçekleştirilir.
Test
Yazılımı yazdık bitirdik yada sadece bitirdiğimizi sanıyoruz 😀 şimdi sıra geldi Test aşamasına, yazılım kodlanması sürecinin ardından gerçekleştirilen sınama ve doğrulama aşamasıdır. Elde edilen uygulama yazılımının hem belirlenen gereksinimleri sağlayıp sağlamadığı hem de gerçekleştirimin beklentilere uygun olup olmadığını kontrol etmek için statik ve dinamik sınama tekniklerinden yararlanır. Statik teknikler, yazılımın tüm yaşam döngüsü boyunca elde edilen gösterimlerin analizi ve kontrolüyle ilgilenirken, dinamik teknikler sadece gerçekleştirilmiş sistemi içerir. Yazılım üretiminde ilk testler genelde geliştirme sürecinde programcı tarafından yapılır. Bununla birlikte, asıl hata ayıklama ve geribildirim hizmeti test ekipleri tarafından yapılır. Testler ve geribildirim müşteri yazılımı kullandığı sürece devam eder. Test sürecinde en faydalı geribildirimler son kullanıcı test gruplarından gelir.
Deploy
Yazılımımız yapılan analiz doğrultusunda beklendiği gibi çalışıyor ve testlerinden de başarılı şekilde geçti sıra geldi artık müşterimizin kullanımına açmaya. Bu aşama tüm gereksinimler tamamlanmış ve müşterimiz memnun şekilde projesini teslim etme aşamasıdır. Bu aşamadan sonra belki bakım aşamasıda bu sürece dahil edilebilir.

Aşağıdaki resimde waterfall yönteminin işleyişini görebiliriz.

waterfall

Umarım Yararlı Olur
Bilgiyle Kalın
M.Zeki Osmancık

C# ile Powerpoint Sunumu Hazırlamak 554 382 mezo

C# ile Powerpoint Sunumu Hazırlamak

Merhaba arkadaşlar
Uzun süreden beri bir makale yazmaya vakit bulamıyorum ama yavaş yavaş geri dönüyorum. Bu yazıda sizlere zevkli küçük bir örnek göstermek istiyorum. 😀 C# üzerinden program yardımı ile PowerPoint sunumu hazırlamanın nasıl olduğu ile ilgili başlangıçta çok işinize yarayacak bir kod parçası
Bunun için öncelikle bir windows Forms projesi açalım ve 1 tane Buton ekleyelim 🙂 Projemiz içersine Referans olarak 2 önemli kütüphane eklememiz gerekiyor. Sağa tıklayıp “Add Reference” dedikten sonra “COM” sekmesi içersinde bulunan microsoft graph 15.0 object library ve microsoft PowerPoint 15.0 object library kütüphanelerini seçip ekleyelim.
Artık gerisi çok kolay 🙂 işte bundan sonra işi yapacak olan kod parçası

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Microsoft.Office.Interop.PowerPoint;
using Microsoft.Office.Core;

namespace testToCreatePttFileFromImages
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
string pictureFileName = “C:\\picToVideo\\2.jpg”;

Microsoft.Office.Interop.PowerPoint.Application pptApplication = new Microsoft.Office.Interop.PowerPoint.Application();

Microsoft.Office.Interop.PowerPoint.Slides slides;
Microsoft.Office.Interop.PowerPoint._Slide slide;
Microsoft.Office.Interop.PowerPoint.TextRange objText;

// Create the Presentation File
Presentation pptPresentation = pptApplication.Presentations.Add(MsoTriState.msoTrue);

Microsoft.Office.Interop.PowerPoint.CustomLayout customLayout = pptPresentation.SlideMaster.CustomLayouts[Microsoft.Office.Interop.PowerPoint.PpSlideLayout.ppLayoutText];

// Create new Slide
slides = pptPresentation.Slides;
slide = slides.AddSlide(1, customLayout);

// Add title
objText = slide.Shapes[1].TextFrame.TextRange;
objText.Text = “The Header Of The Presentation”;
objText.Font.Name = “Arial”;
objText.Font.Size = 32;

//objText = slide.Shapes[2].TextFrame.TextRange;
//objText.Text = “this text come after the heading with bullet”;

Microsoft.Office.Interop.PowerPoint.Shape shape = slide.Shapes[2];
slide.Shapes.AddPicture(pictureFileName, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoTrue, shape.Left, shape.Top, shape.Width, shape.Height);

//slide.NotesPage.Shapes[2].TextFrame.TextRange.Text = “the text is for the notes to specific page”;

pptPresentation.SaveAs(@”c:\picToVideo\fppt.pptx”, Microsoft.Office.Interop.PowerPoint.PpSaveAsFileType.ppSaveAsDefault, MsoTriState.msoTrue);
pptPresentation.Close();
pptApplication.Quit();

}
}
}

Java – AES Algoritması ile Encryption ve Decryption 691 618 mezo

Java – AES Algoritması ile Encryption ve Decryption

Merhaba arkadaşlar

Bu yazımda sizlere AES algoritması kullarak nasıl Encryption işlemi yapabilirsiniz en basit haliyle anlatmak istiyorum. Eclipse i açtık yeni bir Java projesi olusturduk sonrasında 2 adet class’ı projemiz içersine ekledik isimleri TEST.java  ve ENCRYPT.java.

Amaç aslında Encrypt.java class ını başka projelerde de kullanılacak şekilde dizayn etmek 😉

Encrypt class ı içersine aşağıdaki kodları ekleyeceksiniz. 🙂

import java.security.*;
import javax.crypto.*;
import javax.crypto.spec.SecretKeySpec;
import sun.misc.*;
public class encrypt {

	private static final String ALGO = "AES";
	private static final byte[] keyValue =  new byte[] 
        { 'M', 'e', 'Z', 'O', 'b', 'l', 'o','g', 's', 'B', 'e','s', 't', 'K', 'e', 'y' };

	public static String encrypt(String Data) throws Exception {
		Key key = generateKey();
		Cipher c = Cipher.getInstance(ALGO);
		c.init(Cipher.ENCRYPT_MODE, key);
		byte[] encVal = c.doFinal(Data.getBytes());
		String encryptedValue = new BASE64Encoder().encode(encVal);
		return encryptedValue;
	}
	public static String decrypt(String encryptedData) throws Exception {
		Key key = generateKey();
		Cipher c = Cipher.getInstance(ALGO);
		c.init(Cipher.DECRYPT_MODE, key);
		byte[] decordedValue = new BASE64Decoder().decodeBuffer(encryptedData);
		byte[] decValue = c.doFinal(decordedValue);
		String decryptedValue = new String(decValue);
		return decryptedValue;
	}
	private static Key generateKey() throws Exception {
		Key key = new SecretKeySpec(keyValue, ALGO);
		return key;
	}
}

Ardından test.java yani çalıştırılacak olan class ımız içersinde main metodu bulunduran class içersinede aşağıdaki kodları ekliyorsunuz. Encrypt classı içersinde oluşturduğumuz metotları çağırıyoruz.

public class test {
	public static void main(String[] args) {
		String password = "Hello Word İt's MEZO Blog";
		String passwordEnc;
		String passwordDec;
		try {
			passwordEnc = encrypt.encrypt(password);
			passwordDec = encrypt.decrypt(encrypt.encrypt(password));

			System.out.println("Plain Text : " + password);
			System.out.println("Encrypted Text : " + passwordEnc);
			System.out.println("Decrypted Text : " + passwordDec);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

Ve işlemimiz bitti işte bu kadardı 🙂  artık Run As Java Application diyerek çalıştırıyor aşağıdaki çıktımızı alıyoruz.

 

Programımızın Çıktısı
Encrypt edilecek Text : Hello World It’s MEZO Blog
Encrypt edilmiş Text : 2loMo4Zhrtsbqg/4NOk1MpYp1uVbXkDwUNZKnons30o=
Decrypt edilmiş Text : Hello World It’s MEZO Blog

 

Umarım Yararlı Olmuştur

Bilgiyle Kalın

M.Zeki OSMANCIK

İlk Bilgisayar… 436 308 mezo

İlk Bilgisayar…

 

Merhaba arkadaşlar

Internette dolanırken ilk bilgisayar resimleri denk geldi sizlerlede paylaşmak istedim 🙂  😛 ortalama 120 m2 bir alan içersinde aşağıdaki ablaların kabloları soketlere sokup çıkarmasıyla işlem yapıyormuş.:D hatta bu DEBUG olayıda bu bilgisayarın soketlerinden birinin içersindeki bir böceğin bulunması ile çözülen sorun ardından çıkmış… 😀

ilk-bilgisayarlari-gorunce-sasiracaksiniz_bda2

 

ilk-bilgisayarlari-gorunce-sasiracaksiniz_f412

ilk-bilgisayarlari-gorunce-sasiracaksiniz_1b3f

ilk-bilgisayarlari-gorunce-sasiracaksiniz_3291

ilk-bilgisayarlari-gorunce-sasiracaksiniz_4109

ilk-bilgisayarlari-gorunce-sasiracaksiniz_3268

 

JSP MasterPage Sayfası Nasıl Yapılır? 299 299 mezo

JSP MasterPage Sayfası Nasıl Yapılır?

Merhaba arkadaşlar

JSP ile uğraşmaya devam ederken ASP.Net in kıymetini biraz daha iyi anlamaya başlıyorum ve sizlerede anlatmaya devam ediyorum.

Başlıktanda anlaşılacağı gibi JSP web sayfalarında ASP.Net de bulunan masterpage gibi bir şablon oluşturup o şablon üzerinde nasıl işlem yaparız biraz bahsedelim 🙂

Arkadaşlar JSP sayfalarına ekleyebileceğiniz bir Masterpage yapısı YOK !!! Maalesef ki yok…

Peki napıyoruz o kadar başlık açtık bari bir yol yordam gösterelim değilmi 😛  Diyelim ki aşağıdaki giib bir yapımız var ve bunun bütün sayfalar için şablon olmasını istiyoruz.

layout

Hemen kendimize Header.jsp adında bir dosya oluşturup bu dosya içersine istediğiniz header da bulunması gereken kodları yerleştiriyorsunuz örneğin  aşağıdaki kodlar gibi 🙂
[codebox 1]
Sonra hemen devam ediyoruz Footer.jsp adında bir dosya daha ekleyip içersine istenilen HTML kodlarını yazıyorsunuz. Gerekiyorsa LeftMenu.jsp adında bir jsp dosyası daha ekleyip sonra index.jsp yani anasayfamıza geliyoruz şimdi bunları index.jsp içine tek tek ekleyip dosya üzerinden kullanılmasını sağlayacağız. PHP gibi yani. 🙂  Aşağıdaki gibi sayfaların içersine tek tek <jsp:include page=”header.jsp”/> tagını kullanarak istediğimiz alanların farklı sayfalar üzerinden tek bir sayfada gösterilmesi işlemini gerçekleştirebiliyoruz.

[codebox 2]

İşte böyle 🙂 Masterpage kadar güzel olmasada bu da bir yöntem 🙂

Umarım Yararlı Olur. 😀

Bilgiyle Kalın

M.Zeki Osmancık

 

Java JSP Projesi Oluşturmak 452 302 mezo

Java JSP Projesi Oluşturmak

Merhaba arkadaşlar

İşim gereği biraz Java ile uğraşmam gerektiğinden Java ile alakalı yazılarda paylaşmaya başlayacağım sizlerle. Bu yazıda sizlere JSP projesi nasıl oluşturulur çalıştırılır resimlerle anlatmak istiyorum.

Önce Eclipse lazım bize hemen Eclipse i indirebileceğimiz linke  gidiyoruz ve download ediyoruz 🙂

01

Zip dosyasının içindeki eclipse klasörünü çıkarın.

02

Exe sinden Eclipse i çalıştırın

04

Bir workspace belirleyin ki Eclipse projelerinizin hepsini oraya kaydetsin 😉

005

Eclipse açıldığına göre şimdi proje açıp işimize bakabiliriz 🙂  Şimdi File menüsünden “New” o sekmeden de “Other” seçeneğini seçiyoruz (yada Ctrl+N kısayoluda işimizi görür)

06

Yeni Proje penceresinde Dynamic Web Project  seçmemiz gerekiyor eğer bu projeyi göremiyorsanız kötü haber yanlış Eclipse versiyonunu indirmişsiniz demektir 🙂 hemen JAVA EE versiyonunu indirmeniz gerekiyor 🙂

07

İlk JSP projesi olduğu için Eclipse TomCat ile ilgili birşey kurmuyor yada oluşturmuyor o yüzden Target  RunTime boş geliyor. Aktif etmemiz gerekiyor. 😉

08

New Runtime butonuna tıkladığınızda dikkat etmemiz gereken küçük bir tik var. Create a new local server i işaretlemeyin 

09

Tomcat i indirip kurmuş olduğunuzu farzederek devam ediyorum 🙂 kurmadıysanız hemen kurun hemen 🙂

TomCat i nereye kurmuşsanız bir önceki pencereden seçtiğiniz versiyonun nerede kurulu olduğunu göstermeniz gerekiyor 😉

10

Bu işlemden sonra artık  New Dynamic Web Project kısmında görüntülenmeyen Target Runtime da TomCat bir seçenek olarak görüntülenecek.

11

Artık Finish butonu ile birlikte projemizi görüntüleyebiliriz 😉

12

 

Projemiz bomboş bizi karşılıyor ve bundan sonrasında sayfalarımızı eklememiz gerekiyor hemen WebContent  klasörü üzerine sağ tık New ile bir JSP dosyası eklememiz gerekiyor 🙂

13

14

 

Ana sayfa olmasını istiyoruz o halde index ismini kullanmalıyız 😉 Bu pencerede nereye ekleneceğini seçip ardından ismini belirledikten sonra Finish  butonuna basmıyorsunuz. Next ile devam ediyoruz.

15

New JSP File(html) seçiyoruz  ve Finish ile JSP dosyamızı oluşturmuş oluyoruz 😉  index.jsp vatana millete hayırlı olsun 😉

16

Sayfam açıldığına göre nasıl çalıştığı ile ilgili bir bilgi olacağından çok basit şekilde nasıl çalıştığını göstereyim.

17Tamamdır çok basit bir toplama işlemi ile nasıl kod yazacağımızı görmüş olduk 😀  Şimdi çalıştırma vakti geldi bakalım nasıl görünüyor 🙂

18

Çalıştır butonuna bastıktan sonra Run As penceresi üzerinden “Run on Server” seçilerek OK butonu ile devam ediyoruz.

19

Localde kendi makinamız üzerinde yeni bir TomCat server oluşturuyoruz.

20

Projemiz oluşturduğumuz TomCat server üzerinde build edilmeye başlayacak ve index.jsp dosyamız bilgisayarımızdaki Eclipse üzerinde görüntülenmeye başlayacak. Yazdığımız koda göre ekranda 4 görüyorsak dinamik bir web sayfasına ilk adımı attık demektir. 🙂

21

Şimdi browser üzerindede görüntüleyelim ve toplama işlemimizin sonucunu görelim 😉

22

Browserdaki kaynak kodlara bakarsak buradada sadece 4 olduğunu yazdığımız kodların görüntülenmediğini görüyoruz 😉

24

Son olarak server i durdurarak işlemimize son veriyoruz 🙂

25

Hayırlı ve uğurlu olsun ilk JSP uygulamamızı yapmış olduk 🙂

Umarım yararlı olur

Bilgiyle Kalın

M.Zeki Osmancık

 

 

Training – ASP.NET MVC 4 Application Development 376 292 mezo

Training – ASP.NET MVC 4 Application Development

Hello my fellow Padawans  

I found this complete set of ASP.Net MVC 4 training and i thought that it will be so useful for everyone. Its from pluralsight but you don’t need to login or sign up to web site. I watched all of it and I really like style of Scott Allen. Here’s the content of this training.

77-asp-net-mvc-4-codingcluster-745669
  • Introduction
  • Web Installer
  • The Tools
  • New Project
  • Modules, Views, Controller
  • Making Changes
  • Unit Testing
  • JavaScript and CSS
  • Summary

Click Here for watch Videos 

Stay with force

Mezo

Kolon Adını Tablolarda Aramak 150 150 mezo

Kolon Adını Tablolarda Aramak

Merhaba arkadaşlar
Uzun zamandır bir konu anlatmıyorum ancak hatalar ve düzeltilmeleri ile ilgili yazılar paylaşıyorum en kısa zamanda bir kaç güzel konu ile karşınızda olacağım 🙂
Sizlere bahsetmek istediğim kısa konum SQL de Kolon Adını Tablolarda Aramak: Diyelim ki database içersinde sadece kolon adını biliyorsunuz veya kolon adının içinden bir kelime hatırlıyorsunuz hangi tabloda merak ediyorsunuz işte size güzel bir sorgu 🙂 Bu sorgu ile kolon adına göre tablo araması yapabilirsiniz. İşte o sorgu 🙂

select TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME
from INFORMATION_SCHEMA.COLUMNS
where COLUMN_NAME like '%aranacak_kelime%'
and TABLE_CATALOG='Database_Adi'

Umarım yararlı olur
Bilgiyle Kalın
M.Zeki OSMANCIK

Cannot use the special principal ‘sa’. Microsoft SQL Server, Error: 15405 Hatası 622 197 mezo

Cannot use the special principal ‘sa’. Microsoft SQL Server, Error: 15405 Hatası

Merhaba gençler 🙂

Hemen size sıcak sıcak bilgi paylaşayım.

MS SQL server mı kullanıyorsunuz ?  Veritabanlarınızı başka bir yerden restore veya attach mi yaptınız ?  Login kullanıcı SA nin db yetkilerini vermek mi istiyorsunuz ama başaramıyormusunuz ? İşte doğru adrestesiniz 😀

Konumuz Cannot use the special principal ‘sa’. Microsoft SQL Server, Error: 15405 Hatası 🙂  5 dk önce beni deli eden ama çözümü basit bir problemden bahsedeceğim şimdi.

Veritabanlarını restore ettikten sonra SA kullanıcısına dbowner yetkisi vermek istediğimde karşıma böyle bir hata çıktı

Hatamızın görüntüsü şöyle güzel bir hata :

Untitled picture

Bu hatayı alıyorsanız hiç uğraşmayın arkadaşlar hemen New Query hangi DB ile işlem yapacaksanız seçin ve şu kodu çalıştırın olsun bitsin 🙂

 

exec sp_changedbowner 'sa','true'

 

Umarım Yararlı Olur

Bilgiyle Kalın 🙂

M.Zeki Osmancık

 

The type initializer Hatası… 611 193 mezo

The type initializer Hatası…

Merhaba arkadaşlar
Sql Server 2008 i kaldırıp tekrar kurmak zorunda kaldım. ancak bunu yaptığımda karşıma bir hata çıktı. Sizlerle paylaşmak istedim hata şöyle

vVkwW
Error >

TITLE: Microsoft SQL Server Management Studio
——————————

The type initializer for ‘Microsoft.SqlServer.Management.Dmf.PolicyStore’ threw an exception. (Microsoft.SqlServer.Dmf)

——————————
ADDITIONAL INFORMATION:

Could not load file or assembly ‘Microsoft.SqlServer.Diagnostics.STrace, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91′ or one of its dependencies. The system cannot find the file specified. (Microsoft.SqlServer.Dmf)

——————————
Internette araştırınca gerekli gereksiz herkes bir şeyler söylemiş yok onu yükle yok Visual Studio yu kaldır kur yok onu ekle kaldır gibi gibi. Bunlardan bazılarını deneyip vakit kaybettikten sonra bir şey denemek geldi içimden bir ses dediki REPAIR et yeğen dedi.
Çalıştırdım SQL Server Setup ı ve Repair ettim ve sorun çözüldü 🙂

Umarım faydalı olur
Bilgiyle Kalın
M.Zeki Osmancık

String Char Dizisidir! 920 300 mezo

String Char Dizisidir!

Merhaba arkadaşlar
Çalıştığım şirkette bulunmuş olduğum proje için Senior yani 2 3 yıl deneyimi olan developer arkadaşlar arıyoruz ve bunun ile ilgili müdürüm mülakat görüşmelerine benimde girmemi rica etti bende seve seve kabul ettim. Mülakatta gelen arkadaşlara neler yaptığını sorduğumuzda herkes güzel güzel anlatıyor yaptıklarını iş görüşmesinde göze girmek için hepimizin yaptığı gibi herşeyi anlatıyor anlatmaya gayret ediyor. Ancak

Dikkatimi çeken bir konu var ki işte oda bu yazıyı sizlerle paylaşmak isteyişimin asıl sebebi : Senior olarak alınacak ve daha önce bir çok projede görev almış olan arkadaşlar çok çok çok basit bir sorudan elendiklerinin veya olumsuz bir not aldıklarının farkında değiller. String bir değişken içindeki karakterlerin sayılması ve işlem yapılması ile ilgili bir sorumuz var ve burada herkese hiçbir string metot vs kullanmayın diye de uyarıyoruz tahmin ettiğiniz gibi basit küçük bir algoritma sorusu.
Ne var bunda diyebilirsiniz işte konu bu zaten 🙂 arkadaşların hiç biri string bir char dizisidir deyip bu şekilde foreach ile veya for ile kodunu kağıda dökmeye başlamadı. Herkes bir ipucu verilmesini bekliyor yada farklı yollarla bir array e çevirme işine giriyor.Halbuki ismini yazarken bile aslında bir karakter dizisi kullandığının farkında bile değil.
Küçük ayrıntılar veya bilgiler hayat kurtarır yada iyi yerlere getirebilir.

Unutmayın  String bir Char dizisidir.

Umarım Yararlı Olur ve bunu okuyan arkadaşlar mülakatlarda başvurdukları güzel iş yerlerine sevdikleri işleri yapmak üzere girebilirler.

Bilgiyle kalın

M.Zeki Osmancık

Galaxy Note II için Android 4.3 test ROM- N7100XXUEMI6 1024 658 mezo

Galaxy Note II için Android 4.3 test ROM- N7100XXUEMI6

Selamlar

Biraz önce aldığım bir habere göre Samsung Galaxy Note 2 için Android 4.3 versiyonunun test firmware i internete sızmış. Birkaç sitede bunun ile ilgili bilgiler var ancak Note 3 teki özelliklerin hangileri Note 2 de kullanılabilir orasını bilemeyiz XDA developers yine yapmış yapacağını 🙂 Ben acele etmedim kurmak için acele eden heyecanlanan arkadaşlar için paylaşmak istedim. Çünkü Samsung , Galaxy Note 2 için  4.3 ün testlerine yeni başlamış. Bu ROM u yüklerken şuna dikkat edin tüm uygulama fotoğraf vs bilgileriniz sıfırlanıyor yedek almadan kesinlikle bu işe bulaşmayın derim ben.

Grafik olarak S4 ve Note 3 teki grafikleri kullanılmış Tablı Ayarlar vb. bunun yanında S4 ve Note 3 e gelen Samsung Knox , Samsung Walled gibi uygulamalarda 4.3 de bizleri bekliyor 😀

Ben paylaşıyorum ama Samsung hala bununla uğraşıyor testler ve geliştirmeler devam ediyor. Release versionu çıktığında önce kendi Note 2 me kurup sonra sizlerle paylaşacağımdan şüpheniz olmasın 😀

İşte isteyen meraklı arkadaşlar için linkler ve nasıl kuracağınız ile alakalı basit bilgiler 😀

Ama başta yine hatırlatmak isterim

Telefonunuzun şarjı full olmalıdır. Bu yükleme işlemi herhangi bir şekilde yarım kalırsa telefonunuz tekrardan açılmayabilir. Herhangi bir sorunda  www.mzekiosmancik.com sorumlu değildir. Sorumluluğun tamamen kendinize ait olduğunu bilerek kuruluma başlamalısınız.

Ayrıca belirtmek isterim ki bu kurulum telefonunuzu garanti dışı bırakmaz 😀  Başkaları tarafından yazılan Custom Rom lardan da değildir. Samsung ‘un üzerinde çalıştığı ancak henüz bitirmediği test ROM udur.  yani tamamen legal 😀

Eveeet gelelim kuruluma

Öncelikle buradan ODIN i indiriyoruz bizim biricik yardımcımız 🙂

ROM u buradan veya buradan veya torrent indirim kardeşim ben diyorsanız buradan indirin 🙂

Dosyanın şifresi : wagnervaz

– Şimdi zipten çıkarıp Odini açıyoruz

– Telefonumuzu download moduna alıyoruz.

DSC00031

 

 

NOT: Bunun için telefon kapalıyken Güç + Ses Kısma + Menu tuşlarına aynı anda basmalısınız. Bu tuşlara bastıktan sonra karşınıza bir menu gelecektir Ses Açma tuşuna basarsanız bir android resmi sizi karşılar ve telefonunuzun yüklemelere hazır olduğunu gösterir. Yandaki resimde Download Mode da telefonunuzun ekranının nasıl görüneceğini görebilirsiniz.

 

 

– Odin de telefonun bağlandığını  görüyorsunuz

– Sonra çıkarttığınız AP_N7100XXUEM16_CP_N7100XXEM16_CSC_N7100XAEM16_BY_WVAZ_DINK.tar adlı dosyayı PDA butonuna basarak Odin e ekliyorsunuz.

– Re-partition seçeneğinin İŞARETLENMEMİŞ olduğundan emin oluyorsunuz.

– Sonra kurulum bittikten sonra Wipe Data ve Wipe Cache yapıp Reboot ettiğinizde artık Note 2 niz 4.3 versiyonunun test aşamasındaki işletim sistemine kavuşmuş oluyoooor 😀

Aşağıda screenshot lar var. Ayrıca bu anlatıma güvenmeyen arkadaşlar olabilirler öncelikle SAMMOBILE haberidir  . ve XDA Developers tarafından da yayınlanmıştır.

evt5lntn 00sh dk2is9e5

oc44b51ep8b5926q o5k

 

Bilgiyle Kalın 😀

M.Zeki Osmancık

SOLID OOP Prensipleri 511 409 mezo

SOLID OOP Prensipleri

Merhaba arkadaşlar
Bu yazımda sizlerle OOP yazarken dikkat etmemiz gereken OOP yi gerçek anlamıyla programlarımıza veya web sitelerimize uygulama aşamasında nelere dikkat etmeliyiz bu konyu işleyen SOLID OOP Prensipleri ile ilgili küçük bir bilgilendirme yapacağım
OOP yi herkes bilir az çok anlatır veya basit yöntemlerle uygular yada uyguladığını sanar. Halbuki OOP programlama yaparken bir takım prensipler uygulanmalıdır. Bu prensiplerin baş harflerinden oluşan bir keyword var elimizde. SOLID
Solid 5 ayrı prensibin birleşmiş halidir ve OOP yaparken uygulamamız gereken kurallardan bahsederler. Hadi bakalım bu akrostiş şiir tadındaki prensipler neymiş görelim:
1- Single Responsibility Principle
2- Open/Closed Principle
3- Liskov’s Substitution Principle
4- Interface Sergregation Principle
5- Dependency Inversion Principle
İlk madde ile başlayalım küçük açıklamalar yapmaya.
1. Single Responsibility Principle : Bu prensibe göre bir metot, sınıf,nesne vb. yapıların yanlızca bir tane görevi olur. Bir metot, sınıf,nesne vb. değiştirmek için yanlızca bir sebebimiz olmalıdır. Birden fazla nedenimiz varsa bir yanlışlık var ve bu prensibe uymuyoruz anlamına gelir. Amaç her metot, sınıf,nesne vb. yapıya tek bir görev tek bir sorumluluk yüklemektir.
2. Open/Closed Principle : Yazmış olduğunuz metot, sınıf,nesne vb. yapılar geliştirmeye açık ancak değiştirmeye kapalı olmalıdır. Bu ne demektir peki: yazmış olduğunuz kod asla değiştirilmemelidir yanlızca üzerine eklemeler yapılmalıdır. Kodlarımızı yazarken bu şekilde dizayn etmeliyiz.
3. Liskov’s Substutions Principle : Bu prensibe göre alt sınıflardan elde ettiğiniz bir nesne ile üst sınıftan elde edilen nesne yer değiştirirse bu değişim kesinlikle ve kesinlikle aynı davranışa sahip olmalıdır. Yani örnekleyecek olursak OOP anlatırken hep bahsettiğimiz bir örnek olan CANLI sınıfımız olsun ve bu CANLI adındaki sınıfımız INSAN ve HAVYAN adlı iki sınıfa kalıtım vermiş olsun. Bu prensipte anlatılmaya çalışılan şey eğer ben bir işlemde CANLI sınıfını kullanıyorsam ve işlemlerim başarılı oluyorsa INSAN veya HAYVAN sınıfından aldığım örnekler ilede aynı işlemleri başarılı olarak gerçekleştirebilmeliyim içersinde bunu engelleyecek başka metot, sınıf,nesne vb. yapılar bulunmamalı demek istiyor.
4. Interface Sergregation Principle : Prensip olarak aynı özelliklere sahip olan sınıfları tek bir interface de toplamak sonradan o sınıfların hepsinde kesin olarak kullanılmayacak olan başka metot, sınıf,nesne vb. yapıları bu interface içersine eklemek doğru değildir. Ilk başta belki bir çözüm olabilir ama prensip olarak yanlıştır. Çözüm ise interface ‘leri parçalamaktır. Kesin olarak kullanılacak olan ortak metot, sınıf,nesne vb. yapıları ayrı ayrı interface ler içersinde toplayarak sınıflara implement etmektir.
5. Dependency Inversion Principle : Somut sınıflara olan bağımlılığı soyut sınıflar veya interface ler ile ortadan kaldırmaktır. Yani bir servis sınıfımız var ve bu servis sınıfı DB işlemleri ile ilgili işlemler gerçekleştiriyor. Başka bir A sınıfı üzerinden bu Servis sınıfına bağ kurup işlemlerimizi gerçekleştirirken ürettiğimiz A sınıfımız içersinde servis sınıfının bir çok örneği alınacak ve bir çok yerde kullanılabilecek ve kodlarımızı değiştirirken bağlı olan kısımlarda değişecek yada servis sınıfında yapılan bir değişiklik bizim servisi kullanan A sınıfımızdada değişikliklere sebep olacak . Amaç bu bağımlılığı ortadan kaldırmak ve daha güzel bir kod ortamı sağlamak.
Bu prensiplerde kod yazmak zorunlu olarak yapmanız gereken bir şey değil ama bu şekilde yazmanın tek bir amacı var daha az hata daha güzel kodlar 😀
Bilgiyle Kalın
M.Zeki Osmancık

Ejderha Mızrağı – Efsaneler üçlemesi 270 385 mezo

Ejderha Mızrağı – Efsaneler üçlemesi

Merhaba arkadaşlar

Bir arkadaşımın uzun ısrarlarına dayanamayarak Ejderha Mızrağı serisine başlıyorum. Ufak bir araştırma yaptım sizlerle paylaşmak isterim 🙂

Ejderha Mızrağı Destanı Margaret Weis ve Tracy Hickman tarafından yazılmış kitap serisidir. Seri aslında arabayla iş görüşmelerine giderken Laura ve Tracy Hickman tarafından yaratılmıştır. Serinin orijinal dili olan İngilizcede basılmış 190’dan fazla kitabı vardır. Ejderha Mızrağı dünyasının asıl yaratıcıları Margaret Weis ve Tracy Hickman olsa da birçok yazar yaratılan dünyaya ve kurallarına sadık kalıp onları kullanarak Ejderha Mızrağı dünyasıyla ilgili pek çok kitap yazmıştır. Öyle ki serinin kitaplarının büyük bir kısmının yazarları farklıdır. Aslen üç kitap olup, sonradan karakter derinleştirmeleri, yan hikâyeler, geçmiş ve gelecek eklemeleriyle büyümüş ve büyümeye devam etmektedir. Kitapların çoğu Krynn adlı dünyanın Ansalon adlı kıtasında geçer. Ansalon’un kuzey-doğusunda yer alan Taladas kıtası az olsa bile hikâyelerde kullanılmıştır. Adlatum kıtasında geçen bir hikâye henüz yazılmamıştır.
Türkçeye ilk olarak Ankira daha sonra Arkabahçe Yayıncılık ve son olarak da Laika Yayıncılık tarafından çevrilmiştir.
İlk yazılan Ejderha Mızrağı kitapları, birinci nesil karakterlerin çıktığı yolculuk ve maceralarını içeren, Güz Alaca Karanlığının Ejderhaları, Kış Gecesi Ejderhaları ve İlkbahar Şafağı Ejderhaları adlı üç kitaplık seridir. Kurgu ilk olarak Margaret Weis ve Tracy Hickman’ın da içinde bulunduğu masaüstü rol yapma oyunundan yaratılmıştır. Margeret Weis’in oyundaki karakteri Raistlin Majere’dir.

Tüm kitapları bulamadım ancak bulursam bu yazıyı güncelleyerek PDF formatında bu kitapları sizlerle paylaşacağım. Şimdilik elimde Efsaneler üçlemesi serisi bulunuyor. İyi okumalar diliyorum

ikizlerin-savaşı

İkizlerin Savaşı indirmek için tıklayın 

ikizlerin zamanı

İkizlerin Zamanı indirmek için tıklayın

ikizlerinsınavı

İkizlerin Sınavı  indirmek için tıklayın

Umarım Yararlı Olur

Bilgiyle Kalın

M.Zeki Osmancık

 

Design Patterns (Tasarım Deseni) Nedir ? 1024 777 mezo

Design Patterns (Tasarım Deseni) Nedir ?

Merhaba arkadaşlar
Konumuz Design Pattern 🙂 Biliyorum bir çok kişi bu konu hakkında birşeyler yazmıştır ancak birde ben yazayım dedim. Benim blogumda neden design pattern yok ben neden yazmıyorum dedim 🙂 ve işte Design Pattern…
Design Pattern genel olarak yazılım tasarımı sürecinde sürekli karşılaşılan problemlere çözümler üreten hazır kalıplardır. İstenilen herhangi bir yere yerleştirildiğinde çalışan hazır tasarımlar değildirler. İşin aslı problemler için bulunan çözümlere yapılan açıklamalardır
OOP(Object Oriented Programming) prensipleri doğrultusunda oluşturulan sınıfların başka sınıflara bağımlılığının en aza indirgenmesi beklenir. Bu durum esnek bir yapıyı beraberinde getirir ve yazılımın kalitesi artar. İleride gerekecek geliştirmelere daha müsait bir yapı sağlamış olur. Bu yapı, yazılımcıya ve o yazılımcıdan sonra gelecek yazılımcıya zamandan ve iş gücünden ciddi manada tasarruf sağlar.
Tasarım şablonları aşağıda yer alan ortak özelliklere sahiptir:

  • Edinilen tecrübeler sonunda ortaya çıkmışlardır.
  • Amerikanın tekrar tekrar keşfedilmesini engeller 😀 .
  • Tekrar kullanılabilir kalıplardır.
  • Ortak kullanılarak daha büyük problemlerin çözülmesine katkı sağlarlar.
  • Devamlı geliştirilerek, genel bir çözüm olmaları için çaba sarfedilir.

Tasarım şablonları değişik kategorilere ayrılır. Bunlar:

  • Oluşturucu tasarım şablonları (creational patterns)
  • Yapısal tasarım şablonları (structual patterns)
  • Davranışsal tasarım şablonlar (behavioral patterns)

Oluşturucular

  • Abstract Factory
  • Builder
  • Factory Method
  • Prototype
  • Singleton

Yapısal

  • Adapter
  • Bridge
  • Facade
  • Decorator
  • Composite
  • Flyweight
  • Proxy

Davranışsal

  • Command
  • Memento
  • Strategy
  • Iterator
  • State
  • Chain Of Responsibility
  • Mediator
  • Observer
  • Template Method
  • Visitor

Bu desenlerin yanlızca çok çok basit açıklaması. Yukarda saydığım desenleri tek tek açıklamayı planlıyorum 🙂 Zaman buldukça yazıyor olacağım. Sizlerde beni bekliyor olun 😀
Bilgiyle Kalın 😉
M.Zeki Osmancık

The Real Reasons You’re Unhappy at Work 375 375 mezo

The Real Reasons You’re Unhappy at Work

You hate your boss. Your coworkers give you the cold shoulder. Your to-do list is either painfully boring or terrifyingly long. These sound like valid reasons to hate your job. But in truth, they’re only the surface cause of your misery. Dig deeper, and you’ll discover underlying reasons you’re unhappy at work that are, fortunately, fixable.
“The ‘I hate my job because (fill in the blank)’ usually exists because too much time has passed where the ‘blank’ has gone unattended to,” says human resources expert Tiffani Murray. “Or other circumstances make the ‘blank’ appear bigger than it ought to be. Stepping back, assessing where you want to be in your job and career and digging deeper into the hatred is the way to find resolution and determine a next step.”
Keep reading for eight reasons you might be unhappy at work–and how to solve them.

What You Say: “I’m Bored at Work”

The_Real_Reasons_You’re_Unhappy-17d30a97363ddfcf4ddd4086a886fb95
The Real Reason: Your efforts have been unrecognized.
The Symptoms: You feel unmotivated. You seek out diversions to real work, such as updating social media or shopping a flash sale.
The Solution: Seek out feedback.
If you’re bored at work, it could be because you’ve been doing the same thing for too long and you’re ready for a change. Or it could be that you feel no matter how hard you work, you never get that “atta girl!” you deserve. If either is the case, seeking out feedback from your boss is a way to end this morale killer.
“A lot of times, a supervisor is not aware that someone is looking to move up the ladder,” Murray says. “If you don’t say anything, and you appear to be doing your job well, the thought usually is, ‘Let’s keep that person in that job.’ You have to take the initiative and let your boss know, ‘I want more opportunities to learn more things.’”
So, the next time you submit that big project and get zero feedback in return, don’t let it discourage you. Instead, ask your boss what she thought of it, and ask her for something more challenging next time around.

What You Say: “The Hours are Too Long”
The Real Reason: You’re overloaded with responsibilities but are afraid to push back and say, “No, I can’t take on more.”
The Symptoms: You’re the first in and/or the last to leave, and even when you’re not at work you have a Pavlovian response to the “ding” from your smartphone.
The Solution: Talk to your boss about suggestions on ways to better organize and prioritize your workload.
“Some people don’t know how to say ‘no’ to added responsibilities, and with the way the economy has been there’s been a lot of fear around saying ‘no,’” says Murray. “But now that the economy is turning around, tell your boss you need to discuss your workload and get better ideas on how to organize it.”
Ideally, having this conversation will open your boss’ eyes to exactly how much you have to get done–and how impossible that is within a 40-hour workweek. Also, she might give you guidance on what to prioritize and what deadlines can be spaced out a bit more. This can give you some much-needed breathing room (and some recognition from a supervisor who might not have realized how much you’ve been working).

What You Say: “I Hate My Co-workers”
The_Real_Reasons_You’re_Unhappy-8e10051a986eb8f983038520cf91d789The Real Reason: The problem might not be the people but rather the culture of the organization.
The Symptoms: You feel ganged up on or left out, or you find yourself arguing–a lot.
The Solution: If the culture isn’t the right match for you, you should consider moving on.
If the workplace culture doesn’t mesh with your personality, odds are the people there won’t either. For example, if the business feeds on competition amongst coworkers, and you’re not a competitive type, you’re going to chafe at that type of energy. And that’s going to make you hate the guy who’s constantly trying to one-up you, even if in doing so he’s just getting his job done.
If leaving the job isn’t feasible, figure out how to make the environment less stressful. If there are people you particularly abhor, make sure you take your lunch an hour after or before they do. Or request a desk change. And think about the end game. “Focus on your work and your goals,” says Murray. “Give yourself an 18-24 month time limit. During that time, strive for a promotion and get it. Then, start looking for your next job.”
Before doing something that drastic, realize that work friends often only last as long as you’re at that job. Focus instead on strengthening your friendships outside of the office.

What You Say: “I’m Underpaid.”
The Real Reason: You feel stifled and unfulfilled.
The Symptoms: Simple–you look at your paycheck and grumble.
The Solution: Find out what opportunities exist for you not only to get promoted to a higher-paying job, but to contribute more to growing the company.
Making a lot of money definitely makes life easier. You pay your bills, you even have a little left over for the fun stuff. But if you hang your work happiness on that biweekly paycheck, you’re giving short shrift to what happens every other day of the week. You have to show up, you have to perform, and, ideally, you have to feel satisfied by the work you do. If you feel fulfilled professionally and are given the license to be creative and develop new ideas on the job, you will get satisfaction that goes beyond the paycheck.
“People want to be heard,” says Sandy Mazur, division president at Spherion Staffing Services. “Base salary is a way of attracting someone to a company. But if you look at what makes people stay in their jobs, base pay takes a backseat to how well they can advance their careers. People also want to know their opinion matters. Then you take more ownership of the job.”
Ask your boss for ways you can contribute more to the team. Give her ideas on how processes could be done more efficiently. Have an idea for a new product? Take a deep breath and pitch it. When your paycheck isn’t your only payoff at work, you’re bound to feel more fulfilled.

What You Say: “I Feel Trapped in this Job”
The Real Reason: You are bored and unchallenged by your job, yet quitting is not an option.
The Symptoms: You dread Mondays and the days feel incredibly long.
The Solution: Find inspiration in places outside of work.
One in four workers rates his job satisfaction as fair or poor, according to Spherion’s Emerging Workforce Study. That’s a lot of bored employees. “When you spend so much time doing boring things, it affects other parts of your life,” says Nicole Williams, LinkedIn’s Career Expert and author of “Girl on Top.” “You feel really tired, not because you are tired, but because you can’t get out of the rut.”
To motivate yourself, find a mentor or go to a career-related conference that will remind you of why you chose your profession in the first place. Or become a mentor yourself. Sometimes motivating someone else can have the benefit of motivating you as well, Williams says.
If that doesn’t work, stop trying to find your inspiration at work. “Physically challenge yourself,” says Williams. “Take a walk. Go for a run. Or find something else you are interested in and do that. When you get involved in something you are interested in, your workday can feel less boring.”
To solve the “trapped” feeling on the job, ask yourself when was the last time you took on an assignment that truly scared you. If it’s been a while, have a conversation with your supervisor about taking on extra responsibility. Trying something new at work can be equally liberating.

What You Say: “I Hate My Boss”
The_Real_Reasons_You’re_Unhappy-c9bfdcd74e077caa5416cc3217900f7fThe Real Reason: Your boss doesn’t fully recognize your efforts causing you to feel unappreciated and resentful.
The Symptoms: When his name is in your inbox or you hear his voice coming down the hall, you cringe.
The Solution: Ask your boss for feedback on your performance, and give him some feedback on his.
If someone is constantly telling you what to do but never giving you any recognition for your efforts, yeah, it’s easy to hate that guy. The same is true if his or her management style is contrary to your personality. If your boss uses yelling and name-calling to get results, and that’s not what motivates you, you will learn to dread those weekly staff meetings.
But hatred can be diffused by communication, says Williams. “A lot of times bosses don’t recognize that what they are doing is causing problems,” she says. For example, if your boss is a screamer Williams advises you tell her, “I know you must be frustrated, and I know it’s a hard job, but I’m going to perform better if you don’t scream at me.” One of Williams’ clients tried this approach and was successful. “The boss said, ‘I didn’t realize I was raising my voice to that degree.’ There was surprisingly receptive feedback to that conversation. And often, negative boss behavior is bully behavior. Once they’re called out on it, they usually go and pick on someone else.”

What You Say: “I Chose the Wrong Career”
The Real Reason: You’ve given up on your dreams.
The Symptoms: Feeling discontented and as if work is something you have to do, not something you could ever enjoy.
The Solution: Pursue your dream outside the office.
Maybe you chose the career your parents wanted for you, rather than the one you wanted. Or you did all the hard work to get the necessary training and degrees only to realize that you hate the work you now have to do. Either way, you’re no longer chasing your dream, and that can leave you discouraged.
“Women rationalize by saying, ‘I should relocate for this job. I need the salary to support my family. I spent six years in school for this.’ They’re talking about what they should do and have to do, instead of living from their authentic self,” says Career Expert Cornelia Shipley. “Solving this involves reconnecting to your dream in some way.”
Maybe you wanted to be a ballerina but your parents encouraged you to get your MBA instead. S,o start taking dance classes again, teach dance or join the board at your local dance company. Maybe you became a doctor because you wanted to help the poor, but your student loans quickly led you to a different path. Volunteer at a clinic in a low-income neighborhood.
“Ask yourself, ‘What is the truth behind my dream today, and how do I incorporate that dream into my life?’” Shipley says. “If you connect the dots, you will get to the truth of what it is you truly want to do.”

What You Say: “I’ve Hit the Ceiling”
The_Real_Reasons_You’re_Unhappy-01ba4562048b38dc4f18e6f38352870aThe Real Reason: You’ve given up control of your career to someone else.
The Symptoms: You feel powerless over your career and don’t see a way out of the job you’re in.
The Solution: Communicate where you want to be and ask for help getting there.
You’ve been walking into the same cubicle for five years, doing the same work, barely getting cost-of-living raises, and you don’t see a way that things will change. Maybe your company is small and has very little opportunities for advancement or you’ve looked for other jobs but nothing has panned out. And so you work, watch the clock and have stopped planning for the future. If so, you’re not alone: only 28 percent of employees are satisfied with their current growth and earnings potential, according to data from Spherion’s Emerging Workforce Study.
Instead of puttering along in neutral, you need to create a new path for yourself. Don’t wait for your boss to suddenly notice you. Instead, “You have to decide which job you want and go after it,” says Shipley. Approach your boss about what opportunities there are for your advancement. Talk to human resources about job openings in other departments that might suit you. Get the extra schooling or training that will help make you more attractive to employers. But most of all, take control of your own career.
“If you put your boss in charge of making things happen for you, you will be disappointed,” says Shipley.

 

link

Android 4.4 KitKat Geliyor 699 427 mezo

Android 4.4 KitKat Geliyor

Selam Gençler 🙂

Android Jelly Bean versiyonundan sonra şimdi Android 4.4 KitKat versiyonu için hazırlıklara başlandı 🙂 Ayrıntılı bilgi için  http://www.android.com/kitkat/ adresinden mail adresinizi bırakarak haberdar olabilirsiniz.

kitkat

İyi Günler 🙂

Samsung Galaxy Note 2 Root İşlemi 455 466 mezo

Samsung Galaxy Note 2 Root İşlemi

Merhaba arkadaşlar

Samsung Galaxy Note 2 telefon aldım ve alışkanlık olarak kullandığım bazı uygulamaların ROOT işlemi yapılmadan kullanılamadığı için yerimde duramadım Galaxy Note 2 yi root işlemine tabi tuttum. Sizlerlede paylaşayım dedim 🙂

Öncelikle  söylemek isterim ki telefonunuzun şarjı full olmalıdır. Bu yükleme işlemi herhangi bir şekilde yarım kalırsa telefonunuz tekrardan açılmayabilir. Herhangi bir sorunda  www.mzekiosmancik.com sorumlu değildir. Sorumluluğun tamamen kendinize ait olduğunu bilerek kuruluma başlamalısınız.

İlk olarak ODIN programını buradan indiriyorsunuz. Ardından Root dosyasını buradan indiriyorsunuz.

Bu iki dosyayı indirdikten sonra Galaxy Note 2 telefonumuzu Download Mode ‘ da açıyorsunuz.

DSC00031

 

 
NOT: Bunun için telefon kapalıyken Güç + Ses Kısma + Menu tuşlarına aynı anda basmalısınız. Bu tuşlara bastıktan sonra karşınıza bir menu gelecektir Ses Açma tuşuna basarsanız bir android resmi sizi karşılar ve telefonunuzun yüklemelere hazır olduğunu gösterir. Yandaki resimde Download Mode da telefonunuzun ekranının nasıl görüneceğini görebilirsiniz.
 

 

 

Telefonumuzu Download Mode da açtıktan sonra sıra geldi ODIN programını çalıştırmaya 🙂 ODIN i çalıştırıp telefonumuzu kablomuzla bilgisayara bağladığımızda şöyle bir ekran karşımızda olmalı.

odin1

 

Added yazısını gördüysek sıra geldi ROOT dosyasını eklemeye. İndirmiş olduğunuz root dosyasını PDA butonuna basarak seçin sonra karşınıza şöyle bir ekran gelecek.

odin2

 

Artık hazırsınız 🙂 Şimdi START butonuna tıklayarak işlemi başlatın. Kurulum sürdükten sonra SUCCES yazısını gördüğünüzde telefonunuz yeniden başlayacak ve belki bir soru sorabilir size recovery ile alakalı bu soruyada ses açma kapama tuşlarıyla yönlendirme yapıp YES seçtikten sonra…

Veeee Galaxy Note 2 telefonunuz artık ROOT işlemi tamamlanmış ve yeni özelliklerinin sizin tarafından keşfedilmesini bekliyor olacak 🙂

Umarım yararlı olur

Bilgiyle Kalın

M.Zeki OSMANCIK

LDF Olmadan Database Oluşturmak 512 512 mezo

LDF Olmadan Database Oluşturmak

Merhaba arkadaşlar
Sabahın köründe karşıma çıkan ilginç bir konuyu sizlerle paylaşmak istiyorum. LDF dosyası olmadan database oluşturabilir miyiz ? Cevabımız evet
Neden böyle birşey isteyelim ki demeyin isteyen istiyor 😀
İşte gerekli scrip 😀

Umarım Yararlı Olur
Bilgiyle Kalın
M.Zeki OSMANCIK

C# Dynamic Nesnesi 350 106 mezo

C# Dynamic Nesnesi

Merhaba arkadaşlar
Bu yazımda C# daki yeni bir keyword’ den bahsetmek istiyorum DYNAMIC.
Dynamic keyword u C# 4.0 ile birlikte 2010 da gelen bir keyword. Bu keyword Dynamic Language Runtime (DLR) yi yönetir DLR dediğimiz olay tıpkı CLR (Common Language Runtime) gibi çalışan bir yapıdır. Dynamic bir nesne Dynamic tipindeki classların yönetiminin nasıl yönetileceğini belirler. Tıpkı CLR de olduğu gibi tamamen runtime da derlenir ve çalışırlar.

Diyelim ki iki farklı class oluşturmak istiyoruz ancak içersinde aynı isimden 2 metot olacak daha sonra söz konusu Dynamic sınıfdan bir instance alıyorsunuz. Dynamic nesne ile aynı isimdeki ancak farklı classlar içersindeki metotları çağırabiliyorsunuz.

Bir de örneğe göz atalım 😀

Örnek

Çıktı da Şöyle oluyor şekil örnek 1 A 😀

output

Database’de bulunan tablo sayısı bulma 750 374 mezo

Database’de bulunan tablo sayısı bulma

Merhaba gençler 🙂
Veritabanındaki tablo sayısı nı öğrenmek için aşağıdaki sorguyu çalıştırabilirsiniz 😉


Umarım yararlı olur
Bilgiyle Kalın
M.Zeki Osmancık

DataTable ‘dan List e Dönüştürme 342 204 mezo

DataTable ‘dan List e Dönüştürme

Merhaba arkadaşlar

Bu yazıda sizlere DataTable ile gelen veriyi List<T> olarak geri döndürmek istersek bu dönüştürmeyi LambdaExpressions /LINQ ile nasıl yapabiliriz ondan bahsetmek istiyorum.

Umarım Yararlı Olur
Bilgiyle Kalın
M.Zeki Osmancık

Command Prompt Telnet Hatası 672 315 mezo

Command Prompt Telnet Hatası

Merhaba arkadaşlar

Bazı durumlarda  telnet kullanmak isteyebilirsiniz ancak Command Prompt ta telnet komutu yazdığınızda şöyle bir hata ile karşılaşabilirsiniz ‘telnet’ is not recognized as an internal or external command,operable program or batch file.  Eğer böyle bir hata ile karşılaşırsanız İlk yapmanız gereken Telnet Client yüklü mü ona bakmanız gerekiyor yüklü değilse yapmanız gereken şey şu  Denetim Masası -> Program Ekle Kaldır -> Windows Özellikleri Ekle  sayfasını açıp Telnet Client özelliğini yüklemeniz yeterli olacaktır. Yüklü ama aynı hatayı alıyorsanız o zaman başka bir çözüm olarak  Command  Prompt ta “Windows dizinine girerek yada Windows / System32 dizinine girerek bu dizin içersinde telnet i çalıştırmayı deneyebilirsiniz.

Untitled picture

Umarım Yararlı Olur

Bilgiyle Kalın

M.Zeki Osmancık

 

 

Windows 8 Güvenli Mod da Nasıl Açılır? 500 277 mezo

Windows 8 Güvenli Mod da Nasıl Açılır?

Merhaba arkadaşlar

Bilgisayarımızı bazen güvenli modda açmak isteyebilirsiniz belki bir virüs belki bir programı kaldırmak için olabilir.  Normalde Windows 7 ve daha öncesinde bilgisayar açılırken F8 tuşuna basarak aşağıdaki resimdeki ekran ile bu işlemi gerçekleştirebilirdik.

SafeModeF8

 

Windows 8 Güvenli Mod e geçince bu iş biraz daha farklı olmuş 🙂 Biraz araştırma ile bulabildim. Windows 8 de Bilgisayarınızı güvenli modda açabilmek için “Gelişmiş Başlatma Seçenekleri” ni Ayarlar bölümünde aşağıdaki resimdeki gibi aramanız ve bulmanız gerekiyor.

guvenli-mod

 

Gelişmiş Başlatma Seçeneklerini açtıktan sonra “Genel” sekmesi altında en altta bulunan gelişmiş başlangıç seçeneğini seçmelisiniz.

guvenli-mod-2

Şimdi yeniden başlat buton bastığınızda bilgisayarınız yeniden başlayacak size bir menü çıkaracak burada sayı veya F tuşlarıyla birini seçmenizi isteyecektir.

4 tuşuyla Güvenli Mod’u,
5 tuşuyla Ağ desteği ile Güvenli Mod’u,
6 tuşuyla ilse Komut İstemi ile Güvenli Mod’u başlatıyoruz

Umarım Yararlı Olur

Bilgiyle Kalın

M.Zeki Osmancık

 

 

 

Service ‘IISADMIN’ (IISADMIN)failed to start Hatasının Giderilmesi 671 389 mezo

Service ‘IISADMIN’ (IISADMIN)failed to start Hatasının Giderilmesi

Merhaba arkadaşlar
Bu yazımda başıma gelen 3 gün beni uğraştıran bir hata ile karşınızdayım 🙂 3 gün uğraşılmayacak bir hata aslında ama yanlış tarafa focus olunca mecburen bu yönde araştıma yapıp sonuca ulaşamadım ancak sonunda buldum 🙂
Herkesin sık kullandığı bir alışveriş sitesinin projesi için görevlendirildim ve bilgisayarıma önce Commerce Server 2007 kurup daha sonra Commerce Server 2009 a yükseltmem gerekiyordu. Commerce Server 2007 kurarken bir uyarı veriyor bu uyarı şöyle : “Service ‘IISADMIN’ (IISADMIN)failed to start”. Verify that you have sufficient privileges to start system services”. Bu hatayı Ignore seçeneği ile geçebiliyoruz. Geçmeyin sakın !!!😀
Eğer bu hatayı Ignore ile geçerseniz Commerce Server 2009 kurulurken Fatal Error hatası alıp bu hata genel bir hata çözüm aradığınızda bir çok alakasız kaynak çıkıyor. İşte bu Fatal Error e odaklandığım için 3 gün uğraştım 🙂
Ancak asıl sorun ISSADMIN hatası bunu çözmemiz gerekiyormus aslında 🙂 Şimdi nasıl çözdüğümü anlatayım.

Commerce Server için IIS kurulması şart bunu Program Ekle Kaldır dan Windows Özelliklerinden ekleyebilirsiniz. Sadece Internet Information Service i işaretleyip devam ederseniz (benim gibi) ISSADMIN hatasını alırsınız 😀 Bu hatayı almamak için IIS kurarken altındaki seçeneklerde yer alan IIS 6 Management Compatibility Pack da işaretli olmalı böylelikle Commerce Server kurulurken çıkan IISADMIN hatasını ve dolayısı ile Commerce Server 2009 da ki Fatal Error u de engellemiş oluyorsunuz 🙂
Umarım Yararlı Olur
Bilgiyle Kalın
M.Zeki OSMANCIK

HttpCookie Nedir ? 279 180 mezo

HttpCookie Nedir ?

Merhaba arkadaşlar
HttpCookie yapısından önce çok temel bilgi olarak Cookie nedir ondan bahsedelim 🙂
Cookie Nedir?
Bir web sayfası sunucusunun sizin bilgisayarınızın hard diskine yerleştirdiği ufak bir text dosyasıdır. Yani, o web sitesinin bir sonraki ziyarette sizi tanıması için geçerli bir bilgidir. Bu text dosyası bir komut dosyası olmadığı gibi, virüs de değildir. Size özel bir tanımlamadır ve sadece bu kodu tanımlayan web sunucusu tarafından okunabilir.Cookie’nin amacı; sizin o siteyi yeniden ziyaret ettiğinizi web sunucuya bildirmekten ibarettir.

HttpCookie Nedir?
Asp.Net ile yaptığımız sitelerimizde Cookie oluşturmak için kullandığımız bir class tır. Cookie nin yönetimini HttpRequest ve HttpResponse class ile gerçekleştirilir.
HttpCookie yi oluşturmak için

HttpCookie MyCookie = new HttpCookie("Cerezim");

Instance alındıktan sonra içersindeki property leride şu şekilde kısaca açıklayabiliriz.
Domain: Cookie nin etki alanını ayarlamak için kullanılır.
Expires: Cookie nin geçerlilik süresini ayarlamak için kullanılır DateTime tipinde değer alır.
HasKeys: Cookie içersinde alt anahtarlar olup olmadığını kontrol etmek için kullanılır.
HttpOnly: Cookie ye client tarafından javascript kodları tarafından ulaşılabilir olmasını sağlayan bir property dir.
Item: HttpCookie.Values özelliği için bir kısayoldur. Bu özellik Active Server Pages (ASP) nin önceki sürümleriyle uyumluluk sağlamak için kullanılır.
Name: Cookie ye bir isim verir veya cookie ismini okuyabilidiğimiz property.
Path: Cookie nin sanal adresini atayıp okuyabildiğimiz property
Secure:SSL uzerinden kullanilacak olan cookie ler ile ilgili guvenlik degerlerinin atandigi property dir.HTTPS uzerinden kullanilabilir
Value:Cookie içersine yerleştirilecek olan değeri atamak için kullanılır.
Values: Cookie içersine birden fazla değer atayabilmek için kullanılır.

Cookie tanımlayabilmek için HttpCookie sınıfından bir örnek alıp şu şekilde kullanabiliriz.

HttpCookie MyCookie = new HttpCookie("Cerezim");
MyCookie = Request.Cookies.Get("Cerezim");
if(MyCookie!=null)
{
Response.Write(MyCookie.Value);
}

Simdilik bu kadar daha sonraki yazilarda ayrintili sekilde nasil cookie tanimlayip kullanabiliriz ornek proje ile destekleyip gosterecegim.
Umarim yararli olur
Bilgiyle Kalin
M.Zeki OSMANCIK

Kararlı Olmak ! 1024 680 mezo

Kararlı Olmak !

Bir işi başarabilmenin en önemli kuralıdır o işi yapabileceğine inanmak, kararlı ve istekli olmak. Zor durumda kaldığında farklı alternatifler üretebilmek, başarısızlık karşısında yılmadan mücadele etmek, hedefe yönelik Success-Kiden gerekli adımlardandır. Bir şeye karar verdiğinizde üretirsiniz.Karar vermek dibi görünmeyen zifiri karanlık kararsızlık çukurundan kurtuluştur.Bir kördüğüm haline gelmiş sarmaldan aniden özgür olmaktır. Ancak öncelikle bir karar verebilmek için özgür irade gücü ve cesaret gereklidir. Karar vermek kişiyi yeni bir yola koyar ve bu yol yeni yükler getirir. Bu kararın arkasında durabilecek güce sahipseniz yola koyulabilirsiniz. Aksi halde arkasında duramayacağınız kararlar yolda size yetişip ezip geçecektir.
İlk önce neye ulaşmak istediğimize, sonra da bu isteğimize nasıl ulaşacağımıza karar vermek zorundayızdır. Bu noktada karar vermenin gücü çok büyüktür. Uygulanırsa etkisi ile yaşamı baştanbaşa değiştirir. Karar verdiği an insan, hayata karşı kendini güçlü ve yenilenmiş hisseder.

Karar vermek çoğunlukla bir çıkmazdan çıkış yolu bulabilmek içindir. Karar alan aldığı kararı yaşamına yansıtırken “Keşke şöyle yapsaydım, şunu da düşünseydim, şuna da ayıp oldu, vs… ” gibi kuşkuya düşme, pişmanlık, duraksama ve kayboluşlardan kendini uzak tutabilme yetisine de sahip olmalıdır.

Karar almak, uygulamaya göre nispeten daha kolaydır. Zira insanoğlu alışkanlıklarından kolay kolay kopmak istemez.

Uygulamaya geçen bir kararda dönüş yoktur. Yol tek şerittir. Kendine saygısını tümden yitirmemesi için bu yola koyulmuştur artık. Denildiği gibi: “Karar vermek, bir şeyleri kaybetmeden gerçekleşemeyen eylemdir.”

“Karar almak”, çoğunlukla bireyin hayatına belli prensip ve kurallar perspektifinden yeni bir bakış açısı ile bakması anlamında kullanılır. “Karar vermek” ise kişinin hayatında çok önemli bir seçim yapmak ve hayatının gidişini değiştirmek zorunda kalması anlamındadır.
Hayat öyle basite alınacak bir oyun değildi. Oyunun kurallarını bilmen ve ona göre oynaman gerekiyordu. Ama çoğu zaman oyunun kurallarını bilmek yetmiyordu. Çok daha önemli olan başka bir şey vardı. Kendini bilmek… Ne istediğini ama gerçekten en çok ne istediğini, neyin seni mutlu edeceğini ve kim olduğunu, neler yapabileceğini bilmek zorundaydın. Seçmek, karar vermek zorundaydın. Ancak o zaman doğru kararlar veriyor ve mutlu bir hayata sahip oluyordun. Ve kararlar birer kibritti. Ya kendini yakıyordun ya da ısıtıyordun…”

Denilir ki: “Yaşam haritalarını izlerken, hedeflerinize ulaşmaya çalışırken, aklımız dümen, duygularımız yakıttır. Akıl ve mantık önderliğinde, vicdanlarını da kullananlar hedeflerine ulaşırlar.” Amaç duyguları köreltmek değil, onları yönetmektir.

Bir sorun, o durumu düzeltmeye hazır oluncaya kadar karşımızda durur. Neyin yanında, neyin karşısında olduğu bilinen gerçek insanlar, karar vermenin gücünü de bilmektedirler. Onlar, en zor durumda yalpalasalar bile yollarına devam ederler. Karar vermenin bu büyük gücünü kullanırlar, asla arada kalmaz ve sorunun bir parçası olmamak için gerektiğinde en acı verici kararları dahi almaktan bir an bile çekinmezler.

Birçok insanın, hayatlarında başarısızlığa uğramaları, akla uygun davranabilme özgürlüğünün ellerinde bulunduğunu görememelerinden, seçmenin gerekliliğinin farkına vardıkları zaman da artık karar vermek için zamanın geçmiş olmasındandır.

Karar vermek zordur,ama bir o kadar da canlandırıcıdır.

Ya yaşamınıza renk katın,

Ya da ömrünüzü keşkelerle geçirip, arada kalın…

Seçim yapmak, omuzlarınıza yüklenen bir yüktür başta…

Sonra sırtınıza yüklediğiniz yerden derinizi yırtıp açan ve sizi uçuran kanatlardır…

Yeniliğe açılan kapıdır…

Yaşadığının farkına varmaktır…

Düşününüz ve…

Karar verecekseniz şimdi verin…

Seçim yapacaksanız şimdi yapın…

Yola koyulacaksanız, dönmemek üzere ilk adımınızı atın…

Karar Vermek İle İlgili Güzel Sözler

“Cesaret insanı zafere, kararsızlık ve korkaklık ise ölüme götürür.” YAVUZ SULTAN SELİM

Akıllı kişiler kararlarını aceleyle değil, düşünüp taşınarak verirler. JEREMY TAYLOR

Başlamadan önce iyi düşün; ama bir kere başlayınca hemen bitirmeye bak. SALLUST

Bilgi insanı kuşkudan, iyilik acı çekmekten, kararlı olmak da korkudan kurtarır. KONFÜÇYÜS

Bir girişimde bulunacaksanız, kararsızlık kapılarını kapatın. NIETZSCHE

Bir insan hakkında verdiği cevaplardan çok, sorduğu sorularla daha iyi karara varırsın.VOLTAIRE

Bir konu hakkında karar vermeden önce başkalarının da öğütlerine kulak vermek gerekir.DALE CARNEGIE

Çok boyutlu olaylarda ani kararlar vermek aptallıktan başka bir şey değildir. MONTAIGNE

Felaket içinde karar verebilmek yarı kurtuluştur. PESTALOZZI

Güneşi sağ elime, ay’ı sol elime verseniz dahi, davamdan vazgeçmem. HZ MUHAMMED (sav)

Güzelliği anlamak için bir kere bakmak yeter ama, bir karara varmak için çok düşünmek gerekir. EMILE ZOLA

Karar verebilen acıyı yener. GOETHE

Kararlar çoğunlukla saatlerimize benzerler, hiç birimizinki birbirine uymaz, ama gene de kendimizinkine güveniriz. POPE

Kararlılık keskin bir bıçağa benzer, keskin ve düzgün keser. Kararsızlık ise kör bir bıçak gibidir, kestiği her şeyi parçalar ve yırtar. JAN ME KEITHEN

Kararsızlık en büyük hastalıktır. GOETHE

Kararsızlık ve gecikme başarısızlığın iki önemli sebebidir. GALILEO

Kararsızlık, esef ve pişmanlıklarımızın biricik sebebidir. DESCARTES

Kendi kendine karar veremeyenin ahlaki sorumluluğu da olmaz. ARISTO

Kızgın olduğum zamanlarda karar vermem. WINSTON CHURCHILL

Kuşku ve kararsızlık, insanın gelişmesini engeller. IGNAZIO SILONE

Küçük hataları fazla dikkate alma, yoksa önemli kararları almakta güçlük çekersin. WILHELM JORDAN

Olaylar sonuçlanmadan kesin bir karara varmak doğru olmaz. DALE CARNEGIE

Uzun düşünmek insana, çok kez fırsat kaçırtır. PUBLILILUS CYRUS

Vaktinden önce alınan kararların sonu yoktur. OSCAR WILDE

Ya başlamamalı, ya bitirmeli… OVIDIUS

Yapmak istediğin şey için düşünerek karar ver, verdiğin kararı da mutlaka yap. BENJAMIN FRANKLIN

C# ve PHP 3DESCrypto 691 618 mezo

C# ve PHP 3DESCrypto

Merhaba arkadaşlar
Bu kez sizlere şifreleme yöntemi olan 3DES(Triple Data Encryption Algorithm diye geçer ancak DES kısaltması Data Encryption Standard dan gelmektedir.) şifreleme yönteminin kodlarını vermek istiyorum belki bu yazıya daha sonra ayrıntılı şekilde bunun ne olduğu ile ilgilide birşeyler ekleyebilirim. 🙂 PHP ve C# için kodları aşağıda sizlerle paylaşıyorum
PHP

function encrypt($string) {
//Key
$key = "xxxxxxxx";

//Encryption
$cipher_alg = MCRYPT_TRIPLEDES;

$iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher_alg,MCRYPT_MODE_ECB), MCRYPT_RAND);

$encrypted_string = mcrypt_encrypt($cipher_alg, $key, $string, MCRYPT_MODE_ECB, $iv);
return base64_encode($encrypted_string);
return $encrypted_string;
}

function decrypt($string) {
$string = base64_decode($string);

//key
$key = "xxxxxxxx";

$cipher_alg = MCRYPT_TRIPLEDES;

$iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher_alg,MCRYPT_MODE_ECB), MCRYPT_RAND);

$decrypted_string = mcrypt_decrypt($cipher_alg, $key, $string, MCRYPT_MODE_ECB, $iv);
return trim($decrypted_string);
}

C# encryption:

using System;
using System.Security.Cryptography;
using System.Text;

public class Crypto3DES
{
public Crypto3DES()
{

}

private System.Text.Encoding encoding;

public string Key
{
get
{
return "xxxxxxxx";
}
}

public System.Text.Encoding Encoding
{
get
{
if( encoding == null )
{
encoding = System.Text.Encoding.UTF8;
}
return encoding;
}

set
{
encoding = value;
}
}

public string Encrypt3DES( string strString )
{
DESCryptoServiceProvider DES = new DESCryptoServiceProvider();

DES.Key = Encoding.GetBytes( this.Key );
DES.Mode = CipherMode.ECB;
DES.Padding = PaddingMode.Zeros;

ICryptoTransform DESEncrypt = DES.CreateEncryptor();

byte[] Buffer = encoding.GetBytes(strString);

return Convert.ToBase64String(DESEncrypt.TransformFinalBlock(Buffer, 0, Buffer.Length));
}

public string Decrypt3DES( string strString )
{
DESCryptoServiceProvider DES = new DESCryptoServiceProvider ();

DES.Key = Encoding.UTF8.GetBytes( this.Key );
DES.Mode = CipherMode.ECB;
DES.Padding = PaddingMode.Zeros;
ICryptoTransform DESDecrypt = DES.CreateDecryptor();

byte[] Buffer = Convert.FromBase64String(strString);
return UTF8Encoding.UTF8.GetString( DESDecrypt.TransformFinalBlock(Buffer, 0, Buffer.Length) );
}
}

Umarım Yararlı Olur
Bilgiyle Kalın
M.Zeki Osmancık

PHP MyAdmin Import Dosya Boyutu Hatası 320 220 mezo

PHP MyAdmin Import Dosya Boyutu Hatası

Merhaba arkadaşlar
Sizlere biraz önce karşılaştığım bir sorunun çözümünü paylaşmak istiyorum. kendi bilgisayarıma Wamp server kurdum ve var olan bir veritabanının script dosyasını yüklemeye çalıştım ancak bir hata ile karşılaştım.

Aldığım hata :No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16.

Yüklenen dosyanın boyutunun büyük olduğu ile alakalı bir hata. Çözümü ise çok basit php.ini dosyanızı açıyorsunuz ve içersinde upload_max_filesize = 2M yazar 2 yerine 128 yazın ve kaydedip kapattıktan sonra php servislerini yeniden başlatın tekrar denediğiniz de boyutu büyük olan script dosyası başarıyla import edilecektir. 🙂

Umarım faydalı olur.

Bilgiyle Kalın

M.Zeki Osmancık

ASP.Net Türkçe Karakter Sorunu 962 192 mezo

ASP.Net Türkçe Karakter Sorunu

Merhaba arkadaşlar

ASP.Net türkçe karakter sorunu ile ilgili küçük bir bilgi vermek isterim 🙂 Eğer asp.net sayfanızda türkçe karakter sorunu yaşıyorsanız Aşağıdaki kodu “webconfig” sayfanızdaki “<system.web>” tagı altına yapıştırmanız yeterli olacaktır… 😉


 

Bilgiyle Kalın 😉

M.Zeki Osmancık

Türkiye İl, İlçe, Semt, Mahalle, Köy, Posta Kodu Güncel Veritabanı 760 349 mezo

Türkiye İl, İlçe, Semt, Mahalle, Köy, Posta Kodu Güncel Veritabanı

Merhaba Arkadaşlar

Kısa bir süre önce bir projede kullanmak üzere il ilçe semt bilgileri gerekti ve bu bilgileri bulmuşken sizlerlede paylaşayım istedim 🙂

Mysql veritabanın da kullanacaksınız bu linkten ulaşabilirsiniz. Ama biz MSSQL kullanıyoruz ne yapacağız demeyin üzülmeyin gençler. Kendimde MSSql kullandığımdan oturdum uğraştım ve verileri import ettim 😛

Eğer MSSql Server 2008 R2 kullanıyorsanız buradan , MSSql Server 2012 kullanıyorsanız buradan scriptlere ulaşabilirsiniz.

Haydi Kolay Gele

Umarım Yararlı Olur.

Bilgiyle Kalın

M.Zeki Osmancık

.Net için Facebook SDK 400 400 mezo

.Net için Facebook SDK

Facebook için bir masaüstü, mobil, web veya windows 8 projesi geliştirmek isteyenler toplaşın bakalım buraya 🙂
Facebook için .Net SDK si yayınlandı. Nasıl bir uygulamayı facebook ile entegre ederim bu SDK yi nasıl kullanırım diyenler için paylaşıyoruz 🙂
Kolay gelsin…

Facebook SDK yı indirin öğrenin 🙂

http://facebooksdk.net/

Regex ifadelerinizi online olarak test edin 800 533 mezo

Regex ifadelerinizi online olarak test edin

Yazdığın regex ifadeleriniz online olarak test etmek için http://www.regextester.com/ adresini kullanabilirsiniz. “Test on text” bölümüne yazdığınız string eğer “type regex” ile eşleşmiyorsa “result” bölümünde “No match” eşleşiyorsa “macthes (x)” sonucu olacaktır.

Şifre alanları için regex ifadesi 150 150 mezo

Şifre alanları için regex ifadesi

// c# kodu olduğu için \ karakteri \ olarak yazılmıştır, başka programlama dillerinde "\" ifadesini "\" ile değiştirin
^(?=.*[^a-zA-Z])(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[-!$%^&*()_+|~=`{}\[\]:\";'<>?,.\/])\S{8,30}$
// şifrenin en az 8 karakter olmasını 1 küçük, 1 büyük harf, 1 rakam ve 1 sembolden oluşmasını zorunlu tutar.
^(?=.*[^a-zA-Z])(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])\S{8,30}$
//bu ifadede ise sembol zorunluğu yok.
MS SQL içerisindeki büyük miktarda veriler arasında sayfalamayı hızlı bir şekilde yapmak 150 150 mezo

MS SQL içerisindeki büyük miktarda veriler arasında sayfalamayı hızlı bir şekilde yapmak

CREATE PROCEDURE dbo.GetProductsPaged
(
    @startRowIndex int,
    @maximumRows int
)
AS
    SELECT     ProductID, ProductName, SupplierID, CategoryID, QuantityPerUnit,
               UnitPrice, UnitsInStock, UnitsOnOrder, ReorderLevel, Discontinued,
               CategoryName, SupplierName
FROM
   (
       SELECT ProductID, ProductName, SupplierID, CategoryID, QuantityPerUnit,
              UnitPrice, UnitsInStock, UnitsOnOrder, ReorderLevel, Discontinued,
              (SELECT CategoryName
               FROM Categories
               WHERE Categories.CategoryID = Products.CategoryID) AS CategoryName,
              (SELECT CompanyName
               FROM Suppliers
               WHERE Suppliers.SupplierID = Products.SupplierID) AS SupplierName,
              ROW_NUMBER() OVER (ORDER BY ProductName) AS RowRank
        FROM Products
    ) AS ProductsWithRowNumbers
WHERE RowRank > @startRowIndex AND RowRank <= (@startRowIndex + @maximumRows)

MS SQL’de satır numarasını alma 150 150 mezo

MS SQL’de satır numarasını alma

SELECT * FROM (
  SELECT
    ROW_NUMBER() OVER (ORDER BY id ASC) AS rownumber,
    id, ilceAdi
  FROM Ilce
) AS foo
WHERE rownumber = 5

JavaScript Sayaç

JavaScript Sayaç Div içerisinde açılan bir iletişim formunun 2 saniye sonra kaybolması için hazırlanmıştır. jQuery'nin slideUp kapanma efekti kullanılmıştır.

function closeForm(){
  setTimeout('$("#contactForm").slideUp("slow")', 2000);
}

JavaScript Sayaç 150 150 mezo
iPhone MKMap ile Haritada yerimizi buluyoruz :) 365 718 mezo

iPhone MKMap ile Haritada yerimizi buluyoruz :)

Merhaba arkadaşlar

Uzun bir aradan sonra tekrar bir makale yazma fırsatı buldum sonunda. Bu yazımda iPhone programlamada harita kontrolünün kullanımından bahsetmek istiyorum. Çok çok basit manada iphone uygulaması üzerine nasıl harita ekleriz bu haritada nasıl yerimizi işaretleriz konusunu açıklayalım 🙂

İlk önce XCode üzerinde bir proje açıyoruz ve boş formumuzun üzerine MKMapView kontrolü yerleştiriyoruz.

Screen Shot 2013-05-01 at 4.10.05 PM

 

MapView kontrolünün çalışabilmesi için framework eklememiz gerekmekte bu ekleme işleminide şu şekilde yapabiliriz : proje dosyaları üzerinde bulunan Frameworks klasörü altındaki herhangi bir nesnenin üzerine sağ click ile Finder üzerinde gösterdikten sonra açılan pencere üzerinde bulunan klasörlerin içinde MapKit.framework klasörünü bulup olduğu gibi sürükleyip projemiz içersinde bulunan Frameworks klasörü üzerine bırakıyoruz.

Screen Shot 2013-05-01 at 4.13.18 PM

 

ve MapKit.framework projemiz üzerine ekleninde aşağıdaki gibi Frameworks klasörü içersinde bize göz kırpıyorsa tamamdır artık devam edebiliriz.

 

 

Screen Shot 2013-05-01 at 4.13.46 PM

Kod olarak çok fazla birşey yazmayacağız sadece basit tanımlamalar ve basit bir property ataması o kadar.  Tanımlama yapabilmek için .h dosyası içersine aşağıdaki gibi bir tanımlama ve property tanımlaması yapıyoruz ve .m dosyasına geçiyoruz.

Screen Shot 2013-05-01 at 4.33.50 PM

.m dosyası içersindede @syntesize komutu ile bu .m dosyası içinde .h dosyasında tanımladığımız mapview property sini kullanacağımızı söylüyoruz. Uygulama çalıştıktan sonra hemen işlemin gerçekleşeceği alan ViewDidLoad event idir. bu event içersinede showsUserLocation=YES komutu yazdıktan sonra işlemimiz tamamlanıyor.

Screen Shot 2013-05-01 at 4.15.04 PM

 

Artık proje çalıştığında nerde olduğunuzu görebilirsiniz. XCode üzerinde derleme yaptığınızda tam olarak yerinizi göstermeyebilir yada alakasız bir yer gösterebilir ancak cihaz üzerinde çalıştırdığınızda sorun kalmıyor.

Peki bu cihaz üzerinde çalışmıyor nasıl yapacaz derseniz oda başka bir yazıda anlatacağım ayrı bir dert  🙂

Screen Shot 2013-05-01 at 4.29.28 PM

 

Şimdilik bu kadar

Umarım yararlı olur

Bilgiyle Kalın 😉

M.Zeki Osmancık

Samsung Galaxy S4 ’e Özel Oyun Konsolu 400 266 mezo

Samsung Galaxy S4 ’e Özel Oyun Konsolu

Geçtiğimiz günlerde tanıtılan Samsung Galaxy S4 ’e özel oyun kolu ile birlikte geliyor. Firma bu oyun kolu ile mobil oyunculukta bir devrim yaratacak gibi görünüyor
Engadget’ın haberine göre Samsung, Galaxy serisi için bir Gamepadprototipi hazır. Samsung cihazlarına özel olarak tasarlanan bu oyun kolu, ilk bakışta Xbox 360 kontrolünü andırıyor. Üzerinde 2 Analog ve D-Pad bulunuyor. Bluetooth üzerinden Samsung cihazlarla bağlantı kurabilen bu Gamepad iki AAA pil ile çalışıyor.

sammm

Mobil oyunculuğun yaygınlaştığı bu dönemde, Samsung firması Gamepad ile rakiplerinin önüne geçecek gibi gözüküyor.

Microsoft CRM Online Dil Desteklerinin Ayarlanması 703 405 mezo

Microsoft CRM Online Dil Desteklerinin Ayarlanması

CRM de Dil Desteklerinin Ayarlanması

CRM üzerinde kullanılacak olan dillerin ayarlanabilmesi için . CRM de bulunan Ayarlar kısmında ki Yönetim seçeneği üzerindeki Diller linkine tıklandıktan sonra çıkan listede kullanıcıların kullanabilecekleri dillerin işaretlenip kapatılması gerekmektedir. böylelikle birden fazla dil desteği CRM üzerine eklenmiş olur
52bc47048c6014599257494618c492ae

 

Umarım Yararlı Olur

Bilgiyle Kalın

M.Zeki Osmancık

 

Mac OS Print Screen 500 360 mezo

Mac OS Print Screen

Mac de print screen tuşu bulunmuyor bunun yerine bir kaç tuşa aynı anda basıp ekran görüntüsü almanız mümkün. 🙂 İşte o tuşlar :

1.Basit olarak tüm ekranın görüntüsünü alabilmek için :

Apple ⌘ + Shift + 3 tuşlarına aynı anda basıyorsunuz ve masaüstünde resim dosyanızı görüyorsunuz 🙂 Masaüstüne ya resim dosyasını atar yada Picture_ adında bir klasör açıp içersine bu resmi kaydeder.

2. Seçtiğiniz bir alanın görüntüsünü kaydetmek için :

Apple ⌘ + Shift + 4 tuşlarına aynı anda basıyorsunuz mouse ekran görüntüsü almaya hazır olduğunu gösteriyor seçimi yaptıktan sonra masaüstüne seçtiğiniz alanın görüntüsünü kaydediyor

3 . Seçilen pencerenin görüntüsünü kaydedebilmek için :

Apple ⌘ + Shift + 4 tuşlarına aynı anda basıyorsunuz ve mouse işareti  + şeklinde değişiyor.  sonra space tuşuna bsıyorsunuz mouse kamera şeklinde değişiyor istediğiniz pencerenin üzerine bir kez tıklıyorsunuz ve o pencerenin resmini yine masaüstüne kaydediyor.

 

Nasıl çok basit değilmi 🙂

Umarım yararlı olur

Bilgiyle kalın

M.Zeki Osmancık

PHP’ de WCF Servis Çalıştırmak 800 421 mezo

PHP’ de WCF Servis Çalıştırmak

Merhaba arkadaşlar

WCF Servisi yazdık yayınladık. C# tarafında nasıl kullanmamız gerektiği zaten basit olarak servisin üzerindeki örnek kısmında yazıyor. Bu yazıda .Net de yazdığımız bir metodun farklı bir platform olan PHP tarafında nasıl kullanacağımızı kısaca göstermek istiyorum.  Öncelikle kodlara geçmeden önce belirtmeliyim ki server üzerinde SOAPCLIENT kurulu olmalı eğer kurulu olmazsa WCF servisi kullanamazsınız.

WCF Servis tarafında aşağıdaki gibi bir metot yazdım

    public string AddAccount(string yetkiliAd,string yetkiliSoyad,string firmaAdi,string firmaAdresi){

return string.Format(“You entered: {0}”, yetkiliAd+yetkiliSoyad+firmaAdi+firmaAdresi);

}

Şimdi gelelim PHP kodlarına basit olarak kodlar şöyle:

// SOAP client WCF servis e bağlanmamızı sağlayan bir class ve WCF servis üzerindeki metotların çalıştırılmasını sağlar.
$wsdl = ‘http://servisadresi/ServisKlasoru/Service.svc?wsdl’;
$soapClient = new SoapClient($wsdl, array(‘cache_wsdl’ => 0));// Yazılan WCF servis üzerinde AddAccount adında bir metot var ve onun içersine parametreleri gönderiyoruz.
$AccountParameter = new stdClass();
$AccountParameter->yetkiliAd = addslashes($this->ucwords_tr($_POST[Ad]));
$AccountParameter->yetkiliSoyad = addslashes($this->ucwords_tr($_POST[Soyad]));
$AccountParameter->firmaAdi = addslashes($this->ucwords_tr($_POST[FirmaUnvan]));
$AccountParameter->firmaAdres = addslashes($this->ucwords_tr($_POST[FirmaAdres]));
try
{
// ve WCF servis üzerindeki AddAccount metodunu çalıştırım sonucu bir değişkene aktarıyor.
$result = $soapClient->AddAccount($AccountParameter);
}
catch (SoapFault $fault)
{
//echo “Fault code: {$fault->faultcode}” . NEWLINE;
//echo “Fault string: {$fault->faultstring}” . NEWLINE;
if ($soapClient != null)
{
$soapClient = null;
}
exit();
}
$soapClient = null;

//echo ”

\n”;

//print_r($result);

//echo ”

\n”;

//echo “Return value: {$result->AddAccountResult}” . NEWLINE;

Umarım yararlı olmuştur 😉

Bilgiyle Kalın

M.Zeki Osmancık

WCF Service IIS Ayarları 1024 575 mezo

WCF Service IIS Ayarları

Merhaba arkadaşlar

Bir önceki yazıda WCF servisin ne olduğu ile alakalı bilgi vermiştim şimdi ise yazdığımız bir servisin IIS üzerinde nasıl yayınlanacağı üzerinde duralım. Öncelikle yayın yapacağımız server üzerinde IIS yüklü olması gerekmekte. IIS üzerinden bazı ayarlar yapacağız ve dosyalarımızı yerleştirip yayına başlayacağız.

Dosyalar demişken WCF Service projesini yazıp tamamladıktan sonra projeyi Publish etmemiz gerekiyor. Publish işlemi servisi yayına hazırlamak anlamına geliyor ve yapmasıda çok basit sadece projeniz üzerinde sağ click sonra publish seçmeniz yeterli.

Şimdi server üzerinde IIS Yöneticisini açıyoruz.

1

 

Daha sonra kullanacağımız Framework versiyonunda bir Application Pool ekliyoruz

2

 

Bizim servisimiz .Net Framework 4.0 kullandığı için uygulama havuzumuz Framework 4.0 seçip oluşturuyoruz.

3

Bu uygulama havuzu içersinede bir web sitesi ekliyoruz ki yayınlayacağımız servisimizi içersine yerleştirebilelim 🙂
4

 

Bu websitesinin yayınlanacağı fiziksel adresi seçmemiz gerekiyor.

5

6

 

 

7

 

Web sitesini ekledikten sonra ve fiziksel yolunu belirttikten sonra eklediğimiz web sitesine bir Application (uygulama) ekliyoruz.

8

 

Uygulamamız içinde aynı şekilde bir fiziksel yol seçtikten sonra yayına hazırız.

9

 

Artık servisimiz yayına hazır tek yapmamız gereken server in adresini yazmak ve belirttiğimiz servisin klasör adı ve dosya adını yazıp servisimizi görüntülemek 😉

http://serveradres veya ip adresi/ServisKlasoru/Service.svc

Untitled picture

 

Umarım yararlı olur

Bilgiyle Kalın

M.Zeki Osmancık

WCF Service Nedir? 448 274 mezo

WCF Service Nedir?

Merhaba arkadaşlar

WCF Service nedir konusu üzerinde bir kaç basit açıklama yapmak istiyorum. Bilindiği gibi microsoft bugüne kadar dağıtık uygulamalarının (Distrubuted Applications) geliştirilebilmesi için  .Net Remoting, XML Web Servisleri, MSMQ,COM+ gibi sistemleri geliştirmiştir.  WCF Service de temel olarak bu sistemlerin hepsinin yeteneklerine sahip ve tam SOA (Service Oriented Architecture – Servis Yönelimli Mimari) desteü, sağlayan güçlü bir Framework API si olarak açıklanabilir.

WCF iki önemli özellik ile birlikte karşımıza çıkmakta: bunlardan birincisi Microsoft tarafındaki servislerin farklı platformlar tarafından ele alınabilmesidir (Interoperability) . Böylece karmaşık .Net tiplerini özel olarak Java ,Com gibi modelleri destekleyen platformlara dağıtabiliriz. Bu yüzdende Linuz ,Unix gibi sistemler servislerimizin birer tüketicisi olabilirler.

İkinci özellik ise Windows kısmında yapılan dağıtık modeller arasında var olacak olan entegrasyonlarının tek bir çatı altında toplanabilmesidir. Bu özellik dışında WCF Service  , CLR tiplerini birer servis olarak sunabilmemizi ve servisleri birer CLR tipi olarak kullanabilmemizi sağlayan bir mimari sunmaktadır.

WCF Service ‘e aynı makine içinde aynı process te yer alan farklı bir Application Domain üzerinden ,aynı makinede yer alan farklı bir process içindeki farklı Application Domain üzerinden , farklı bir makinedeki process içinde yer alan Application Domain üzerinden ulaşabiliriz. Client’ lar hangi Application Domain üzerinde olursa olsunlar servis ile olan iletişimlerini proxy nesnesi üzerinden sağlamak zorundadırlar.

İngilizce kaynaklarda WCF Service ‘in ABC sinden sıkça bahsedilmektedir. Bu ABC nedir alfabemi diye sorarsanız değil 😀 ABC Addresses Bindings Contracts anlamına gelen ve WCF in çekirdeğinde yer alan önemli kavramlardır.

Addresses : Bulunan her servis benzersiz bir adrese sahip olmalıdır Özellikle bir servis adresi servisin teri taşıma protokolü bilgilerinden oluşmalıdır. Servis yeri derken kastetmeye çalıştığım şeyler aslında : Bilgisayar adı, site adı i network , iletişim portu, pipe queue, URI adları ve kesin bir path adresi   olarak sıralanabilir. Burada kullanılan taşıma protokolleri ise HTTP , TCP, P2P , IPC , MSMQ olarak soralanabilir.

Contracts : Bir servisin ne iş yaptığını bilmek önemlidir. Özellikle client’ ların ihtiyaç duyduğu proxy sınıflarının yazılmasında önemli bir konudur. Bu sebeple WCF Service üzerinde tüm servisler dış ortama bir Contract sunmaktadır. Genel manada 4 tane contract tipi vardır. bunlar

Service Contract : Serviste hangi operasyonların var olduğu ile alakalı sözleşmedir.

Data Contract :Servislerden client ‘lara giden ve client ‘ lardan servise gelen veri tiplerini tanımlayan sözleşmedir. Int String gibi bilinen tipler için bu sözleşmeler Implicit yani bilinçsiz olarak hazırlanır. Ancak karmaşık tiplerde ve kendi oluşturduğumuz tiplerde Explicit olarak tanımlanmaları gerekir. Bu sayede Java vb platformlara kendi tanımladığımız sınıfı o platformların anlayacağı şekilde sunmuş oluyoruz.

 Fault Contract : Servis tarafından hangi hataların fırlatılabileceğini ve bu servisi kullanan client a bu hataların nasıl aktarılacağını tanımlayan sözleşmedir.

Message Contract : Servislerin mesajları ile iletişimini sağlayan sözleşmedir.

Bindings :Bindings temek olarak servisleri ile nasıl iletişim kurulacağını tanımlamak için kullanılırlar. Bir bindings tip  transport type , protocok ve data encoding bilgilerini bildirir. Bu bilgiler aslında servis yönelimli mimari modelde kullanılabilecek olan senaryolar düşünülerek oluşturulurlar bu yüzdende WCF bu önceden bilinen senaryoları kullanabilmek için gerekli bağlayıcı tipleri önceden bildirmiştir bunlar :

 

Binding Tipi KonfigurasyonElementi Taşıma Çeşidi(Transport Type) Veri Çözümlemesi(Data Encoding) PlatformDesteği

(Interoperability)

BasicHttpBinding <basicHttpBinding> HTTP / HTTPS Text Var
NetTcpBinding <netTcpBinding> TCP Binary Yok
NetPeerTcpBinding <netPeerTcpBinding> P2P Binary Yok
NetNamedPipeBinding <netNamedPipeBinding> IPC Binary Yok
WSHttpBinding <wsHttpBinding> HTTP/HTTPS Text/MTOM Var
WSFederationBinding <wsFederationHttpBinding> HTTP/HTTPS Text/MTOM Var
NetMsmqBinding <netMsmqBinding> MSMQ Binary Yok
MsmqIntegrationBinding <msmqIntegrationBinding> MSMQ Binary Var
WSDualHttpBinding <wsDualHttpBinding> HTTP Text/MTOM Var

Buradaki tiplerden hangisini seçeceğimiz, geliştireceğimiz SOA (Service Oriented Architecture) modelindeki ihtiyaçlarımız doğrultusunda belirlenebilirler.

Şimdi isterseniz bir WCF Service projesi açarak inceleyelim.

WCF Service projesi açtığımızda bizi karşılayan önemli 3 dosya vardır bunlar IService.cs ,Service.cs ,web.config dosyalarıdır bu dosyalarda neler var bir bakalım.

IService.cs

Bu interface servis içersinde kullanılacak olan metotları property leri ve bunların contractlarının belirtildiği dosyadır 😉

using System;using System.Collections.Generic;

using System.Linq;

using System.Runtime.Serialization;

using System.ServiceModel;

using System.ServiceModel.Web;

using System.Text;

namespace WcfService1

{

// NOTE: You can use the “Rename” command on the “Refactor” menu to change the interface name “IService1” in both code and config file together.

[ServiceContract]

public interface IService1

{

[OperationContract]

string GetData(int value);

[OperationContract]

CompositeType GetDataUsingDataContract(CompositeType composite);

// TODO: Add your service operations here

}

// Use a data contract as illustrated in the sample below to add composite types to service operations.

[DataContract]

public class CompositeType

{

bool boolValue = true;

string stringValue = “Hello “;

[DataMember]

public bool BoolValue

{

get { return boolValue; }

set { boolValue = value; }

}

[DataMember]

public string StringValue

{

get { return stringValue; }

set { stringValue = value; }

}

}

}

 

 

Service.cs

Service.cs ise işlemlerimizin IService.cs dosyasındaki gibi tanımlanmış olan metotlar içersine yazacağımız dosyamızdır.

using System;using System.Collections.Generic;

using System.Linq;

using System.Runtime.Serialization;

using System.ServiceModel;

using System.ServiceModel.Web;

using System.Text;

namespace WcfService1

{

// NOTE: You can use the “Rename” command on the “Refactor” menu to change the class name “Service1” in code, svc and config file together.

// NOTE: In order to launch WCF Test Client for testing this service, please select Service1.svc or Service1.svc.cs at the Solution Explorer and start debugging.

public class Service1 : IService1

{

public string GetData(int value)

{

return string.Format(“You entered: {0}”, value);

}

public CompositeType GetDataUsingDataContract(CompositeType composite)

{

if (composite == null)

{

throw new ArgumentNullException(“composite”);

}

if (composite.BoolValue)

{

composite.StringValue += “Suffix”;

}

return composite;

}

}

}

 

Web.config

<?xml version=”1.0″?><configuration>

<system.web>

<compilation debug=”true” targetFramework=”4.0″ />

</system.web>

<system.serviceModel>

<behaviors>

<serviceBehaviors>

<behavior>

<!– To avoid disclosing metadata information, set the value below to false before deployment –>

<serviceMetadata httpGetEnabled=”true”/>

<!– To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information –>

<serviceDebug includeExceptionDetailInFaults=”false”/>

</behavior>

</serviceBehaviors>

</behaviors>

<serviceHostingEnvironment multipleSiteBindingsEnabled=”true” />

</system.serviceModel>

<system.webServer>

<modules runAllManagedModulesForAllRequests=”true”/>

<!–

To browse web app root directory during debugging, set the value below to true.

Set to false before deployment to avoid disclosing web app folder information.

–>

<directoryBrowse enabled=”true”/>

</system.webServer>

</configuration>

 

Umarım yararlı olur.

Bilgiyle Kalın

M.Zeki Osmancık

 

Samsung Galaxy S2 Android 4.1.2 Jelly Bean Kurulumu 500 343 mezo

Samsung Galaxy S2 Android 4.1.2 Jelly Bean Kurulumu

Merhaba arkadaşlar

Samsung Galaxy S2 cihazınıza Android 4.1.2 Jelly Bean işletim sistemini nasıl kurarsınız bunu adım adım anlatmak istiyorum.

Öncelikle en baştan söylemek isterim ki bu yükleme işlemi yarım kalırsa telefonunuz tekrardan açılmayabilir. Herhangi bir sorunda ben ve www.mzekiosmancik.com sorumlu değildir. tamamen kendi iradenizle kuruluma başlamalısınız.
Özellikle orjinal yazılım olduğu için telefonunuzu garantiden çıkarmaz onu söylemekte fayda var.Yükleme işlemini yapmanız için herhangi bir root veya kernel yüklemesine ihtiyacınız yok.

Şimdi adım adım kurulumu yapalım.

1) Odin dosyasını buradan indirip dosyayı zipten çıkarın.

2) I9100XXLSJ_I9100OXXLS1_OXX dosyasını buradan indirip dosyayı zipten çıkarın.
3) Odin’i çalıştırın
4) Samsung Galaxy S2 cihazınızı “Download Modu”na getirmeniz gerekiyor bunun için Açma Kapama + Home (Menü) + Ses kısma tuşlarına aynı anda uzunca basın
5) Galaxy S2 cihazınızı USB kablosu ile bilgisayarınıza bağlayın
6) Odin cihazınızı tanımlayana kadar bekleyin. Odin ekranındaki değişikliği göreceksiniz.
7) Sıra geliyor Odin’ e girilecek olan içeriği siteme tanıtmaya. Sırasıyla PDA, PHONE ve CSC başlıklarına ilgili dosyaları seçiyorsunuz.

PDA =  CODE_I9100XXLSJ.tar
PHONE =  MODEM_I9100XXLS6.tar
CSC =  CSC_HOME_OXX_I9100OXXLS1.tar

Resimde görülen ekranı elde ettiyseniz yüklemeye hazırsınız demektir 😀 hadi başlayalım….
galaxys2

9) Start tuşuna basın
10) Odin ekranı üzerinde PASS yazısını gördüğümüzde artık jelly bean kullanıma hazır demektir.
11) Tüm işlemler tamamlandıktan sonra Samsung Galaxy S2’nin yükleme işlemlerini tamamlamasını beklememiz gerekiyor biraz sabırlı olmalıyız çünkü bu işlem yaklaşık 5 dakika sürebilir.

Daha sonra Samsung Galaxy S2 telefonunuzda Jelly Bean kolaylığını yaşayabilirsiniz.

Kolay Gelsin 🙂

Bilgiyle Kalın

M.Zeki Osmancık

 

Iphone Programming – AlertView (MessageBox) 385 717 mezo

Iphone Programming – AlertView (MessageBox)

Iphone Programming – AlertView

Merhaba arkadaşlar

IOS programlama konusundada bazı küçük bilgiler vermek isterim sizlere. Basit örnek ile başlamak en doğrusu dye düşündüm ve sizlere genel adıyla MessageBox olarak geçen yapı olan AlertView ile Merhaba dünya yazdırarak IOS programlama dünyasına giriş yapmanızı sağlamak isterim 🙂

Öncelikle Xcode üzerinde yeni bir proje oluşturuyoruz.

6e794d81fe89343045753f0b44e06317

 

4666c6d2cf74864798b9eda0eb2604fd

 

Projemizi açtıktan sonra verdiğimiz isimde .xib  .h .m dosyaları bizleri karşılayacak. Bu dosyalar ne anlama geliyor peki ? xib bizim uygulamamızın tasarımının bulunduğu gösterildiği dosyadır,  .h dosyası temel değişken control event ve metotların tanımlanması gereken dosyadır.  .m dosyasıda asıl iş yapan dosyadır m dosyasında h dosyası içersine yaptığıız tanımlamaları yapabilir event leri kullanabiliriz.

iphone programming alertview 3

Önce tasarım dosyası olan xib dosyası üzerine bir button kontrolü atıp daha sonra h dosyasına tanımlamamızı yaptıktan sonra artık kod yazmaya hazırız.  m dosyasını açıp AlertView kodlarımızı yazmaya başlayabiliriz.

iphone programming alertview 1

Artık IOS dünyasına merhaba deme zamanı geldi 😀 projemizi çalıştırıp Iphone Simulator ü çalıştırıp bakıyoruz ne yapmışız acaba diye 😀

iphone programming alertview 1

 

Umarım yararlı olur

Bilgi sizlerle olsun 😉

M.Zeki Osmancık

Galaxy Note N7000 Android 4.1.2 Jelly Bean Kurulumu 600 390 mezo

Galaxy Note N7000 Android 4.1.2 Jelly Bean Kurulumu

Android 4.1.2 Jelly Bean

Merhaba arkadaşlar
Kendimde bir Galaxy Note kullanıcısı olduğumdan yaptığım değişiklikleri veya güncellemeleri sizlerle paylaşmak istedim. Bilindiği gibi Android 4.1.2 Jelly Bean piyasaya çıkan bazı telefonlarla birlikte gelmeye başladı. Galaxy Note 2 bunlardan bir tanesi. Galaxy Note kullanıcısı olarak Note 2 deki işletim sistemi ile kullanılabilirliği arttıracağımızdan şüphem yok.
Şimdi sizlere kendi telefonuma yükleyip çok çok memnun kaldığım Jelly Bean işletim sistemini nasıl telefonunuza kurarsınız bunu adım adım anlatmak istiyorum.
Öncelikle en baştan söylemek isterim ki bu yükleme işlemi yarım kalırsa telefonunuz tekrardan açılmayabilir. Herhangi bir sorunda ben ve www.mzekiosmancik.com sorumlu değildir. tamamen kendi iradenizle kuruluma başlamalısınız.
Özellikle orjinal yazılım olduğu için telefonunuzu garantiden çıkarmaz onu söylemekte fayda var.Yükleme işlemini yapmanız için herhangi bir root veya kernel yüklemesine ihtiyacınız yok.

O zaman hadi başlayalım ve Note N7000 telefonumuza JellyBean kuralım 🙂

1- İlk işlemimiz 1076 MB’lık N7000XXLSA ROM’u buradan indiriyorsunuz.
2- Birinci adımdaki zip dosyasının içindeki 3 dosyayı herhangi bir klasöre çıkartıyoruz.
3- Buradan  ODIN adlı programı indirmeniz gerekiyor.ODIN bizim telefona ROM yüklemek için kullanacağımız programımız.
4- Telefonunuzu kapatın.
5- Telefonu USB kablosuyla bilgisayara bağlayın.
6- Telefonunuzu Dowloadn moduna almanız gerekiyor bunun için Home + Güç Butonu + Ses Kısma Tuşuna basılı tutarak telefonu açın
7- Telefon Download modunu açacak ve size iki seçenek çıkacak. Continue deyip devam edin.
8- Bilgisayardan indirdiğniz ODIN programını zip ten herhangi bir klasöre çıkartıp, çalıştırın.
9- Telefon bağlı olduğu için yukarıda 1. slot üzerinde bulundu işareti çıkacak ve aşağıdaki log penceresinde ADDED mesajını verecek. Daha sonra ODIN programında indirdiğimiz dosyaları tek tek seçmeniz gerek.
10- PDA butonuna basıp CODE_N7000XXLSA_549786_REV02_user_low_ship.tar.md5 adlı dosyayı seçiyoruz.
11- Phone butonuna basıp MODEM_N7000XXLSA_REV_05_CL1222228.tar.md5 adlı dosyayı seçiyoruz.
12- CSC adlı butona basıp CSC_OXA_N7000OXALSA_549786_REV02_user_low_ship.tar.md5 adlı dosyayı seçiyoruz.
13- Start Butonuna basarak işlemi başlatacaksınız.
Eğer program yanıt vermiyor hatası verirse hiç bir müdahale yapmayın kendi kendine düzelecektir.

NOT: Bu yüklemeden sonra SDKart  hariç tüm dosyalarınız silinecektir! Tekrar belirtiyorum telefonunuza bu yüklemeden dolayı gelebilecek bir sorundan ben sorumlu değilim…

Umarım Yararlı olur
Bilgiyle Kalın
M.Zeki OSMANCIK

E-Book Gallery for Microsoft Technologies 100 100 mezo